译文出自:登链翻译计划
译者:aisiji
概述
有时,在以太坊上提交的交易没有足够的gas,因为网络拥堵或有太多的待处理交易提供了比你的交易报价更高的gas价格。如果你有一个高优先级的交易,但由于gas不足,可能最终不得不等待数小时甚至数天才能打包结算。在这种情况下,你需要用更高的gas价格和相同的nonce重新发送交易,以使它尽早被打包。
本文中,我们将在以太坊测试网上用ethers
);});
然后,用上面一节中的HTTP提供者替换ADD_YOUR_ETHEREUM_NODE_URL。
简单解释一下上面的代码:导入之前安装的ethers库,设置以太坊节点URL,实例化一个ethersJsonRpcProvider实例,创建一个特定的钱包的私钥,可以是任何数字,并确保它包含相同位数。用私钥创建一个以太坊的钱包实例,在控制台中打印钱包地址,创建一个交易对象并在to字段中添加接收者的地址,你也可以用varwallet=Wallet.createRandom();生成一个随机地址,在value字段设置要发送的ETH的价值,在chainId字段,因为我们使用的是Kovan,设置为42,nonce字段设置为3,根据节点估计gasLimit并设置gas价格,用钱包的私钥为交易签名并发送,同时在控制台打印该交易。
运行一下:
nodeindex.js
我们会得到一个类似这样的输出:
复制hash字段的字符串并粘贴到Kovan浏览器的搜索框中,以检查交易的状态。你会看到,该交易尚未被添加到区块链上的新区块中,是等待状态。这是因为我们设置的gas值明显偏低。
现在,我们尝试用相同的nonce发送相同的交易,但这次是增加gas值;将代码中第15行的gasPrice值从0.14085197改为2.14085197并重新运行代码:
nodeindex.js
复制新输出的ash字段的字符串,并将其粘贴到Kovan浏览器的搜索框中,再次检查交易的状态。这一次,我们的交易成功被添加到区块中,并且状态为成功,因为我们在发送交易时增加了gasPrice值。
注意:nonce值在两次交易中是相同的。如前所述,nonce是一个以太坊地址的交易数量。为了重新提交一个有更多gas的交易,你必须使用与原始交易相同的nonce。如果你使用增加的nonce,这将是一个新的交易,那么你的发送ETH会比你的想象的更多。
结论
因此,正如我们在上面的例子中看到的,交易的gas价格是用于竞争交易优先打包权。区块链上的矿工通常会根据可用的区块空间占有率来设置gas,当有一笔交易的gas低于阈值gas值时,它不会被验证。与其他交易相比,gas值较高的交易会很快得到验证。
本翻译由CellETF赞助支持。
参考资料
登链翻译计划:https://github.com/lbc-team/Pioneer
aisiji:https://learnblockchain.cn/people/3291
gas:https://learnblockchain.cn/2019/06/11/gas-mean
ethers.js:https://learnblockchain.cn/docs/ethers.js/
函数选择器:https://learnblockchain.cn/docs/solidity/abi-spec.html#abi-function-selector
以太坊主要网络chainId及NetworkID:https://learnblockchain.cn/article/1791
以太坊签名和验证签名:https://yos.io/2018/11/16/ethereum-signatures/
以太坊签名和验证:https://medium.com/@angellopozo/ethereum-signing-and-validating-13a2d7cb0ee3
官方网站:https://nodejs.org/en/
node-gyp安装说明:https://github.com/nodejs/node-gyp#installation
ethers.js指南:https://www.quiknode.io/guides/web3-sdks/how-to-connect-to-ethereum-network-with-ethers-js
Kovan水龙头:https://faucet.kovan.network/
QuikNode提供的免费节点URL:https://www.quiknode.io/?utm_source=learnblockchain.cn
Kovan浏览器:https://kovan.etherscan.io/
Kovan浏览器:https://kovan.etherscan.io/
CellETF:https://celletf.io/?utm_souce=learnblockchain
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/10431651.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
每周编辑精选WeeklyEditors'Picks
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。