Hyperledger学习(二)
Hyperledger学习(二)
channel
-
每个channel可以理解成独立的hyperledger fabric实例
-
所以可以创建channel来达到私有转账的目的
-
peer只有加入到channel里后,才有blockchain和hyperledger,有新的peer想加入channel,需要满足一些安全策略
-
一个peer可能加入多个channel,一个channel可能有多个peer,不同的channel是独立的,数据不混淆
chaincode
-
chaincode就是智能合约(链码)
-
chaincode属于某个channel,一个channel可以有多个chaincode,每个chaincode都运行在一个docker容器中,即使代码出错也不会影响peer
-
生命周期
- 安装install
- 实例化init
- 调用invoke
-
每个peer可以属于多个channel,每个channel有独立的ledger,每个channel可以有一个或者多个chaincode,每个chaincode可以有不同的背书策略
Hyperledger工作流程
- 一个组织,三个peer在同一个channel里
-
1.提案:我想修改账本上的某个资产的归属
- peer收到提案后,先模拟执行,执行完毕后会产生一个读写集,记录了哪一个key被更新
- 这个数据更新完后,又产生了新的version
- 可以参考MySQL数据库的MVCC
- 2.背书:每个peer节点都作了签名,模拟执行的结果返回给SDK
- 3.更新申请:一旦SDK收集到足够多的背书(根据之前的策略),就发送更新申请
- 4.调用更新:ordering service 检测请求合法后,peer把更新应用,具有审计功能
- ordering service 还有排序作用(参照串行化的概念),一般有多个order节点
MSP - membership service provider
你是谁,你在哪个channel?
证书由CA颁发,只有拥有相同MSP的peer才能相互发现和通讯
- permissioned network ,Hyperledger是身份许可的网络