完整文档页面(中文翻译)。文末附有来源说明。

阅读英文版

appdevmodulesm2-network-architecture

网络架构对比

理解 Canton 网络架构与以太坊的根本不同

Canton 网络架构与以太坊根本不同。本节对比架构及其对应用的影响。

高层架构

以太坊架构

flowchart TB
    subgraph Ethereum[Ethereum Network]
        N1[Node 1<br>Full state]
        N2[Node 2<br>Full state]
        N3[Node 3<br>Full state]
        NN[Node N<br>Full state]
        N1 <--> N2
        N2 <--> N3
        N3 <--> NN
    end
    User1[User A] --> N1
    User2[User B] --> N2
    User3[User C] --> N3

特点: 全节点存全状态;任意节点可答任意查询;共识需全部验证者;水平扩展受限。

Canton 架构

flowchart TB
    subgraph Canton[Canton Network]
        SYNC[Synchronizer<br>Coordination only]
        V1[Validator A<br>Alice's data]
        V2[Validator B<br>Bob's data]
        V3[Validator C<br>Charlie's data]
        V1 <--> SYNC
        V2 <--> SYNC
        V3 <--> SYNC
    end
    UserA[Alice] --> V1
    UserB[Bob] --> V2
    UserC[Charlie] --> V3

特点: 验证者只存托管 Party 数据;同步器协调但不存储;共识只涉及受影响 Party;Party 可多验证者托管(multihosting)。

Canton 组件

验证者:只存托管 Party 数据,只回答托管 Party 的查询;共识中只验证影响己方 Party 的交易。

同步器:排序协调、不存状态;保证受影响 Party 看到一致顺序。

与传统链的差异:无全局状态;状态可见性限于利益相关方;只有托管验证者可查询该 Party;确认后确定性终结。

数据流对比

以太坊:提交 → 公开 mempool → 验证者选块执行 → 全网广播更新。

Canton:向验证者提交 → 本地执行 Daml、生成视图 → 加密提交同步器 → 分发各方视图 → 各方确认 → 提交。

查询架构

以太坊任意节点可 totalSupplybalanceOf、全量转账事件。

Canton 通过己方验证者的 Ledger API 查 getActiveContracts({ party: myParty });查他人余额需成为 observer。

查询类型以太坊Canton
我的余额任意节点我的验证者
他人余额任意节点须为 observer
总供应量任意节点仅当合约设计为公开
交易历史任意节点仅我的交易

应用设计含义

数据可用性:读副本只在你的验证者;缓存仅限有权数据;分析需显式数据共享。

用户体验:钱包连你的验证者 API;余额查你的合约;历史为个人交易视图而非公开浏览器。

扩展:验证者只处理影响托管 Party 的交易;可增加验证者分散 Party 以扩容。

网络拓扑

以太坊:扁平 P2P,节点对等、数据相同。

Canton:分层——Super Validator 协调层、Validator 服务 Party、应用层连验证者。

信任模型

实体以太坊信任Canton 信任
验证者见全部、验证全部只见相关、验证相关
网络运营出块者见一切同步器不见内容
你的节点信任自己的节点信任自己的验证者
其他用户竞争区块空间交易相对独立

迁移考量

方面所需行动
状态查询按 Party 作用域重设计
分析需要时建立显式共享
节点基础设施部署验证者而非全节点
用户入驻用户连到你的验证者
第三方集成经 gRPC/JSON Ledger API 访问

下一步

Canton 架构详细文档。 开始编写 Daml 智能合约。

本文由 CC Privacy Club 根据 Canton Network 官方文档(CC-BY-4.0)整理翻译,仅供学习;实现细节以官方最新版本为准。