Skip to content

Releases: madara-alliance/madara

v0.9.0

22 Nov 09:47
fb30030

Choose a tag to compare

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-unsafe flag 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_version field. 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_version field in the config
    • To specify the L2 gas, remove l2_gas_target, min_l2_gas_price and l2_gas_price_max_change_denominator and specify it using l2_gas_price field with type - fixed or eip1559
  • Add rpc-unsafe flag to enable unsafe methods in admin RPC
  • The orchestrator AWS role now needs these permissions too for publishing SNS alerts,
    sns:GetTopicAttributes and  sns: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

Full Changelog: v0.8.0...v0.9.0

v0.9.0-alpha.0

27 Oct 10:34
973787d

Choose a tag to compare

v0.9.0-alpha.0 Pre-release
Pre-release

What's Changed

Full Changelog: v0.8.0...v0.9.0-alpha.0

v0.8.0

23 Oct 09:01
7216147

Choose a tag to compare

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=true as it does NOT compress state diffs. It fails with full_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=true and use an older piltover commit that does not have the full_output=false assertion. 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::BlockN to DbBlockId::Number by @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.rs by @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 starknet namespace 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 build by @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_message in 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 admin rpc 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.md docs and added Docker Compose support by @Trantorian1 in #399
  • feat(warp): added warp update to 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
    ...
Read more

v0.7.0

02 Oct 13:38
6e69868

Choose a tag to compare

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-state by @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-messages by @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): ✨ BonsaiStorage logs 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-root mode by @jbcaron in #97
  • fix: class update by @jbcaron in #99
  • Cleaned blockifier contract to flattened sierra conversion by @antiyro in #95
  • fix: remove unwrap in 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...
Read more