分步搭建HF区块链网络

一.搭建网络规划

采用容器环境,搭建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: Orderer
    Domain: example.com
    EnableNodeOUs: true
    Specs:
      - Hostname: orderer
        SANS:
          - 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: Org1
    Domain: org1.example.com
    EnableNodeOUs: true
    Template:
      Count: 1
      SANS:
        - localhost
    # Start: 5
    # Hostname: {{.Prefix}}{{.Index}} # default
    Users:
      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: Org2
    Domain: org2.example.com
    EnableNodeOUs: true
    Template:
      Count: 1
      SANS:
        - localhost
    # Start: 5
    # Hostname: {{.Prefix}}{{.Index}} # default
    Users:
      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.yaml
 cp ~/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.pem

export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

export 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.pem

export 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}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/567538.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新技术前沿-2024-国内主流AI大模型架构及应用场景深度分析

参考国内主流AI 大模型架构及应用场景深度分析 2024 1 厂商总览 1.1 国外 (1)Open AI:GPT-4【美国旧金山的人工智能研究公司】 GPT-4于2023年3月14日发布,是千亿级参数的多模态预训练模型,能够支持图像和文本的输入。 (2)Anthropic(人类的):Claude【美国人工智能初创公司…

供应链拉动与推动生产方式(供应链维度)

一、推式供应链与拉式供应链的定义 1、推动式供应链 推动式供应链是以制造商为核心企业,根据产品的生产和库存情况,有计划地把商品推销给客户,其驱动力源于供应链上游制造商的生产。在这种运作方式下,供应链上各节点比较松散&am…

探索深度与广度的平衡:迭代加深深度优先搜索技术解析

探索深度与广度的平衡:迭代加深深度优先搜索技术解析 迭代加深深度优先搜索(IDDFS)的基本原理伪代码C语言实现讨论结论 迭代加深(Iterative Deepening Depth-First Search, IDDFS)是一种用于解决搜索问题的方法&#x…

前端开发攻略---实现发送手机验证码60s倒计时效果(手机号验证+按钮文字自定义显示+Vue2写法+Vue3写法)

1、演示 2、说明 1、为了便于演示,本示例将在3秒后就再次发送。您可以根据需要自定义此时间间隔。 2、采用最少的变量以满足需求,以减少内存占用。 3、不仅仅局限于按钮情况,也可应用于不禁用按钮的情况,以实现更多的扩展性。 4、…

通过使用XShell工具、Nginx环境实现服务器项目构建与发布

前言: 在信息化和数字化的今天,网站和应用的构建与发布已成为企业发展的重要一环。为了确保项目的顺利上线和稳定运行,选择合适的工具和环境至关重要。本文将详细介绍如何通过XShell工具以及Nginx环境来实现服务器项目的构建与发布&#xff0…

mac安装nvm管理node(手残流,git下载)

1. 准备 首先电脑里得有brew、git、vscode,看这里安装brew、git,看这里安装vscode。 我本人比较low,mac命令也记不熟,本篇就是git下载nvm,vscode看配置,省心不动脑子就可以了。 2. 清理node 如果mac里没…

CSS实现广告自动轮播

实现原理 该广告轮播功能的实现主要依靠HTML和CSS。HTML负责搭建轮播框架,而CSS则控制样式和动画效果。通过CSS中的关键帧动画(Keyframes),我们可以定义图片在容器内的滚动效果,从而实现轮播功能。 HTML结构 首先&am…

SpringCloud注册nacos错误:Could not resolvplaceholder ‘xxxxx‘ in value “xxxx“

这个错误是我在做spirngcloud注册服务到nacos时发现的,算是折磨我折磨了好久,最后发现了还是先记录一下,首先还是说一下我的项目版本信息,因为不同的版本就有这不同的解决方案,这也是最恶心的一点,以至于我…

python 对图片进行操作

