在Substrate中,代码是什么:1012“暂时禁止交易”是什么意思?

时间:2019-07-30 10:53:29

标签: substrate

消息的全文是:

{code: 1012, message: "Transaction is temporarily banned"}

这将表明事务被保存在Substrate Runtime内存池中的某个地方或类似性质的事物,但是尚不完全清楚是什么原因引起的,以及最终结果是什么。

例如

1)是给定帐户,IP地址或其他帐户发送的交易过多吗?达到一定的门槛了吗?

2)交易实际上是否无效?

3)使用“临时”一词表示处理延迟,而不是彻底拒绝交易。因此,这是否表明交易有效但已延迟?如果是这样,要持续多久?

基板运行时core/rpc/src/author/errors.rscore/transaction-pool/graph/src/errors.rs中的注释尚不清楚结果如何。

1 个答案:

答案 0 :(得分:1)

mempool前面,存在一个事务黑名单,它可以触发此错误。具体来说,此错误意味着具有相同哈希值的交易是:

  1. 最近开采的区块的一部分
  2. 在块生产期间被检测为无效,并从池中删除。

此外,在以下情况下可能会发生此错误:

  1. 事务到达其longevity,即在导入到池后未挖掘TransactionValidation::longevity块。

      

    默认情况下,longevity设置为u64::max,所以通常这不是问题。

无论如何,-ltxpool=log都应揭示有关此错误的更多细节。

暂时禁止交易,因为在以下情况之一时,该交易将从黑名单中删除:

  1. 30分钟过去
  2. 黑名单中有超过4,000笔交易

签出core/transaction-pool/graph/src/rotator.rs