快速部署
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-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" }