1. 系统创始块的生成

Fabric 中账本的第一个区块是需要手动生成的 。

先生成系统创始块, 再对配置文件修改,之后执行如下命令生成创始块文件。

cd /opt/hyperledger/orderconfigtxgen -profile TestTwoOrgsOrdererGenesis
-outputBlock/orderer.genesis. block

上述命令执行完成之后会在文件夹/opt/hyperledger/order 中生成文件 orderer.genesis.block ,这是 Fabric系统的创始块文件

2. 账本创始块的生成

step1. 创建 Channel

Channel 的创始块的配置信息已经定义在前面生成的配置文件 configtx.yaml 中

configtxgen - profile TestTwoOrgsChannel -outputCreateChannelTx ./roberttest channeltx channelID roberttestchannel

命令执行完成之后会在目录生成文件 roberttestchannel.tx ,该文件用来生成 Channel 。

step2. 生成相关的锚点文件

configtxgen -profile TestTwoOrgsChannel -outputA口chorPeersUpdate ./OrglMSPanchors.tx -channelID roberttestchannel -asOrg OrglMSP
conf 工 gtxgen prof 工 le TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors .tx -channelID roberttestchar>nel asOrg Org2MSP

命令执行完成之后会在相应的文件夹下面生成文件 OrglMSPanchors.tx 和 Org2MSPanchors .tx ,这些文件在后面会用到

step3. 启动网络

通过 docker-compose 脚本启动区块链网络,使用本节之前生成的 genesis.block 引导,需要注意在生成命令中需要为 TIMEOUT 变量设置适当值,本文设置为 5s,然后通过 docker-compose 命令启动网络。同时需要在 doker-compose-base.yaml 文件中配置各个节点域名,以方便当前节点被访问。

3. Order 节点的启动

Orderer 节点负责交易的打包和区块的生成,Orderer 节点的配置信息通常放在环境变量或者配置文件中

step1. 复制配置文件到 Orderer 文件夹

cd /opt/hyperledger/peer
cp $GOPATH/src/github . com/hyperledger/fabr 工 C /sampleconf 工 gI orderer. yaml I opt Ihyperledger/order

step2. 修改模板配置文件

在配置文件 orderer.yaml 所在的目 录执行如下命令启动 orderer: orderer start

4. Peer 节点的启动

Peer 模块是 Fabric 的 核心节点 ,所有 的交易数据 经过 Orderer 排序打包之后 由 Peer 模块存储在区块链 中 ,所有的 Chaincode 也是由 Peer 模块打包并且激活 的 。 Peer 模块的配置信息同样由环境变量和配置文件组成。

step1. 创建存储 Peer 模块的配置文件和区块数据的文件夹,并复制示例配置文件 :

mkdir p /opt/hyperledger/peer
cd /opt/hyperledger/peer
cp $GOPATH/ src I g 工 thub . com/hyperl edger Ifabric I sampleconf ig I core . yaml I opt Ihyperledger/peer

step2. 修改后 Peer 模块配置文件

在配置文件 core.yaml 所在的文件夹中执行以下命令启动 order 节点 。

export set FABRIC_CFG_ PATH=/opt/hyperledger/peer
peer node start > log_peer.log 2>&1 &

5. 创建通道

在 Fabric 中,channel 代表了一个私有的通信通道,保证消息的隔离性和安全性并由 orderer 节点管理。首先通过 docker exec 命令进入 CLI 容器,在容器中使用 peer channel create 命令创建通道,命令中

-c 指定 channel 名,
-f 参数选择上文生成的通道文件 channel.tx,
-cafile 是 orderer 的根证书的本地目录,使用 TLS 协议进行握手。

命令执行之后生成一个 mychannel.block 块,然后调用 peer channel join 命令加入通道

step1:创建通道

创建通道完成之后,会在执行命令的当前目录生成名为“ roberttestchannel. block 的通道初始块文件
step2:让已经运行的 Peer 模块加入通道
step3:更新锚节点

6. Chaincode 的部署和调用

通过部署一个 Chaincode 来测试 Peer 节点和 Orderer 节点的部署是否正确,需要在每个执行 Peer 节点和背书节点安装 chaincode。

