Skip to content

Releases: hl-archive-node/nanoreth

nb-20251105

05 Nov 08:04
524db5a

Choose a tag to compare

Upgrade priority: Medium

  • Upgrade necessary for testnet (#98, #102, #103), optional for mainnet
  • Deprecates migration check if CHECK_DB_MIGRATION env is not set (#100)
  • Does not crash on start when testnet is down for upgrade (#72, #105)
  • Changes default --discovery.addr and --listener.addr to localhost with random port, since it's not needed in nanoreth. (#104)
    • Use --allow-network-overrides to enable overriding it via CLI parameters.

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_MIGRATION env 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

13 Oct 06:21
eee6eeb

Choose a tag to compare

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

  • fix: Prevent #89 from overriding --hl-node-compliant subscriptions by @sprites0 in #93

Full Changelog: nb-20251011...nb-20251013
Current Rust LoC: 9610 lines

nb-20251011

12 Oct 02:35
51924e9

Choose a tag to compare

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

09 Oct 08:57

Choose a tag to compare

Upgrade priority: High

  • This release fixes a regression introduced in nb-20251005.
  • If you are running with --hl-node-compliant on 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_getLogs where 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_blockPrecompileData for 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-20251009

09 Oct 07:15
0e49e65

Choose a tag to compare

nb-20251005 (revoked)

05 Oct 12:02
5327ebc

Choose a tag to compare

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_getLogs where 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_blockPrecompileData for 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

15 Sep 06:45
491e902

Choose a tag to compare

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

Full Changelog: nb-20250904...nb-20250915

Current Rust LoC: 8629 lines

nb-20250904

05 Sep 01:12
3f08b0a

Choose a tag to compare

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

26 Aug 02:38
3ffd7bb

Choose a tag to compare

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

22 Aug 14:45

Choose a tag to compare

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