跨区域/国别网络发生故障的情况下,账本的一致性与共识机制

跨区域/国别网络发生故障的情况下,如中国大陆跨海光纤发生中断,此时此刻若发生交易,如何保证账本的一致性?在网络恢复后,跨区域账本同步机制是否存在隐患?网络稳定性对共识机制的影响?

参与19

5同行回答

tangguobingtangguobing系统架构师IBM
关于一致性和有序性的保证,新发布的Hyperledger 1.0的共识机制要达成的从根本上讲就是一种保证所有节点都认可的一致性状态时序,许可链的设计只需满足一致的状态时序即可,Fabric1.0基于通道对所有交易消息进行排序并全序广播相关节点,R3 Corda则是使用公证人节点对“双方有效...显示全部

关于一致性和有序性的保证,新发布的Hyperledger 1.0的共识机制要达成的从根本上讲就是一种保证所有节点都认可的一致性状态时序,许可链的设计只需满足一致的状态时序即可,Fabric1.0基于通道对所有交易消息进行排序并全序广播相关节点,R3 Corda则是使用公证人节点对“双方有效共识”交易进行唯一性验证防止双花以确保交易时序。共识服务为每个chaincode提供通讯通道,所有提交节点和背书节点都连到这个通讯通道上,每个节点可以向通道广播消息也可以接收通道发来的其他节点广播的消息,通道的作用就是保证所有的消息全序广播,每个消息被分配唯一的广播序列号,就如同微信上的聊天群,每个加入群的人都可以在这个群上收发消息,微信通道保证所有发出的消息其他人都可以送达,但是有一个不同就是广播的消息会包括上一个序号消息的哈希值,这样每个节点就维护了一个完整的全序消息的哈希链,所有在同一个通讯通道上的节点收到消息的一致性,完整性得以保证,任何共识服务在通讯通道上的消息广播不会重复,不凭空产生,也不会发生跳跃,为了提高通道效率,共识服务会收集一段期间内的消息组成一个报文批次,按批次送达各个订阅节点。

如果出现断网,且时间很长,出现两条较长的链,Hyperledger 1.0引入了基于有效账本的检查点(checkpoint)机制,节点可每隔设定的区块数向其他节点广播检查点消息,把自己当前有效账本的blockno和blockhash以及自己的签名广播给其他节点,其他节点将其与自己的有效账本blockno和blockhash进行比对,如果一致,可以回复自己的签名,请求者收集到符合检查点策略的签名后,减掉直到blockno所有的原始账本batch记录。每个节点可以定义自己的检查点策略,如定义本地策略“只要是A节点的确认即认为符合”,或者全局策略“克服拜占庭恶意失效的2f个节点确认才认为符合”。这样一旦网络恢复,如果一致没有问题,如果不一致,按照节点策略,实施全局策略,如上面所说的A节点的确认即认为符合等,能够有效解决断网所产生的两边不一致的情况。

另外检查点除了可以降低节点数据量存储外,当有新的节点加入到相同的通道时,还可以大量减少其从头开始构建原始账本和有效账本的时间成本。如果新加入的节点的检查点策略同某个节点的检查点策略一致,新节点可直接从那个节点的检查点开始同步后续的原始账本。

收起
硬件生产 · 2017-02-10
浏览2684
leizh1984leizh1984系统架构师IBM
这是个很有趣的问题,其实是和具体的共识机制算法有关,每种共识机制其实在处理上都不太一样。超级账本采用的是PBFT算法,这种算法的容错率是(N-1)/3,也就是大约1/3的节点如果被中断了,系统仍然能够正常的工作,那些被中断的节点在网络恢复后会重新同步账本;如果大于这个数量的节点...显示全部

这是个很有趣的问题,其实是和具体的共识机制算法有关,每种共识机制其实在处理上都不太一样。

超级账本采用的是PBFT算法,这种算法的容错率是(N-1)/3,也就是大约1/3的节点如果被中断了,系统仍然能够正常的工作,那些被中断的节点在网络恢复后会重新同步账本;如果大于这个数量的节点出现故障,那整个网络就会瘫痪,交易不能正常进行了。

PBFT的具体解释可以参考下面的连接

区块链核心技术:拜占庭共识算法之PBFT

收起
IT分销/经销 · 2017-02-10
浏览2659
alexpaulalexpaul技术总监长亮科技
断成两个大网后,实际上是链分叉了,分为两条很长的链。断网的时间足够长的话,有可能出现“双花”问题。一般说法是6个账页(block)后认为安全,这个时间长度就是6个账页的生成时间。网络恢复后,弃链里的交易是否能同步到别一个网里,从而在新的block中进行登记确认,也是一个问题?...显示全部

断成两个大网后,实际上是链分叉了,分为两条很长的链。

断网的时间足够长的话,有可能出现“双花”问题。一般说法是6个账页(block)后认为安全,这个时间长度就是6个账页的生成时间。

网络恢复后,弃链里的交易是否能同步到别一个网里,从而在新的block中进行登记确认,也是一个问题?

收起
软件开发 · 2017-02-10
浏览2571
robin030415robin030415系统架构师华证
我看比特币的每个节点达成共识,判断相连节点的个数实际是有限的(记忆中是6个),又是基于p2p网络,且随机性,因此网络故障按照我的理解是有可能的;在实际中可能与矿工池的集中有关系...显示全部

我看比特币的每个节点达成共识,判断相连节点的个数实际是有限的(记忆中是6个),又是基于p2p网络,且随机性,因此网络故障按照我的理解是有可能的;在实际中可能与矿工池的集中有关系

收起
融资租赁 · 2017-02-10
浏览2575
shaiwangchengshaiwangcheng系统工程师某金融行业
我的理解是,对于区块链系统,由于是去中心的,所以你看到的只是peer,跟你相连的几个节点,所以你可能根本无法感知中美光缆中断对你的影响。中断后,中国区域发展自己的区块,之外发展外部的区块。一旦光缆恢复了,谁的链长用谁的...显示全部

我的理解是,对于区块链系统,由于是去中心的,所以你看到的只是peer,跟你相连的几个节点,所以你可能根本无法感知中美光缆中断对你的影响。

中断后,

中国区域发展自己的区块,之外发展外部的区块。一旦光缆恢复了,谁的链长用谁的

收起
IT其它 · 2017-02-10
浏览2620

提问者

robin030415
系统架构师华证

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-02-10
  • 关注会员:5 人
  • 问题浏览:7224
  • 最近回答:2017-02-10
  • X社区推广