Releases: madara-alliance/madara
Releases · madara-alliance/madara
v0.9.0
Summary
This release supports 0.14.0 fully along with some bugs fixes and improvements.
Features
- SNOS 0.14.0 Support: Added SNOS batching support for L3s, making Madara compatible with version 0.14.0 (#805, #826) - More PRs are in pipeline to fix some issues with L3 settlement
- Admin Endpoint Security: Added
--rpc-unsafeflag to protect critical admin RPC methods (#845) - State Revert Capability: Added ability to revert state, gated behind admin endpoint for controlled state management (#830)
- Chain Config Versioning: Introduced versioning for chain configuration and updated L2 gas price field (#833)
- Manual Docker Builds: Added workflow for manual Docker image building (#839)
- Cairo Native Support: Madara now supports cairo-native, disable by default (#832)
- Fullnode can now be run without automatic reorg by disable reorg config, (#822)
- Orchestrator: Custom versioned constants support, (#852)
Bug Fixes
- Dockerfile: Fixed Dockerfile configuration issues (#820)
- Zaun Deserialization: Bumped Zaun with bytes deserialize fix (#819)
- Batching Logic: Fixed batching logic to handle single block edge case for L3s (#838)
- SQS Configuration: Attached DLQ (Dead Letter Queue) to all queues (#834, #836)
- Transaction Errors: Improved transaction error message formatting by filtering redundant VM tracebacks for better debugging (#837)
- Preconf Transactions: Fixed memory leak by deleting preconfirmation transactions after execution or dropping (#831)
Improvements/Updates
- Zaun Integration: Moved Zaun to main branch (#823)
- Documentation: Added comprehensive documentation to all
mc-*crates (#780) - CI/CD: Added Nightly Run CI to run once daily or manually (#825), update merge CI and create Release CI (#829)
- Testing: Added replay-ability testing on Madara from external nodes (#816)
- Update the aggregator batching logic to check for builtin weights (#828)
- Update the logs of orchestrator (#858)
- Update orchestrator settlement client to handle Fusaka upgrade (#841)
- Update E2E to run with 0.14.0 upgrade (#841)
Migration
- This version introduces versioning of Madara chain config. From now on, older chain configs won't work as they don't have the
config_versionfield. To get a complete log of changes, see the CHAIN_CONFIG_CHANGELOG.md file. To check other changes done in this release, check #833.- To migrate, add
config_versionfield in the config - To specify the L2 gas, remove
l2_gas_target,min_l2_gas_priceandl2_gas_price_max_change_denominatorand specify it usingl2_gas_pricefield withtype-fixedoreip1559
- To migrate, add
- Add
rpc-unsafeflag to enable unsafe methods in admin RPC - The orchestrator AWS role now needs these permissions too for publishing SNS alerts,
sns:GetTopicAttributesandsns:Publish, the sns alerts were failing silently before which has been fixed and orchestrator panics in the preflight checks.
Supported Chain Configs versions
- 1
What's Changed
- feat: Implement SQS message version filtering with receive message filtering by @0xvasanth in #774
- feat: Add blockchain reorganization detection and handling by @0xvasanth in #791
- Release/0.14.0 by @Mohiiit in #810
- 0.14.0 fixes by @Mohiiit in #817
- update: proper events sorting by @heemankv in #818
- fix: dockerfile by @Mohiiit in #820
- bump zaun with bytes deserialize fix by @apoorvsadana in #819
- [Testing] Replay-ability on Madara from external node by @heemankv in #816
- move zaun to main by @apoorvsadana in #823
- Adding documentation to all
mc-*crates by @Trantorian1 in #780 - feat: add SNOS batching support for L3s to make it 0.14.0 compatible by @prkpndy in #805
- run merge ci once a day or manually by @apoorvsadana in #825
- bump: snos to v0.14.0-alpha.1 release by @prkpndy in #826
- Ability to revert state gated behind admin endpoint by @heemankv in #830
- delete preconf txs after they're executed or dropped by @apoorvsadana in #831
- fix: create nightly release when e2e pass and create release images by @prkpndy in #829
- fix: attach DLQ to all queues by @prkpndy in #834
- feat: update batching logic to check for builtin weights when closing agg batch by @prkpndy in #828
- fix: sqs setup by @prkpndy in #836
- Manual Docker Image Build Workflow by @heemankv in #839
- Improve transaction error message formatting by filtering redundant VM tracebacks by @heemankv in #837
- Add
--rpc-unsafeflag to protect dangerous admin RPC methods by @heemankv in #845 - fix: batching logic to handle single block edge case by @prkpndy in #838
- feat: add versioning for chain config and update l2 gas price field by @prkpndy in #833
- Using RevertError for removing VM tracebacks by @heemankv in #848
- Configurable RocksDB Write Options by @heemankv in #844
- Database Consistency and Durability Improvements by @heemankv in #843
- Fix test CLI by @heemankv in #853
- Fixed CLI test by @heemankv in #855
- Fix/orch test parallel by @Mohiiit in #847
- L3 bugs by @byteZorvin in #851
- Add automated Cairo 0 environment setup for builds by @heemankv in #815
- fix: restart madara 0x2 and bouncer weight issue by @Mohiiit in #849
- [Feature] Madara Full Node Snap Sync by @heemankv in #809
- add blacksmith runners by @apoorvsadana in #854
- chore: refactor/fix logs for orchestrator by @prkpndy in #858
- Feat/cairo native on 0.14.0 by @Mohiiit in #832
- feat: add support for versioned constants in Orchestrator by @byteZorvin in #852
- Feature/add no reorg by @byteZorvin in #822
- fix: 0.14.0 E2E tests and change settlement to handle fusaka upgrade by @prkpndy in #841
Full Changelog: v0.8.0...v0.9.0
v0.9.0-alpha.0
What's Changed
- feat: Implement SQS message version filtering with receive message filtering by @0xvasanth in #774
- feat: Add blockchain reorganization detection and handling by @0xvasanth in #791
- Release/0.14.0 by @Mohiiit in #810
- 0.14.0 fixes by @Mohiiit in #817
- update: proper events sorting by @heemankv in #818
Full Changelog: v0.8.0...v0.9.0-alpha.0
v0.8.0
Dependency
- Use this Pathfinder when running the orchestrator.
L2 and L3 specific details:
- SNOS on this release is on 0.13.3. This version of SNOS works fine with
full_output=trueas it does NOT compress state diffs. It fails withfull_output=false. - This is not an issue for L2s with AR as compression happens inside the aggregator which works fine.
- For L3s, this means you need to run with
full_output=trueand use an older piltover commit that does not have thefull_output=falseassertion. This is not recommended and will be fixed in the next release with 0.14.0 SNOS.
What's Changed
- fix(ci): added support for cache export on for docker driver by @antiyro in #299
- fix(ci): repair docker build workflow by @antiyro in #300
- fix(ci): repair docker build workflow 2 by @antiyro in #301
- feat(test): block conversion on sync tests by @azurwastaken in #283
- fix(docker): fixed docker build on CI by @antiyro in #303
- feat(test): adding JS tests to the CI by @Mohiiit in #284
- feat(fgw): addition of a gateway + removal of starknet-provider by @jbcaron in #252
- fix(tests): Add testing feature to mc-db dev dependency by @notlesh in #295
- fix(sync): pending block retrying mechanism & flaky tests by @cchudant in #304
- fix: block production panic by @cchudant in #314
- feat(cli): Madara configuration via environment variables by @shamsasari in #311
- fix(rpc): estimate fee should throw an error if any txn fails by @apoorvsadana in #286
- feat(clean): dc_db: rename
DbBlockId::BlockNtoDbBlockId::Numberby @shamsasari in #310 - fix: override cli by @jbcaron in #312
- fix(cleanup): Updated EditorConfig to 4-space indents by @shamsasari in #317
- bug(tests): Fix local test scripts by @shamsasari in #316
- fix(script): Fix final touches over launcher script by @antiyro in #305
- fix(fgw): sync from other nodes and block signature by @Trantorian1 in #307
- feat(script): added more capabilities to the launcher script by @antiyro in #325
- chore: Padded devnet addresses display to 64 characters by @akhercha in #327
- Fix batched reqs by @apoorvsadana in #315
- fix(sync): pipeline stalling on machines with few cpu cores by @cchudant in #318
- fix: block production nonce error by @cchudant in #328
- fix(clippy): disallow printlns in workspace by @cchudant in #331
- fix(mempool): fixed proptesting of the inner mempool by @cchudant in #330
- feat: gas fee price flag added in cli by @Mohiiit in #306
- fix(devnet): devnet predeployed contracts stable address across systems by @cchudant in #332
- fix(db): max rocksdb LOG files count and size and add more memory metrics by @cchudant in #345
- fix(cli): fixed devnet cli arguments by @antiyro in #344
- chore: Fixed README formatting & updated toolchain by @akhercha in #334
- fix(devnet): devnet predeployed contracts stable address across systems (re) by @cchudant in #346
- fix: pathfinder block hash mismatch block 0 (sequencer mode) by @apoorvsadana in #333
- fix(mempool): validator errors were ignored in
mempool/rsc/lib.rsby @Trantorian1 in #324 - feat: added special address with block number and block hash by @Mohiiit in #347
- Feat/strk price flag by @Mohiiit in #349
- Adding support for declare v0, l1 handler and l1->l2 messages by @Mohiiit in #321
- fix(block_hash): Block hash mismatch for transaction with an empty signature by @Trantorian1 in #354
- fix(network): added FGW url to chain config by @antiyro in #351
- refactor(rpc): re-worked rpc tower server and added proper websocket support by @Trantorian1 in #350
- Feat/deprecated classes by @Mohiiit in #353
- fix(compile): wrong struct field being used in state map conversion by @Trantorian1 in #360
- fix(namespace): versioning now works for methods without
starknetnamespace by @Trantorian1 in #358 - ref(fgw): replacing the reqwest feeder client with hyper by @jbcaron in #364
- feat(fgw): get_block_trace by @jbcaron in #363
- fix(compilation): do not compile devnet contract artifacts when doing
cargo buildby @cchudant in #365 - fix: 0.13.2 had wrong version constants by @Mohiiit in #366
- Removes Prometheus and adds OTEL for metrics/logs/traces by @heemankv in #348
- fix(rocksdb): open max files opts by @EvolveArt in #367
- feat(v0.8.0-rc0): starknet_subscribeNewHeads by @Trantorian1 in #359
- feat(confg): added chain config template and fgw example by @antiyro in #370
- fix(error): Added a comment for non archive node L1 keys by @antiyro in #377
- feat: get_compiled_casm (RPC) by @jbcaron in #374
- build: update blockifier to 0.8.0 and other dependencies by @jbcaron in #380
- fix(fgw): include
l1_to_l2_consumed_messagein L1 handler receipt by @jbcaron in #381 - feat(fgw): add transaction methods for GatewayProvider by @jbcaron in #383
- refactor: replace starknet-rs BlockId with types-rs BlockId by @jbcaron in #384
- fix: l2-to-l1 messaging by @cchudant in #371
- fix: FeePayment conversion by @jbcaron in #389
- fix(db): fix number of files in db, startup hang, ram issues and flushing issues by @cchudant in #379
- feat(endpoint): added extra
adminrpc endpoint for sensitive rpc calls by @Trantorian1 in #386 - feat(debug): service cancelling and profiling build by @Trantorian1 in #390
- feat(evm): Support EVM deployment with Madara by @antiyro in #356
- fix: fetch class by @jbcaron in #394
- Fix/rust log filtering by @heemankv in #397
- fix(log): define RUST_LOG=info by default by @antiyro in #401
- docs(readme): updated
README.mddocs and added Docker Compose support by @Trantorian1 in #399 - feat(warp): added
warp updateto madara and other changes by @Trantorian1 in #393 - feat(rpc): storage proofs for snos and v0.8.0 by @cchudant in #292
- refactor: rpc types by @jbcaron in #395
- madaraup origin by @antiyro in #406
- Feat/madaraup by @antiyro in #407
- feat(mempool): mempool transaction limits, saving to db and continue block prod from pending block by @cchudant in #372
- feat(gas) : fetch strk price from oracle by @azurwastaken in #368
- feat(services): reworked Madara services for better cancellation control by @Trantorian1 in #405
- fix(block_production): continue pending block now reexecutes the previous transactions by @cchudant in #411
- fix: hotfix for oracle need by @azurwastaken in #427
- fix: rpc deploy account by @jbcaron in #432
...
v0.7.0
What's Changed
- Feat/refacto by @antiyro in #1
- refacto: pass new CI by @jbcaron in #6
- Testnet by @jbcaron in #7
- Feat : Trace_transaction RPC call implementation by @Tbelleng in #8
- Fix(workflows): fix toolchain and cache issues by @hel-kame in #9
- refactor(substrate_hash): ♻️ Substrate hash no longer retrieved via rpc call by @Trantorian1 in #10
- Fix/telemetry by @antiyro in #11
- fix(root): 🐛 Got state root to work by @Trantorian1 in #12
- fix: 🚑 fix get_block in starknet-rs due to starknet v0.13.1 by @jbcaron in #13
- fix(l1): fixed l1 thread to reflect correct state_root, block_number, block_hash by @antiyro in #14
- L2 sync: Parallel fetching of blocks, classes, state updates by @cchudant in #15
- feat(pending): ✨ Added pending support by @Trantorian1 in #16
- feat(multi-trie): Added support for persistent storage tries by @antiyro in #19
- Fix/unused deps by @antiyro in #20
- feat(self-hosted): host our own runner by @hel-kame in #21
- fix(sync): Cleaned mc-sync isolating fetch process + added shared SyncStatus by @antiyro in #23
- refactor(backend): ♻️ substantial refactor of generic usage in the codebase by @Trantorian1 in #22
- feat(bonsai): Bumped bonsai lib to latest opti by @antiyro in #25
- Deoxys-TUI: an optional TUI dashboard by @noamoulin in #17
- ♻️ Refacto Rpc Methods by @Tbelleng in #24
- L2 commitments: hash commitments & l2 sync parallelism by @cchudant in #26
- fix(latest): Retrieve latest synced block via internal client by @antiyro in #29
- feat(api_key): Added support for --gateway-api to avoid rate limit from the gateway by @antiyro in #30
- db: refactor the crate by @cchudant in #32
- Feat : ✨ Adding estimate_fee for v0.7.0 by @Tbelleng in #34
- l2 commitments: fix rayon collect iter order by @cchudant in #35
- remove mp_transactions::UserOrL1HandlerTransactions by @jbcaron in #36
- Fix/classes by @antiyro in #37
- feat(storage): ✨ Bonsai storage refactor and rpc call support by @Trantorian1 in #28
- feat: ✨ Introducing a new estimate_message_fee version by @Tbelleng in #39
- Refactor(storage): Removed reliance on Substrate for contract storage by @Trantorian1 in #40
- feat(metrics): added mapping sync block metrics for prometheus endpoint by @antiyro in #41
- modify and refactor get_events to handle events from pending block by @noamoulin in #42
- Add cache to the BlockifierStateAdapter for setters by @jbcaron in #43
- style: 🗑️ clean import by @jbcaron in #44
- Feat/up blockifier by @jbcaron in #45
- feat(check) Added a state root check to ensure synced compatibility by @antiyro in #38
- fix get_tx_receipt(), l1_da_mode, CI by @jbcaron in #46
- refactor: 🔥 remove crate
mp-stateby @jbcaron in #47 - remove crate mp-fee by @jbcaron in #48
- Feat : ✨ Add get_block_with_receipts RPC Call by @Tbelleng in #50
- refactor: 🔥 remove crate
mp-messagesby @jbcaron in #49 - fix CI by @jbcaron in #52
- Rebase latest blockifier version 🔀 by @Tbelleng in #27
- chore: update bonsai-trie (perf) by @cchudant in #55
- Feat : ✅ Add Pending_block for block_with_receipt RPC methods + resolve fews conflicts by @Tbelleng in #57
- fix(compute): 🐛 Fixed prepare_data_availability_modes computation by @antiyro in #58
- fix(class): Fix Sierra classes conversion (missing abis) by @antiyro in #60
- Fix/chain by @antiyro in #62
- fix(sync): Fix end condition of the l2 sync by @cchudant in #63
- fix: 🐛 fix StateReader for get_storage_at() by @jbcaron in #64
- feat(docker): add docker and docker-compose by @hel-kame in #65
- Fix/state root by @antiyro in #68
- refactor / optimise get_events by @noamoulin in #66
- feat: 🐛 fix a minor bug when computing l1HandlerTx hash by @Tbelleng in #69
- fix(get_events) block_range / ContinuationToken::parse by @noamoulin in #71
- Feat : 🐛 fix a minor crashing case on get_block_with_receipts by @Tbelleng in #73
- Added boilerplate for Bonsai storage migration by @Trantorian1 in #70
- Restructuring of the hierarchy of useful functions in the RPC crate by @jbcaron in #54
- Fix/verify l2 by @jbcaron in #74
- feat(storage): Updated storage to store state diff by @Trantorian1 in #75
- refactor: ⚰️ remove dead code in
Struct Starknet<..>by @jbcaron in #76 - Feat/ci by @jbcaron in #77
- fix: CI toolchain by @jbcaron in #79
- feat(storage): ✨
StateDiffs are now stored and can be retrieved to reconstruct block state. by @Trantorian1 in #78 - feat(storage): ✨
BonsaiStoragelogs are no longer stored in db by @Trantorian1 in #82 - Fix/proposer factory by @antiyro in #80
- Fix/rpc: exec on receipt by @jbcaron in #83
- Up/starknet rs by @jbcaron in #84
- Fix: ♻️ Refactoring version of transaction_trace by @Tbelleng in #81
- Fix/get state update with new storage by @jbcaron in #85
- perf(rocksdb): ⚡ Better use of Rocksdb multiget and batch writes by @Trantorian1 in #86
- Fix: 🐛 Fee_type for Simulate_transactions by @Tbelleng in #87
- fix: db, add test, add codec traits by @jbcaron in #88
- Fix/class conv by @antiyro in #89
- Fix/db by @jbcaron in #90
- refacto: get_class RPC by @jbcaron in #92
- Fix/genesis by @jbcaron in #93
- Allow compiling without libm + Fix state corruption during sync when doing CTRL+c by @cchudant in #94
- fix: nonce & key/value storage by @jbcaron in #96
- feat: store key/value in
--disble-rootmode by @jbcaron in #97 - fix: class update by @jbcaron in #99
- Cleaned blockifier contract to flattened sierra conversion by @antiyro in #95
- fix: remove
unwrapin storage by @jbcaron in #100 - perf: key/value sync by @jbcaron in #102
- l2 sync: refactor a bit, and add polling by @cchudant in #101
- parallelized tx and event commitment hashes by @antiyro in #103
- perf: convert blocks in parallel by @cchudant in #106
- Clean/blockifier by @jbcaron in https://github.com/madara-alliance/madara/pull...