当前位置: 首页 > news >正文

Hyperledger Fabric V2.5 生产环境部署及安装Java智能合约

Hyperledger Fabric V2.5 生产环境部署文档

1.部署区块链网络
1. 安装基础依赖(分别执行)
# 更新软件源
sudo apt-get update && sudo apt-get upgrade -y
# 安装必备工具
sudo apt-get install -y git curl wget jq unzip build-essential libtool autoconf pkg-config
2.安装Docker(分别执行)
# 安装 Docker 和 Docker Compose
curl -fsSL https://get.docker.com -o get-docker.sh
chmod +x get-docker.sh
sh get-docker.sh --mirror Aliyun
sudo usermod -aG docker $USER
sudo systemctl start docker && sudo systemctl enable docker# 配置镜像源
sudo vi /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker# 安装 Docker Compose(推荐 v2.37.1)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.37.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. 网络组件规划
IP 节点 端口 容器
10.6.0.13 peer0.org1.example.com 7051,7052,7053 peer0.org1.example.com
10.6.0.13 ca_org1 7054 ca.org1.example.com
10.6.0.13 cli - -
10.6.0.3 peer0.org2.example.com 7051,7052,7053 peer0.org2.example.com
10.6.0.3 ca_org2 7054 ca.org2.example.com
10.6.0.3 cli - -
10.6.0.7 orderer.example.com 7050 orderer.example.com
10.6.0.7 ca_orderer 7054 ca.orderer.example.com
4.主机互通(分别执行)
echo "10.6.0.13 ca.org1.example.com peer0.org1.example.com" | sudo tee -a /etc/hosts
echo "10.6.0.3 ca.org2.example.com peer0.org2.example.com" | sudo tee -a /etc/hosts
echo "10.6.0.7 orderer.example.com ca.orderer.example.com" | sudo tee -a /etc/hosts
5.创建目录(分别执行)
# 创建目录
sudo mkdir -r /home/ubuntu/hyperledger/multinodes# 改变目录所属用户组
sudo chown -R ubuntu:ubuntu /home/ubuntu/hyperledger/multinodes
6.下载二进制文件(orderer节点)
# hyperledger fabric
hyperledger-fabric-linux-amd64-2.5.5.tar.gz

在这里插入图片描述

# fabric ca
hyperledger-fabric-ca-linux-amd64-1.5.15.tar.gz

在这里插入图片描述

7.编写CA 配置文件
orderer ca
# 切换目录 
cd /home/ubuntu/hyperledger/multinodes# orderer ca
cat > compose-ca.yaml << 'EOF'
services:ca_orderer:image: hyperledger/fabric-ca:1.5.7environment:- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server- FABRIC_CA_SERVER_CA_NAME=ca-orderer- FABRIC_CA_SERVER_TLS_ENABLED=true- FABRIC_CA_SERVER_PORT=7054- FABRIC_CA_SERVER_CSR_CN=ca-orderer- FABRIC_CA_SERVER_CSR_HOSTS=ca.orderer.example.comports:- "7054:7054"command: sh -c 'fabric-ca-server start -b admin:adminpw -d'volumes:- ./fabric-ca/ordererOrg:/etc/hyperledger/fabric-ca-servercontainer_name: ca_ordererextra_hosts:- "ca.orderer.example.com:10.6.0.7"- "ca.org1.example.com:10.6.0.13"- "ca.org2.example.com:10.6.0.3"
EOF# 启动CA服务
docker-compose -f docker-ca.yaml up -d
org1 ca
# 切换目录 
cd /home/ubuntu/hyperledger/multinodes# org1 ca
cat > compose-ca.yaml << 'EOF'
services:ca_org1:image: hyperledger/fabric-ca:1.5.7environment:- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server- FABRIC_CA_SERVER_CA_NAME=ca-org1- FABRIC_CA_SERVER_TLS_ENABLED=true- FABRIC_CA_SERVER_PORT=7054- FABRIC_CA_SERVER_CSR_CN=ca-org1- FABRIC_CA_SERVER_CSR_HOSTS=ca.org1.example.comports:- "7054:7054"command: sh -c 'fabric-ca-server start -b admin:adminpw -d'volumes:- ./fabric-ca/org1:/etc/hyperledger/fabric-ca-servercontainer_name: ca_org1extra_hosts:- "ca.orderer.example.com:10.6.0.7"- "ca.org1.example.com:10.6.0.13"- "ca.org2.example.com:10.6.0.3"
EOF# 启动CA服务
docker-compose -f docker-ca.yaml up -d
org2 ca
# 切换目录 
cd /home/ubuntu/hyperledger/multinodes# org2 ca
cat > compose-ca.yaml << 'EOF'
services:ca_org2:image: hyperledger/fabric-ca:1.5.7environment:- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server- FABRIC_CA_SERVER_CA_NAME=ca-org2- FABRIC_CA_SERVER_TLS_ENABLED=true- FABRIC_CA_SERVER_PORT=7054- FABRIC_CA_SERVER_CSR_CN=ca-org2- FABRIC_CA_SERVER_CSR_HOSTS=ca.org2.example.comports:- "7054:7054"command: sh -c 'fabric-ca-server start -b admin:adminpw -d'volumes:- ./fabric-ca/org2:/etc/hyperledger/fabric-ca-servercontainer_name: ca_org2extra_hosts:- "ca.orderer.example.com:10.6.0.7"- "ca.org1.example.com:10.6.0.13"- "ca.org2.example.com:10.6.0.3"
EOF# 启动CA服务
docker-compose -f docker-ca.yaml up -d
将各节点ca证书拷贝到其它节点 ,最终如下:

