空闲的发送链条永远不会重试失败的跨链交付

作者: ma2bd创建于 2026年8月28日更新于 2026年8月28日

为什么外箱不保存它?持久外箱仍然保存该条目,并且 ChainWorkerState::create_network_actions 从它中重新派生所有待处理的跨链请求,而不是仅仅是新的请求 - 因此对它的任何调用都会重新发送丢失的交付。但是每个调用点都是发送链的 请求处理器

处理器
state.rs:810 process_timeout
state.rs:934 process_validated_block
state.rs:978 process_confirmed_block (已处理的跳过路径)
state.rs:1080 preprocess_certified_block
state.rs:1377 execute_contiguous_block
state.rs:2495, :2675 handle_block_proposal, try_handle_block_proposal

没有定时器,没有后台扫描,也没有定期调整。值得注意的是,handle_chain_info_query 不在其中,因此纯读操作不会触发重新交付。因此,消息只在发送链生成另一个区块或有人重新提交其证书时才会重新发送 - 并且已处理的路径在 :978 中意味着重新提交已知的证书就足够了。如果发送链处于空闲状态,并且没有人操作它,则束包会留在外箱中。

内容来源: linera-io/linera-protocol