在 Meteor/web3 應用上設置 Eth 帳戶的開發方法
我想開發一個 Dapp,允許使用者發送和接收我自己的代幣(智能合約)。
到目前為止,我設法設置了一個使用 web3 的簡單 Meteor 應用程序。所以現在它可以與我部署在 testrpc 上的智能合約進行互動。該應用程序可以發送/接收令牌。
問題是:
(1) 最好或可行的方法是什麼,以便我的 Meteor-web3 應用程序的使用者可以設置他/她的乙太坊帳戶並最終他/她可以與令牌/智能合約進行交易?
(2) 我正在考慮將 Meteor-web3 轉換為移動 Dapp。這在實時 Ehteruem 網路上是否可行。
提前感謝您的指導。
讓使用者與區塊鏈互動的最簡單方法是使用來自 Metamask 的注入 web3,這使應用程序和他們可以訪問他們的帳戶。通過 Metamask,他們可以簽署交易(例如發送代幣)並發送乙太幣。但當然,這需要使用者擁有 Chrome 和 Metamask。
典型的回退是如果沒有 Metamask,DApp 會連接到使用者的本地 geth ( http://localhost:8545 )。這使他們可以訪問他們的帳戶和區塊鏈,但是您需要您的使用者再次執行本地 geth 節點,並熟悉終端命令來解鎖他們的帳戶等。
可能還有其他一些輕錢包客戶端,但我還沒有使用這些客戶端。
對於我的 DApp,我所做的另一件事是在 AWS 上創建了一個遠端 geth 節點並將其用作我的 web3 提供程序。(Digital Ocean 似乎也很受歡迎,在這裡的許多文章中都提到過。)它的作用是為沒有執行 Chrome/Metamask 或本地 geth 節點的使用者提供 web3。他們甚至可以從移動設備訪問區塊鏈數據。但是,它是只讀的,他們仍然需要 Metamask 或本地 geth 來簽署和發送交易。另請注意,如果您有 https 站點,則需要創建 nginx 反向代理伺服器來創建 SSL geth 節點,預設情況下 geth 不支持該節點。
如果您希望您的應用程序完全去中心化(這可能是一個很好的假設,因為這就是創建它的目的),那麼您希望您的應用程序訪問他們電腦上的本地乙太坊節點和/或在初始化您的應用程序。
一旦您的應用程序的使用者擁有某種類型的節點(full、light 等),您的應用程序就可以通過 IPC/RPC 方法與您的本地節點互動。這將使您的應用程序完全訪問乙太坊網路並允許使用者與之互動(即發送交易以花費/接收令牌,執行合約程式碼等)。在我看來,這是最好的方法,僅僅是因為它可以實現完全去中心化的應用程序。要製作一個真正好的應用程序,您可能會想要為您的應用程序建構一個使用者界面,該界面不需要使用者了解太多與乙太坊網路互動的知識。
可以在移動設備上執行的乙太坊輕客戶端仍處於開發階段,但如果你想做出貢獻,那就太棒了!一旦實現了可靠且高效的輕客戶端,Dapps 的真正力量將在移動設備上大放異彩!