Substrate - 2 主要概念 - 2.4 交易池(Transaction Pool)

2.4 Transaction Pool

交易池包含了广播到整个网络的所有交易(签名的和未签名的),它们都已被本地节点接收和验证

Validity

交易池会检查交易的有效性,注意,交易的有效性不是硬线连接到交易池的,而是在运行时中被定义的。如下是有效性检查的示例:

-检查交易索引(随机数)是否正确

-检查账户是否有足够的金额支付相关费用

-检查签名是否有效

交易池也会定期检查已有交易的有效性。一旦发现交易无效或者过期则会将它从交易池中删除

validate_transaction被从运行时中调用检查签名和随机数是否有效(或UTXO链的输出)并返回结果。它是单独执行的,因此它不会捕获错误,例如相同的输出被使用了两次

尽管它是有可能的,validate_transaction不会检查对pallet的调用是否会成功,它是一个潜在的Dos vector,因为网络中的交易在validate_transaction中会被通过

validate_transaction函数应该专注于为交易池提供必要信息来对交易进行排序和优先级处理,并且快速拒绝无效或者过期交易。函数可能被频繁的调用,如为相同的交易执行多次。如果它以正确的顺序执行,它将通过execute_block,所以validate_tr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值