修改 truffle 控制台命令以通過 geth 在 ropsten 部署的合約上執行功能
下面複製了幾個命令,我已經在
truffle console
, execution on中成功使用了這些命令testrpc
,它們起作用並引發了我期望的響應。如何更改它們以使其適用於
ropsten
?如何通過geth
控制台發送它們?我嘗試與之互動的合約已在此交易中部署到 ropsten 測試網。
合約程式碼可以在我的 GitHub 上找到。
我要使用的第一個命令是增加
iteration
變數:Incrementer.deployed().then(function(instance) { meta = instance; return meta.increment(1); })
接下來我要做的是驗證結果:
Incrementer.deployed().then(function(instance) { meta = instance; return meta.getIteration(); })
在這一點上,我發現我必須使用ABI,但這就是我所能得到的。
我怎樣才能將這些命令轉換成可以通過
geth
控制台發送到測試網的ropsten
東西?
在 Ropsten 上執行的 Geth 實例是否使用預設的 rpc 埠 8545?如果您沒有將其指定為命令行參數,那麼它將是。如果您也在使用 testrpc 而不指定埠,那麼 testrpc 也將使用 8545。如果是這種情況,請確保終止 testrpc。兩個應用程序不能同時使用同一個埠。
如果您已指定執行 Ropsten Geth 實例的埠,則需要在此處指定的 truffle.js 配置中更改它:http: //truffleframework.com/docs/advanced/configuration
作為旁注,請考慮使用 Rinkeby 測試網:https ://www.rinkeby.io/它更可靠,並且在該頁面中包含使用它所需的一切。
我希望這有幫助。
如何通過 geth 控制台發送它們?
如果你的意思是如何在 ropsten 測試網路上設置一個 geth 節點並使用 truffle 與之互動,請繼續閱讀。
在終端類型中:
geth --testnet --rpc console
等到節點完全同步。您可以通過鍵入
eth.syncing
if eth.syncing = false 來檢查它是否已完成。(這部分可能需要一段時間)檢查你的 http 端點,它看起來像這樣: HTTP endpoint opens url= http://127.0.0.1:8545
在您的 truffle.js 文件中添加 ropsten,如下所示:
在 Windows 上,它可能被命名為 truffle-config.js
networks: { development: { host: "127.0.0.1", port: 7545, network_id: "*" // Match any network id }, ropsten: { host: "localhost", port: 8545, network_id: "*", gas: 4600000 } }
如果您還沒有帳戶類型
personal.newAccount()
並按照提示進行操作。然後轉到:http ://faucet.ropsten.be: 3001/ 並將 testnet ether 添加到您的帳戶返回終端並輸入
personal.unlockAccount("your address")
在項目目錄中創建第二個終端選項卡並執行
truffle migrate --network ropsten
假設您的契約和遷移已正確設置。您的合約應該已成功部署到 ropsten 網路。
還有一個很棒的教程:https ://medium.com/@guccimanepunk/how-to-deploy-a-truffle-contract-to-ropsten-e2fb817870c1