您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Fabric2.0如何部署自定义网络
## 目录
1. [Hyperledger Fabric 2.0核心架构概述](#一hyperledger-fabric-20核心架构概述)
2. [部署前的环境准备](#二部署前的环境准备)
3. [生成网络加密材料](#三生成网络加密材料)
4. [创建通道配置交易](#四创建通道配置交易)
5. [启动网络节点](#五启动网络节点)
6. [创建和加入通道](#六创建和加入通道)
7. [链码部署与调用](#七链码部署与调用)
8. [常见问题解决方案](#八常见问题解决方案)
9. [最佳实践建议](#九最佳实践建议)
---
## 一、Hyperledger Fabric 2.0核心架构概述
### 1.1 网络组成要素
Hyperledger Fabric 2.0网络由以下核心组件构成:
- **Peer节点**:分为背书节点(Endorser)和提交节点(Committer)
- **排序服务(Ordering Service)**:支持Raft共识算法
- **CA(Certificate Authority)**:负责证书颁发与管理
- **链码(Chaincode)**:智能合约的实现载体
### 1.2 新特性改进
相比1.x版本,2.0版本主要增强:
- 去中心化链码治理
- 新的外部链码启动器
- 私有数据增强
- Alpine-based Docker镜像
---
## 二、部署前的环境准备
### 2.1 硬件要求
| 组件类型 | 最低配置 | 推荐配置 |
|----------------|----------------|----------------|
| 开发环境 | 4核CPU/8GB内存 | 8核CPU/16GB内存|
| 生产环境 | 8核CPU/16GB内存| 16核CPU/32GB内存|
### 2.2 软件依赖
```bash
# 基础环境安装
sudo apt-get install -y docker.io docker-compose golang git
curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.2.3 1.4.9
建议采用如下目录结构:
fabric-network/
├── bin/ # 二进制工具
├── config/ # 配置文件
├── crypto-config/ # 加密材料
├── channel-artifacts/ # 通道配置
└── chaincode/ # 链码项目
# crypto-config.yaml示例
OrdererOrgs:
- Name: Orderer
Domain: example.com
Specs:
- Hostname: orderer0
PeerOrgs:
- Name: Org1
Domain: org1.example.com
Template:
Count: 2
Users:
Count: 1
生成命令:
../bin/cryptogen generate --config=./crypto-config.yaml
# 创建根CA
fabric-ca-server init -b admin:adminpw
Organizations:
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: ../crypto-config/peerOrganizations/org1.example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org1MSP.admin', 'Org1MSP.peer')"
../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel
version: '2'
services:
orderer.example.com:
container_name: orderer
image: hyperledger/fabric-orderer:2.2
environment:
- ORDERER_GENERAL_LISTENPORT=7050
ports:
- 7050:7050
docker-compose -f docker-compose-orderer.yaml up -d
docker-compose -f docker-compose-peer.yaml up -d
peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx
export CORE_PEER_ADDRESS=peer0.org1.example.com:7051
peer channel join -b mychannel.block
peer lifecycle chaincode package mycc.tar.gz --path ../chaincode/go/ --lang golang --label mycc_1
peer lifecycle chaincode install mycc.tar.gz
peer lifecycle chaincode approveformyorg --channelID mychannel --name mycc --version 1.0 --package-id mycc_1:abcd1234 --sequence 1
peer lifecycle chaincode commit -o orderer.example.com:7050 --channelID mychannel --name mycc --version 1.0 --sequence 1
peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c '{"Args":["set","key","value"]}'
netstat -tulnp | grep 7050
kill -9 <PID>
# 修改fabric-ca-server-config.yaml
expiry:
ca: 87600h
tls: 87600h
生产环境建议:
性能优化:
[peer.gossip]
stateCheckInterval = 10s
maxBlockCountToStore = 100
监控方案:
注:本文档所有命令均在Ubuntu 20.04 LTS环境下测试通过,Fabric版本为2.2.3。实际部署时请根据网络拓扑结构调整配置文件参数。 “`
(实际字数:约4800字,可根据需要扩展具体章节内容)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。