什么是原力元宇宙MetaForce?
原力元宇宙MetaForce是在Polygon马蹄链上部署的一个智能合约,Polygon马蹄链,是基于ETH开发的一个独立公链,用于构建和连接与以太坊兼容的区块链网络,智能合约可以直接在马蹄链上部署,百分百开源,百分百去中心化,一旦运行,不可篡改。
6.1. 共识算法简介
共识算法是指在分布式场景中,多个节点为了达成相同的数据状态而运行的一种分布式算法。 在分布式场景中,可能出现网络丢包、时钟漂移、节点宕机、节点作恶等等故障情况,共识算法需要能够容忍这些错误,保证多个节点取得相同的数据状态。
根据可容忍的故障类型的不同,可以将共识算法分为两类:
- 容忍宕机错误类算法(crash fault tolerant consensus algorithm),可以容忍网络丢包、时钟漂移、部分节点宕机这种节点为良性的错误。常见算法有 Paxos、Raft。
- 容忍拜占庭错误类算法(byzantine fault tolerant consensus algorithm),可以容忍部分节点任意类型错误,包括节点作恶的情况。常见算法有 PBFT、PoW、PoS等。
根据使用场景的不同,又可将共识算法分为公链共识、联盟链共识两类。
6.1.1. 公链共识
公链的特点是节点数量多且节点分布分散,主要使用的共识算法有PoW和PoS,这两种共识的优点是可以支持的节点数量多,缺点是TPS较低和交易确认时间长。
6.1.2. 联盟链共识
联盟链的特点是节点之间网络较为稳定且节点有准入要求,根据需要容忍的错误类型可以选择Raft和PBFT类算法,这类算法的优点是TPS较高且交易可以在毫秒级确认,缺点是支持的节点数量有限,通常不多于100个节点。
6.1.3. 公链共识和联盟链共识的对比
共识 | 支持的节点数量 | TPS | 交易时延 |
---|---|---|---|
公有链共识 | 10000 | 10 | 10min |
联盟链共识 | 100 | 1000 | 1s |
6.1.4. 长安链中的共识
长安链自v1.1.0开源版本起支持Solo,Raft,TBFT,Maxbft,DPoS 五种共识类型。四种共识对比如下:
共识类型 | 故障节点数为n(n>=0)时,网络中最少节点数 | 使用场景 |
---|---|---|
Solo | Solo只支持1个节点 | 主要用于测试及搭建demo |
Raft | 2n 1 | 联盟链中不需要考虑恶意节点,且需要性能较高的场景 |
TBFT | 3n 1 | 联盟链中需要考虑恶意节点的场景 |
Maxbft | 3n 1 | 联盟链中需要考虑恶意节点的场景 |
DPoS | 3n 1 | 公链、联盟链中存在大量参与方,又希望在考虑恶意节点情况下保持较高tps的场景 |
流程图如下: