Releases: amadeusprotocol/node
v1.5.3 - Waiting so Long
silverfins_waitingsolong.mp4
Major 📜
- Add MMR (Merkle Mountain Range) block accumulator — append-only commitment over all blocks with compact inclusion proofs + standalone verify, exposed over RPC (proof/block, proof/verify_block). See mmr.ex and api_proof.ex.
- Add state snapshots + chain pruner — snapshot-consistent reads via transaction_with_snapshot, fast-sync state snapshots, and a pruner to bound disk growth. See fabric_snapshot.ex, db_pruner.ex.
- Add submit_and_wait?finalized=true on RPC to block until a tx is finalized (not just committed). See api_tx.ex.
- Harden the WASM contract VM — upgrade to wasmer 7.1.0; fix gas/budget accounting, bulk-mem & seed charging, RNG farming, cache poisoning, and cap call depth at 16.
- 🧪 Land HBSMT (Hot Binary Sparse Merkle Tree) — ~5k-line Merkle tree running alongside legacy HubtV2, with a full soundness/attack test battery. Will be added to consensus in next fork. See hbsmt.rs.
Minor
- Significantly lower RocksDB RAM usage; add memaudit.
- Add finalized | committed | pending tx status to metadata.
- New cursor/start_nonce pagination for tx-by-address queries.
- Peer hardening: malicious-address warning endpoint, drop spammy/unrouted peers, cache IPv4 off STUN, only accept parsable IPv4.
- Fix DoS on the testnet SSL forwarder + validator bitset; rate-limit testnet uPoW endpoints.
- Guard against zstd bombs, negative nonces, and invalid sols (no crash).
- Rewrite DOCS.md (protocol params, WASM contracts, SDKs, networks).
- Snapshot at 63000010.
v1.5.2 - Tree of Might
output.mp4
Major 📜
- Upgrade bintree🌲 to V2 which significantly improves merkle proofs+verification
- Add
submit_and_wait?finalized=trueon RPC to wait for finality - Add Rust and more AssembyScript contract examples
Minor:
- Add Prometheus support for RPC metrics feed (BYOT)
- Reduce storage cost per read 10x
- Reduce storage cost per write 10x (didnt allow large contracts to deploy)
- Fix a DoS bug on the testnet SSL forwarder
- Add
finalized|committed|pendingto tx metadata as status - Add
transfer_nftto API - Snapshot at 48362121
v1.5.1
Fix issues related to the tx_filter.
To recap:
/api/chain/tx_by_filter?arg0=<b58(sol)>
now naturally checks if the sol is included in the chain
Queries on accounts with tons of transactions will work now
to rebuild ALL CHAIN filters you can use
DB.Entry.Hashbuilder.clear_all()
DB.Entry.Hashbuilder.start()
otherwise itl start building new filters from when you launch.
you should still delete all the old filters via
RocksDB.get_cf_size(:tx_filter)
DB.Entry.Hashbuilder.clear_all()
size of optimized filters should be approx 22G for full chain. If your size is over 30G delete the old filters.
v1.5.0
Upgrade whenever possible, otherwise you will fall out of sync when the next slash_trainer gets called
Major:
- Changes TX filters to use hashfilters (current filters defined here)
- Reorgs slash_trainer args so the mpk is arg0
Minor:
- Temporary hashfilter builder genserver
NOTE:
Please consider arg0 as the receiver PK as its part of the hashfilter for future contract programming.
With hashfilters its possible now to search for arg0 == sol, making it quick to check if a sol is included in the chain.
v1.3.9 - Frieza Upgrade
awaken.mp4
AKA The WASM Executor update 🥳
- Adds full WASM execution live only on testnet and behind a NOOP on mainnet (pending further tests)
- Adds full AssembyScript examples for coding smart contracts
- Fixes large performance regression in RPC
/statsapi
Minor:
- Relax NetGuard in the case of catchup
- Fix crash inside ComputorGen
v1.3.8 - Kami Road
Update before epoch 434:
- Adds new ExecutionReceipt
#[derive(Clone, Debug)]
pub struct ExecutionReceipt {
pub txid: Vec<u8>,
pub success: bool,
pub result: Vec<u8>,
pub exec_used: Vec<u8>,
pub logs: Vec<Vec<u8>>,
}- Adds storage deposit of 1.0 AMA which is refunded at TX END
- Ensures some extra correctness of TXPool
- Continuing work on VM cost counting and import calling