最新版本请参考 https://github.com/iotexproject/iotex-bootstrap/blob/master/README.md
以下是当前我们使用的软件版本:
- 主网:v2.1.0
如果你要启动节点加入测试网,请点击加入测试网
以下是启动 IoTeX 节点的推荐方式
- 提取(pull) docker镜像
docker pull iotex/iotex-core:v2.1.0
- 使用以下命令设置运行环境
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
-
编辑
$IOTEX_HOME/etc/config.yaml
, 查找externalHost
和producerPrivKey
, 取消注释行并填写您的外部 IP 和私钥。如果producerPrivKey
放空,你的节点将被分配一个随机密钥。 -
从数据快照启动, 请运行以下命令:
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 端点更改为您有权限访问的以太坊存档节点。
- 运行以下命令以启动节点:
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
- 确保您的防火墙和负载均衡器(如果有)上的TCP端口4689, 8080(14014如果节点启用了网关)已打开。
这不是我们推荐的启动 IoTeX 节点的首选方式
-
使用以下命令设置环境: 与加入主网的步骤 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
-
编辑配置 与加入主网的步骤 3 相同。如果不将它们放在
/var/data/
下,请确保将 config.yaml 中的所有数据库路径更新到正确的位置 -
从数据快照启动 与加入主网的步骤 4 相同
-
运行以下命令以启动节点:
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 &
- 确保您的防火墙和负载均衡器(如果有)上的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"
使用--name=iotex
启动container时,你必须在产生一个新的container之前先移除之前的container
docker stop iotex
docker rm iotex
可以使用以下命令“停止”和“重新启动”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 请求,启用网关插件的节点将执行额外的索引。例如区块中的操作数量或通过哈希查询操作信息。
请参考 此处 了解常见问题。