IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 联盟链-多机构对等部署 -> 正文阅读

[区块链]联盟链-多机构对等部署

目录

1?创建链

1.1 链证书

1.2 新机构(含节点)

? ? ? ? 1.2.1 证书颁发机构 生成、发送机构证书

????????1.2.2 机构 初始化、配置node_deployment.ini、生成节点证书和节点P2P端口地址文件

? ? ? ? 1.2.3 机构 相互交换连接信息文件

? ? ? ?1.2.4 生成创世区块的机构?收集其他机构节点的节点证书

? ? ? ?1.2.5 生成创世区块的机构? 等待执行完毕1.3步骤,将生成的创世块文件至其他机构

? ? ? ? 1.2.6 机构 生成启动节点

1.3 新群组

? ? ? ? 1.3.1 委员会 选取一个机构生成群组创世块

? ? ? ? 1.3.2 生成创世块的机构 收集群组内1.2步骤其他机构的节点证书、配置group_genesis.ini

? ? ? ? 1.3.3 生成创世块的机构:生成群组创世区块

2?已有链创建新群组

3?已有链创建新机构

4?已有链创建已有机构的新节点

5 已有链已有机构加入已存在但未加入的群组


基于generator实现多机构对等部署

下载generator

## 前置准备
# 下载
cd ~/
git clone https://gitee.com/FISCO-BCOS/generator.git
# 安装
cd ~/generator && bash ./scripts/install.sh
./generator -h
# 获取节点二进制
./generator --download_fisco ./meta
# 检查二进制版本
./meta/fisco-bcos -v

1?创建链

1.1 链证书

????????证书颁发机构生成

## 证书颁发机构: 初始化链证书
cd ~/generator

# 证书颁发机构: 生成国密证书
./generator --generate_chain_certificate ./dir_chain_ca -g
# 证书颁发机构: 生成普通证书
./generator --generate_chain_certificate ./dir_chain_ca_normal

ls ./dir_chain_ca # gmca.crt  gmca.key 分别为 链证书、链私钥
ls ./dir_chain_ca_normal # ca.crt  ca.key 分别为 为链证书、链私钥

1.2 新机构(含节点)

? ? ? ? 1.2.1 证书颁发机构 生成、发送机构证书

cd ~/generator

# 证书颁发机构: 生成机构A证书
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA -g
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca_normal agencyA_normal

# 证书颁发机构: 发送链证书、机构证书、机构私钥至机构A
cp ./dir_agency_ca/agencyA/* ~/generator-A/meta/
cp ./dir_agency_ca/agencyA_normal/* ~/generator-A/meta/


# 证书颁发机构: 生成机构B证书
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB -g
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca_normal agencyB_normal

# 证书颁发机构: 发送链证书、机构证书、机构私钥至机构B
cp ./dir_agency_ca/agencyB/* ~/generator-B/meta/
cp ./dir_agency_ca/agencyB_normal/* ~/generator-B/meta/

????????1.2.2 机构 初始化、配置node_deployment.ini、生成节点证书和节点P2P端口地址文件

# 初始化机构A
cp -r ~/generator ~/generator-A

## 机构A:修改配置文件
cd ~/generator-A
# 机构A:配置文件内容
cat > ./conf/node_deployment.ini << EOF
[group]
group_id=1

[node0]
; host ip for the communication among peers.
; Please use your ssh login ip.
p2p_ip=127.0.0.1
; listen ip for the communication between sdk clients.
; This ip is the same as p2p_ip for physical host.
; But for virtual host e.g. vps servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545

[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30301
channel_listen_port=20201
jsonrpc_listen_port=8546
EOF

# 机构A:根据node_deployment.ini生成节点证书、节点P2P连接地址文件
./generator --generate_all_certificates ./agencyA_node_info -g
ls ./agencyA_node_info


# 初始化机构B
cp -r ~/generator ~/generator-B

## 机构B:修改配置文件
cd ~/generator-B
# 机构B:配置文件内容
cat > ./conf/node_deployment.ini << EOF
[group]
group_id=1

[node0]
; host ip for the communication among peers.
; Please use your ssh login ip.
p2p_ip=127.0.0.1
; listen ip for the communication between sdk clients.
; This ip is the same as p2p_ip for physical host.
; But for virtual host e.g. vps servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30302
channel_listen_port=20202
jsonrpc_listen_port=8547

[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30303
channel_listen_port=20203
jsonrpc_listen_port=8548
EOF

# 机构B:根据node_deployment.ini生成节点证书、节点P2P连接地址文件
./generator --generate_all_certificates ./agencyB_node_info -g

? ? ? ? 1.2.3 机构 相互交换连接信息文件

# 机构A:将节点P2P连接地址文件发送至机构B
cd ~/generator-A
cp ./agencyA_node_info/peers.txt ~/generator-B/meta/peersA.txt

# 机构B:将节点P2P连接地址文件发送至机构A
cd ~/generator-B
cp ./agencyB_node_info/peers.txt ~/generator-A/meta/peersB.txt

????????1.2.5?执行步骤1.3

????????1.2.6?机构 生成启动节点

# 机构A:生成所属节点
cd ~/generator-A
./generator --build_install_package ./meta/peersB.txt ./nodeA -g
ls ./nodeA

# 机构A:启动节点
bash ./nodeA/start_all.sh
ps -ef | grep fisco

## 机构B:生成所属节点
cd ~/generator-B
./generator --build_install_package ./meta/peersA.txt ./nodeB -g
bash ./nodeB/start_all.sh

##查看群组1节点运行状态
ps -ef | grep fisco
tail -f ./node*/node*/log/log*  | grep +++

