阅读背景:

303-fabric入门_Lich Howger

来源:互联网 








fabric入门






linux基金会在2015年创建了Hyperledger项目
用来推进跨行业的区块链技术

它有一个账本,使用智能合约
是参与者管理交易的系统

Hyperledger Fabric和其他区块链系统不同的地方是
1.私有
2.许可

Hyperledger Fabric的成员通信通过可信赖的会员服务提供商MSP注册
而不是开放式的无权限系统

Hyperledger Fabric支持隐私,提供了创建通道的功能
允许一组参与者创建单独的交易账本








身份管理

用户身份
 1.orderer节点 -> 排序节点,矿工
 2.peer节点 -> 账本,存储数据
 3.客户端程序
	1.访问orderer,peer
	2.普通用户
	3.管理员



账本管理
1.账本在peer节点上,由两个部分组成
	1.区块链
		所有的交易记录
	2.世界状态
		数据库,存储最新的记录	
		默认数据库:levelDB





交易管理
部署交易
	1.编写链码,业务逻辑
	2.将链码安装到peer节点上
调用交易
	1.对链码中的业务逻辑进程调用
	2.链码中有对应的接口








节点
客户端 -> client
	1.连接peer节点
	2.连接orderer节点

peer节点
	1.作用-账本
	2.交易记录-区块链
	3.世界状态
	4.在整个分布式区块链网络中,分布着很多peer节点
	5.每个peer节点中的数据都相同
peer节点职责
	1.背书节点
	2.提交节点
	3.主节点
	4.锚节点

orderer节点	
	1.没有账本
	2.矿工
	3.对数据排序,打包-区块
	4.orderer节点将打包的区块发送给peer节点
	5.peer节点收到区块后,将数据写入账本中


数据排序
	1.解决双花问题
	2.调用排序服务器
	3.排序算法有2种
		1.solo-测试用的,慢	
		2.kafka
		分布式排序服务器,企业级








Peer,Ledger和ChainCode
节点,账本和链码
在一个区块链网络中
有P1,P2,P3,三个节点
那么,
账本
	1.账本在peer节点上
	2.默认就有

智能合约
	1.安装在peer节点上
	2.默认没有,需要安装
	3.编写完智能合约,安装到peer节点

peer节点想要正常工作
必须安装智能合约

客户端调用链码,
链码修改账本

在一个peer节点上
	1.可以同时有多个账本
	2.一个账本可以对应一个合约,也可以多个合约
	3.账本和账本之间数据不可见,互相隔离









channel-通道
通道是用来隔离数据的
用户在不同的通道中,使用的数据是不同的
而且数据不共享,理解为群

1.P1,P2属于同一个通道
2.P1,P2节点上账本的内容是一样的
3.P1,P2安装的智能合约一样,也可以不一样
4.A客户端也属于通道C
5.节点必须在同一个通道中才能通信







一个peer节点可以同时加入到多个通道中
1.组织1中有2个peer节点
2.没有部署在同一个地方





背书策略
交易被执行的操作步骤

当前网络中有2个组织
1.org1
	peer1
	peer2
2.org2
	peer1
	peer2

交易策略:
	1.组织1的peer1同意并且组织2的peer2同意
	2.两个组织的所有节点都同意

背书策略执行的结果不会写入账本
这是一个模拟交易

交易过程:
	1.客户端向peer节点发起交易请求
	2.peer节点收到请求,进行模拟交易,得到结果
	3.peer节点将模拟结果发送给客户端
	4.客户端连接orderer节点,将交易请求和模拟交易的结果发送
	5.orderer节点接收数据,先排序,再打包
	6.orderer节点将打包数据发送给peer节点
	7.peer节点接收数据,首先要校验模拟交易的结果
	8.判断模拟交易的结果,如果没问题,写入账本,如果有问题,就不写
	9.操作完成,会给客户端发送一个结果






区块链中的数据
1.一个区块中有n条数据,以链状结构连接
2.fabric中的创始区块是不存储交易数据的
3.存储的是网络信息
	1.通道
	2.组织
4.第二个区块和后边的区块才存储数据
	1.区块头
	2.区块数据
	3.区块的元数据







peer节点
	1.运行在docker

排序服务器
	1.orderer
	2.运行在docker

通道
	1.代码创建	
	2.指定名字

Fabric证书颁发机构-MSP
	1.fabric网络中需要身份认证
	2.密钥对,数字证书










搭建fabric网络的步骤
1.生成证书
	1.组织的,节点的,用户的,证书
	2.需要写一个yaml的配置文件
2.创建 生成创始区块和通道的文件
	1.运行在docker
3.启动节点
	1.orderer,peer,客户端
	2.都是运行在docker
	3.为了方便管理编写docker-compose配置文件,批量启动节点
4.通过当前组织的客户端,连接到当前组织的peer节点
	1.创建通道-创建一次就好了
	2.加入到通道中
	3.每个节点都需要加入
	4.安装链码,每个节点都需要安装
	5.对链码进行初始化,只需要做一次,在任意节点上做
	6.初始化完成,才可以调用
	7.测试-链码调用,读数据,写数据









生成fabric证书
1.命令
	$cryptogen --help

2.证书文件 -yaml
	配置文件,一般叫 crypto-config.yaml
	配置组织信息
	1.peer节点
	2.用户

















fabric入门






linux基金会在2015年创建了Hyperle



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: