Go-Ethereum

修改 truffle 控制台命令以通過 geth 在 ropsten 部署的合約上執行功能

  • January 27, 2022

下面複製了幾個命令,我已經在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

引用自:https://ethereum.stackexchange.com/questions/23348