1 查看加入的通道

peer channal list 

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_github

2查看安装的链码

peer chaincode list --installed 

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_配置文件_02

3查看在当前通道内实例化的链码

peer chaincode list --instantiated  -C channelproduce 

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_实例化_03

3查看当前通道信息

peer channel getinfo -c mychannel 

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_区块链_04

4查看通道最新区块信息

peer channel fetch newest -c mychannel -o orderer.example.com 

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_配置文件_05

可以看到mychannel通道中共生成了5个区块(创世区块序号为0)

配置区块0:创世区块

配置区块1:组织一的锚节点更新

配置区块2:组织二的锚节点更新

普通区块3:实例化链码

普通区块4:调用链码

区块链浏览器形式展示创建通道后的区块生成

节点解析

Fabric是多通道设计,系统可以创建多条通道,某个节点(Peer)可以加入到不同的通道中,在每个通道中有自身的创世区块和实例化智能合约(Smart contract)。

每个通道都有属于自己的锚节点,通过锚节点可以与其它通道进行信息交互,但本身通道内的账本不会通过一个通道传到另一个通道上,通道对账本是分离的

节点(Peer)是区块链的交易处理和账本维护的主体,主要负责参与共识过程和通过执行链码(chaincode)实现对账本的读写操作。节点(Peer)根据功能不同分为背书节点(Endorser peer)和提交节点(Committer peer);根据通讯不同分为锚节点(Anchor peer)和主节点(Leading peer)。

   背书节点(Endorser peer):背书节点(Endorser peer)负责对交易根据事先设定策略进行签名背书,背书节点(Endorser peer)根据链码在实例化的时候设置背书策略,指定哪些节点用于背书。当客户端向节点发起交易背书时,该Peer节点才雎有背书功能,其它时间只是普通的记账节点。

记账节点(Committer peer):记账节点(Committer)负责维护状态数据和账本的副本。

锚节点(Anchor peer):锚节点(Anchor peer)是随通道(Channel)存在,是能被其它通道发现的的节点(peer),每个通道(channel)上有一个或多个锚节点(Anchor peer)。

主节点(Leading peer):主节点(Leading peer)负责与排序(Orderer)通信,把共识后的区块传输到其他节点。

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_实例化_06

1 生成新的通道配置文件

../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/tracechannel.tx -channelID tracechannel 

生成新的通道中组织1的锚节点配置文件

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/traceOrg1MSPanchors.tx -channelID tracechannel -asOrg Org1MSP 

生成新的通道中组织2的锚节点配置文件

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/traceOrg2MSPanchors.tx -channelID tracechannel -asOrg Org2MSP 

2创建通道

 peer channel create -o orderer.example.com:7050 -c tracechannel -f ./channel-artifacts/tracechannel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem 

3加入通道 (所有节点加入通道后 区块链节点才会具有新通道的选择列表)

 peer channel join -b tracechannel-artifacts/tracechannel.block 

切换不同节点加入通道

source scripts/utils.sh 
setGlobals 1 1 

此时区块链网络拥有两个通道 两个链 每个链都具备区块高度为0的配置区块

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_实例化_07

4 更新各个组织间用于交互的锚节点

peer channel update -o orderer.example.com:7050 -c tracechannel -f ./channel-artifacts/traceOrg1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem 

生成区块高度为1的配置区块 更新组织1锚节点的配置

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_github_08

peer channel update -o orderer.example.com:7050 -c tracechannel -f ./channel-artifacts/traceOrg2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem 

生成区块高度为2的配置区块 更新组织2锚节点的配置

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_配置文件_09

fabric区块高度--多通道存在多个高度为0的区块 以区块链浏览器形式展示_区块链_10

介绍Hyperledger fabric的PPT(52页)

密码学笔记

区块链知识体系简介

部署 ipfs 网络 对接联盟链网络

Hyperledger fabric网络(多共识 多版本 多数据库 ca ) 封装接口sdk

Hyperledger Caliper 测试(多组织 多节点 多共识)

区块链浏览器