分步搭建HF区块链网络--部署fabric区块链--加入channel

2024-04-26 01:52

本文主要是介绍分步搭建HF区块链网络--部署fabric区块链--加入channel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.搭建网络规划

采用容器环境,搭建1个排序节点(Orderer)、2个对等节点(Peer),另外用 一个fabric-cli容器。实训中的绝大部分命令是通过该容器执行的。

容器名称设置

二. 配置HF网络证书

首先docker ps 检查镜像,确保镜像为空

1.生成crypto-config.yaml

使用showtemplate显示默认配置信息,并重定向保存到config子目录下的文件crypto-config.yaml。 具体命令如下:

mkdir -p ~/test/config
cd ~/test
cryptogen showtemplate > config/crypto-config.yaml

 2.用默认配置生成组织身份文件

cryptogen会创建crypto-config文件夹,并将生成的内容输出到crypto-config文件夹中。其中的内容按 照组织进行组织。 具体命令如下:

cryptogen generate --config config/crypto-config.yaml --output crypto-config

三. 生成系统组织的数字证书

1.编写排序节点(orderer)配置文件

编写排序配置文件,保存在config目录下,文件名crypto-config-orderer.yaml。

vim config/crypto-config-orderer.yaml

配置如下内容: 

# --------------------------------------------------------------------------- # "OrdererOrgs" - Definition of organizations managing orderer nodes
# ---------------------------------------------------------------------------
OrdererOrgs:- Name: OrdererDomain: example.comEnableNodeOUs: trueSpecs:- Hostname: ordererSANS:- localhost

 

2.生成排序节点组织身份文件 

使用如下命令:cryptogen generate --config config/crypto-config-orderer.yaml --output organizations

3.编辑生成组织1数字证书的配置文件

 编辑配置文件config/crypto-config-org1.yaml

vim config/crypto-config-org1.yaml
PeerOrgs:# ---------------------------------------------------------------------------# Org1# ---------------------------------------------------------------------------- Name: Org1Domain: org1.example.comEnableNodeOUs: trueTemplate:Count: 1SANS:- localhost# Start: 5# Hostname: {{.Prefix}}{{.Index}} # defaultUsers:Count: 1

 4.生成组织1身份文件

使用如下命令:cryptogen generate --config config/crypto-config-org1.yaml --output organizations

编辑生成组织2数字证书的配置文件

编辑配置文件config/crypto-config-org2.yaml

vim config/crypto-config-org2.yaml
PeerOrgs:
# ---------------------------------------------------------------------------
# Org2
# ---------------------------------------------------------------------------- Name: Org2Domain: org2.example.comEnableNodeOUs: trueTemplate:Count: 1SANS:- localhost# Start: 5# Hostname: {{.Prefix}}{{.Index}} # defaultUsers:Count: 1

 

生成组织2身份文件

使用如下命令:cryptogen generate --config config/crypto-config-org2.yaml --output organizations

四. 创建创世区块 (applicationchannel.block)

 1.编辑configtx.yaml

Fabric的configtxgen工具生成通道配置,对应的配置文件是configtx.yaml,文件内容可以参考Fabric默认的配置文件。

2.创建创世区块

执行如下步骤创建创世区块:

export CHANNEL_NAME=applicationchannel
echo ${CHANNEL_NAME}
configtxgen -configPath ./config -profile TwoOrgsApplicationGenesis -channelID${CHANNEL_NAME} -outputBlock channel-artifacts/${CHANNEL_NAME}.block

执行如下步骤创建创世区块:

ls channel-artifacts/ -al

执行结果如下:

五. 部署HF区块链网络

1.编辑Docker-compose文件

在fabric目录下,新建一个fabric-compose.yaml文件,用于创建docker集群。

文件内容为:fabric-compose.yaml

2.创建docker卷

检查docker卷是否存在,若存在删除:

docker volume ls

docker volume rm peer0.org1.example.com orderer.example.com olla 
执行以下命令:
docker volume create orderer.example.com
docker volume create peer0.org1.example.com
docker volume create peer0.org2.example.com

3.部署fabric容器

在config目录下添加core.yamlcp ~/fabric/config/core.yaml config/执行以下命令:
docker-compose -f fabric-compose.yaml up -d

查看

docker ps

六. 加入通道 

实现orderer和peer节点加入applicationchannel操作:

  1. orderer加入applicationchannel

  2. peer加入applicationchannel

首先查看docker进程docker ps

然后启动fabric-compose.yaml

docker-compose -f fabric-compose.yaml start

如果要是有报错问题可以用以下处理方式

先停止:

1.使用docker exec登录fabric-cli

执行以下命令:

docker exec -it fabric-cli bash

2.orderer节点加入通道 

执行以下命令:

//先执行这个
export CHANNEL_NAME=applicationchannel//在执行这个
osnadmin channel join --channelID $CHANNEL_NAME --config-block ./channel-artifacts/${CHANNEL_NAME}.block -o orderer.example.com:7053 --ca-file "$ORDERER_CA" --client-cert "$ORDERER_ADMIN_TLS_SIGN_CERT" --client-key "$ORDERER_ADMIN_TLS_PRIVATE_KEY"

3.Org1的peer0加入通道

执行以下命令:

export CORE_PEER_TLS_ENABLED=true 
export CORE_PEER_LOCALMSPID="Org1MSP"export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pemexport CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/mspexport CORE_PEER_ADDRESS=peer0.org1.example.com:7051
peer channel join -b channel-artifacts/${CHANNEL_NAME}.block

4.Org2的peer0加入通道

执行以下命令:export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pemexport CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=peer0.org2.example.com:9051
peer channel join -b channel-artifacts/${CHANNEL_NAME}.block

5.验证通道加入情况

执行以下命令概览:
peer channel list

执行以下命令获取详细情况:
peer channel getinfo -c ${CHANNEL_NAME}

这篇关于分步搭建HF区块链网络--部署fabric区块链--加入channel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936403

相关文章

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为