在 Substrate 中,code: 1012 "Transaction is temporarily banned" 是什么意思?
In Substrate what does code: 1012 "Transaction is temporarily banned" mean?
留言全文为:
{code: 1012, message: "Transaction is temporarily banned"}
这表明交易在 Substrate Runtime 内存池或类似性质的某处进行,但尚不完全清楚可能的原因会触发这种情况,最终结果可能是什么。
例如,
1) 是否从给定帐户、IP 地址或其他地址发送了太多交易?是否达到了某个阈值?
2) 交易是否真的无效?
3) "temporary" 一词的使用表示延迟处理,而不是直接拒绝交易。因此,这是否表明交易有效,但被延迟了?如果有,会持续多久?
substrate runtime core/rpc/src/author/errors.rs
和 core/transaction-pool/graph/src/errors.rs
中的注释并没有更清楚地说明结果是什么。
在mempool
前面存在一个交易黑名单,可以触发这个错误。具体来说,此错误意味着具有相同哈希值的交易是:
- 最近开采的区块的一部分
- 在区块生产过程中被检测为无效并从池中移除。
此外,此错误可能发生在以下情况:
交易达到它的 longevity
,即在被导入池后未被开采 TransactionValidation::longevity
个区块。
By default longevity
is set to u64::max
so this normally should not be the problem.
无论如何 -ltxpool=log
应该揭示有关此错误的更多详细信息。
一笔交易只是暂时被禁止,因为它会在以下任一情况下从黑名单中删除:
- 30 分钟过去了
- 黑名单上有4000多笔交易
留言全文为:
{code: 1012, message: "Transaction is temporarily banned"}
这表明交易在 Substrate Runtime 内存池或类似性质的某处进行,但尚不完全清楚可能的原因会触发这种情况,最终结果可能是什么。
例如,
1) 是否从给定帐户、IP 地址或其他地址发送了太多交易?是否达到了某个阈值?
2) 交易是否真的无效?
3) "temporary" 一词的使用表示延迟处理,而不是直接拒绝交易。因此,这是否表明交易有效,但被延迟了?如果有,会持续多久?
substrate runtime core/rpc/src/author/errors.rs
和 core/transaction-pool/graph/src/errors.rs
中的注释并没有更清楚地说明结果是什么。
在mempool
前面存在一个交易黑名单,可以触发这个错误。具体来说,此错误意味着具有相同哈希值的交易是:
- 最近开采的区块的一部分
- 在区块生产过程中被检测为无效并从池中移除。
此外,此错误可能发生在以下情况:
交易达到它的
longevity
,即在被导入池后未被开采TransactionValidation::longevity
个区块。By default
longevity
is set tou64::max
so this normally should not be the problem.
无论如何 -ltxpool=log
应该揭示有关此错误的更多详细信息。
一笔交易只是暂时被禁止,因为它会在以下任一情况下从黑名单中删除:
- 30 分钟过去了
- 黑名单上有4000多笔交易