1.3 新群组

? ? ? ? 1.3.1 委员会 选取一个机构生成群组创世块

这里选定 机构A

????????1.3.2?生成创世区块的机构?收集其他机构节点的节点证书

# 机构B:发送节点证书至生成创世区块机构A
cd ~/generator-B
cp ./agencyB_node_info/gmcert*.crt ~/generator-A/meta/

? ? ? ? 1.3.3?生成创世区块的机构 配置group_genesis.ini

# 机构A:配置文件内容
cd ~/generator-A
cat > ./conf/group_genesis.ini << EOF
[group]
group_id=1

[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30302
node3=127.0.0.1:30303
EOF

? ? ? ? 1.3.4?生成创世块的机构 生成群组创世区块

# 机构A:生成群组创世区块
cd ~/generator-A
./generator --create_group_genesis ./group -g

????????1.3.5?生成创世区块的机构? 将生成的创世块文件至其他机构

# 机构A:分发群组1创世区块至机构B
cd ~/generator-A
cp ./group/group.1.genesis ~/generator-B/meta

2?已有链创建新群组

2.1 选定新群组机构

????????2.1.1 委员会 选定新群组包含的机构

这里选定群组A?包含 机构A、机构B

2.2 新建组

? ? ? ? 2.2.1?委员会 选取一个机构生成群组创世块

这里选定 机构B

? ? ? ? 2.2.2?生成创世区块的机构?收集其他机构节点的节点证书

# 机构A:发送节点证书至生成创世区块机构B
cd ~/generator-A
cp ./agencyA_node_info/gmcert*.crt ~/generator-B/meta/

? ? ? ? 2.2.3?生成创世区块的机构 配置group_genesis.ini

# 机构B:配置文件内容
cd ~/generator-B
cat > ./conf/group_genesis.ini << EOF
[group]
group_id=2

[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30302
node3=127.0.0.1:30303
EOF

? ? ? ? 2.2.4?生成创世块的机构 生成群组创世区块

# 机构A:生成群组创世区块
cd ~/generator-B
./generator --create_group_genesis ./group -g

? ? ? ? 2.2.5?生成创世区块的机构? 将生成的创世块文件至其他机构

# 机构B:分发群组1创世区块至机构A
cd ~/generator-B
cp ./group/group.1.genesis ~/generator-A/meta

2.3 重启节点

# 机构A为现有节点初始化群组2
cd ~/generator-A
# 添加群组2配置文件至已有节点
./generator --add_group ./meta/group.2.genesis ./nodeA
# 添加机构B节点连接文件peers至已有节点
./generator --add_peers ./meta/peersB.txt ./nodeA
# 重启机构A节点
bash ./nodeA/stop_all.sh
bash ./nodeA/start_all.sh

# 机构B为现有节点初始化群组2
cd ~/generator-B
# 添加群组2配置文件至已有节点
./generator --add_group ./meta/group.2.genesis ./nodeB
# 添加机构B节点连接文件peers至已有节点
./generator --add_peers ./meta/peersA.txt ./nodeB
# 重启机构B节点
bash ./nodeB/stop_all.sh
bash ./nodeB/start_all.sh


## 查看群组2节点运行状态
ps -ef | grep fisco
cd ~/generator-A
tail -f ./node*/node*/log/log*  | grep +++

3?已有链创建新机构

4?已有链创建已有机构的新节点

5 已有链已有机构加入已存在但未加入的群组

5.1 重启节点

5.2 配置控制台

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:34:51  更:2021-09-04 17:35:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 20:48:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码