前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hyperledger Fabric账本快照--实现数据的快速同步

Hyperledger Fabric账本快照--实现数据的快速同步

原创
作者头像
tylerwen
发布2021-07-04 16:29:26
1.8K0
发布2021-07-04 16:29:26
举报
文章被收录于专栏:腾讯云区块链腾讯云区块链

| 导语数据同步,也就是区块同步,是区块链实现节点加入、状态恢复等必不可少的一个环节,只有拥有最新状态的节点,才能参与到共识中去,进行下一个新区块的共识。

众所周知,在区块链中,每个节点都需要维护一个账本,这是区块链的特性,也是区块链实现去中心化,防篡改的重要方式。区块链节点状态的新旧,最重要的标识之一就是账本里的区块高度。当一个新的节点想加入到区块链网络中,或一个异常的节点恢复正常后,此节点的区块高度落后于其它节点,其状态不是最新的,不能参与网络中交易的共识,此时就需要进行区块同步,该节点会主动向其它节点请求下载区块。

? ? ? ?这就引申出一个问题,如何实现数据的快速同步?

? ? ? ?在公链中,以比特币为例,节点可以分为“全节点”和“轻节点”,“轻节点”只存储部分账本数据,下载区块头数据代替下载完整区块链数据,通过一种名为“简易支付验证(SPV)”的方式来完成交易验证(SPV就是把比特币核心钱包部分功能独立出来,交易验证交给全节点)。因此在比特币网络中,如果有新节点想要加入网络,作为“轻节点”接入是最快速高效的方式。但缺点是牺牲了一些安全性和可靠性。

? ? ? ?在联盟链Hyperledger Fabric中,在Fabric v2.3版本出来之前,一个新节点加入通道(通道,Fabric的一个特性,可以理解为一个通道就是一个区块链网络,不同通道间的账本是独立的,节点可以加入多个通道),往往都需要同步通道中全量的数据,在一般的网络带宽中,同步过程将可能非常缓慢,几天或一两个星期都有可能。在最新的Fabric版本中,账本快照很好的解决了这个问题。

? ? ? ?账本快照功能可以对一个节点的通道信息(包括其状态数据库)进行快照,新节点可以通过快照加入该通道。

? ? ? ?使用账本快照具有以下优点:

  1. 快速加入通道:从创世块开始,节点可以在不处理所有先前块的情况下加入通道,从而大大减少了将节点加入通道的时间;
  2. 可以使用最新的通道配置:快照包含最新的通道配置,因此节点现在可以使用最新的通道配置加入通道;
  3. 降低存储成本:通过快照加入的节点不会产生维护所有块的存储成本。

? ? ? ?账本快照可以实现节点间数据的快速同步,但也有一些局限性:

  1. 通过快照加入通道的节点没有包含以前的区块,所以想通过这个节点查询以前的区块信息是有问题的,但可以指定其他包含完整区块的节点查询。所以同一个组织中,应该至少保留一个节点拥有完整的区块账本。
  2. 账本快照是一个比较耗资源的操作,在节点执行快照时,节点将不会在该通道上提交块,同时,在处理其他事务或在其他通道上提交块时速度可能会很慢。因此,一般在必要的时候才执行快照操作,比如新节点想加入通道。
  3. 由于通道中组织之间的私有数据可能有所不同,因此快照中不包含私有数据(私有数据,Fabric实现数据隐私保护的特性),但通过快照加入通道的节点,将从快照中发现其所属的私有数据集,并直接从属于这些集合成员的节点获取相关的私有数据。

? ? ? ?数据同步是区块链中非常常见的场景,所以实现数据的快速同步也将是区块链的必备能力之一。Hyperledger Fabric作为最具代表的联盟链引擎,一直在不断更新迭代,功能也越来越完善。账本快照为联盟链生态提供了一个很好的技术实现参考,我们期待无论是公链还是联盟链,区块链都会走的更快,更好,更远。

附录:

  1. Fabric官方学习文档:https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html
  2. Fabric私有数据:https://hyperledger-fabric.readthedocs.io/en/latest/private-data/private-data.html
  3. Fabric账本快照:https://hyperledger-fabric.readthedocs.io/en/latest/peer_ledger_snapshot.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com