深度探索区块链/实现数据隔离的多链和多通道

Posted kaixinyufeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度探索区块链/实现数据隔离的多链和多通道相关的知识,希望对你有一定的参考价值。

技术分享图片

一。数据存储对多链的支持

技术分享图片

      这个目录下面有两个目录:businesschannel和pocchannel。它们代表的是两个通道,也就是两个链的数据,每个链现在只有一个区块文件,blockfile_是文件名中固定的前缀,000000是固定的6位占位符,下一个文件名会依次递增。从这个目录结构可以看到,记账节点在底层账本数据存储的时候就对不同链的数据进行了隔离

       排序节点会存储所有链的账本数据,排序节点除了可以选择序列化区块文件的格式外,还支持JSON文件格式和内存数据结构的账本数据,后面两种都只在测试环境下使用。序列化区块文件和JSON文件格式区块文件的存储目录一般是/var/hyperledger/production/orderer/chains。其中,orderer/chain是固定的目录后缀。同样地,不同链的账本数据存储在以通道名称为目录名称的目录中,以实现不同链账本数据的物理隔离内存数据的账本数据没有持久化的存储,不同链的账本数据存储在不同的数据结构中

7.1.2索引数据

记账节点和排序节点都会给账本数据建立索引,不同的是排序节点只会建立以BlockNum为属性的索引。

索引文件存储的目录是/var/hyperledger/production/ledgersData/chains/index,其中,ldegersData/chains/index是记账节点上固定的目录后缀,排序节点上的目录后缀是orderer/index。

下面是一个记账节点上的索引数据的目录:

[email protected]:/var/hyperledger/production/ledgersData/chains/index# tree

|--000002.1db

|--000007.log

|--CURRENT

|--LOCK

|--LOG

--MANIFEST-000008

0 directories,6 files

索引数据是存储在LevelDB数据库里的,数据库的类型目前是不可选的。LevelDB是持久化的K-V数据库,在保存索引的时候会加上ledgerid作为前缀,当然生成的组合键在构造的时候是要先转换成[]byte数组的。由于索引数据存储在同一个数据库中,所以对于不同链的数据,索引数据的实现是逻辑隔离的,并非是物理隔离的

7.1.3状态数据

7.1.4历史数据

二。链码对多链的支持

三。多通道对多链的支持

四。命令行和SDK对多链的支持

五。关于系统链

六。本章小结

以上是关于深度探索区块链/实现数据隔离的多链和多通道的主要内容,如果未能解决你的问题,请参考以下文章

布比并行快速的多链分片技术特性及实现原理 | 商用区块链BubiChain详解

区块链BaaS云服务(35)亦笔科技ODRChain

区块链和HyperLedger Fabric(五)共享账本

为什么区块链和加密资产对于实现元宇宙很重要?

区块链BaaS云服务(28)TOP Network 之业务链和单向状态通道(Layer-2)

区块链图书|《深度探索区块链:Hyperledger技术与应用》