DApp 如何真正與 Ganache 乙太坊節點對話?
Metamask 和 web3.js 似乎都允許 DApp 與遠端乙太坊節點通信。
使用乙太坊開發區塊鏈應用程序有幾個不同的方面:
- 智能合約開發——使用 Solidity 程式語言編寫部署到區塊鏈的程式碼。
- 開發與區塊鏈互動的網站或客戶端——編寫程式碼,通過智能合約從區塊鏈讀取和寫入數據。
Web3.js 使您能夠履行第二個職責:開發與乙太坊區塊鏈互動的客戶端。它是一組庫,可讓您執行諸如從一個帳戶向另一個帳戶發送乙太幣、從智能合約讀取和寫入數據、創建智能合約等操作!
來自http://www.dappuniversity.com/articles/web3-js-intro
MetaMask 是一個瀏覽器擴展,允許 Web 應用程序與乙太坊區塊鏈互動。對於使用者來說,它就像一個乙太坊錢包,允許他們儲存和發送任何標準的乙太坊兼容代幣
來自https://medium.com/crowdbotics/building-ethereum-dapps-with-meta-mask-9bd0685dfd57
這兩個定義讓我很困惑。
我的問題是,總而言之,Metamask 是介於 web3.js 和 Ganache 之間嗎?實際上是誰在與乙太坊節點對話?
Metamask 使用 web3 與乙太坊節點對話。Metamask 還將 web3 注入瀏覽器,以供任何執行的應用程序用於連接到節點(使用者在 metamask 中選擇)。
Metamask 在瀏覽器儲存中擁有使用者生成的私鑰,當使用者同意時,該私鑰用於簽署任何可以送出給節點的交易。簽名、發送等都是使用 web3 完成的。
如果您使用 ganache 作為開發區塊鏈,則不需要 MetaMask。這讓生活變得更加輕鬆,因為您可以從 ganache 獲得 10 個地址,您可以在開發和測試環境中使用這些地址。沒有檢查,所以甘納許不適合生產。甚至不要考慮它。
但對於發展是第一。因此,只需配置 truffle-config.js 並從瀏覽器中解除安裝 MetaMask 就可以了。
對於生產或正式測試網路,您需要稍後採用一些東西。但這是值得的,因為您節省了很多時間。