一、Fabric
1. 权限系统
MSP(Membership Service Provider):会员服务系统,基于PKI规范建立的用户证书和私钥体系
2. 共识算法
fabric支持solo和kafka两种模式
- solo:单个节点中完成排序,安全性稳定性差
- kafka:排序节点从kafka集群获取对应topic分区的数据,避免单点故障
3. 模块组成
- peer:主节点,存储区块链数据,运行链码
- orderer:对交易进行排序,将排序好的交易打包
- cryptogen:组织和证书生成模块
- configtxgen:区块和交易生成模块
- configtxlator:区块和交易解析模块
开发时模块生成方法(任选一个):
- 直接编译源代码:可以将这些模块先编译,再放到系统目录中,就可以在任何路径下运行这些模块;
- 使用本地源代码生成fabric模块的docker镜像
- 从docker仓库中直接下载fabric模块的docker镜像文件(e2e_cli就是这种方法)
- baseos:基础镜像,其他镜像都在该镜像基础之上生成
- baseimage:包含jdk、golang、nodejs等,用来生成chaincode
- peer:peer模块镜像
- orderer:oderer节点库镜像
- ca:ca模块镜像
- tools:工具镜像,包含cryptogen、configtxgen、configtxlator等工具
- couchdb:couchdb数据库镜像
- kafka:kafka库镜像
- zookeeper:zookeeper库镜像
- testenv:测试环境库镜像
- buildenv:编译环境库镜像
- javaenv:java链码运行镜像
- ccenv:go链码运行镜像
3. fabric启动
-
生成相关证书,cryptogen模块完成,根据yaml配置文件生成证书 -
生成创始块
-
系统创始块,系统创始块是存配置信息的,configtxgen模块完成,根据configtx.yaml生成创始块文件orderer.genesis.block -
账本创始块,channel的创始块,configtxgen模块完成,根据configtx.yaml生成roberttestchannel.tx,该文件生成channel,还要生成锚节点文件Org1MSPanchors.tx和Org2MSPanchors.tx -
启动orderer节点,orderer模块完成,根据orderer的yaml文件(还定义了log格式等)启动orderer节点 -
启动peer节点,peer模块完成,根据peer的yaml文件(还定义了log格式等)启动peer节点 -
创建通道
- 创建通道,peer节点
二、Docker
docker compose:是使用docker容器分布式部署的工具,只需要定义一个多容器应用的yml文件,定义哪个容器运行哪个应用,然后用一条命令即可部署所有容器
三级目录
|