Skip to content

Latest commit

 

History

History
265 lines (194 loc) · 8.56 KB

README_CN.md

File metadata and controls

265 lines (194 loc) · 8.56 KB

IoTeX 节点候选人手册

最新版本请参考 https://github.com/iotexproject/iotex-bootstrap/blob/master/README.md

索引

以下是当前我们使用的软件版本:

  • 主网:v2.1.0

如果你要启动节点加入测试网,请点击加入测试网

以下是启动 IoTeX 节点的推荐方式

  1. 提取(pull) docker镜像
docker pull iotex/iotex-core:v2.1.0
  1. 使用以下命令设置运行环境
mkdir -p ~/iotex-var
cd ~/iotex-var

export IOTEX_HOME=$PWD

mkdir -p $IOTEX_HOME/data
mkdir -p $IOTEX_HOME/log
mkdir -p $IOTEX_HOME/etc

curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.1.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.1.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.1.0/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
  1. 编辑 $IOTEX_HOME/etc/config.yaml, 查找 externalHostproducerPrivKey, 取消注释行并填写您的外部 IP 和私钥。如果producerPrivKey放空,你的节点将被分配一个随机密钥。

  2. 从数据快照启动, 请运行以下命令:

curl -L https://t.iotex.me/mainnet-data-latest > $IOTEX_HOME/data.tar.gz
tar -xzf data.tar.gz

或者 请运行以下命令

curl -L https://storage.googleapis.com/blockchain-archive/mainnet-data-latest.tar.gz > $IOTEX_HOME/data.tar.gz
tar -xzf data.tar.gz

我们将会每天更新一次数据快照。对于高级用户,可以考虑以下三个选项:

  • 选项1:如果计划将节点作为网关运行,请使用带有索引数据的快照:https://t.iotex.me/mainnet-data-with-idx-latest.

  • 选择2:如果计划从 0 区块高度开始同步链上数据而不使用来自以太坊旧的节点代表数据,执行以下命令设置旧的节点代表数据:

curl -L https://storage.googleapis.com/blockchain-golden/poll.mainnet.tar.gz > $IOTEX_HOME/poll.tar.gz; tar -xzf $IOTEX_HOME/poll.tar.gz --directory $IOTEX_HOME/data
  • 选择3:如果计划从 0 区块高度开始同步链并从以太坊获取旧的节点代表数据,请更改 config.yaml 中的 gravityChainAPIs并在支持以太坊存档模式的情况下使用您的 infura 密钥,或将 API 端点更改为您有权限访问的以太坊存档节点。
  1. 运行以下命令以启动节点:
docker run -d --restart on-failure --name iotex \
        -p 4689:4689 \
        -p 8080:8080 \
        -v=$IOTEX_HOME/data:/var/data:rw \
        -v=$IOTEX_HOME/log:/var/log:rw \
        -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
        -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
        iotex/iotex-core:v2.1.0 \
        iotex-server \
        -config-path=/etc/iotex/config_override.yaml \
        -genesis-path=/etc/iotex/genesis.yaml

现在您的节点应该已经被成功启动了!

如果您还希望使节点成为网关,可以处理用户的API请求,请改用以下命令:

docker run -d --restart on-failure --name iotex \
        -p 4689:4689 \
        -p 14014:14014 \
        -p 8080:8080 \
        -v=$IOTEX_HOME/data:/var/data:rw \
        -v=$IOTEX_HOME/log:/var/log:rw \
        -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
        -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
        iotex/iotex-core:v2.1.0 \
        iotex-server \
        -config-path=/etc/iotex/config_override.yaml \
        -genesis-path=/etc/iotex/genesis.yaml \
        -plugin=gateway
  1. 确保您的防火墙和负载均衡器(如果有)上的TCP端口4689, 8080(14014如果节点启用了网关)已打开。

