当前位置:首页>区块链文章>区块链推广>一、以太坊单笔交易字段含义

一、以太坊单笔交易字段含义

消费者可以通过Metamask、mist浏览器实现与以太坊的交互,而开发者可以通过web3js工具库实现以太坊的交互。单比交易需要的字段:nonce: 定义官方文档对于nonce的说明:nonce: QUANTITY - (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce. 2.个人定义:每发起一笔...

消费者可以通过Metamask、mist浏览器实现与以太坊的交互,而开发者可以通过web3js工具库实现以太坊的交互。

单笔交易需要的字段: 

一、以太坊单笔交易字段含义

nonce :

  定义

  1. 官方文档对于nonce的说明:
nonce: QUANTITY - (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce.

     2.个人定义:每发起笔交易,nonce就会加一(nonce 计数从 0 开始,如果你的账户有5笔转出交易,那么最后一次的nonce值会是4)。

        对于发起的解释:
        1.外部账户(EOA)每发送一笔交易;
        2.合约账户 (Contract Wallet)  每创建一个合约

        而转入交易、合约调用其他合约等属于内部调用,因此 nonce 值不变。

  作用

  1. 确定交易顺序,如果你前后发送了两笔交易,想要它们被顺序打包,那么矿工就可以按照 nonce 的顺序进行打包。
  2. 防止重放攻击,如果没有 nonce ,交易信息被生成序列别人可以看到并重复提交,从而掏空你的钱包。有了 nonce ,生成序列后同一 nonce 的交易只能被打包一次。
  3. 加速交易,基于 nonce 的特性,自增和唯一性,使用相同的 nonce 重新发起交易即可实现加速。例:如果一笔交易A gas price = 5,nonce = 1,广播后交易处于pending状态,创建交易B设置 gas price 更高,如10、20 , nonce=1,再次发布交易,此时在矿工的交易池端,B 交易先被打包了,矿工会检查 A 交易,发现 nonce 已经存在了,认为 A 是不合理的交易,则会自动丢弃该交易。(如果交易被打包,即非 pending 状态,则是不可逆的,就无法取消或加速了。)
  4. 取消交易。基于加速交易的案例。创建交易 B,设置 value =0 nonce = 1(也就是 A 交易的nonce值),收款方=发送方,设置更高的 gas price ,广播交易,原来的交易被丢弃了,新交易会被矿工打包,不会丢失任何资金。但是你还是需要为 B 交易付出矿工费。

  使用规则

  1. 当nonce太小(小于当前的nonce值),交易会被直接拒绝,Transactions with too low a nonce get immediately rejected;
  2. 当 nonce 太大,大于当前 nonce,交易会一直处于队列之中,Transactions with too high a nonce get placed in the transaction pool queue;
  3. 当发送一个比较大的nonce值,然后补齐开始 nonce 到那个值之间的nonce,那么交易依旧可以被执行,If transactions with nonces that fill the gap between the last valid nonce and the too high nonce are sent and the nonce sequence is complete, all the transactions in the sequence will get processed and mined.
  4. 交易队列只保存最多64个从同一个账户发出的交易,也就是说,如果要批量转账,同一节点不要发出超过64笔交易。 The transaction pool queue will only hold a maximum of 64 transactions with the same From:address with nonces out of sequence.
  5. 当某节点 queue 中还有交易,但此时停止 geth 客户端,queue 中的交易会被清除掉,When the geth instances are shut down and restarted, transactions in the transaction pool queue disappear.
  6. 当前 nonce 合适,但是账户余额不足时,会被以太坊拒绝;

to :

        这笔钱要转到的账户地址。

value :

        要发送给目标地址的代币数量。

gas price :

        一枚 ETH 分为:Finney,Szabo,Gwei,Mwei,Kwei 和 Wei,其中Wei是最小的 ETH 单位,一个ETH 等于一千 Finney,一百万 Szabo,十亿Gwei和百万万亿 Wei 。

        Gas Price 以 Gwei 为单位的数量,用户愿意花费于每个 Gas 单位的金额。

gas limit :

        Gas Limit 是用户愿意为执行某个操作或确认交易支付的最大 Gas 量( 最少21,000 )。 

        当进行每笔交易时,发送人设定Gas Limit 和Gas Price,将 Gas Limit*Gas Price ,就得到了ETH交易佣金的成本。

gas price 与 gas limit 结合来看:

        如果 1Gwei≈0.00000002 ETH,所以佣金最少为0.00000002*21000=0.00042ETH,通常情况下,交易设置的Gas limt 为50000-100000个,总费用为 0.001 ETH – 0.002 ETH。

设置 Gas limit 需要考虑的问题:

  • 不同的操作会产生不同的 Gas 成本。
  • Gas 用完时,矿工将停止执行。
  • 如果有剩余 Gas,将立即退还给发起交易的人员或智能合约创建者。
  • 如果用户设置的限制值太低,那么此交易被认为是无效的,并且会因为“Gas不足”错误而被取消,并且其中用于计算的 Gas 不会退到账户。
  • 无论交易是否通过,发送者总需要向矿工支付计算费用。

V、R、S :

        由发送方私钥生成的、可用于生成发件人账户地址的加密数据块。是交易签名的值, 它们可以用于获取发件人账户地址( 公钥 )。详细点说,R是一个ECDSA签名的输出, 是恢复的ID,这个机制很大作用在于防止重放攻击。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
区块链推广

新玺配资:后持续回流 外资纠错下反弹有望延续

2021-11-16 8:22:49

区块链推广

exness:ATR为您提供了交易更多品种的自由

2021-11-16 8:22:51

重要说明

本站资源大多来自网络,如有侵犯你的权益请联系管理员 区块链Bi站  或给邮箱发送邮件834379394@qq.com 我们会第一时间进行审核删除。 站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!


如果你遇到支付完成,找不到下载链接,或者不能下载,或者解压失败,先不要忙,加客服主的QQ:834379394 (客服有可能有事情或者在睡觉不能及时的回复您,QQ留言后,请耐心等待即可!)

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索