Go-Ethereum
如何使用 truffle 將我的合約部署到本地測試網(不是 testrpc)?
我按照以下連結中的步驟創建了一個本地乙太坊測試網,但現在我想將合約部署到“MyTestNetNode”:
testrpc 不是一個好的選擇,因為當您停止守護程序時,test rpc 不會保存狀態。我需要使用我已經完成的 geth 創建一個測試網,並且我想使用 Truffle 將合約部署到它而不會出錯。誰能幫我?
您只需要根據本地配置更改 truffle 配置文件:
module.exports = { networks: { development: { host: 'localhost', port: 8545, //the port of your local testnet network_id: '*' //any network ID } } }
最重要的是,您實際上也可以使用ganache-cli作為 testrpc 客戶端並添加參數
--db
以保存數據庫。通過這種方式,您可以使用保存的數據再次執行測試節點,而不是隨時從新節點開始
根據我的經驗,使用測試網路更容易,比如 Rinkeby 或 Ropsten。您的狀態將被保存以備後用。你只需要為這些網路提供乙太幣。例如,只需搜尋 Rinkeby 的 faucet,您就會找到一個網站,該網站為您提供在該網路上使用的假乙太幣。
然後像這樣設置松露配置:
rinkeby: {< provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/${INFURA_KEY}`), network_id: 4, // Rinkeby's id gas: 5500000, // Rinkeby has a lower block limit than mainnet confirmations: 1, // # of confs to wait between deployments. (default: 0)< timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50) skipDryRun: true // Skip dry run before migrations? (default: false for public nets ) }
然後執行
truffle deploy --network rinkeby
注意:您也可以在這裡定義自己的專用網路。只需為您的網路定義一個名稱並分配 ip、埠和其他內容。在這裡,我使用 Infra 訪問 Rinkeby,這對於開發目的來說也更容易。