From a62809a460cacecb4922eca53f50fe140cbe5e6f Mon Sep 17 00:00:00 2001 From: envestcc Date: Thu, 25 Dec 2025 08:52:05 +0800 Subject: [PATCH 1/3] v2.3.3 release --- README.md | 16 ++++++------ README_CN.md | 16 ++++++------ README_CN_testnet.md | 14 +++++----- README_testnet.md | 14 +++++----- changelog/v2.3.3-release-note.md | 45 ++++++++++++++++++++++++++++++++ config_archive_mainnet.yaml | 1 - 6 files changed, 75 insertions(+), 31 deletions(-) create mode 100644 changelog/v2.3.3-release-note.md diff --git a/README.md b/README.md index 4e3922a..d36fd70 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Here are the software versions we use: -- MainNet: v2.3.2 +- MainNet: v2.3.3 ## Join TestNet To start and run a testnet node, please click [**Join Testnet**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README_testnet.md) @@ -32,7 +32,7 @@ This is the recommended way to start an IoTeX node 1. Pull the docker image: ``` -docker pull iotex/iotex-core:v2.3.2 +docker pull iotex/iotex-core:v2.3.3 ``` 2. Set the environment with the following commands: @@ -47,9 +47,9 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/trie.db.patch > $IOTEX_HOME/data/trie.db.patch +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/trie.db.patch > $IOTEX_HOME/data/trie.db.patch ``` 3. Edit `$IOTEX_HOME/etc/config.yaml`, look for `externalHost` and `producerPrivKey`, uncomment the lines and fill in your external IP and private key. If you leave `producerPrivKey` empty, your node will be assgined with a random key. @@ -121,7 +121,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -142,7 +142,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -166,7 +166,7 @@ Same as [Join MainNet](#mainnet) step 2 ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v2.3.2 +git checkout v2.3.3 // optional export GOPROXY=https://goproxy.io diff --git a/README_CN.md b/README_CN.md index 537fb28..7e46aac 100644 --- a/README_CN.md +++ b/README_CN.md @@ -18,7 +18,7 @@ 以下是当前我们使用的软件版本: -- 主网:v2.3.2 +- 主网:v2.3.3 ## 加入测试网 如果你要启动节点加入测试网,请点击[**加入测试网**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README_CN_testnet.md) @@ -32,7 +32,7 @@ 1. 提取(pull) docker镜像 ``` -docker pull iotex/iotex-core:v2.3.2 +docker pull iotex/iotex-core:v2.3.3 ``` 2. 使用以下命令设置运行环境 @@ -47,9 +47,9 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/trie.db.patch > $IOTEX_HOME/data/trie.db.patch +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/trie.db.patch > $IOTEX_HOME/data/trie.db.patch ``` 3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost` 和 `producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。 @@ -110,7 +110,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -128,7 +128,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -148,7 +148,7 @@ docker run -d --restart on-failure --name iotex \ ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v2.3.2 +git checkout v2.3.3 // optional export GOPROXY=https://goproxy.io diff --git a/README_CN_testnet.md b/README_CN_testnet.md index 55d9e80..6f08147 100644 --- a/README_CN_testnet.md +++ b/README_CN_testnet.md @@ -17,7 +17,7 @@ 以下是当前我们使用的软件版本: -- 测试网:v2.3.2 +- 测试网:v2.3.3 **Note** 如果你要启动节点加入主网,请点击[**加入主网**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README_CN.md) @@ -31,7 +31,7 @@ 1. 提取(pull) docker镜像 ``` -docker pull iotex/iotex-core:v2.3.2 +docker pull iotex/iotex-core:v2.3.3 ``` 2. 使用以下命令设置运行环境 @@ -46,8 +46,8 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml ``` 3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost` 和 `producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。 @@ -110,7 +110,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -128,7 +128,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -148,7 +148,7 @@ docker run -d --restart on-failure --name iotex \ ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v2.3.2 +git checkout v2.3.3 // optional export GOPROXY=https://goproxy.io diff --git a/README_testnet.md b/README_testnet.md index a0c55ea..ab836e2 100644 --- a/README_testnet.md +++ b/README_testnet.md @@ -18,7 +18,7 @@ Here are the software versions we use: -- TestNet: v2.3.2 +- TestNet: v2.3.3 **Note** To start and run a mainnet node, please click [**Join Mainnet**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README.md) @@ -31,7 +31,7 @@ This is the recommended way to start an IoTeX node 1. Pull the docker image: ``` -docker pull iotex/iotex-core:v2.3.2 +docker pull iotex/iotex-core:v2.3.3 ``` 2. Set the environment with the following commands: @@ -46,8 +46,8 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.2/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml ``` 3. Edit `$IOTEX_HOME/etc/config.yaml`, look for `externalHost` and `producerPrivKey`, uncomment the lines and fill in your external IP and private key. If you leave `producerPrivKey` empty, your node will be assgined with a random key. @@ -121,7 +121,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -141,7 +141,7 @@ docker run -d --restart on-failure --name iotex \ -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.3.2 \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -162,7 +162,7 @@ Same as [Join TestNet](#testnet) step 2 ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v2.3.2 +git checkout v2.3.3 // optional export GOPROXY=https://goproxy.io diff --git a/changelog/v2.3.3-release-note.md b/changelog/v2.3.3-release-note.md new file mode 100644 index 0000000..f608421 --- /dev/null +++ b/changelog/v2.3.3-release-note.md @@ -0,0 +1,45 @@ +# v2.3.3 Release Note + +## Summary + +v2.3.3 is a major maintenance release that introduces official support for Archive Mode and Prune Mode, providing flexible storage options for different node types. This release also includes significant block synchronization improvements, API enhancements, and critical bug fixes to improve the stability and performance of the IoTeX network. + +**Note:** +There's no change to the mainnet config.yaml and genesis.yaml. You only need to +restart your node with the new v2.3.3 image. + +## Key Features and Enhancements + +### 1. Archive Mode Support +v2.3.3 officially introduces **Archive Mode**, which stores complete historical state data for all blocks. This mode is essential for applications that need to query historical blockchain states at any point in time. + +### 2. Prune Mode Support +v2.3.3 introduces **Prune Mode**, which maintains only the most recent 256 blocks of historical state data. This mode significantly reduces storage requirements while still providing recent state access for most operational needs. + +### 3. Block Synchronization Optimization +Significant improvements have been made to the block synchronization mechanism to enhance sync speed, reliability, and network efficiency. + +### 4. API and Compatibility Enhancements +Enhanced API support and EVM compatibility to improve developer experience and integration capabilities. + +- **Web3 API for RollDPoS Protocol**: Added comprehensive Web3 API support for the RollDPoS (Roll-Delegated Proof of Stake) protocol, enabling developers to interact with consensus-related data through standard Web3 interfaces. +- **Web3 API for Poll Protocol**: Implemented ETH ABI compatibility for the poll protocol, allowing seamless integration with Ethereum tools and improving interoperability with EVM-based services. + +### 5. Bug Fixes +Critical bug fixes to improve system stability and reliability. + +- **WebSocket Connection Stability**: Fixed a double-close issue in WebSocket connections that could lead to connection instability and unexpected disconnections for clients using WebSocket subscriptions. +- **Query Range Limits**: Implemented configurable query range limitations to prevent excessive resource consumption and improve API response times. + + +## Upgrade Priority +v2.3.3 is a maintenance release, so nodes are recommended to upgrade for better performance and stability. + +| Node type | Action | +| ---------- | ------------- | +| Delegate | Recommended | +| Fullnode | Recommended | +| API node | Recommended | + +## Commits +https://github.com/iotexproject/iotex-core/compare/v2.3.2...v2.3.3 diff --git a/config_archive_mainnet.yaml b/config_archive_mainnet.yaml index eef7a9c..a2b9bcb 100644 --- a/config_archive_mainnet.yaml +++ b/config_archive_mainnet.yaml @@ -12,7 +12,6 @@ network: chain: # If you are a delegate, make sure producerPrivKey is the key for the operator address you have registered. # producerPrivKey: SET YOUR PRIVATE KEY HERE (e.g., 96f0aa5e8523d6a28dc35c927274be4e931e74eaa720b418735debfcbfe712b8) - enableStakingIndexer: true chainDBPath: "/var/iotex-archive/data/chain.db" trieDBPatchFile: "/var/iotex-archive/data/trie.db.patch" trieDBPath: "/var/iotex-archive/data/trie.db" From e324786170e5d7e7467b7c6f9eb847fea8610101 Mon Sep 17 00:00:00 2001 From: envestcc Date: Sun, 4 Jan 2026 10:10:26 +0800 Subject: [PATCH 2/3] update archive doc and snapshot url --- README.md | 44 ++++++------------------------- README_CN.md | 34 ++++++------------------ README_CN_testnet.md | 37 ++++++-------------------- README_testnet.md | 45 +++++--------------------------- archive-node.md | 24 +++++++++++------ changelog/v2.3.3-release-note.md | 5 ++++ 6 files changed, 52 insertions(+), 137 deletions(-) diff --git a/README.md b/README.md index d36fd70..8e10ce7 100644 --- a/README.md +++ b/README.md @@ -57,52 +57,24 @@ curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/trie. 4. Start from a **baseline snapshot** (rather than sync from the genesis block), run the following commands: ``` -curl -L https://t.iotex.me/mainnet-data-snapshot-latest > $IOTEX_HOME/data.tar.gz +curl -L https://storage.iotex.io/mainnet-data-e-20251228-042459-core.tar.gz > $IOTEX_HOME/data.tar.gz ``` -or download from another website: +5. Extract the data package: ``` -curl -L https://storage.iotex.io/mainnet-data-snapshot-latest.tar.gz > $IOTEX_HOME/data.tar.gz -``` - -**We will update the baseline snapshot on the 1st of every month**. - -5. Download the latest **incremental data** (Optional): - -``` -curl -L https://storage.iotex.io/mainnet-data-incr-latest.tar.gz > $IOTEX_HOME/incr.tar.gz -``` - -**We will update the incremental snapshot everyday**. - -We also provide incremental packages from the **past 7 days**. -You can choose any day within this period. -For example, if you want to use the data from April 27, 2025, the incremental package file name will be `mainnet-data-incr-2025-04-27.tar.gz`. - -The file named **latest** corresponds to today’s data. - -To restore, you only need the full baseline package of the same month and the incremental package of the selected date. - -6. Extract the data packages in the correct order. -It is essential to extract the baseline package first, followed by the incremental package. - -``` -tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ && tar -xzf $IOTEX_HOME/incr.tar.gz -C $IOTEX_HOME/data/ +tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ ``` For advanced users, there are three options to consider: - Option 1: If you plan to run your node as a [gateway](#gateway), please use the snapshot with index data: -https://t.iotex.me/mainnet-data-with-idx-latest. - - or download from another website: ``` -curl -L https://storage.iotex.io/mainnet-data-with-idx-latest.tar.gz > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz +curl -L https://storage.iotex.io/mainnet-data-e-20251228-042459-gateway.tar.gz > $IOTEX_HOME/data_index.tar.gz +tar -xzf data_index.tar.gz ``` -> mainnet-data-with-idx-latest.tar.gz will be update on Monday every week +If you need to run your node in archive mode to provide full historical data, please go to [Archive Node](./archive-node.md). - Optional 2: If you only want to sync chain data from 0 height without relaying on legacy delegate election data from Ethereum, you can setup legacy delegate election data with following command: ```bash @@ -111,7 +83,7 @@ curl -L https://storage.iotex.io/poll.mainnet.tar.gz > $IOTEX_HOME/poll.tar.gz; - Optional 3: If you want to sync the chain from 0 height and also fetching legacy delegate election data from Ethereum, please change the `gravityChainAPIs` in config.yaml to use your infura key with Ethereum archive mode supported or change the API endpoint to an Ethereum archive node which you can access. -5. Run the following command to start a node: +6. Run the following command to start a node: ``` docker run -d --restart on-failure --name iotex \ @@ -149,7 +121,7 @@ docker run -d --restart on-failure --name iotex \ -plugin=gateway ``` -6. Ensure that TCP ports `4689` and `8080` are open on your firewall and load balancer (if applicable). Additionally, if you intend to use the node as a gateway, make sure the following ports are open: +7. Ensure that TCP ports `4689` and `8080` are open on your firewall and load balancer (if applicable). Additionally, if you intend to use the node as a gateway, make sure the following ports are open: - `14014` for the IoTeX native gRPC API - `15014` for the Ethereum JSON API - `16014` for the Ethereum WebSocket diff --git a/README_CN.md b/README_CN.md index 7e46aac..c17ed08 100644 --- a/README_CN.md +++ b/README_CN.md @@ -56,42 +56,24 @@ curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/trie. 4. 下载全量数据快照, 请运行以下命令: ``` -curl -L https://t.iotex.me/mainnet-data-snapshot-latest > $IOTEX_HOME/data.tar.gz +curl -L https://storage.iotex.io/mainnet-data-e-20251228-042459-core.tar.gz > $IOTEX_HOME/data.tar.gz ``` -或者 请运行以下命令 -``` -curl -L https://storage.iotex.io/mainnet-data-snapshot-latest.tar.gz > $IOTEX_HOME/data.tar.gz -``` - -**我们将会在每月一日更新全量数据快照**。 - -5. 下载最新增量数据, 请运行以下命令(可选): - -``` -curl -L https://storage.iotex.io/mainnet-data-incr-latest.tar.gz > $IOTEX_HOME/incr.tar.gz -``` - -**我们将会每天更新一次增量数据快照**。 -同时我们提供7日内的增量包下载,你可以选择这期间中任意一天。比如你想使用2025.4.27日的数据, 那么增量包的文件名称为`mainnet-data-incr-2025-04-27.tar.gz`, latest为今日的数据。 还原的时候只需当月的全量包 + 当日的增量包即可。 - -6. 解压数据包, 请注意解压顺序, 必须先解压全量包, 再解压增量包 +5. 解压数据包 ``` -tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ && tar -xzf $IOTEX_HOME/incr.tar.gz -C $IOTEX_HOME/data/ +tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ ``` 对于高级用户,可以考虑以下三个选项: -- 选项1:如果计划将节点作为[网关](#gateway)运行,请使用带有索引数据的快照:https://t.iotex.me/mainnet-data-with-idx-latest. - - 或从另一个站点下载: +- 选项1:如果计划将节点作为[网关](#gateway)运行,还需要额外下载带有索引数据的快照 ``` -curl -L https://storage.iotex.io/mainnet-data-with-idx-latest.tar.gz > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz +curl -L https://storage.iotex.io/mainnet-data-e-20251228-042459-gateway.tar.gz > $IOTEX_HOME/data_index.tar.gz +tar -xzf data_index.tar.gz ``` -> mainnet-data-with-idx-latest.tar.gz 在每周一会打新的压缩包 +如果需要以 archive 模式运行提供全量历史数据,请转到 [Archive Node](./archive-node.md) - 选择2:如果计划从 0 区块高度开始同步链上数据而不使用来自以太坊旧的节点代表数据,执行以下命令设置旧的节点代表数据: ``` @@ -100,7 +82,7 @@ curl -L https://storage.iotex.io/poll.mainnet.tar.gz > $IOTEX_HOME/poll.tar.gz; - 选择3:如果计划从 0 区块高度开始同步链并从以太坊获取旧的节点代表数据,请更改 config.yaml 中的 `gravityChainAPIs`并在支持以太坊存档模式的情况下使用您的 infura 密钥,或将 API 端点更改为您有权限访问的以太坊存档节点。 -7. 运行以下命令以启动节点: +6. 运行以下命令以启动节点: ``` docker run -d --restart on-failure --name iotex \ diff --git a/README_CN_testnet.md b/README_CN_testnet.md index 6f08147..9d59c70 100644 --- a/README_CN_testnet.md +++ b/README_CN_testnet.md @@ -53,46 +53,25 @@ curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/genes 3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost` 和 `producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。 4. 下载全量数据快照, 请运行以下命令: -``` -curl -L https://t.iotex.me/testnet-data-snapshot-latest > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz -``` -或者 请运行以下命令 -``` -curl -L https://storage.iotex.io/testnet-data-snapshot-latest.tar.gz > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz -``` - -**我们将会在每月一日更新全量数据快照**。 - -5. 下载最新增量数据, 请运行以下命令(可选): ``` -curl -L https://storage.iotex.io/testnet-data-incr-latest.tar.gz > $IOTEX_HOME/incr.tar.gz +curl -L https://storage.iotex.io/testnet-data-e-20260105-042459-core.tar.gz > $IOTEX_HOME/data.tar.gz ``` -**我们将会每天更新一次增量数据快照**。 - -同时我们提供7日内的增量包下载,你可以选择这期间中任意一天。比如你想使用2025.4.27日的数据, 那么增量包的文件名称为`testnet-data-incr-2025-04-27.tar.gz`, latest为今日的数据。 还原的时候只需当月的全量包 + 当日的增量包即可。 - -6. 解压数据包, 请注意解压顺序, 必须先解压全量包, 再解压增量包 +5. 解压数据包 ``` -tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ && tar -xzf $IOTEX_HOME/incr.tar.gz -C $IOTEX_HOME/data/ +tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ ``` 对于高级用户,可以考虑以下三个选项: -- 选项1:如果计划将节点作为[网关](#gateway)运行,请使用带有索引数据的快照:https://t.iotex.me/testnet-data-with-idx-latest. - - 或从另一个站点下载: +- 选项1:如果计划将节点作为[网关](#gateway)运行,请额外下载带有索引数据的快照 ``` -curl -L https://storage.iotex.io/testnet-data-with-idx-latest.tar.gz > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz +curl -L https://storage.iotex.io/testnet-data-e-20260105-042459-gateway.tar.gz > $IOTEX_HOME/data_index.tar.gz +tar -xzf data_index.tar.gz ``` -> testnet-data-with-idx-latest.tar.gz 在每周一会打新的压缩包 - - 选择2:如果计划从 0 区块高度开始同步链上数据而不使用来自以太坊旧的节点代表数据,执行以下命令设置旧的节点代表数据: ``` curl -L https://storage.iotex.io/poll.testnet.tar.gz > $IOTEX_HOME/poll.tar.gz; tar -xzf $IOTEX_HOME/poll.tar.gz --directory $IOTEX_HOME/data @@ -100,7 +79,7 @@ curl -L https://storage.iotex.io/poll.testnet.tar.gz > $IOTEX_HOME/poll.tar.gz; - 选择3:如果计划从 0 区块高度开始同步链并从以太坊获取旧的节点代表数据,请更改 config.yaml 中的 `gravityChainAPIs`并在支持以太坊存档模式的情况下使用您的 infura 密钥,或将 API 端点更改为您有权限访问的以太坊存档节点。 -5. 运行以下命令以启动节点: +6. 运行以下命令以启动节点: ``` docker run -d --restart on-failure --name iotex \ @@ -135,7 +114,7 @@ docker run -d --restart on-failure --name iotex \ -plugin=gateway ``` -6. 确保您的防火墙和负载均衡器(如果有)上的TCP端口4689, 8080(14014如果节点启用了网关)已打开。 +7. 确保您的防火墙和负载均衡器(如果有)上的TCP端口4689, 8080(14014如果节点启用了网关)已打开。 ## 不使用Docker加入测试网 diff --git a/README_testnet.md b/README_testnet.md index ab836e2..bd09053 100644 --- a/README_testnet.md +++ b/README_testnet.md @@ -55,55 +55,24 @@ curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v2.3.3/genes 4. Start from a **baseline snapshot** (rather than sync from the genesis block), run the following commands: ``` -curl -L https://t.iotex.me/testnet-data-snapshot-latest > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz +curl -L https://storage.iotex.io/testnet-data-e-20260105-042459-core.tar.gz > $IOTEX_HOME/data.tar.gz ``` -or download from another website: -``` -curl -L https://storage.iotex.io/testnet-data-snapshot-latest.tar.gz > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz -``` - -**We will update the baseline snapshot on the 1st of every month**. - -5. Download the latest **incremental data** (Optional): - -``` -curl -L https://storage.iotex.io/testnet-data-incr-latest.tar.gz > $IOTEX_HOME/incr.tar.gz -``` - -**We will update the incremental snapshot everyday**. - -We also provide incremental packages from the **past 7 days**. -You can choose any day within this period. -For example, if you want to use the data from April 27, 2025, the incremental package file name will be `testnet-data-incr-2025-04-27.tar.gz`. - -The file named **latest** corresponds to today’s data. - -To restore, you only need the full baseline package of the same month and the incremental package of the selected date. - -6. Extract the data packages in the correct order. -It is essential to extract the baseline package first, followed by the incremental package. +5. Extract the data package: ``` -tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ && tar -xzf $IOTEX_HOME/incr.tar.gz -C $IOTEX_HOME/data/ +tar -xzf $IOTEX_HOME/data.tar.gz -C $IOTEX_HOME/data/ ``` For advanced users, there are three options to consider: - Option 1: If you plan to run your node as a [gateway](#gateway), please use the snapshot with index data: -https://t.iotex.me/testnet-data-with-idx-latest. - - or download from another website: ``` -curl -L https://storage.iotex.io/testnet-data-with-idx-latest.tar.gz > $IOTEX_HOME/data.tar.gz -tar -xzf data.tar.gz +curl -L https://storage.iotex.io/testnet-data-e-20260105-042459-gateway.tar.gz > $IOTEX_HOME/data_index.tar.gz +tar -xzf data_index.tar.gz ``` -> testnet-data-with-idx-latest.tar.gz will be update on Monday every week - - Optional 2: If you only want to sync chain data from 0 height without relaying on legacy delegate election data from Ethereum, you can setup legacy delegate election data with following command: ```bash curl -L https://storage.iotex.io/poll.testnet.tar.gz > $IOTEX_HOME/poll.tar.gz; tar -xzf $IOTEX_HOME/poll.tar.gz --directory $IOTEX_HOME/data @@ -111,7 +80,7 @@ curl -L https://storage.iotex.io/poll.testnet.tar.gz > $IOTEX_HOME/poll.tar.gz; - Optional 3: If you want to sync the chain from 0 height and also fetching legacy delegate election data from Ethereum, please change the `gravityChainAPIs` in config.yaml to use your infura key with Ethereum archive mode supported or change the API endpoint to an Ethereum archive node which you can access. -5. Run the following command to start a node: +6. Run the following command to start a node: ``` docker run -d --restart on-failure --name iotex \ @@ -148,7 +117,7 @@ docker run -d --restart on-failure --name iotex \ -plugin=gateway ``` -6. Make sure TCP ports 4689, 8080 (also 14014 if used) are open on your firewall and load balancer (if any). +7. Make sure TCP ports 4689, 8080 (also 14014 if used) are open on your firewall and load balancer (if any). ## Join Testnet without using Docker This is not the preferred way to start an IoTeX node diff --git a/archive-node.md b/archive-node.md index ec9e8b4..a32cf5b 100644 --- a/archive-node.md +++ b/archive-node.md @@ -8,8 +8,7 @@ time the tx was originally executed. This archive node is an **optimized version** with significant performance improvements and storage optimizations. However, please note that: -- **Data files from previous archive node versions are NOT compatible** with this optimized version -- If you are upgrading from a previous archive node setup, you **cannot** reuse existing data files +- **Data files from any previous archive node builds (including earlier test/archive branches) are NOT compatible**, so you **cannot** reuse existing data files - You **MUST** either: - **Download the provided snapshot data** (recommended for faster setup) - Or **perform a complete resync from genesis** (time-consuming but ensures full verification) @@ -19,9 +18,12 @@ The following instrcutions will guide you through setting up an IoTeX archive no - [Important Notice - Optimized Archive Node Version](#important-notice---optimized-archive-node-version) - [System Requirements](#system-requirements) - [Prepare Home Directory](#prepare-home-directory) - - [Download Data(Optional)](#download-data) + - [Download Data](#download-data) - [Running Node using Docker](#running-node-using-docker) - [Running Node using Binary](#running-node-using-binary) + - [Pre-Requisites](#pre-requisites) + - [Build Binary](#build-binary) + - [Start Node](#start-node) ## System Requirements @@ -63,10 +65,16 @@ need to download and uncompress this file. In the $IOTEX_HOME folder, run the following commands: ``` #download the data files and uncompress it -curl -LO https://storage.iotex.io/mainnet-archive-data-e-20250625.tar.gz -tar -xzf mainnet-archive-data-e-20250625.tar.gz +curl -LO https://storage.iotex.io/mainnet-data-e-20251228-042459-core.tar.gz +tar -xzf mainnet-data-e-20251228-042459-core.tar.gz + +curl -LO https://storage.iotex.io/mainnet-data-e-20251228-042459-gateway.tar.gz +tar -xzf mainnet-data-e-20251228-042459-gateway.tar.gz + +curl -LO https://storage.iotex.io/mainnet-data-e-20251228-042459-trie-history.tar.gz +tar -xzf mainnet-data-e-20251228-042459-trie-history.tar.gz ``` ->Note: the snapshot has a size of 300GB at this moment. +>Note: the snapshot has a size of 450GB at this moment. Please take measures (for example use `nohup` at the front) to prevent possible interruption of the download process. After successful download and uncompress operations, the $IOTEX_HOME/data folder @@ -138,7 +146,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/iotex-archive/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:archive \ + iotex/iotex-core:v2.3.3 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -181,7 +189,7 @@ git clone https://github.com/iotexproject/iotex-core.git cd iotex-core #checkout the code branch for archive node -git checkout origin/archive +git checkout v2.3.3 #build binary make build diff --git a/changelog/v2.3.3-release-note.md b/changelog/v2.3.3-release-note.md index f608421..17d6bae 100644 --- a/changelog/v2.3.3-release-note.md +++ b/changelog/v2.3.3-release-note.md @@ -13,9 +13,14 @@ restart your node with the new v2.3.3 image. ### 1. Archive Mode Support v2.3.3 officially introduces **Archive Mode**, which stores complete historical state data for all blocks. This mode is essential for applications that need to query historical blockchain states at any point in time. +To enable archive mode, set `chain.historyIndexPath` in `config.yaml` to the directory where historical state files will be stored. + + ### 2. Prune Mode Support v2.3.3 introduces **Prune Mode**, which maintains only the most recent 256 blocks of historical state data. This mode significantly reduces storage requirements while still providing recent state access for most operational needs. +To enable prune mode, first enable archive mode, then set `chain.historyBlockRetention` in `config.yaml` to the number of recent blocks whose state you want to retain. + ### 3. Block Synchronization Optimization Significant improvements have been made to the block synchronization mechanism to enhance sync speed, reliability, and network efficiency. From 6fb56c1b0345013645276f5e5dc7bc2dd3be5d69 Mon Sep 17 00:00:00 2001 From: envestcc Date: Tue, 6 Jan 2026 16:40:34 +0800 Subject: [PATCH 3/3] note to update config yaml --- changelog/v2.3.3-release-note.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog/v2.3.3-release-note.md b/changelog/v2.3.3-release-note.md index 17d6bae..3ff2a31 100644 --- a/changelog/v2.3.3-release-note.md +++ b/changelog/v2.3.3-release-note.md @@ -8,6 +8,8 @@ v2.3.3 is a major maintenance release that introduces official support for Archi There's no change to the mainnet config.yaml and genesis.yaml. You only need to restart your node with the new v2.3.3 image. +- Snapshot update: the bundled snapshot no longer contains the legacy `stakingindex`. If your `config.yaml` has `enableStakingIndexer: true`, please remove that entry before starting the node. + ## Key Features and Enhancements ### 1. Archive Mode Support