step1 :部署 Chaincode 代码 。
step2 :实例化 Chaincode 代码 ,设置链码的背书策略。
step3 :通过 Chaincode 写人数据 。
step4 :通过 Chaincode 查询数据 。

Hyperledger Fabric 智能合约实战 (0) 整体步骤相关推荐

  1. Hyperledger Fabric 智能合约实战 (7) windows安装fabric

    1. 下载安装VirtualBox. 2. 下载 Ubuntu操作系统镜像文件(iso文件) 3. VirtualBox新建虚拟机,指定iso文件. 我新建了一个硬盘分区,因为安装ubuntu问我&q ...

  2. Hyperledger Fabric 智能合约实战 (3) 安装fabric

    step1. 安装fabirc 下载并执行一个 bash 脚本,该脚本将下载并提取设置网络所需的所有特定于平台的二进制文件,并将它们放入克隆仓库中. curl -sSL https://bit.ly/ ...

  3. Hyperledger Fabric 智能合约实战 (5) sdk node软件安装

    安装node 的fabric-ca-client和fabric-client npm install fabric-ca-client npm install client 安装 fabric-net ...

  4. Hyperledger Fabric 智能合约实战 (6) 访问链码接口

    1. 下载fabric-samples 示例. 2. cd fabric-samples/fabcar//使用 startFabric.sh 脚本启动网络. ./startFabric.sh java ...

  5. Hyperledger Fabric 智能合约实战 (5) go语言开发

    step 1. 首先下载"go语言IDE编辑器" goland step2. sh goland.sh 进行安装. step3. 新建项目:选择New Projiect,local ...

  6. Hyperledger Fabric 智能合约实战 (2)软件安装Docker、 Docker-composer、go

    1. Docker 首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库.之后,您可以从仓库安装和更新 Docker. step1. 更新ubuntu的apt源 ...

  7. Hyperledger Fabric 智能合约开发及 fabric-sdk-go/fabric-gateway 使用示例

    前言 在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方 ...

  8. 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约

    文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...

  9. fabric 智能合约开发详解

    一.fabric 智能合约运行环境 Chaincode是一个程序, Chaincode运行在一个被背书peer进程独立出来的安全的Docker容器中,Fabric中支持多种语言实现链码,包括golan ...

最新文章

  1. [python教程入门学习]Python是什么?
  2. CentOS 5.6 修改国内网易163高速源
  3. dbms_stats.lock_table_stats对于没有统计信息的表分区同样有效
  4. linux ftp 命令集合
  5. first level cache check - User parameter /UI2/CACHE_DISABLE
  6. 怎么让照片变年轻_做了隆鼻,至少年轻5岁
  7. 安卓模拟器怎么切换IP地址
  8. 经济可行性分析的目的
  9. windows计算机操作题,计算机等级考试Windows操作题
  10. 滴滴资深分析专家:数据如何驱动业务增长
  11. SCI、EI、IEEE、检索网站的区别
  12. IDEA创建applicationContext.xml文件图标不是xml文件图标
  13. 信标杂谈:外卖骑手和微信摇一摇的故事
  14. 毒液蛋白质相互作用分析
  15. 从航天到原始递归函数的四个定理及其证明——哥德尔读后之十二
  16. 墨天轮沙龙 | 北京大学李文杰:面向知识图谱应用的图数据库系统gStore
  17. 做银行家里的数据专家:ING探索大数据时代下的金融最佳实践
  18. Flash Memory/SSD的基础知识
  19. web扫描工具---nikto
  20. 四川轻化工大学计算机网络技求术,四川轻化工大学

热门文章

  1. 简单了解一下函数模板
  2. Andriod --- JetPack (七):Room + ViewModel + LiveData 增删改查实例
  3. Python 值传递与地址传递总结
  4. Vue 之 qs.parse()、qs.stringify()使用方法
  5. 压缩文件拷到服务器损坏,压缩文件导致无法拷贝共享
  6. 电气设计 | 图说电气成套柜的布线安装
  7. JAVA项目实训struts2_Java Web项目搭建过程记录(struts2)
  8. 拖延不是你的锅,全是基因惹的祸
  9. Linux监控实时log
  10. Appstore|IPA