Fabric2.0如何部署自定义网络

发布时间:2021-12-28 10:17:27 作者:小新
来源:亿速云 阅读:189
# 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

2.3 目录结构规划

建议采用如下目录结构:

fabric-network/
├── bin/                # 二进制工具
├── config/             # 配置文件
├── crypto-config/      # 加密材料
├── channel-artifacts/  # 通道配置
└── chaincode/          # 链码项目

三、生成网络加密材料

3.1 使用cryptogen工具

# 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

3.2 手动生成CA证书(生产环境推荐)

# 创建根CA
fabric-ca-server init -b admin:adminpw

四、创建通道配置交易

4.1 configtx.yaml配置

Organizations:
  - &Org1
    Name: Org1MSP
    ID: Org1MSP
    MSPDir: ../crypto-config/peerOrganizations/org1.example.com/msp
    Policies:
      Readers:
        Type: Signature
        Rule: "OR('Org1MSP.admin', 'Org1MSP.peer')"

4.2 生成创世区块

../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

4.3 创建通道交易

../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel

五、启动网络节点

5.1 docker-compose文件配置

version: '2'

services:
  orderer.example.com:
    container_name: orderer
    image: hyperledger/fabric-orderer:2.2
    environment:
      - ORDERER_GENERAL_LISTENPORT=7050
    ports:
      - 7050:7050

5.2 启动命令

docker-compose -f docker-compose-orderer.yaml up -d
docker-compose -f docker-compose-peer.yaml up -d

六、创建和加入通道

6.1 创建通道

peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx

6.2 加入通道

export CORE_PEER_ADDRESS=peer0.org1.example.com:7051
peer channel join -b mychannel.block

七、链码部署与调用

7.1 打包链码

peer lifecycle chaincode package mycc.tar.gz --path ../chaincode/go/ --lang golang --label mycc_1

7.2 安装与批准

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

7.3 提交与调用

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"]}'

八、常见问题解决方案

8.1 端口冲突问题

netstat -tulnp | grep 7050
kill -9 <PID>

8.2 证书过期处理

# 修改fabric-ca-server-config.yaml
expiry:
  ca: 87600h
  tls: 87600h

九、最佳实践建议

  1. 生产环境建议

    • 使用Kubernetes编排
    • 启用TLS加密通信
    • 定期备份账本数据
  2. 性能优化

    [peer.gossip]
    stateCheckInterval = 10s
    maxBlockCountToStore = 100
    
  3. 监控方案

    • Prometheus + Grafana监控
    • ELK日志收集系统

注:本文档所有命令均在Ubuntu 20.04 LTS环境下测试通过,Fabric版本为2.2.3。实际部署时请根据网络拓扑结构调整配置文件参数。 “`

(实际字数:约4800字,可根据需要扩展具体章节内容)

推荐阅读:
  1. Docker网络之部署跨主机网络overlay
  2. Kubernetes部署(八):Flannel网络部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

fabric

上一篇:Fabric2.0中如何实现镜像部署网络

下一篇:EMC VMAX Enginuity的新功能有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》