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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链和HyperLedger Fabric(五)共享账本相关的知识,希望对你有一定的参考价值。

参考技术A peer ledger:存储在背书节点和记账节点
orderer ledger:存储在order service node

Chaincode是无状态的。Chaincode存储在节点上,账本只会存储hash值

账本的隔离和隐私性用多通道(Multiple Channels)技术来保护

Query System Chaincode(QSCC)
背书节点需提前设定,也作为记账节点

transaction事务处理流1.X
• client应用(向一个或多个Peer节点(背书节点))发送交易请求(对事务的背书请求);
• 背书节点模拟执行ChainCode,但并不将结果提交到本地账本(World state,不会修改底层账本),只是将结果(读写集)加密签名返回给client应用;
• 应用收集所有背书节点的结果后,验证背书策略是否满足和模拟执行结果是否一致(去除不确定无效的交易,1.0未实现)将结果广播给Orderers;
• Orderers执行共识过程,并生成Block,通过消息通道批量的将Block发布给Peer节点(记账节点);
• 各个Peer节点验证交易,并提交到本地账本中.通知client端处理结果

记账节点Committing Peer:维护账本和状态
合约部署都需要指定背书策略。AND,OR,OutOf
背书策略在chaincode实例化时指定
ESCC
VSCC
账本保存Blockchain和World state(维护当前状态,方便应用快速查询)
Block(s):Block header(Block number,当前区块hash,前区块hash),Block data,Block Metadata(写入时间,写入人,签名)
transactions:header(名字,version),签名,proposal(input参数),Pesponse(执行结果前后的数据),Endorsements(背书节点返回的结果list)
World State:kv形式。维护账本当前信息
Smart Contract:业务角度。定义组织的业务规则,创建交易,记录到账本,打包进chaincode。操作World state DB:get,put,delete(put和delete会增加新的记录,block。只会删除world state的数据,在账本里新增记录)
chaincode可以包含多个合约,实现打包的角度

Chaincode Lifecycle
打包(签名,)--安装(peer)--实例化--运行
更新--运行
一个peer可以安装多个chaincode

System Chaincode
运行在peer上,LSCC(Lifecycle),CSCC(配置),QSCC(查询)

Peer
Leader Peer:连接order推送新的区块,随机传播其它记账节点。选举方式(静态指定,动态生成)。一个分区一个leader。
Anchor Peer:(Gossip协议,降低order负担)节点相互认识。
共识:读写集

网络搭建:
1.配置启动order Service
2.配置启动peer
3.安装chaincode
4.创建channel
5.加入channel
6.实例化chaincode

学习Hyperledger Fabric 实战联盟链

第1章 区块链技术基础
本章介绍了区块链技术的相关基础技术要点,纯技术理论角度阐释区块链底层相关概念及所用技术
1-1 导学
1-2 区块链技术概述
1-3 区块链技术组成部分
1-4 拓展阅读推荐

第2章 Hyperledger Fabric入门
本章简单介绍了Hyperledger组织相关的区块链框架及工具,以及Fabric相关的项目介绍,并搭建了第一个Fabric区块链网络,让大家能够快速体验区块链的魅力
2-1 hyperledger简介
2-2 fabric简介
2-3 fabric环境概述
2-4 fabric尝鲜
2-5 日志和示例代码解析(上)
2-6 日志和示例代码解析(下)
2-7 如何获取源码
2-8 关于fabric尝鲜运行失败的问题

第3章 Hyperledger Fabric系统架构
本章概括了Fabric的体系架构,包括服务组件,网络拓扑以及Fabric的典型交易流程,让大家对Fabric先有一个整体的概念
3-1 系统架构
3-2 网络拓扑:四种节点
3-3 网络拓扑图例
3-4 交易流程

第4章 Hyperledger Fabric共识排序
本章详细介绍了Fabric的排序节点相关内容,包括可插拔的交易排序机制,临时区块分发及多通道数据隔离等。并带领大家阅读相关的源代码
4-1 共识机制介绍
4-2 源码阅读建议
4-3 共识机制源代码目录结构
4-4 共识机制源码阅读:从入口开始
4-5 Manager源码阅读
4-6 ChainSupport源码阅读
4-7 区块切割和solo模式源码阅读
4-8 交易收集和区块扩散源码阅读
4-9 共识机制总结

第5章 Hyperledger Fabric账本存储
本章介绍了Fabric账本如何保存状态及如何持久化,重点学习了交易读写集的生成及验证。并从世界状态、区块存储、历史状态索引等角度分别概述了一个Peer节点是如何将接收到的临时区块持久化到本地数据库中
5-1 账本存储概述
5-2 交易读写集
5-3 账本存储其他概念
5-4 账本存储源代码(上)
5-5 账本存储源代码(下)
5-6 账本存储总结

第6章 Hyperledger Fabric智能合约(链码)
章简单介绍了智能合约的概念,学习了链码的生命周期、链码的交互流程以及系统链码等概念内容。最后学习了链码编程的方法以及编码过程中的一些禁忌,然后带领大家从配置文件开始一步一步的搭建Fabric的开发测试网络,并将智能合约章节编写的错误示范链码部署到区块链上,帮助大家更深刻的认识链码以及理解Fabric的网络拓扑...
6-1 智能合约
6-2 网络搭建配置生成
6-3 网络搭建完结篇

第7章 资产交易平台实战
本章带领大家实战区块链上的资产交易平台,需求分析从零开始提炼业务实体以及交互方法,链码编写将整理好的需求按照套路套用到合约框架中,接着把链码部署到上一章搭建好的网络中,最后编写一个外部应用程序调用SDK与区块链进行交互。课程中保留大量的坑,给大家提供在遇到错误时排错的方法...
7-1 案例实践附录项目结构
7-2 案例实践需求分析
7-3 合约编写A
7-4 合约编写B
7-5 合约编写C
7-6 合约编写D
7-7 合约编写E
7-8 合约部署A
7-9 合约部署B
7-10 链码开发者模式
7-11 案例实战外部服务A
7-12 案例实战外部服务B
7-13 案例实战外部服务C
7-14 案例实战外部服务D
7-15 案例实战外部服务E
7-16 案例实战完结

第8章 课程总结
课程总结
8-1 知识点小结
8-2 优化&拓展
8-3 面试题
8-4 展望未来

下载地址:百度网盘下载































































以上是关于区块链和HyperLedger Fabric(五)共享账本的主要内容,如果未能解决你的问题,请参考以下文章

Hyperledger Fabric 架构 处理交易流程 账本

区块链——Hyperledger Fabric2.2单点搭建网络

万字解析——区块链hyperledger fabric2.2部署实战教程

万字解析——区块链hyperledger fabric2.2部署实战教程

区块链和 HyperLedger 微讲堂系列:区块链商用之道

浅析 Fabric Peer 节点