在这里插入图片描述

8.编写生成组织证书脚本
# 切换目录
cd fabric-ca/# 编写脚本
cat > registerEnroll.sh << 'EOF'
#!/bin/bashfunction createOrg1 {echoecho "Enroll the CA admin"echomkdir -p organizations/peerOrganizations/org1.example.com/export FABRIC_CA_CLIENT_HOME=${PWD}/organizations/peerOrganizations
http://www.lryc.cn/news/595365.html

相关文章:

  • 【OD机试】模拟数据序列号传输
  • 09_Spring Boot 整合 Freemarker 模板引擎的坑
  • 用简鹿视频格式转换器轻松制作 GIF 表情包教程
  • 牛客周赛 Round 101(题解的token计算, 76修地铁 ,76选数,76构造,qcjj寄快递,幂中幂plus)
  • 解决vscode中vue格式化后缩进太小的问题,并去除分号 - 设置Vetur tabSize从2到4,设置prettier取消分号semi
  • 元宇宙工厂漫游指南:VR可视化在设备巡检与远程运维中的沉浸式应用
  • zabbix企业级分布式监控
  • Java 实现 UDP 多发多收通信
  • C++unordered系列的map和set类(封装)
  • WAMP配置局域网https服务
  • C# 实现:动态规划解决 0/1 背包问题
  • Nacos 探活机制深度解析:临时 / 永久实例差异及与 Sentinel 的熔断协作
  • OpenAI API(1)补全Responses(Chat Completions)API和记忆Assistants API对比分析
  • Java 大视界 -- 基于 Java 的大数据分布式计算在地球物理勘探数据处理与地质结构建模中的应用(356)
  • 16 BTLO 蓝队靶场 Drill Down 解题记录
  • 前缀和题目:元素和小于等于阈值的正方形的最大边长
  • 计算机发展史:互联网时代的万物互联与全球变革
  • MySQL 17 如何正确地显示随机消息?
  • 【爬虫】06 - 自动化爬虫selenium
  • 元宇宙与游戏:虚实交融的数字文明新纪元
  • ni-app 对鸿蒙的支持现状
  • 深入浅出 BeanUtil.copyProperties:Java 属性复制的利器与避坑指南
  • compser json和lock的作用区别
  • 基于ArcFace损失函数训练的人脸特征提取模型
  • PDF 表单字段属性详解
  • Java学习----NIO模型
  • 识别PDF中的二维码
  • 软件中如何实现自动记忆上一次选的打印机(Python示例)
  • 数据结构 之 【排序】(直接插入排序、希尔排序)
  • 二分查找-35.搜索插入位置-力扣(LeetCode)