Skip to main content

使用Docker运行节点

用户能够借助Docker便捷地搭建Conflux节点的运行环境。 以下我们假定docker的环境配置已经完成。

获取镜像

可以从docker hub中获取Conflux的镜像。但需要注意tag的选取。我们以2.0.2版本为例进行说明。不同tag可大致分为三个系列,如:

  • conflux-rust:2.0.2-mainnet。mainnet 后缀代表为 Conflux 主网镜像。以默认配置运行该镜像会运行起一个主网节点。
  • conflux-rust:2.0.2-fix-testnet。testnet 后缀代表为 Conflux 测试网镜像。以默认配置运行该镜像会运行起一个测试网节点。
  • conflux-rust:2.0.2。无后缀的代表为用于本地开发的镜像。以默认配置运行该镜像会运行起一个本地的节点。使用latest tag 会默认拉取此系列的最新版本镜像。
// 我们推荐先使用无后缀的版本用于测试,之后有需要也可以使用其他版本
docker pull confluxchain/conflux-rust:2.0.2

运行镜像

使用默认配置启动

使用以下命令可以快速启动用于本地开发的镜像。

docker run -p 12537:12537 --rm --name cfx-node confluxchain/conflux-rust:2.0.2

启动后可以尝试是否能使用钱包连接到本地网络。如使用Fluent钱包,在设置页的“网络管理”页面中进行配置。在RPC URL填写完成后如果能自动获取区块链ID,则说明上述步骤运行成功。

此外也可以直接借助命令行查看是否有正常响应。

curl --data '{ "jsonrpc": "2.0", "method": "cfx_getStatus", "params": [], "id": 0 }' localhost:12537 -H 'content-type: application/json' 

使用自定义配置启动

除了使用默认配置启动外,还能够使用指定的配置文件启动。我们以启动测试网为例进行说明。

首先我们需要获得启动测试网节点的示例配置文件。

git clone https://github.com/Conflux-Chain/conflux-docker.git
cd conflux-docker/fullnode-configs/hydra/testnet
cp testnet.toml conflux.toml

docker需要的配置文件名为conflux.toml(与直接在宿主机中运行Conflux的需求不同)。我们使用上述项目的fullnode-configs/hydra/testnet/testnet.toml文件作为配置文件的模版,获得conflux.toml文件。接下来还需要对conflux.toml进行若干修改。

  1. 取消jsonrpc_http_port=12537行的注释。
  2. 在配置文件最后增加一行dev_pos_private_key_encryption_password = "your-pos-pwd"。(设置保护pos_key的口令)

接下来运行下述的命令

// 注意当前目录为conflux-docker/fullnode-configs/hydra/testnet
docker run -p 12537:12537 -v $PWD:/root/run --rm --name cfx-node confluxchain/conflux-rust:2.0.2-fix-testnet
curl --data '{ "jsonrpc": "2.0", "method": "cfx_getStatus", "params": [], "id": 0 }' localhost:12537 -H 'content-type: application/json' 

如果有正常响应且chainId为1则说明测试网节点运行正常。