【发布时间】:2018-09-04 20:36:31
【问题描述】:
我的本地以太坊网络上的交易出现问题 - 有时,交易挂起并从我的帐户中花费大量 ETH。
这是一个示例代码:
async function send(toAccount, weiVal) {
let account = await w3.getDefAccount();
for (let i = 0; i < 100; i++) {
let res = await web3.eth.sendTransaction({
from: account,
to: toAccount,
value: weiVal
});
await helper.timeout(2000);
}
}
send('0x5648...', 100000000000000);
它在某个随机迭代中挂在sendTransaction 调用(承诺永远不会解决)。
脚本重新启动后情况保持不变 - 事务通过几次然后挂起。
geth 版本:1.7.3
【问题讨论】:
-
如果在 for 循环中放置 try/catch 会出现错误吗?突出的一件事是您没有指定 gas 限制或 gas 价格,因此您的交易可能由于资金不足或发生某些
revert操作而在某些迭代中失败,然后消耗了您所有剩余的 gas。没有更多的调试信息很难判断。
标签: javascript ethereum web3js web3 geth