Skip to content

testnet-4.0.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 19:20
Immutable release. Only release title and notes can be modified.
8093261

Changes

Bug Fixes

  • (config) Enable config wide defaults for ip (#1003)
  • (mempool) Add additional logging to silent tx rejections/skips (#1011)
  • (merkle) Align naming (#1005)
  • (mempool) Correct naming (#1013)
  • Submodule database size (#1015)
  • Make reward curve operations genesis time relative (#1017)
  • Extend timeout for reth RPC proxy
  • (api-server) Add balance endpoint (#1019)
  • (api-server) Add total supply endpoint (#1020)
  • (mempool) Monitor mempool handle for panics (#1008)
  • Skip commitment anchor validation on epoch blocks (#1021)
  • Build_current_commitment_snapshot_from_index uses block tree start (#1022)
  • Enhance errors not to lose information (#1014)
  • (block_validaton) Add additional cache data root log (#1023)
  • (actors) Enhance logging to provide more specific detail (#1026)
  • (api-server) Integration test for supply endpoint (#1025)
  • Commitment cumulative fee check (#1033)
  • Add genesis_timestamp == 0 guard in InitState (#1041)
  • (domain) Reduce memory footprint during block index load (#1035)
  • (mempool) Add priority based eviction for pending chunk cache (#1038)
  • (mempool) Remove permanent blacklisting for unknown anchor tx (#1039)
  • (block prod) Oracle price update has tolerance to be accepted (#1046)
  • (api) Align api names and serialisation (#1029)
  • Convert unpledge partition_hash type to H256 (#1049)
  • (shutdown) Add global 30s timeout for orderly shutdown (#1044)
  • (types/canonical) Condense tests (#1050)
  • Unstake ordering properly validated (#1051)
  • (data_sync/tests) Fix docker cluster used for data sync tests (#1053)
  • Size cache poisoning and tx offset validation (#1045)
  • Add packing backlog task, don't debug format generate_full_chunk errors (#1064)
  • Rationalise spans (#1072)
  • Add failsafe notify_one to pipeline log (#1078)
  • (peer) Additional observability (#1082)
  • (logging) Ensure telemetry flush on all shutdown paths (#1077)
  • (flaky_tests) Fix race condition on promotion (#1087)
  • (supply) Refactor supply calculation to use whole chain (#1090)
  • (obs) Add block timestamps to logs (#1108)
  • (docker) Added reduced release image and scripts for cluster (#1074)
  • Make valid ingress proof anchor blockhash range inclusive (#1125)
  • Duplicate ingress proof signers (#1128)
  • Mempool performs a dedup on ingress proofs (#1131)
  • All block transactions stored in the block tree for migration (#1122)
  • Replace rug/gmp-mpfr-sys with pure-Rust num-bigfloat (#1135)
  • Watch individual c_src files in irys-c build script (#1140)
  • Remove project-level linker config
  • Peer id and health check naming consistency (#1146)
  • (logging) Use a self hosted stack for monitoring instead of Axiom (#1105)
  • Ask the source of the header for the block body first (#1152)
  • (tempo) Add sensible tempo limits (#1160)
  • (tracing) Add missing spans (#1161)
  • (observability) Resolve Tempo span drops and local-blocks WAL loop (#1168)
  • Flaky tests (#1171)
  • Update cargo.lock
  • Exclude confirmed txs from submit selection (#1224)
  • Avoid block_discovery panic after block validation rejection (#1235)
  • (ci) Replace envsubst with node for prompt templating (#1238)
  • Ring recompilation (#1252)
  • Unify edition to 2024 via workspace inheritance (#1261)
  • Devnet fixes (#1253)
  • (oracle) Add the json feature in for bundler (#1385)
  • Promotion candidate pruning (#1387)
  • (ci) Cargo-llvm-cov install (#1379)
  • (build) Pass git metadata via env vars for Docker builds (#1386)
  • (storage) Map OneYear/ThirtyDay ledgers to storage modules (#1406)
  • (chunk-ingress, p2p) Divergence post-mortem fixes for overload cascades (#1394)
  • Block pool race (#1417)
  • (p2p) Break body-pull circuit-breaker cascade (#1412)
  • Small metrics followup for #1412
  • Validation (#1425)
  • (ci) Drop literal expression from docker-setup input description (#1427)
  • (release) Disable git-cliff GitHub remote fetch (panics on flaky API) (#1428)
  • CI flakes and irys-reth test memory cap (#1430)
  • (block_producer) Count test block budget by height, not blocks produced (#1436)
  • Backport CI hardening and tooling fixes from gateway (#1444)
  • (p2p) Prevent underflow panic in gossip rate limiter timestamp math (#1445)
  • Clock drift/monotonic timers (#1402)
  • Align genesis cascade activation with the epoch-layer predicate (#1448)
  • (vdf) Limit run-ahead via reset-seed confirmation gate (#1449)
  • (multiversion-tests) Clamp data tx prefix_size to data_size (#1454)
  • (block-producer) Reject sub-difficulty solutions before production (#1452)
  • (vdf) Re-anchor VDF on network-partition recovery (#1457)
  • (consensus) Prevent Submit-expiry vs promotion double-pay + ingress-proof cache delete (#1456)

Documentation

  • Add a deployment guide for mainnet beta nodes (#1012)
  • Update mainnet beta deployment guide to include trusted peers
  • Update auto stake and pledge section
  • Update deployment guide for full node (non mining) configuration
  • PoW finality doc
  • Update mainnet config, add a parser test (#1056)
  • Update mainnet docs and config template (#1058)
  • Adding a authoring hardforks doc
  • Update TOC
  • Update README.md
  • Add docs for EVM tx gas limits (#1107)
  • Add note to .cargo/config.toml
  • Enrich version enum doc comments (#1237)
  • (block_producer) Correct test-budget mechanism narrative (#1438)
  • Route hotfixes through the release line, not master-first (#1440)

Features

  • Make axiom OTLP config optional (#1006)
  • Use is_rightmost_chunk to confirm data_size in CachedDataRoots (#991)
  • Add custom Compact impl for Base64 (#1009)
  • Add hard coded mainnet config values (#995)
  • Derive block rewards from consensus block_time (#1018)
  • Cuda refinement (#876)
  • Do not use expired ingress proofs (#1007)
  • Remove CacheEvictionStrategy (#1027)
  • Make cache service prune expired ingress proofs from the cache (#1024)
  • Update reth (#1028)
  • Introduce irys hardforks (#1030)
  • Chunk pruning (#1036)
  • Atomic cache updates (#1047)
  • Custom address (#1052)
  • Only generate ingress proofs for confirmed data_size (#1054)
  • Improve error handling around invalid block migration (#1067)
  • Move handshake and sync request into the gossip server (#1066)
  • Index info fallback (#1068)
  • Return none when data chunk not found, propagate err otherwise (#1070)
  • Remove gossip fallbacks for older nodes (#1073)
  • Tweak commitment_tx_signature_signing_serialization (#1081)
  • More granular handshakes (#1084)
  • Add a CommitmentTransactionV2 (#1085)
  • Nextest measurement wrapper (#1091)
  • Add failure tracking & test filtering to xtask test (#1093)
  • Block bodies (#1057)
  • Add hardfork for deprecating V1 commitment transactions (#1088)
  • Commitment type v2 (#1095)
  • Add sane config defaults for parts of the NodeConfig (#1100)
  • Add extra defaults
  • Return none instead of error when reading a chunk that hasn't been written (#1102)
  • Enable aurora & tweak CommitmentPriceInfo (#1103)
  • Decouple testnet and testing config (#1109)
  • Status endpoint (#1099)
  • Peer ids (#1110)
  • Move peer_id into the db (#1112)
  • Align testnet consensus config, add recall range invariant (#1116)
  • Sync diagnostics (#1117)
  • Consensus hash for handshakes (#1129)
  • Better sync crash heuristics (#1132)
  • Perf tweaks (#1133)
  • Update reward address commitment type (#1115)
  • Migrate BlockIndex to MDBX and add term ledger validation (#1104)
  • Sealed blocks (#1097)
  • Set expected_genesis_hash at runtime on genesis node (#1139)
  • Add self-contained Docker cluster tooling (#1134)
  • (p2p) Add circuit breaker to p2p client (#963)
  • Changed peer id location (#1138)
  • Better block cache for block bodies (#1145)
  • Chunk upload throughput and observability improvements (#1148)
  • Add cross-node request lifecycle tracing and observability improvements (#1156)
  • Simplify the client (#1153)
  • Add custom URL support to IrysApiClient (#1165)
  • Move integration tests (#1174)
  • Improved nextest monitoring (#1172)
  • Version bump of crates/chain/Cargo.toml to 3.0.0
  • Gossip wire types (#1184)
  • (bench) Add criterion benchmarks and CI workflow (#1221)
  • Run mode (#1228)
  • Check database schema version on startup (#1223)
  • Perm ledger expiry for testnet (#1201)
  • (multiversion-tests) Add cross-version integration test harness (#1207)
  • VDF throttling (#1239)
  • Sccache ci migration (#1229)
  • Build versioning (#1260)
  • Cascade hardfork — term ledgers (OneYear/ThirtyDay) and height-aware pricing (#1166)
  • Genesis CLI (#1380)
  • Wait_for_evm_block in mine_block and wait_for_block_at_height (#1391)
  • Gate ingress proofs on submit ledger confirmation (#1390)
  • Bundle_format -> metadata_format (#1401)
  • (metrics) Expose MDBX metrics via Reth's /metrics endpoint (#1409)
  • Vdf progress (#1411)
  • VDF stall detection logic tweaks (#1413)
  • Preval perf (#1414)
  • (snapshot) Portable chain-state import/export tooling (#1419)
  • More debug-utils
  • Improve coverage gh-pages
  • Obs follow-ups and Reth metrics bind hardening (#1426)
  • Release process (#1393)
  • Move from deployment/ to release/
  • Improved multiversion tests (#1404)
  • Per-version frozen release branches + tag-trust rebuild provenance (#1434)
  • (p2p) Hard-reject handshakes from a different chain_id (#1435)
  • (p2p) Evict peers on chain_id (network) mismatch handshake rejection (#1437)
  • Release 3.0.2 (#1441)
  • (chain) VDF throughput check at node startup (#1424)
  • Network partition recovery: deep reorg support + integration tests (#1405)
  • (release) Gate releases on green CI for the release/.x merge-base (#1443)
  • (consensus) Set aurora/borealis mainnet activation times, enable testnet borealis
  • (consensus) Add prefix_hash to data tx and fold into ledger tx_root (#1450)
  • (consensus) Reject zero-size, oversized-prefix, and foreign-chain-id transactions (#1451)
  • (backport) Pin genesis EVM state root (genesis_evm_state) + init-state fail-fast guard (#1455)
  • (ledgers) Anchor slot expiry to last write (Cascade-gated) (#1458)
  • Add handshake-peer-info to the handshake process
  • Release 4.0.0
  • (reth-bridge) Airdrop peer-set balances in genesis EVM state dump

Miscellaneous

  • Tweak submodule paths
  • Add extra info to the DoNotRegenerate error
  • Update mainnet config
  • Add total cost logging for automatic stake & pledge
  • Add over capacity warning to cache service (#1060)
  • (docker) Add release file and workflow (#1061)
  • (ci) Fix release docker workflow (#1062)
  • (docker) Build binary inside the docker context (#1063)
  • Gitignore ecosystem.config.js
  • Add docker-in-docker for devcontainer
  • Claude.md and a skill for writing integration tests (#1141)
  • Add .worktrees to .gitignore
  • Add gitignore for .claude/local, add CLAUDE.md instruction to read it (#1158)
  • Sync cleanup (#1157)
  • Rust version update (#1164)
  • Update reth to 1.11.1 (#1162)
  • (design) Extract design documents (#1212)
  • (CI) Don't cancel in progress jobs on master
  • (consensus) Set testnet aurora activation timestamp

Performance

  • (vdf) Optimize hot loop with direct compress256 and copy elimination (#1214)
  • (efficient-sampling) Skip HashMap on validation reconstruct path (#1418)

Refactoring

  • Block_pool will forward txs to block discovery (#1037)
  • Only staked nodes produce ingress proofs (#1118)
  • Simplify block validation tracker (#1120)
  • Propagate an error if block tree rejects a block (#1137)
  • Block tree metadata simplification (#1143)
  • Migration lifecycle simplification (#1136)
  • Simplify block index - remove service layer, atomic persistence, accept SealedBlock (#1151)
  • Extract ChunkIngressService from mempool (#1155)
  • Simplify node startup (#1169)
  • Extract non-pool responsibilities from the mempool (#1159)
  • (shadow-tx) Consolidate tx creation logic onto ShadowTransaction (#1215)
  • (p2p) Reduce data cloning in gossip subsystem (#1249)
  • (telemetry) Remove Axiom log broadcasting (#1420)
  • (block_tree) Compute reorg split via parent-walk LCA (#1432)

Testing

Release

  • Bump irys-chain to 3.0.3
  • 3.0.4

Docker

docker pull ghcr.io/irys-xyz/irys-testnet:4.0.0