Pillow是一个强大的图像处理库,它提供了许多用于打开、操作和保存图像的功能。 Image模块: Image模块提供了用于打开、创建、编辑和保存图像的基本功能。可以使用Image.open()函数来打开图像文件,或者使用Image.new()函数来创建新的图像,还可…

基于 Win32 编程,使用 C语言开发一个记事本。

现在 Win32 非常少见,因为太原始了,同时也因为高级语言做应用开发速度更快。但是用 C 语言开发一个 win32 记事本对于理解应用程序运行的内部原理还是很有帮助的,“最基础的就是最有用的”,Windows 编程圣经 《Windows 程序设计》…

YOLO8实战:行人跌倒检测系统

yolo8行人跌倒检测系统 前言 随着科技的不断进步,人工智能和深度学习技术已广泛应用于各行各业,尤其是在人身安全检测方面。传统的跌倒检测方法依赖于人工观察,但这种方法不仅耗时耗力,而且容易因人为因素导致误判或漏判。因此&a…

【RSGIS数据资源】2018年北京森林站东灵山样地无人机遥感生态数据集

文章目录 一、数据集基本信息二、数据结构和内容三、 数据集质量控制(一) 产生方式(二) 数据源说明(三) 数据采集、加工处理方法 四、 数据使用 一、数据集基本信息 说明数据集基本描述信息,包…

在Milk-v Duo上部署YOLOV8模型

建议自己编译images固件,我使用官方给的固件在部署中出现了一些问题,请参考: 编译Milkv-duo固件-CSDN博客 下载YOLOv8 git clone https://github.com/ultralytics/ultralytics.git 下载yolo_export.zip 下载链接:链接:百度网盘…

Linux加强篇-Vim编辑器

目录 ⛳️推荐 Vim文本编辑器 编写简单文档 配置主机名称 配置网卡信息 配置软件仓库 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 Vim文本编辑器 在Linux系统中一切都…

使用FPGA实现除法器

介绍 除法都已经很熟悉了。这里我主要是使用fpga来实现一下除法器的功能。我这里使用的算法是,首先将除数进行左移n位,如果被除数比左移后的除数还要大,说明商的第n位是1,大家可以理解或者验证一下。 设计文件 library ieee; us…

Linux KASAN使用与实现原理

一、KASAN工具使用 KASAN工具:Kernel Address SANitizer(KASAN)是一种动态内存安全错误检测工具,主要功能是检查内存越界访问和使用已释放内存的问题。 1.1 KASAN宏控开关 KASAN有三种模式:1.通用KASAN;2.基于软件标签的KASAN&…

Apple II首席设计师为中国家庭设计,鹿客指脉锁S6 Max引领科技美学

智能门锁设计正在步入一个科技与艺术交织的美学时代。鹿客科技认为,智能门锁的设计理念是将锁视为人类与仿生形状之间的接口,将门视为几何建筑的一部分,产品设计应该通过提供诱人且用户友好的“触摸和感觉”来传达这种转变。 鹿客近日发布的最…

clickhouse学习笔记04

ClickHouse高可用之ReplicatedMergeTree引擎介绍 ClickHouse高可用架构准备-环境说明和ZK搭建 RPM安装ClickHouse 上传我们的clickhouse rpm文件。 安装: 中途需要输入用户名和密码 可以不设置 直接回车。 启动: 查看状态: 查看端口是否占用…

嵌入式s5p5818核心板介绍

底板寻址空间介绍 s5p6818 寻址空间采用统一编址方式进行管理 寻址空间映射图: 独立寻址:片内片外存储器只能选择其中一个 统一寻址:片内片外存储器都能使用,且使用的是同一片连续的寻址空间 reserved保留,Normaol …

晶振在PCB设计中,要注意哪些事项?

晶振(Crystal Oscillator)在PCB(Printed Circuit Board,印刷电路板)设计中扮演着至关重要的角色,因为它提供了稳定的时钟信号,这是许多电子设备正常运行的基础。在设计含有晶振的PCB时,应该注意以下几个关键事项: 1. …