当前页面已进入跨页知识网络层:不仅展示本页拓扑,还明确它在整站里的分类、被哪些页面引用、又继续指向哪些专题与证据页。
flowchart TD
subgraph Entry["入口与接收面"]
RPC["rpc.html
RPC / REST / P2P 广播进来的原始交易"] --> Receive["接收原始交易"]
Wallet["wallet.html
本地钱包签名交易"] --> Local["本地钱包 / 合约执行器提交"]
Local --> Receive
end
subgraph Validate["准入校验面"]
Receive --> Capacity{"池容量是否超限"}
Capacity -->|"超限"| RejectFull["拒绝: pool is full"]
Capacity -->|"未满"| Hash{"Tx Hash 是否为空/重复"}
Hash -->|"异常"| RejectDup["拒绝: 空哈希 / 重复交易"]
Hash -->|"通过"| Check["完整校验
basic + Dilithium 签名 + size + gas + nonce + balance"]
Check -->|"失败"| RejectInvalid["拒绝: 非法签名 / 低 Gas / Nonce 回退 / 余额不足"]
Check -->|"通过"| Pending["写入 pending 池
当前实现默认不拆 queued"]
end
subgraph Scheduling["调度与打包面"]
Pending --> Select["GetPendingTransactions(limit)"]
Select --> Sort["当前实现: 时间戳优先排序
Gas Price 真排序已留 TODO"]
Sort --> Producer["block_producer 收集待打包交易"]
Producer --> Package["选取合法交易打包进新区块"]
Package --> Chain["blockchain.html
进入区块执行与提交"]
Package --> Remove["确认上链后从交易池移除"]
end
RejectFull -.-> Metrics["rejectedCount / addedCount / removedCount 统计"]
RejectDup -.-> Metrics
RejectInvalid -.-> Metrics
Remove -.-> Metrics