跳到主要内容

系统架构与组件边界

1. 文档范围

本附录定义 POC V2 的逻辑分层、组件职责、状态所有权、跨层契约和部署隔离,并说明职责归属、权威来源和失败后的安全收敛方式。本文不冻结最终 ABI、数据库模式和容量参数。

系统只有六个功能层;共享的 POC 协议包(poc-protocol)只定义版本化对象、编码、域标识和限制,不构成第七层。

2. 六层架构

POC V2 的 L5–L0 六层架构:业务应用、链上协议与权威状态、结果协调与交付、确定性计算、数据与持久化、POC 通信网络。

只回答的问题核心职责
L5 业务应用为什么产生或消费算力(Power)DApp 业务、质押、治理投票和其他下游组合
L4 链上协议与权威状态哪些事实和状态转换全网有效贡献、周期与策略、验证委员会、QC 准入、候选结果、算力存储、交付责任与奖励
L3 结果协调与链上交付如何把相同投票形成 QC 并完成幂等交付聚合器、持久化的 QC 就绪状态、链上交付执行器、公共兜底和奖励领取
L2 周期取数与确定性计算如何从唯一输入产生唯一结果覆盖范围、输入、确定性计算核心、证据包和隔离签名器
L1 数据访问与持久化如何读取、固化和恢复工作状态最终确认链适配器、事件存储、输入快照、认证状态和签名日志
L0 通信协议基础如何可靠传播已签对象许可覆盖网络、持久化发件箱、已验证入站、确认与补偿修复

3. 权威模型

权威内容唯一权威来源非权威副本
贡献、策略、周期边界和验证委员会Topo 最终确认链状态与事件索引器(Indexer)、事件库、对等节点(Peer)消息
生效基准与覆盖游标链上生效算力元数据(ActivePowerMeta)本地检查点、任务记录
结果背书完整验证委员会对同一结果的严格超三分之二 QC聚合器选择、对等节点数量、消息多数
可消费算力链上原子激活后的生效状态根、版本和游标本地候选结果(LocalCandidate)、证据包、暂存中或已封存的候选结果
链上交付责任种子当前生效状态中由上一次激活生成的最终确认种子本地排序缓存、交易发送者声明
奖励归属链上位图、交付回执(Delivery Receipt)和冻结的受益人本地链上交付记录、聚合器签名方子集

只要必要事实缺失、冲突或无法验证,组件就必须返回未就绪(NotReady)、弃权(Abstain),或保持原有生效状态。不得用执行时的最新值、默认值或人工修改填补空缺。

4. 端到端对象流

FS(C,A,V)NQDXApow\mathcal{F} \longrightarrow \mathcal{S} \longrightarrow (\mathcal{C}, \mathcal{A}, \mathcal{V}) \longrightarrow \mathcal{N} \longrightarrow \mathcal{Q} \longrightarrow \mathcal{D} \longrightarrow \mathcal{X} \longrightarrow A_{\mathrm{pow}}

其中,F\mathcal{F} = L4 最终确认事实;S\mathcal{S} = L1 输入快照;(C,A,V)(\mathcal{C}, \mathcal{A}, \mathcal{V}) = L2 计算、证据包和投票;N\mathcal{N} = L0 网络;Q\mathcal{Q} = L3 聚合与 QC 就绪状态;D\mathcal{D} = L3 交付;X\mathcal{X} = L4 准入与激活;ApowA_{\mathrm{pow}} = L5 已激活算力。

系统不设置集中式结果服务器。每个验证者(Validator)都可以独立计算、传播投票、聚合 QC,并在自己的责任窗口内承担链上交付。

5. L4 链上模块

模块责任明确不负责
POC 可信贡献入口(poc_contribution)校验可信贡献交易并产生最终确认的贡献事件(ContributionEvent)计算最终算力
周期与策略(Period / Policy)固化周期边界,并提供可从历史恢复的配置、注册表、价格预言机和留存规则选择链下结果
计算密钥注册表(Compute Key Registry)校验验证者运营者、PoP 和独立 BLS 计算密钥的纪元授权托管私钥或产生额外权重
QC 验证器(QC Verifier)验证验证委员会、位向量、多签、权重门槛、对象绑定、防重放以及基准与游标的连续性重算贡献、价格、留存规则或算力
候选结果存储(Candidate Store)保存 QC 绑定的隐藏结果,以及交付批次与封存进度向 L5 暴露未激活结果
算力存储与读取模型(PowerStore / PowerReadModel)原子切换生效状态根、版本和游标,并提供唯一读取接口接受普通账户绕过 QC 写入算力
验证者中继绑定与交付责任(Validator Relay Binding / Duty)绑定中继与奖励地址,并从生效种子无状态派生责任窗口形成 QC 权重或保存逐交付批次排名表
POC 奖励模块(POC Reward)保存投票领取位图、交付回执、预算和领取状态参与算力公式或阻止合法激活

6. 验证者节点扩展服务

每个验证者节点扩展服务至少包含以下模块:

