返回

多节点Sawtooth环境 搭建利器 Ubuntu助你一臂之力

后端

Docker 安装

  1. 安装 Docker CE
    • 在 Ubuntu 18.04 上,运行以下命令:
      sudo apt-get update
      sudo apt-get install docker.io
      
    • 在 Ubuntu 20.04 上,运行以下命令:
      sudo apt-get update
      sudo apt-get install docker-ce docker-ce-cli containerd.io
      
  2. 启用 Docker 服务
    sudo systemctl enable docker
    sudo systemctl start docker
    

Sawtooth 安装

  1. 克隆 Sawtooth 仓库
    git clone https://github.com/hyperledger/sawtooth-core.git
    cd sawtooth-core
    
  2. 构建 Sawtooth 镜像
    docker build -t sawtooth/sawtooth-core .
    

多节点 Sawtooth 网络搭建

  1. 创建 Sawtooth 网络

    docker network create sawtooth-network
    
  2. 运行节点管理器

    docker run -d --name sawtooth-node-manager -p 4004:4004 -v /var/run/docker.sock:/var/run/docker.sock sawtooth/sawtooth-core sawtooth-node-manager --bind network:tcp://0.0.0.0:4004
    
  3. 运行创世节点

    docker run -d --name sawtooth-genesis -p 8008:8008 sawtooth/sawtooth-core sawtooth-validator --endpoint tcp://validator:4004 --bind network:tcp://0.0.0.0:8008 --key-dir /tmp/keys --data-dir /tmp/data
    
  4. 运行其他节点

    for i in {1..3}; do
      docker run -d --name sawtooth-validator-$i -p 800$i:800$i sawtooth/sawtooth-core sawtooth-validator --endpoint tcp://validator:4004 --bind network:tcp://0.0.0.0:800$i --key-dir /tmp/keys --data-dir /tmp/data
    done
    
  5. 验证网络连接

    docker exec sawtooth-genesis sawtooth peer list
    

    输出结果应类似于:

    tcp://validator:4004
    tcp://172.17.0.2:8001
    tcp://172.17.0.3:8002
    tcp://172.17.0.4:8003
    

访问 Sawtooth REST API

  1. 运行 REST API 容器
    docker run -d --name sawtooth-rest-api -p 8080:8080 sawtooth/sawtooth-core sawtooth-rest-api --bind network:tcp://0.0.0.0:8080
    
  2. 访问 REST API
    curl http://localhost:8080/blocks
    
    输出结果应类似于:
    [
      {
        "block_num": 0,
        "batches": [],
        "header_signature": "x0JLu9ZqTkWMqfs2mBi9ghKg4/RAmf6/B9EgTP2CCn8=",
        "previous_block_id": "0000000000000000000000000000000000000000000000000000000000000000",
        "state_root_hash": null,
        "signer_public_key": "0218d470a92d4d83c3315d9d5f3a6063de995e0266963355b127a28e1d6567186e",
        "timestamp": 1559543710
      }
    ]
    

总结

我们已经成功地在 Ubuntu 上搭建了多节点 Sawtooth 环境。您可以使用此环境来测试交易族功能、性能或搭建真正的生产环境。