Rinkeby
Truffle 遷移到 rinkeby 失敗,gas 價格不足
我正在嘗試使用 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