模块关键保证
最终确认链适配器(Finalized Chain Adapter)L1只读取明确链身份、连续交易和最终确认边界
事件与策略存储(Event / Policy Store)L1事件与检查点原子提交;旧周期按边界恢复
输入快照(Input Snapshot)L1固定周期边界、生效基准、范围、验证委员会和逐周期事实引用
确定性计算核心(Compute Core)L2纯函数;不访问 RPC、SQL、P2P、时间、随机数或环境变量
认证状态与证据包存储(Authenticated State / Artifact Store)L1/L2状态根与证明可验证;证据包按内容摘要发布并回读
隔离签名器与签名日志(Isolated Signer / Journal)L2 安全边界结构化签名请求、实时资格复验、持久化防双签
POC 网络服务(POC Network Service)L0直接推送、语义确认、持久化发件箱和补偿修复
聚合器(Aggregator)L3只按相同计算上下文与结果承诺分组,并使用完整验证委员会计权
QC 就绪存储(QcReady Store)L1/L3QC 自验后先持久化,再允许异步交付
链上交付执行器(Settlement Worker)L3以独立中继账户、队列和 RPC 连接池幂等提交 QC、交付批次与封存操作

7. 密钥和身份隔离

身份用途是否产生 QC 权重
验证者运营账户(Validator Operator account)授权、轮换和撤销计算密钥
Topo 共识密钥(Topo consensus key)基础共识否,禁止复用
BLS 计算密钥(BLS compute key)签署 POC 投票是,权重来自冻结的验证委员会
PeerId 密钥POC 覆盖网络连接认证
中继账户(relay account)支付交易燃料费(Gas),提交 QC、交付批次与封存操作
奖励地址(reward address)接收投票与交付奖励

POC 网络不能持有计算私钥。签名器不提供任意字节签名接口(sign(bytes));它只接受结构化计算上下文与结果承诺请求,并在持久化精确投票预留记录后操作密钥。

8. 跨层契约

下列接口定义稳定的责任边界,但不限定最终的语言签名:

接口调用方 → 实现方必须保证
最终确认贡献源(FinalizedContributionSource)L1 → Topo 链最终确认、连续且具有明确链身份
边界与生效状态源(BoundaryAndActiveSource)L1/L2 → Topo 链周期边界与生效状态来自可验证边界
历史策略源(HistoricalPolicySource)L2 → L1按源周期恢复,不允许使用最新值兜底
认证状态仓库(AuthenticatedStateRepository)L2 → L1基准、状态根、证明与检查点一致
证据包仓库(ArtifactRepository)L2/L3 → L1不存在时才写入,并按摘要读取和复验
计算签名器(ComputeSigner)L2 → 隔离签名器强类型签名原像、防双签和持久化屏障
投票发布器(VotePublisher)L2 → L0只接受已经持久化的签名投票
持久化网络事件源(DurableNetworkEventSource)L3 → L0已验证、可重放且游标单调递增
持久化 QC 就绪源(DurableQcReadySource)链上交付 → L1/L3QC 与任务状态持久化,并支持至少一次消费
链上算力提交接口(ChainPowerSubmission)L3 → L4QC、交付批次与封存操作幂等,并按最终确认结果核验
已激活算力读取接口(ActivePowerRead)L5 → L4只返回已激活算力

9. 数据与恢复边界

链下状态分为三类:

  1. 可从链重建:事件投影、周期事实、输入快照、验证委员会、候选结果和链上交付进度。
  2. 可按摘要验证或重建:认证状态检查点、证据包、投票与 QC 的网络缓存。
  3. 不可随意重建:签名日志。其丢失或疑似回滚时,对应计算密钥必须停止签名。

满足 p>Lp > L 的输入(其中 pp 表示输入源周期,LL 表示生效游标)、未终结候选结果引用的证据包,以及休眠用户所需的历史留存规则,都不能按普通 TTL 删除。

10. 部署与资源隔离

  • POC 节点扩展服务与 Topo 共识使用独立运行时、端口、身份密钥、资源配额和就绪检查。
  • CPU 与密码运算工作使用有界工作线程池;IO、队列、连接、分页、证据包和交付批次均有硬上限。
  • 链上交付、确定性计算与聚合器使用独立执行器、RPC 连接池和熔断器。
  • RPC、Gas、交易序号、数据库拥塞或 POC OOM 只能降低 POC 活性,不能阻塞 Topo 共识就绪。
  • 证据包可以有多个提供方,但定位信息不具有权威性;使用前必须按摘要验证。

11. DApp 接入边界

DApp 负责自己的业务状态机、成熟条件、权益代币发放和可信贡献事件入口,无需运行 POC 计算公式,也不能选择验证者结果或直接写入算力存储。前端和后台可以展示投影状态,但必须把 业务完成贡献已发行候选结果处理中算力已激活 区分开。

12. 架构验收

  • 文档和实现只使用 L5–L0 六层。
  • L4 不依赖链下服务在线,并且是贡献、候选结果与生效算力的唯一权威。
  • 每个验证者从最终确认事实独立构造输入快照和结果。
  • L2 纯计算核心不访问 IO 或非确定性环境。
  • 投票在发布前已经过证据包回读、资格复验和签名器持久化屏障。
  • 聚合器使用完整验证委员会和严格超三分之二门槛。
  • 链上交付积压不反向阻塞确定性计算、签名器、L0 或基础共识。
  • 部分交付批次、已过期、已拒绝和奖励故障都不改变生效算力。
  • L5 只能通过算力读取模型读取已激活算力。