![d9712b1ad29d5d7d9f706f8b97a41e97.png](https://i-blog.csdnimg.cn/blog_migrate/96d629ff9a4b941a7d02dd3a742dea76.jpeg)
本文介绍了Fabric的架构,以及通过一个简单的Demo来熟悉整个交易流程。
Hyperledger fabric V1.0的架构
如下图所示:
![c2cd4510b40b6560b7815768bebd64a1.png](https://i-blog.csdnimg.cn/blog_migrate/840df778d309111cee42374b47900565.jpeg)
application提供各种语言的SDK接口。
membership也就是fabric-ca提供成员服务,用来管理身份,提供授权和认证。
peer负责模拟交易和记账
- Endorser(背书)用来当peer执行一个交易以后返回yes/no。
- Committer将验证过的区块追加到通道上各个账本的副本。
- Ledger就是账本啦。
- Chaincode用来编写业务逻辑,交易指令用来修改资产,可以理解为 fabric 网络对外提供的一个交互接口(智能合约)。
- Event是fabric提供的一个事件框架,比如链代码事件,拒绝事件,注册事件等,在编写代码的时候可以订阅这些事件来实现自己的业务逻辑。
o-service用来实现共识。
交易流程
交易过程如下图所示:
![a97fe13845f5bc01d6913827bb1a0755.png](https://i-blog.csdnimg.cn/blog_migrate/14309b930ea2ec1166e298c4b03c6fad.png)
- Application向一个或多个peer节点发送对交易的背书请求。
- Peer的endorse执行背书,但并不将结果提交到本地账本,只是将结果返回给应用。
- 应用收集所有背书节点的结果后,将结果广播给orderers,orderers执行共识,生成block,通过消息通道批量的将block发布给peer节点,更新lerdger。
可以看一下下面这张图,一样的过程,更加突出了多个peer背书的过程。