三种方式
1. 使用exchaind+快照
快照链接
# 1. build exchaind 使用release最新版本
# latest_version可以通过链接 https://github.com/okx/exchain/releases/latest 查看
git clone -b ${latest_version} https://github.com/okx/exchain.git
cd exchain
make mainnet # 编译主网(默认rocksdb)
注1:务必用 make mainnet 编译
注2:latest_version可以通过链接 https://github.com/okx/exchain/releases/latest 查看
注3:如果您第一次运行exchaind,请先安装rocksdb,我们已经提供了一个rocksdb的安装命令make rocksdb
,您可以进入exchain文件夹进行使用。
注4:如果在编译rocksdb过程中遇到问题,请参考该链接
# 2. Initialize exchain node configurations
export EXCHAIND_PATH=~/.exchaind (或者其他目录)
exchaind init your_custom_moniker --chain-id exchain-66 --home ${EXCHAIND_PATH}
# 3. download snapshot
rm -rf ${EXCHAIND_PATH}/data
cd ${EXCHAIND_PATH}
wget https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/okc/snapshot/mainnet-$version-$date-$height-rocksdb.tar.gz
tar -zxvf mainnet-$version-$date-$height-rocksdb.tar.gz
# 4. start exchaind
# rpc节点启动(--chain-id默认为exchain-66,--db_backend默认为rocksdb)
exchaind start --home ${EXCHAIND_PATH}
# 超级节点(如果是validator) 启动
exchaind start --node-mode=val --home ${EXCHAIND_PATH}
# 归档节点
exchaind start --pruning=nothing --iavl-enable-async-commit=false --fast-query=false --home ${EXCHAIND_PATH}
2. 使用exchaind+创世块文件
# 1. build exchain 使用release最新版本
# latest_version可以通过链接 https://github.com/okx/exchain/releases/latest 查看
git clone -b ${latest_version} https://github.com/okx/exchain.git
cd exchain
make mainnet # 编译主网,默认WITH_ROCKSDB=true
注1:务必用 make mainnet 编译
注2:latest_version可以通过链接 https://github.com/okx/exchain/releases/latest 查看
注3:如果您第一次运行exchaind,请先安装rocksdb,我们已经提供了一个rocksdb的安装命令make rocksdb
,您可以进入exchain文件夹进行使用。
注4:如果在编译rocksdb过程中遇到问题,请参考该链接
# 2. Initialize exchain node configurations
export EXCHAIND_PATH=~/.exchaind (或者其他目录)
exchaind init your_custom_moniker --chain-id exchain-66 --home ${EXCHAIND_PATH}
# 3. download genesis.json
wget https://raw.githubusercontent.com/okx/mainnet/main/genesis.json -O ${EXCHAIND_PATH}/config/genesis.json
# 4. start exchaind
# rpc节点启动(--chain-id默认为exchain-66,--db_backend默认为rocksdb)
exchaind start --home ${EXCHAIND_PATH}
# 超级节点(如果是validator) 启动
exchaind start --node-mode=val --home ${EXCHAIND_PATH}
# 归档节点
exchaind start --pruning=nothing --iavl-enable-async-commit=false --fast-query=false --home ${EXCHAIND_PATH}
注意
exchaind会将每个高度的状态增量放到内存,经过N个区块高度后,统一进行持久化。
如果exchaind节点强制退出,再次启动exchaind节点时,会导致状态数据丢失,需要进行数据修复,因此:
强烈建议您不要强制退出exchaind节点。
如果使用的Docker,强烈建议您在容器完全停止后,再进行其他操作。
操作步骤
检查是否正常退出
在执行完退出命令后,如果日志中出现如下记录表明本次优雅退出,不会出现数据损坏
I[2022-11-19|02:58:37.689][19369] exiting.... module=main
3. 使用docker+快照启动
# 1. Initialize exchain node configurations
export EXCHAIND_PATH=~/.exchaind (或者其他目录)
exchaind init your_custom_moniker --chain-id exchain-66 --home ${EXCHAIND_PATH}
# 2. download snapshot
rm -rf ${EXCHAIND_PATH}/data
cd ${EXCHAIND_PATH}
# 该镜像使用rocksdb数据,所以要下载主网对应的rocksdb快照。
wget https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/okc/snapshot/mainnet-$version-$date-$height-rocksdb.tar.gz
tar -zxvf mainnet-$version-$date-$height-rocksdb.tar.gz
# 3. download the docker image
docker pull okexchain/fullnode-mainnet:latest # 该镜像使用rocksdb快照数据。
# 4. run docker based the snapshot downloaded in the previous step Start based on snapshot.
docker run -d --name exchain-mainnet-fullnode -v ~/.exchaind/data:/root/.exchaind/data/ -p 8545:8545 -p 26656:26656 okexchain/fullnode-mainnet:latest