CS Chain Logo CS Chain

节点部署 · 快速开始

用 Kurtosis 一键拉起 CS Chain 私有验证者网

本说明面向需要跑通 CS Chain 全流程的开发者与运营者:在本机用 Docker + Kurtosis 启动一条包含 4 个验证者的 CS Chain 私有测试网,验证 PoSA 轮值出块、 质押竞选与 RPC 交互。私有网仅用于开发调试,不产生真实价值,也不等于主网。

1

准备环境

安装 Docker 与 Kurtosis CLI,并准备好 CS Chain 客户端镜像与官方部署包。

2

一键启动

在部署包目录执行一条 Kurtosis 命令,自动拉起 4 个验证者节点组成的私有网。

3

验证出块

查看节点日志与区块高度增长,确认 PoSA 共识正常,随后连接 RPC 开发调试。

第 1 步 · 准备环境

需要一台可联网的 Linux 服务器或开发机(建议 4 核 8G 以上)。

1.1 安装 Docker 与 Kurtosis CLI

# Docker(Ubuntu/Debian 以官方文档为准) curl -fsSL https://get.docker.com | sh # Kurtosis CLI(Ubuntu/Debian) echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list sudo apt update && sudo apt install -y kurtosis-cli # 验证 kurtosis version docker version

1.2 准备部署包

CS Chain 基于 PoSA 共识(非以太坊 PoS),Kurtosis 通用 ethereum-package 不适用,请使用 CS Chain 官方部署包。部署包包含以下文件:

cs-private-chain/ ├── kurtosis.yml # 包声明:名称、描述、版本 ├── main.star # 编排脚本:启动验证者容器、写 genesis、暴露端口 └── static/ ├── genesis.json # 含系统合约与初始验证者集合的创世文件(chainId 131419) ├── validator-0/ # 4 个验证者账号目录(keystore + 密码文件) ├── validator-1/ ├── validator-2/ └── validator-3/
版本一致性:客户端镜像、genesis.json 与部署包须来自同一发布批次, 混用不同版本可能导致出块异常。当前待定项(构建后回填):客户端镜像 cs-chain/node:<release-tag>、4 个初始验证者地址、账户密码。
安全须知:部署包 static/validator-* 目录内含初始验证者私钥(keystore / 账户密码), 仅限本地或受控环境使用。严禁将该部署包或其中密钥文件提交至公开 Git 仓库、 上传公共镜像仓库 / 对象存储,或放置到任何对外公开的网页目录;主网验证节点请等待官方正式安装包, 切勿使用私有网账号直接对外提供服务。运行节点时请勿将 RPC / 管理端口直接暴露到公网。

第 2 步 · 一键启动私有网

进入部署包目录,用一条命令拉起整条链(首次会拉取镜像,耗时取决于网络)。

cd cs-private-chain kurtosis run . --enclave cs-privnet

编排脚本核心逻辑(示意,实际以官方包为准):

# main.star(节选) VALIDATORS = 4 # 初始验证者数量 IMAGE = "cs-chain/node:<release-tag>" # 客户端镜像(占位) def run(plan): genesis = read_file(src="static/genesis.json") for i in range(VALIDATORS): plan.add_service( name=f"validator-{i}", config=ServiceConfig( image=IMAGE, files={ "/data": Directory(src=f"static/validator-{i}"), }, ports={ "rpc": PortSpec(number=8545, application_protocol="http"), "p2p": PortSpec(number=30311, application_protocol="tcp"), }, env_vars={ "GENESIS_PATH": "/data/genesis.json", }, ), )

第 3 步 · 验证网络已出块

启动约 10~30 秒后验证 PoSA 轮值出块是否正常。

3.1 查看服务状态

kurtosis service ls cs-privnet

应看到 4 个 validator 服务均为 running。

3.2 观察出块日志

kurtosis service logs cs-privnet validator-0 | tail -50

关注是否出现新区块密封 / commit 日志,无报错即为正常。

3.3 获取 RPC 并查询高度

RPC_URL=$(kurtosis port print cs-privnet validator-0 rpc) echo "RPC: $RPC_URL" curl -s -X POST -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' "$RPC_URL"

隔几秒重复执行第 3 条命令,若 16 进制块号持续增长,说明 PoSA 轮值出块正常。

本私有网参数

网络名称 CS Chain Private Network
Chain ID / Network ID 131419
币种符号 CS
共识 PoSA(质押即验证,多验证者轮值出块)
初始验证者 4 个(测试账号,上线前替换为正式共识地址)
RPC 接口 kurtosis port print 获取,默认容器内 8545
P2P 端口 30311
私有网产生的 CS 仅用于测试。如需体验钱包 / 合约 / 质押竞选流程,可将本私有网 RPC 配置到 MetaMask 后操作。

清理与回退

kurtosis enclave rm -f cs-privnet # 删除整条私有网(含数据卷) kurtosis enclave ls # 确认已无残留