Truffle

Truffle 退出並顯示“錯誤:無法儲存合約程式碼,請檢查您的 gas 數量。”遷移 1_initial_migration.js 時出錯

  • October 29, 2017

我正在嘗試truffle init使用 Parity 將基本的松露範例(通過創建的範例)遷移到 rospten,但即使合約已正確部署在 Rospten 上,我也會收到以下錯誤:

利用網路“發展”。

執行遷移:1_initial_migration.js 部署遷移…

… 0x3f8cd1b1e98935feb4616e810f4ce0d6ebfbd7355ea8a8e9695a490173d8446e

遇到錯誤,放棄。網路狀態未知。手動查看成功的交易。錯誤:無法儲存合約程式碼,請檢查您的gas量。在 Object.callback (/usr/lib/node_modules/truffle/buil/cli.bundled.js:218485:46)

at /usr/lib/node_modules/truffle/build/cli.bundled.js:34886:25
at /usr/lib/node_modules/truffle/build/cli.bundled.js:220423:9
at /usr/lib/node_modules/truffle/build/cli.bundled.js:72910:11
at /usr/lib/node_modules/truffle/build/cli.bundled.js:204149:9
at XMLHttpRequest.request.onreadystatechange (/usr/lib/node_modules/truffle/build/cli.bundled.js:205574:13)
at XMLHttpRequestEventTarget.dispatchEvent (/usr/lib/node_modules/truffle/build/cli.bundled.js:73069:18)
at XMLHttpRequest._setReadyState (/usr/lib/node_modules/truffle/build/cli.bundled.js:73359:12)
at XMLHttpRequest._onHttpResponseEnd (/usr/lib/node_modules/truffle/build/cli.bundled.js:73514:12)
at IncomingMessage.<anonymous> (/usr/lib/node_modules/truffle/build/cli.bundled.js:73474:24)

從這裡可以看出,合約已正確部署:https ://ropsten.etherscan.io/tx/0x3f8cd1b1e98935feb4616e810f4ce0d6ebfbd7355ea8a8e9695a490173d8446e

這是 1_initial_migrations.js 的程式碼:

var Migrations = artifacts.require("./Migrations.sol");

module.exports = function(deployer) {
 deployer.deploy(Migrations, {from: "0x004995b1caD48E77e7A53e535Bb82c8189B80632", gas:2000000});
};

我剛剛找到了我自己問題的答案。

這一切都歸結為以下奇偶校驗錯誤導致 getCode 和 getTransactionReceipt 之間的競爭條件:https ://github.com/paritytech/parity/issues/5538

如果通過標誌在 geth 兼容模式下執行奇偶校驗--geth,則松露遷移按預期工作。

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