0.16.0 (2026-02-25)
- add block hash to revm divergence panic message (#880) (92a9eaf)
- batch-verification: make HTTPS connection a 2-way stream (#862) (a96e9a0)
- change api l2 l1 log format (#875) (26ea56f)
- index reverted blocks by hash (#867) (8e360fb)
- mempool: rewrite via in-memory subpools (#869) (b3bbca8)
- network: bounded channel + shared starting block state (#884) (5de34e2)
- network: fully migrate replay transport to p2p network (#873) (a8e963a)
- Apply fixes for cargo deny (#892) (e4eef3c)
- Commit after each tx in revm consistency checker (#898) (384ff31)
- get rid of broadcast in mempool (#910) (01b53fd)
- remove transaction r and s paddings (#890) (3079e59)
- rpc: return hex-encoded subscription ids (#877) (0dbc703)
0.15.1 (2026-02-10)
0.15.0 (2026-02-10)
- drop proving support for v29.x and v30.0 versions (#822)
- Accumulated interop txs (#848) (feaeeea)
- drop proving support for v29.x and v30.0 versions (#822) (f157dbb)
- multivm: use v0.2.6-simulate-only for V5 simulation (#855) (c21a107)
- Set SL chain id txs (#849) (f561a9e)
- store gzip-compressed anvil states (#837) (d231609)
- support multiple config files (#866) (319b2f9)
- use max_priority_fee_per_gas config value as cap on the priority fee used (#857) (2331595)
- better recognition for missing
IMultisigCommitter(#852) (9e07c51) - l1-watcher: skip persisting legacy batches (#860) (9d818fd)
- rebuild_from_block assert for EN (#864) (fa2c6c6)
- rpc: respect 0 gas price during gas estimation (#865) (ed80197)
- Update time crate to 0.3.47 to address security vulnerability (#870) (82a0537)
0.14.2 (2026-01-29)
- add metric for base fee and native price (#844) (3aa0b70)
- add pubdata price cap (#842) (9d9803d)
- do not require S3 for RPC (#827) (a923d83)
- validate genesis batch info against L1 (#832) (affbc1f)
0.14.1 (2026-01-27)
- Add metric for blacklisted addresses count (#820) (078368a)
- do not require batch storage for priority tree (#825) (6a73d20)
0.14.0 (2026-01-23)
- Execution of service interop transactions (#803)
- use token prices in fee model (#787)
- token price updater component (#779)
- Basic V31 Support (#759)
- 2FA L1 integration (#726) (43a466f)
- add bash script to run local chains (#777) (b786ad8)
- add more eth-sender metrics. Bump fee limit. (#789) (6b6f13b)
- add support for YAML config files (#785) (5f3de80)
- add toHex helper for JS tracer (#761) (f9e14aa)
- adjust pubdata price based on blob fill ratio (#700) (a8e6de4)
- adjust pubdata price based on blob fill ratio (2nd attempt) (#756) (167d874)
- Basic V31 Support (#759) (1103ab8)
- batcher: make the limit of transaction count per batch configurable (#796) (f09de09)
- deposit tool: Make it work with https provider; use ether as unit (#794) (c6b7839)
- do not require batch storage (S3) for ENs (#810) (d542f07)
- Execution of service interop transactions (#803) (20f5ed2)
- ignore vulnerability to recover cargo-audit (#754) (309887e)
- Implement interop system transaction (#712) (0310dbc)
- Interop roots watcher (#819) (66c8fc5)
- introduce
CommittedBatchProvider(#764) (d3a1cf4) - make block-related logging consistent (#792) (485c13c)
- more granular buckets for
prove_time_per_million_native(#763) (4e0fe7d) - network: add runnable
NetworkService(disabled by default) (#773) (88fdf39) - network: implement bare-bones
zksRLPx subprotocol (#716) (417c6ad) - record prove time per native (#757) (63fd801)
- remove hardcoded config constants (#762) (adfc998)
- return zeroes in
rewardineth_feeHistory(#800) (8f09ae7) - Revert "feat: adjust pubdata price based on blob fill ratio" (#753) (d7a7f54)
- set total difficulty in rpc block headers (#801) (6dac957)
- support JSON config files (#752) (f94d846)
- token price updater component (#779) (863b909)
- use newer version of zkyns-os-revm (#798) (aa97f62)
- use token prices in fee model (#787) (1f2375f)
zksync_os_typescompiles without features (#815) (b7dbe66)- construct pending block context in
eth_call-like methods (#758) (1e1086a) - local chain config file is required to start the node (#771) (4597cae)
- prevent "subtract with overflow" error on EN startup (#802) (0678f56)
- refactor local-chains structure and update with anvil 1.5.1 (#776) (24d3852)
- rename sandbox to ephemeral (#778) (16f6bad)
- rpc: make
eth_estimateGaswork when sender has no balance (#807) (4ce1018) - run RPC/status components later in the flow (#817) (387999e)
0.13.0 (2025-12-22)
- protocol upgrade v0.30.1 (zksync-os v0.2.5) (#743)
- network: use real HTTP server/client for batch verification (#737)
- network: use real HTTP server/client for replay transport (#729)
- add sequencer ephemeral mode (#730) (b55cdcd)
- config option to disable priority tree (#738) (36fbd35)
- config: make mempool tx_fee_cap configurable (#717) (4548357)
- make bytecode supplier address config value optional (#735) (1e6f363)
- network: use real HTTP server/client for batch verification (#737) (d4aca72)
- network: use real HTTP server/client for replay transport (#729) (5537d28)
- protocol upgrade v0.30.1 (zksync-os v0.2.5) (#743) (2cd6a6e)
- rpc: Add zks_getBlockMetadataByNumber (#724) (184c4bd)
- tracer: Add error message for out-of-native (#720) (79d035f)
- don't require genesis_chain_id for ENs (#734) (95c0512)
- l1-watcher: pick the most recent upgrade cut (#742) (f86e558)
- Replace DashMap with RwLock and HashMap (#722) (a6e658e)
- revm-consistency-checker legacy pre-eip155 transactions (#740) (b2bd059)
- tracer: Fix call tracer behavior for 'empty' transactions (#718) (81b5e82)
- tracer: Fix handling of errors in subcalls (#719) (1af589d)
- Update revm to v0.0.2 (#732) (e502499)
0.12.1 (2025-12-11)
- batcher: re-create batches using L1 watcher's data (#672) (11fefc4)
- blob computation overhead for pubdata price (#693) (bf69d65)
- config: Add config command (#697) (cd8a611)
- config: use EtherAmount for fee-related configs (#676) (28c27b1)
- Don't report Passthrough in batch_number metrics (#683) (7719fb3)
- JS tracer (#569) (c991043)
- remove failed transcations from block_output.tx_results (#714) (23b5323)
- upgrade reth to 1.9.3/revm to 31.0.2 (#709) (521d473)
- l1-watcher: handle L1 reverts during state recovery (#692) (d915174)
- rpc: move executed block check earlier in
zks_getL2ToL1LogProof(#704) (117faa8) - state tracking for sequencer (#715) (01c3a6b)
- upgrade issues in block context provider (#666) (e80cb85)
0.12.0 (2025-11-28)
- add internal config; use it in revm checker (#608) (13e6d18)
- allow EN to sync with overriden records (#657) (9422a14)
- db: keep overwritten replay records (#620) (35bdab6)
- l1-sender: send EIP-7594 blobs when Fusaka is activated (#664) (0b41a19)
- l1-watcher: monitor
ReportCommittedBatchRangeZKsyncOSevents (#661) (f21e876) - mempool-config: make minimal_protocol_basefee configurable (#671) (9a65250)
- Remove deprecated legacy prover API (#674) (728c177)
- rpc: use pubdata price factor during gas estimation (#669) (8dd8377)
- support multiple SNARKers; enhance proving observability (#631) (8541de8)
- 2FA followup (#662) (954b322)
- batch verification config (#654) (941edbd)
- en: handle missing blocks on main node (#677) (d7e2291)
- Sealing empty blocks (#653) (fcb43d8)
0.11.1 (2025-11-24)
- Add time_since metrics (#628) (33a7224)
- config option to disable batcher hash assertion when rebuilding batches (#647) (34d45e1)
- update zksync-os with p256 fix (#642) (ea04463)
- upgrade smart-config to 0.4.0; simplify parsing (#644) (a0c1da9)
- batcher: rebuild batches from S3 even when they are not committed (#645) (608153d)
- Update ZKsync REVM deps (#648) (d66af50)
0.11.0 (2025-11-20)
- add config for l2 signer blacklist (#596) (bc30cc9)
- add some prover metrics (#611) (b2483cf)
- api: forward EN transactions to main node (#624) (9a7583c)
- api: implement EIP-7966 eth_sendRawTransactionSync (#621) (0fbf615)
- handle reorgs for EN (#610) (055136d)
- l1_watcher: Make l1 watcher processor-agnostic (#634) (a3fe619)
- Read force deploys from a file (#612) (b90473a)
- upgrade system (part 1 of N) (#582) (4de5e84)
- upgrade system (part 2 of N) (#609) (b9a303d)
- v30 zksync os protocol upgrade support (#594) (c8698a6)
- config: add config attributes to fee overrides (#603) (5539e91)
- fix calculation of da fields for validium v4 (#636) (72282d2)
- move BlacklistedSigner error to different enum (#605) (fd9f1bd)
- upgrade issues (#638) (15697bb)
- upgrade issues second part (#639) (a06bb32)
0.10.1 (2025-11-12)
- Add REVM support of multiple execution versions (#597) (cccdba0)
- set default block time to 250ms (#598) (3f7c724)
- set sensible global debug levels (#600) (5e2cdcf)
0.10.0 (2025-11-06)
- support zksync-os v0.1.0 (#557)
- add last_execution_version metric (#590) (9343794)
- get rid of batch rescheduling (preparation to get rid of BatchStorage) (#587) (62dd891)
- remove app_bin_unpack_path from config (#588) (e55b0d4)
- support zksync-os v0.1.0 (#557) (178a1a9)
0.9.2 (2025-11-06)
- 2FA EN batch signing without L1 verification (#459) (e6d41ab)
- get rid of l1_gas_pricing_multiplier (#576) (3699956)
- Protocol upgrade support for provers (#577) (a60bb89)
- sentry: Use CLUSTER_NAME as environment tag (#570) (0befa23)
- Consistency checker nonce for failed creates (#574) (8159d64)
- proving empty blocks - fix division by zero error in metrics tracking (#584) (3c7d3bd)
- set WORKDIR to /app (#573) (265dc34)
0.9.1 (2025-10-29)
0.9.0 (2025-10-28)
- Opentelemetry support + config schema change (#559)
- eth_estimateGas state overrides (#560) (44a2281)
- Opentelemetry support + config schema change (#559) (592d6bb)
- pubdata price calculation (#549) (d1700ba)
- revm consistency checker (#525) (2061a01)
0.8.4 (2025-10-21)
- config in sequencer to limit block production for operations/debug (#537) (ebdde51)
- eth_call state overrides (#539) (bdf32ab)
- l1-sender: use alloy-based tx inclusion (#541) (48202cd)
- l1-watcher: move pagination/polling into shared component (#548) (d98d0ef)
- make pipelines repository-agnostic (#536) (e28635b)
- storage: move replay DB to storage crate (#535) (9c43a90)
- Disable warning on connection retries (#545) (1a56284)
- Persisting some info about the failed batch (#532) (ccc9a9f)
- sequencer: save replay record first (#556) (1f3fe08)
0.8.3 (2025-10-15)
- add execution version enum (#517) (c5703f9)
- l1-watcher: poll events actively when behind (#523) (93d6b4b)
- l1: move
{Commit,Stored}BatchInfo+ introduceBatchInfo(#505) (fe0a6bd) - l1: move L1 discovery out of
L1Sender(#502) (32aff65) - mempool: export even more metrics (#529) (1152166)
- mempool: expose metrics (#522) (6de3a50)
- replace str with module name for app bin unpack path (#516) (3f90248)
- Saving failed proofs to bucket and exposing endpoint to get them (#507) (0dc2093)
- sequencer: validate last 256 blocks for replayed blocks (#524) (9b17514)
- pipeline: simplify task spawning (#519) (cdcfec5)
- Reduced tracing level for debug functions (#531) (b960deb)
- storage: read replay record atomically (#521) (ff474a7)
- tree: report backpressure (#520) (7efb8a7)
0.8.2 (2025-10-13)
- l1-sender: allow non-empty buffer for rescheduling (#511) (beec7ec)
- l1-watcher: update batch finality (#506) (ca11ba7)
0.8.1 (2025-10-11)
- genesis: Add genesis root hash to genesis.json (#494) (4887597)
- l1: retry RPC requests on internal error (#496) (e89d88a)
- pipeline framework (8/X) - migrate executor l1 and batch sink (#481) (44d5776)
- rpc: implement
web3namespace (#497) (0ff0cc4) - track
execution_versionin genesis config (#498) (136a9a9)
0.8.0 (2025-10-09)
- Protocol upgrade v1.1 (#487)
- add config for fee params override (#489) (13587e5)
- add more general metrics (#468) (079a285)
- Adding more documentation (#455) (2ed7bc7)
- ensure L1 tx is deserializable from RPC response (#484) (80abbcb)
- get rid of
Source/Sink(#461) (762c9b7) - l1-watcher: track last committed/executed batch in finality (#485) (11c715c)
- make mempool configurable (#464) (63f9f69)
- Peek batch data from State (#458) (05ed98b)
- Peek FRI Proofs from ProofStorage (#470) (0b5bbec)
- pipeline framework (3/X) - migrate FriJobManager (#465) (2e012d9)
- pipeline framework (4/X): migrate gapless committer (#467) (07cccce)
- pipeline framework (5/X) - migrate l1 committer (#472) (2ead9a0)
- pipeline framework (PR 2/X) -
pipe()syntax; consumeself; migrate batcher (#448) (7366acc) - pipeline framework PR 6/X - migrate l1 sender proves and SnarkJobsManager (#477) (84d87d6)
- pipeline framework PR 7/X - priority tree migrated (#479) (2bc7250)
- Protocol upgrade v1.1 (#487) (3f49fbc)
- refactor priority tree (#483) (d12b99f)
- set pubdata price to
1(#476) (dcd060c) - update zksync-os to v0.0.26 and interface to v0.0.7 (#429) (f22e478)
- wait for tx in block context provider (#478) (d6e87b7)
- Add TxValidatorConfig to schema (#475) (797a0b5)
- multivm: use correct directories and default version (#490) (35e5440)
0.7.5 (2025-10-06)
- add net namespace and net_version RPC call support (#436) (e7b6ff5)
- add Sentry support (#430) (afed980)
- drop GCP support and reduce dependencies (#375) (a4bd9e1)
- pipeline framework (1/X) - tree, sequencer and prover_input_gen (#447) (ba2186e)
- re-implement alloy tx types (#438) (9f993fc)
0.7.4 (2025-09-30)
- add logging configuration (json/terminal/logfmt) (#407) (06ef2f5)
- en: remote en config (#387) (550f3c4)
- set gas per pubdata to
1(#406) (528ea85)
0.7.3 (2025-09-26)
0.7.2 (2025-09-25)
0.7.1 (2025-09-25)
0.7.0 (2025-09-25)
- add
execution_version2 (#409)
0.6.4 (2025-09-22)
- config option to force starting block number (#402) (b6024ab)
- improve debug logging (#401) (d996338)
- make batcher skip blocks that are already processed (#404) (edb2c27)
0.6.3 (2025-09-22)
0.6.2 (2025-09-22)
0.6.1 (2025-09-22)
- state: do not overwrite full diffs (#386) (c715709)
- use correct previous_block_timestamp on server restart (#384) (941b1d5)
0.6.0 (2025-09-17)
- folder with risc-v binaries + handle protocol version in batch components (#369)
- add retry layer for l1 provider (#377) (8f2bfda)
- config option to disable l1 senders (#372) (51253ca)
- folder with risc-v binaries + handle protocol version in batch components (#369) (39ff2cf)
- support L1->L2 tx gas estimation (#370) (11febe4)
0.5.0 (2025-09-15)
- Update state - contracts: zkos-v0.29.6, zkstack tool: origin/main (#364)
- zksync os inteface/multivm (#345)
- Update state - contracts from zkos-0.29.5 + scripts changes (#356)
- make EN replay streams HTTP 1.0 (#341)
- add persistence for priority tree (#321) (2107932)
- additional metrics to various components (#352) (821f319)
- delay the termination, expose health endpoint (#348) (ab4c709)
- Enhance documentation for zkos and era contracts updates (#337) (cfc42e2)
- have all user-facing config values in one file (#349) (14cf17c)
- implement
debug_traceCall(#359) (1d11649) - l1-sender: wait for pending state to finalize (#311) (2aebbb5)
- make EN replay streams HTTP 1.0 (#341) (f78e184)
- split l1_state metrics; fix typo in l1_sender metrics (#357) (b100eda)
- Update state - contracts from zkos-0.29.5 + scripts changes (#356) (246618e)
- Update state - contracts: zkos-v0.29.6, zkstack tool: origin/main (#364) (282919c)
- zksync os inteface/multivm (#345) (0498f2b)
eth_getTransactionCounttakes mempool into account (#360) (2141089)- gas field calculation in tx receipt (#361) (9bb51f4)
0.4.0 (2025-09-09)
- external node can read previous replay version (#224)
- external node can read previous replay version (#224) (a4bd5f5)
- RPC monitoring middleware (#306) (8837e43)
0.3.0 (2025-09-05)
- api: implement
debug_traceBlockBy{Hash,Number}(#310) (3fa831a), closes #309 - change L1->L2/upgrade tx type id (#333) (d62892c)
- metric for tx execution (#323) (ea889bf)
- update l1 contracts interface (#339) (c7b149e)
- update tracing-subscriber version (#325) (b2e7442)
0.2.0 (2025-09-02)
- adapt server for v29 (#284)
- adapt server for v29 (#284) (df2d66e)
- add observability on node init (#290) (895fd6b)
- api: implement
debug_traceTransaction(#231) (15cf104) - docker: use new crate (#294) (3a92eae)
- ERC20 integration tests (#285) (3d7dac5)
- move sequencer implementation to its own crate (#291) (183ee2a)
- refactor lib.rs in sequencer (#280) (454b104)
- Update state - contracts: zkos-v0.29.2, zkstack tool: 0267d99b366c97 (#305) (62d234d)
- update to zkos v0.0.20 and airbender 0.4.3 (#301) (be23bef)
- use open source prover (#300) (82370e9)
0.1.2 (2025-08-27)
- Allow loading configs from old yaml files (#230) (272b6e7)
- api: populate RPC block size (#217) (ce24acf)
- api: safeguard
zks_getL2ToL1LogProofto work on executed batches (#242) (1450bf1) - basic validium support (73fc1d1)
- batcher seal criteria (#213) (fe8250a)
- docker: use clang/LLVM 19 on Trixie (#229) (0ff5c5b)
- external node (#163) (d595e64)
- more metrics (686cc12)
- new state impl (#278) (6410653)
- periodic collections of component states (3b20513)
- process genesis upgrade tx (#201) (9cc9a9c)
- proof-storage: use object store (#225) (0342daa)
- refactor config (#246) (6ef1f06)
- refine component state tracking (#256) (8b64257)
- speed-up batch storage lookup (#273) (1d24514)
- storage: add
ReadStateHistorytrait (#244) (1e7a4bb) - Update codebase to use v0.3.3 verifiers (#223) (f457bcf)
- upgrade bincode to v2 (#274) (b5066b1)
- zksync os bump to 0.0.13 (#283) (177364a)
- always replay at least one block (#281) (b298988)
- api: flatten L1 tx envelopes (#234) (f4e4296)
- api: proper type id for txs in api (#269) (c6993b7)
- commit- and execute- watchers - fix one-off error in batch numbers (53976e0)
- docker: add genesis.json to docker image (#220) (2b2c3d0)
- EN and handle errors more gracefully (#247) (0af3d9c)
- l1: various
alloy::Providerimprovements (#272) (1f4fca4) - main after EN, serde/bincode accident (#221) (a7b4a2f)
- make get_transaction_receipt fallible (#279) (16cce7b)
- set correct default for pubdata limit (#241) (2beb101)
- skip already committed blocks before main batcher loop (#286) (7e9ea74)
- start from batch number instead of block number (#228) (241a00e)
- temporary disable l1 commit and execute watchers (99bdfbc)
- track timeout seal criteria in batcher (b136822)
- use validium-rollup setting from L1 - not config; fix integration tests (#255) (19a1a82)
0.1.1 (2025-08-19)
- add mini merkle tree crate (#169) (3c068ea)
- allow replaying blocks from zero (#197) (b0da499)
- api: implement
ots_namespace; add support for local Otterscan (#168) (dae4794) - api: implement
zks_getL2ToL1LogProof(#203) (c83e1c8) - api: limit req/resp body size (#204) (db19257)
- component state observability (#187) (d961485)
- dump block input on
run_blockerror (#165) (75f76ac) - Instructions on how to run 2 chains, and prometheus config (#195) (3b890fb)
- l1-sender: basic http support (#175) (92a90fa)
- l1-sender: implement L1 batch execution (#157) (5d27812)
- l1-watcher: implement basic
L1CommitWatcher(#189) (326ac6b) - l1-watcher: track last committed block (#194) (dda3a18)
- l1-watcher: track last executed block (#199) (c34194d)
- limit number of blocks per batch (#192) (195ce8f)
- proper batching (#167) (e3b5ebc)
- report earliest block number (#216) (af9263f)
- save
node_versionandblock_output_hashinReplayRecord(#162) (50eb1af) - save proper block 0 (#198) (ca8d46b)
- setup release please (#156) (0a0f170)
- storage: implement batch storage (#200) (0c06f14)
- support real SNARK provers (#164) (5ced71c)
- unify batcher subsystem latency tracking (#170) (25e0301)
- upgrade zksync-os to 0.0.10 (#215) (53a4e82)
- adopt some channel capacity to accomodate all rescheduled jobs (2bd5878)
- api: disable Prague in mempool (9c00b42)
- l1-watch: support new deployments (#166) (8215db9)
- skip already processed l1 transactions in watcher on restart (#172) (b290405)
- state recovery - read persisted repository block - not memory (#191) (146cb19)
- storage: report proper lazy latest block (#193) (a570006)
- update release version suffix for crates in CI (#159) (8c661fe)
- use spawn instead of select! to start everything (#185) (09a71af)