关于hyperledger fabric 1.2 的一些特性

细数hyperledger fabric 1.2版本的一些特性。

attachments-2018-03-9MDlTgOS5aa74ab46b850.png

作者:华科鸡蛋灌饼

来源: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



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

attachments-2018-02-kL1zBfXx5a7ffd0b78798.jpg

  • 发表于 2018-11-07 10:18
  • 阅读 ( 432 )
  • 分类:hyperledger

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
社区运营-小以

556 篇文章

作家榜 »

  1. 社区运营-小以 556 文章
  2. 社区运营-小链 244 文章
  3. 于中阳Mercina-zy 79 文章
  4. 涂晶 75 文章
  5. 李晓琼 44 文章
  6. 兄弟连区块链培训 42 文章
  7. 吴寿鹤 36 文章
  8. John-smith 25 文章