Contract-Deployment

使用 truffle/geth 將功能正常的合約 (testrpc) 部署到 ropsten

  • July 30, 2017

我使用 truffle 和 testrpc 開發了一個智能合約,可以在GitHub 上找到

此時我想將它部署到ropsten,但我不知道如何做到這一點。

在諮詢了這個問題/答案之後,我嘗試為我的智能合約設計一個部署,如下所示:

module.exports = {
 networks: {
   localhost: {
     host: "localhost", 
     port: 8546, // for ropsten expose this one
     //port: 8545, // expose this one for testrpc
     network_id: "*" // Match any network id
   },  
// for ropsten uncomment all of this
// for testrpc comment it all out
   ropsten: {
     host: "localhost",
     port: 8545,
     network_id: "3"
   }
 }
};

這是我嘗試執行部署的方式:

> truffle migrate --network ropsten

Using network 'ropsten'.

Running migration: 1_initial_migration.js
   Deploying Migrations...
   ... undefined
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: exceeds block gas limit

這是完整終端輸出的螢幕截圖:

在此處輸入圖像描述

我的問題是,我怎樣才能將這個簡單的契約部署到ropsten


編輯:

發現這個:

在此處輸入圖像描述

但這似乎沒有幫助,即仍然出現錯誤:

在此處輸入圖像描述

您需要注意的錯誤消息部分是:

Error: exceeds block gas limit

你可以通過修改你truffle.js來包含這樣的行來解決這個問題gas: 500000

module.exports = {
 networks: {
   localhost: {
     host: "localhost", 
     port: 8546, // for ropsten expose this one
     //port: 8545, // expose this one for testrpc
     network_id: "*" // Match any network id
   },  
   ropsten: {
     host: "localhost",
     port: 8545,
     network_id: "3",
     gas: 500000
   }
 }
};

然後像這樣部署它:

truffle migrate --network ropsten --reset 

對我來說這似乎有效,正如你在這裡看到的:

在此處輸入圖像描述

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