Hyperledger Fabric 智能合约实战 (0) 整体步骤
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) 整体步骤相关推荐
- Hyperledger Fabric 智能合约实战 (7) windows安装fabric
1. 下载安装VirtualBox. 2. 下载 Ubuntu操作系统镜像文件(iso文件) 3. VirtualBox新建虚拟机,指定iso文件. 我新建了一个硬盘分区,因为安装ubuntu问我&q ...
- Hyperledger Fabric 智能合约实战 (3) 安装fabric
step1. 安装fabirc 下载并执行一个 bash 脚本,该脚本将下载并提取设置网络所需的所有特定于平台的二进制文件,并将它们放入克隆仓库中. curl -sSL https://bit.ly/ ...
- Hyperledger Fabric 智能合约实战 (5) sdk node软件安装
安装node 的fabric-ca-client和fabric-client npm install fabric-ca-client npm install client 安装 fabric-net ...
- Hyperledger Fabric 智能合约实战 (6) 访问链码接口
1. 下载fabric-samples 示例. 2. cd fabric-samples/fabcar//使用 startFabric.sh 脚本启动网络. ./startFabric.sh java ...
- Hyperledger Fabric 智能合约实战 (5) go语言开发
step 1. 首先下载"go语言IDE编辑器" goland step2. sh goland.sh 进行安装. step3. 新建项目:选择New Projiect,local ...
- Hyperledger Fabric 智能合约实战 (2)软件安装Docker、 Docker-composer、go
1. Docker 首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库.之后,您可以从仓库安装和更新 Docker. step1. 更新ubuntu的apt源 ...
- Hyperledger Fabric 智能合约开发及 fabric-sdk-go/fabric-gateway 使用示例
前言 在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方 ...
- 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...
- fabric 智能合约开发详解
一.fabric 智能合约运行环境 Chaincode是一个程序, Chaincode运行在一个被背书peer进程独立出来的安全的Docker容器中,Fabric中支持多种语言实现链码,包括golan ...
最新文章
- [python教程入门学习]Python是什么?
- CentOS 5.6 修改国内网易163高速源
- dbms_stats.lock_table_stats对于没有统计信息的表分区同样有效
- linux ftp 命令集合
- first level cache check - User parameter /UI2/CACHE_DISABLE
- 怎么让照片变年轻_做了隆鼻,至少年轻5岁
- 安卓模拟器怎么切换IP地址
- 经济可行性分析的目的
- windows计算机操作题,计算机等级考试Windows操作题
- 滴滴资深分析专家:数据如何驱动业务增长
- SCI、EI、IEEE、检索网站的区别
- IDEA创建applicationContext.xml文件图标不是xml文件图标
- 信标杂谈:外卖骑手和微信摇一摇的故事
- 毒液蛋白质相互作用分析
- 从航天到原始递归函数的四个定理及其证明——哥德尔读后之十二
- 墨天轮沙龙 | 北京大学李文杰:面向知识图谱应用的图数据库系统gStore
- 做银行家里的数据专家:ING探索大数据时代下的金融最佳实践
- Flash Memory/SSD的基础知识
- web扫描工具---nikto
- 四川轻化工大学计算机网络技求术,四川轻化工大学
热门文章
- 简单了解一下函数模板
- Andriod --- JetPack (七):Room + ViewModel + LiveData 增删改查实例
- Python 值传递与地址传递总结
- Vue 之 qs.parse()、qs.stringify()使用方法
- 压缩文件拷到服务器损坏,压缩文件导致无法拷贝共享
- 电气设计 | 图说电气成套柜的布线安装
- JAVA项目实训struts2_Java Web项目搭建过程记录(struts2)
- 拖延不是你的锅,全是基因惹的祸
- Linux监控实时log
- Appstore|IPA