Releases: hl-archive-node/nanoreth
nb-20251105
Upgrade priority: Medium
- Upgrade necessary for testnet (#98, #102, #103), optional for mainnet
- Deprecates migration check if
CHECK_DB_MIGRATIONenv is not set (#100) - Does not crash on start when testnet is down for upgrade (#72, #105)
- Changes default
--discovery.addrand--listener.addrto localhost with random port, since it's not needed in nanoreth. (#104)- Use
--allow-network-overridesto enable overriding it via CLI parameters.
- Use
What's Changed
- fix(migrate): Fix wrong chunk ranges by @sprites0 in #94
- fix: Support certain types of system tx by @sprites0 in #98
- feat: Place migrator behind
CHECK_DB_MIGRATIONenv by @sprites0 in #100 - fix: Fix testnet transaction types by @sprites0 in #102
- fix: Adjust transaction parser by @sprites0 in #103
- feat: Default to localhost-only network, add --allow-network-overrides by @sprites0 in #104
- feat: cache spot metadata in database to reduce API calls by @sprites0 in #105
Full Changelog: nb-20251013...nb-20251105
Current Rust LoC: 9863 lines
nb-20251013
Upgrade priority: Medium
This release fixes a regression from the previous version where --hl-node-compliant caused eth_subscribe[type=logs] to behave as if the flag were not enabled.
What's Changed
Full Changelog: nb-20251011...nb-20251013
Current Rust LoC: 9610 lines
nb-20251011
Upgrade priority: Medium
This release fixes regression #89, which affected the eth_subscribe endpoint for newHeads (block head subscriptions, not event subscriptions). The issue caused the response to use the new header format—nesting standard fields under .inner and exposing hl-specific fields at the top level. The fix restores the previous format, which is the intended behavior.
Future releases will also adopt a new test suite to automatically cover all reported regressions, improving overall robustness and preventing similar issues.
What's Changed
- fix: Convert header type for eth_subscribe by @sprites0 in #89
- fix: Fix --debug-cutoff-height semantics by @sprites0 in #91
Full Changelog: nb-20251009-fix...nb-20251011
Current Rust LoC: 9608 lines
nb-20251009-fix
Upgrade priority: High
- This release fixes a regression introduced in nb-20251005.
- If you are running with
--hl-node-complianton versions before nb-20251005, the upgrade priority is Medium.
Thanks to everyone who reported issues and helped with testing!
cc/ @AlexVarin2001 @Quertyy
Database format change
This release fixes the severe performance regression from #79 by switching internal storage to HlHeader
(Header + system_tx_count and logs_bloom with system transaction receipts.). [detailed format]
🚫 The safest option is resyncing the node, but if EXPERIMENTAL_MIGRATE_DB env is specified, node will try to migrate itself. (takes 8~10 minutes)
Migration & Impact
- One-time migration: On first start, the node will run a migration step (8~10 minutes). After migration, syncing will resume normally.
- Disk usage: Expect ~5% increase due to new header metadata.
- Performance: --hl-node-compliant mode will be slightly faster.
👉 Please report any issues encountered with the migrator.
What's Changed (nb-20251005..nb-20251009)
- fix: Fix panic when block receipts are called on non-existing blocks by @sprites0 in #84
- feat(breaking): Use custom header format (HlHeader) by @sprites0 in #86
Previous release note
Bug Fixes
- Fixed an issue in
eth_getLogswhere using (1) an address filter with (2) events only present in system transactions caused errors (#78).- This does not impact typical indexers, since they don't use this specific filter combination.
- Resolved multiple issues with
--local-ingest-dir. It now works correctly with improved performance.
New Features
- Added RPC method
eth_blockPrecompileDatafor fetching read precompile information (contributed by @Quertyy). - Upgraded to reth v1.8.2 with Rust edition 2024.
- Note: #72 is not shipped yet (caching spotMeta in DB so that testnet node can start when testnet RPC is down)
Misc changes
- Now the reth fork moved from sprites0/reth to hl-archive-node/reth. As always, Cargo.toml points the exact commit hash, and each version port is tagged like
v1.8.2-fork.
What's Changed (nb-20250915..nb-20251005)
- feat(rpc): add HlBlockPrecompile rpc API by @Quertyy in #74
- feat: Add debug CLI flag to enforce latest blocks (--debug-cutoff-height) by @sprites0 in #77
- fix: Do not filter out logs based on bloom (which is for perf optimization) by @sprites0 in #79
- chore: Upgrade to reth v1.8.2 by @sprites0 in #80
- fix: Fix typo in --local (default hl-node dir) by @sprites0 in #81
- fix(local-ingest-dir): Use more robust resumption for hl-node line reader, fix block number increment for reading files by @sprites0 in #82
Full Changelog:
- nb-20250915...nb-20251005
- nb-20251005...nb-20251009
Current Rust LoC: 9479 lines
nb-20251009
nb-20251005 (revoked)
Please do not upgrade yet. A new release will be made.
Update: The root cause was due to performance regression of #78, investigating
Upgrade priority: Medium
Bug Fixes
- Fixed an issue in
eth_getLogswhere using (1) an address filter with (2) events only present in system transactions caused errors (#78).- This does not impact typical indexers, since they don't use this specific filter combination.
- Resolved multiple issues with
--local-ingest-dir. It now works correctly with improved performance.
New Features
- Added RPC method
eth_blockPrecompileDatafor fetching read precompile information (contributed by @Quertyy). - Upgraded to reth v1.8.2 with Rust edition 2024.
- Note: #72 is not shipped yet (caching spotMeta in DB so that testnet node can start when testnet RPC is down)
Misc changes
- Now the reth fork moved from sprites0/reth to hl-archive-node/reth. As always, Cargo.toml points the exact commit hash, and each version port is tagged like
v1.8.2-fork.
What's Changed
- feat(rpc): add HlBlockPrecompile rpc API by @Quertyy in #74
- feat: Add debug CLI flag to enforce latest blocks (--debug-cutoff-height) by @sprites0 in #77
- fix: Do not filter out logs based on bloom (which is for perf optimization) by @sprites0 in #79
- chore: Upgrade to reth v1.8.2 by @sprites0 in #80
- fix: Fix typo in --local (default hl-node dir) by @sprites0 in #81
- fix(local-ingest-dir): Use more robust resumption for hl-node line reader, fix block number increment for reading files by @sprites0 in #82
Full Changelog: nb-20250915...nb-20251005
Current Rust LoC: 8807 lines
nb-20250915
Need to upgrade: Yes
- While this release does not affect sync, upgrades are needed if using eth_call, eth_estimateGas rpc with read precompiles, or testnet.
- Now web3_clientVersion will report the correct commit hash.
- Now block sources expose metrics:
block_source.{s3, local, hl_node}.{polling_attempt, fetched} - (Experimental) Docker packages are now published at:
docker pull ghcr.io/hl-archive-node/nanoreth:latest
What's Changed
- Create a docker release github action by @zfy0701 in #54
- chore(build): add reth-hl version output by @Quertyy in #57
- feat: Add block source metrics by @sprites0 in #60
- chore: Upgrade to reth v1.7.0 by @sprites0 in #61
- doc: Update testnet instruction, add support channel by @sprites0 in #62
- feat: Add nb tag to docker releases by @sprites0 in #63
- fix docker build args by @zfy0701 in #64
- fix: Fix tag format by @sprites0 in #66
- fix: Add a manual mapping for testnet by @sprites0 in #68
- fix: Apply precompiles for eth_call and eth_estimateGas by @sprites0 in #69
Full Changelog: nb-20250904...nb-20250915
Current Rust LoC: 8629 lines
nb-20250904
Need to upgrade: No (yes if using debug/trace APIs, or using hl-node as block source)
What's Changed
- fix: Sort hl-node files correctly by @sprites0 in #47
- chore(rpc): add eth_getEvmSystemTxsByBlockNumber and eth_getEvmSystemTxsByBlockHash rpc methods by @Quertyy in #48
- chore(rpc): add eth_getEvmSystemTxsReceiptsByBlockHash and eth_getEvmSystemTxsReceiptsByBlockHash rpc method by @Quertyy in #50
- fix: Disable eth_getProof by default by @sprites0 in #51
- fix: Do not crash when collect_block failed by @sprites0 in #52
- fix: Fill precompiles when tracing by @sprites0 in #55
Full Changelog: nb-20250826...nb-20250904
Current Rust LoC: 8210 lines
nb-20250826
Need to upgrade: No (yes if using --hl-node-compliance)
- fix: correct ingest local blocks by @zfy0701 in #40
- regression of bae68ef introduced after last release: nb-20250822
- feat: Add --local.fallback-threshold, --s3.polling-interval in #45
- fix(hl-node-compliance): Fix transaction index on block response in 80506a7
- Various code cleanup (f576ddd bae68ef d8eef63 and so on)
Full Changelog: nb-20250822...nb-20250826
Current Rust LoC: 7869 lines (-409)
nb-20250822
Need to upgrade: No (yes if using testnet)
- chore: add dockerfile for nodebuilder node (#31) by @zfy0701
- Upgrade to reth v1.6.0-dev (#33)
- fix: Fix block and transaction receipts' gas and transaction index (#34)
- feat: Support testnet (node-builder) (#35)
- fix: Support new reth API (#36) - fix of regression from #33
Current Rust LoC: 8278 lines