这不是我们推荐的启动 IoTeX 节点的首选方式

  1. 使用以下命令设置环境: 与加入主网的步骤 2 相同

  2. 构建服务器二进制文件:

git clone https://github.com/iotexproject/iotex-core.git
cd iotex-core
git checkout v2.1.0

// optional
export GOPROXY=https://goproxy.io
go mod download
make clean build-all
cp ./bin/server $IOTEX_HOME/iotex-server
  1. 编辑配置 与加入主网的步骤 3 相同。如果不将它们放在 /var/data/ 下,请确保将 config.yaml 中的所有数据库路径更新到正确的位置

  2. 从数据快照启动 与加入主网的步骤 4 相同

  3. 运行以下命令以启动节点:

nohup $IOTEX_HOME/iotex-server \
        -config-path=$IOTEX_HOME/etc/config.yaml \
        -genesis-path=$IOTEX_HOME/etc/genesis.yaml &

现在此节点应该已成功启动。

如果您还希望使节点成为网关,可以处理用户的API请求,请改用以下命令:

nohup $IOTEX_HOME/iotex-server \
        -config-path=$IOTEX_HOME/etc/config.yaml \
        -genesis-path=$IOTEX_HOME/etc/genesis.yaml \
        -plugin=gateway &
  1. 确保您的防火墙和负载均衡器(如果有)上的TCP端口4689, 8080(14014如果节点启用了网关)已打开。

你可以安装 ioctl (用于与IoTeX区块链交互的命令行工具)

curl https://raw.githubusercontent.com/iotexproject/iotex-core/master/install-cli.sh | sh

您可以将ioctl指向您的节点(如果您启用网关插件):

ioctl config set endpoint localhost:14014 --insecure

或者您可以将它指向我们的API节点:

  • 主网安全端口: api.iotex.one:443
  • 主网非安全端口: api.iotex.one:80

如果你准备使用非安全端口,你需要添加--insecure参数。

生成密钥:

ioctl account create

获得当前epoch共识节点的数量:

ioctl node delegate

参考 CLI document 获得更多细节

其他常用命令

获取奖励:

ioctl action claim ${amountInIOTX} -l 10000 -p 1 -s ${ioAddress|alias}

通过Tube服务将IoTeX令牌交换到以太坊上的ERC20令牌:

ioctl action invoke io1p99pprm79rftj4r6kenfjcp8jkp6zc6mytuah5 ${amountInIOTX} -s ${ioAddress|alias} -l 400000 -p 1 -b d0e30db0

单击 IoTeX Tube docs 获取tube服务的详细文档。

检查节点日志

可以使用以下命令访问容器(container)日志。

docker logs iotex

内容可以用以下命令筛选:

docker logs -f --tail 100 iotex |grep --color -E "epoch|height|error|rolldposctx"

停止和删除容器(container)

使用--name=iotex启动container时,你必须在产生一个新的container之前先移除之前的container

docker stop iotex
docker rm iotex

暂停和重启container

可以使用以下命令“停止”和“重新启动”container:

docker stop iotex
docker start iotex

确保你已经设置了$IOTEX_HOME,并且所有文件(configs、dbs 等)都放在正确的位置(请参阅加入“主网”)。

请使用以下命令升级主网节点。 默认情况下,它将升级到最新的主网版本:

sudo bash # If your docker requires root privilege
bash <(curl -s https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/scripts/setup_fullnode.sh)

在主网上启用 网关

sudo bash # If your docker requires root privilege
bash <(curl -s https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/scripts/setup_fullnode.sh) plugin=gateway

如果需要停止自动升级 cron job 和 iotex 服务器程序,您可以运行以下指令:

sudo bash # If your docker requires root privilege
bash <(curl -s https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/scripts/stop_fullnode.sh)

为服务更多详细链信息的 API 请求,启用网关插件的节点将执行额外的索引。例如区块中的操作数量或通过哈希查询操作信息。

请参考 此处 了解常见问题。