Blockchain
使用 DApp 部署智能合約
我是乙太坊區塊鏈上 DApp 開發的新手。我想製作一個契約管理系統,使用者可以在其中使用我的 Web 應用程序生成自己的代幣和眾籌。我能夠與已經部署的契約進行互動,但我不知道
- 有人如何使用我的 DApp 部署他們的眾籌。
- 我不知道如何使用我的應用程序連接 Metamask 和使用者帳戶,最後
- 如何在伺服器和域上部署該 Web 應用程序。
任何幫助將不勝感激。謝謝
- 某人如何使用我的 DApp 部署他們的眾籌。
您可以使用 Web3.js 或 truffle 從 WebUI 部署契約。
我不知道如何使用我的應用程序連接 Metamask 和使用者帳戶
您可以使用以下程式碼將元遮罩與您的 Web 應用程序集成。
$(function () { // equivalent to $(document).ready(...) if (typeof(web3) === "undefined") { error("Unable to find web3. " + "Please run MetaMask (or something else that injects web3)."); } else { log("Found injected web3."); web3 = new Web3(window.web3.currentProvider); ... } });
- 如何在伺服器和域上部署該 Web 應用程序。
使用 AWS 服務託管使用者網站,使用 Route 53 將域名與 EC2 實例進行映射。
首先,您需要編寫和編譯代幣和眾籌智能合約。這將為您提供 abi 和字節碼。
然後你可以使用 Web3 API 從你的 DApp 部署合約。這分兩步完成:
- 像這樣構造合約對象:
var myContract = new web3js.eth.Contract (abi)
. 對於這一步,您需要將智能合約的 ABI 打包到由 Solidity 編譯器生成的 JSON 中。- 像這樣公開部署合約交易:
await myContract.deploy ({data: bytecode, arguments: [parameters]}).send ({from: account, gas: 1000000})
. 對於這一步,您需要 Solidity 編譯器生成的合約字節碼、建構子參數(您可以在此處傳遞名稱、符號、小數等)以及發布部署交易的帳戶。Metamask FAQ中介紹瞭如何使用 DApp 中的 Metamask 帳戶。這將為
web3js
您提供可以使用的對象。使用者帳戶可用作web3js.eth.accounts
. 請注意,使用者可能需要明確允許您的 DApp 訪問他的帳戶。關於部署,您可以在GitHub Pages上託管您的 DApp作為快速入門,然後購買域,例如在Google Domains或任何其他域註冊服務上。