Rinkeby

Truffle 遷移到 rinkeby 失敗,gas 價格不足

  • February 5, 2018

我正在嘗試使用 truffle ( truffle migrate --network rinkeby) 將我的契約遷移到 rinkeby,但它一直告訴我我沒有足夠的資金:

使用網路“rinkeby”。

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

… undefined 遇到錯誤,保釋。網路狀態未知。手動查看成功的交易。錯誤:gas * price + value 資金不足

這是我的 truffle.js:

module.exports = {
 networks: {
   rinkeby: {
     network_id: 4,
     host: '10.21.0.94',
     port: 8545,
     gas: 4000,
     gasPrice: 200000,
     from:  "0x852c1e19114b1ff775c59a61b345cc839f3307fd"
   }
 }
};

“發件人”地址有 3ETH,這應該綽綽有餘。

更新:我嘗試切換到正在執行的本地輕節點geth --networkid=4 --syncmode=light --datadir . --rpc --rpcapi="eth,web3,personal,net"(在 Windows 上),但仍然insufficient funds出現exceeds block gas limit錯誤。

我假設我的帳戶有發送給它的資金。但是,事實證明該節點尚未同步到具有該交易的區塊,因此它仍然認為該帳戶的資金為零。

道德:即使您確定自己有資金,也請始終與您正在使用的節點進行核對。此外,Truffle 中新的“試執行”選項會有所幫助(這就是我發現我的乙太幣為零的原因)。

您可以通過訪問Rinkeby 塊並查看 GasLimit 列來確定 Rinkeby 目前的 GasLimit。在 Truffle 中,你的 gas 應該低於這個值。

使用 GasPrice,您可以控制礦工處理您的交易的速度。值越高,您的交易被包含在區塊中的速度就越快。

對我來說,這些值很合適:

"gas":      6500000,
"gasPrice": 100000000000

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