首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于hyperledger fabric 1.2 的一些特性

提供功能:配置查询(MSPConfig)、peer成员信息查询、背书节点查询、本地peer成员信息查询。

区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地

作者:华科鸡蛋灌饼

来源:CSDN

原文链接: http://t.cn/E7scckv

本文约2000字+,阅读(观看)需要12分钟

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一、private data

1.1 概念

隐私数据保存在side DB中,Orderer service是看不见private data的

背书、排序、审计、写入peer中,都是用的hash值

当需要把private data分享给第三方时,验证hash值,证明数据是在某一个时间点的

1.2 数据流

发送invoke给背书节点(authorized),private data放在transient field中

背书节点模拟交易,并且存储再transient data store中(临时本地存储),通过goosip协议,根据collection policy传播

背书节点返回public data给客户端,包括private key 的hash

Orderer排序,分割区块

Peer验证,各个peer用同一种方法验证hash值。

Commit期间,检查自己时候有权限拿到private data,如果有,再检查transient data store,如果没有的话就从其他peer那里pull,对比hash值,然后移出transient store

1.3 使用

在初始化链码的时候定义私有数据集合,结合private相关的函数使用

1.4 使用场景

当完整的交易需要信任的话,还是推荐用channel

当需要屏蔽orderer或者某些组织内节点时(存疑),使用collection

二、Service Discovery

Sdk不需要维护静态信息,这个服务可以提供peer的动态信息,分为layouts和group to peer mapping,sdk可以根据策略选择peer进行背书。

提供功能:配置查询(MSPConfig)、peer成员信息查询、背书节点查询、本地peer成员信息查询。

三、Access Control Lists (ACL)

进一步提供了细粒度的访问控制列表,分为Signature和ImplicitMeta两种策略,具体见configtx.yaml。

四、CouchDB使用

4.1 流程

在Hyperledger Fabric中启用CouchDB

创建索引,索引会在出块的时候更新

将索引添加到您的chaincode文件夹,通过node sdk可以指定位置,peer命令必须在特定位置

安装并实例化Chaincode

查询CouchDB状态数据库

更新索引

删除索引注:深蓝在1.0上尝试直接用rest api访问couchdb,修改之后fabric未察觉到。

4.2 couchDB介绍

couchDB的底层是一个B-tree的存储结构,为提高效率,所有的数据的插入或更新都是直接在树的叶子节点添加,不删除旧节点,通过版本号来 确定最新的数据--版本号还能用来解决并发写的冲突。所以数据文件会越来越大,可以在适当地时间运行compact过程或replication过程,会 删除旧文件,使得数据文件得到压缩。

五、动态加入组织

生成相关证书

获取配置、提交配置更新

将组织加入channel

升级相关链码

六、可插拔的背书和验证

需要不同的交易背书,如UTXO等

可以替换系统合约,如ESCC和VSCC

ESCC和VSCC独立出来,提供了签名(验证策略)和state相关的依赖项,可以自己实现接口,编译成so文件引用

插件一致性需要节点管理员保证,日后会做插件一致性的验证

如果返回ExecutionFailureError ,则链暂停防止分歧,其他错误都会被标记为invalid

导入插件的话推荐protobuf,其他的可能出问题

七、PeerLedger检查点

新增检查点,可以抛弃检查点之前的peerLedger,只留存vLedger(可指定策略)

八、Gossip领导人选举

静态:直接再core.yaml里面指定

动态:领导者发送心跳给其他节点,作为存活的证据,如果peer一段时间内没有收到这个信息,则开始重新选举,可以有多个领导者,但是网络稳定之后有一个领导者会放弃。#参考文献> http://hyperledger-fabric.readthedocs.io/en/release-1.2/> https://github.com/hyperledger/fabric-samples

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181017A0202800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券