「CITA」- 安装部署

  CREATED BY JENKINSBOT

快速部署

mkdir -pv /data/cita-sm2-sm3 && cd /data/cita-sm2-sm3

# 安装 Docker 环境
...

# 安装 Docker Compose 命令
...

# 安装 CITA CLI 命令,并生成密钥
wget https://github.com/citahub/cita-cli/releases/download/20.2.2/cita-cli-x86_64-musl-tls-20.2.2.tar.gz
tar -xf cita-cli-x86_64-musl-tls-20.2.2.tar.gz
./cita-cli --algorithm sm2 key create
{
  "address": "0x472455155ae48f9f0de045f4bcf14de54b50b573",
  "private": "0xf3f640fe037acbd0f492e4cdec640a75fa5cb339815933a914ca32fd2422bf2d",
  "public": "0xfc1f09076b6244c71c99db917fa6a0d2c92a7513f321708a1ac797f8d46c6df6210368c81d33d12b8923efd156f97b0aba94807c7e04742ea1c8b68deceaf845"
} 

第二步、部署节点

# 获取主机 IP 地址
IP_ADDRESS="172.16.159.33"                               # 鉴于在 Docker 中运行,因此不能使用 127.0.0.1 地址
DOCKER_IMAGE="cita/cita-ce:20.2.0-sm2-sm3"               # 创建节点所使用的镜像版本
SUPER_ADMIN="0x472455155ae48f9f0de045f4bcf14de54b50b573" # 填写 cita-cli 创建的 Key 的 address 字段

# 启动 CITA 服务
docker run -v "/data/cita-sm2-sm3:/opt/cita-run" \
    ${DOCKER_IMAGE} \
    cita create --super_admin "${SUPER_ADMIN}" \
    --nodes "${IP_ADDRESS}:4000,${IP_ADDRESS}:4001,${IP_ADDRESS}:4002,${IP_ADDRESS}:4003"

docker run -d -p 1337:1337 -p 4000:4000 --restart always --name cita-sm2-sm3-node0 \
    -v "/data/cita-sm2-sm3:/opt/cita-run" \
    ${DOCKER_IMAGE} \
    /bin/bash -c 'cita setup test-chain/0 && cita start test-chain/0 && sleep infinity'

docker run -d -p 1338:1338 -p 4001:4001 --restart always --name cita-sm2-sm3-node1 \
    -v "/data/cita-sm2-sm3:/opt/cita-run" \
    ${DOCKER_IMAGE} \
    /bin/bash -c 'cita setup test-chain/1 && cita start test-chain/1 && sleep infinity'


docker run -d -p 1339:1339 -p 4002:4002 --restart always --name cita-sm2-sm3-node2 \
    -v "/data/cita-sm2-sm3:/opt/cita-run" \
    ${DOCKER_IMAGE} \
    /bin/bash -c 'cita setup test-chain/2 && cita start test-chain/2 && sleep infinity'
    
docker run -d -p 1340:1340 -p 4003:4003 --restart always --name cita-sm2-sm3-node3 \
    -v "/data/cita-sm2-sm3:/opt/cita-run" \
    ${DOCKER_IMAGE} \
    /bin/bash -c 'cita setup test-chain/3 && cita start test-chain/3 && sleep infinity' 

第三步、检查节点正常出块

tail -f /data/cita-sm2-sm3/test-chain/0/logs/cita-chain.log

二进制部署

https://docs.citahub.com/zh-CN/cita/getting-started/run-cita

常用操作

删除共识节点

CITA/节点管理/共识节点管理

获取当前的共识节点列表:

# cita-cli scm NodeManager listNode --url http://127.0.0.1:1337
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005000000000000000000000000d0f05f536ffc6a5d27b17cd14a544418b0500e92000000000000000000000000cccda2959225fc79f61f99bed213bd1172a7ea830000000000000000000000000014e2a75b4b5399f09732ecb6ed1a5b389c9e700000000000000000000000003e91911ba91b10dfa41f0a34d4a3c5a4f838eace00000000000000000000000059a316df602568957f47973332f1f85ae1e2e75e"
}

发送交易,以删除共识节点(节点将被降为只读节点):

# cita-cli scm NodeManager deleteNode \
    --address 0x59a316df602568957f47973332f1f85ae1e2e75e \
    --admin-private 0x5f0258a4778057a8a7d97809bd209055b2fbafa654ce7d31ec7191066b9225e6 \
    --url http://127.0.0.1:1337
{
  "id": 3,
  "jsonrpc": "2.0",
  "result": {
    "hash": "0x01a4eac643589780090d5ed9fa1ac56d139776dd79ebc74a6414594d4d607393",
    "status": "OK"
  }
}

查看交易回执信息:

# cita-cli rpc getTransactionReceipt \
    --hash 0x01a4eac643589780090d5ed9fa1ac56d139776dd79ebc74a6414594d4d607393 \
    --url http://127.0.0.1:1337

查看当前的共识节点数:

# cita-cli scm NodeManager listNode --url http://127.0.0.1:1337
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005000000000000000000000000d0f05f536ffc6a5d27b17cd14a544418b0500e92000000000000000000000000cccda2959225fc79f61f99bed213bd1172a7ea830000000000000000000000000014e2a75b4b5399f09732ecb6ed1a5b389c9e700000000000000000000000003e91911ba91b10dfa41f0a34d4a3c5a4f838eace00000000000000000000000059a316df602568957f47973332f1f85ae1e2e75e"
}