Anoma 0.4.0 is a scheduled minor release, released 31 January 2022.
- Matchmaker: Fix a matchmaker's state management via a raw pointer that was causing segfaults in the matchmaker in release build. (#806)
- Build Linux package directly from tagged releases, and upload wasm from tags. (#801)
- Client/Ledger: Added a flag to allow to indicate that client should exit once the transaction is in mempool without waiting for it to be applied in a block. (#403)
- Ledger: Emit and validate IBC events from transactions. (#480)
- Add
anomac tx-result
command to query the result of a transaction given a transaction hash. (#634) - Ledger: Use IBC messages from ibc-rs crate to be used in the relayer. (#699)
- Ledger: Added fungible token transfer support to IBC validity predicate. (#823)
- Ledger: Add IbcActions trait to execute IBC operations (#411)
- Matchmaker has been separated from intent gossiper node. Multiple matchmakers can connect to an intent gossiper node over WebSocket. (#579)
- Wallet: Ask for encryption password confirmation when generating a new key. (#625)
- Ledger: Two-layer merkle tree for the IBC proof verification (#671)
- Testing: Increments network configuration ports used for E2E tests and ABCI++ enabled E2E tests to avoid sharing resources. (#717)
- Matchmaker: compiling and loading matchmakers to and from dylib instead of WASM (#718)
- Ledger: Coding IBC-related data without Borsh (#734)
- Matchmaker: re-purpose the matchmaker macro to manage state of a custom matchmaker implementation (#746)
- Testing: Update to a new branch of property-based state machine testing with initial state shrinking. (#765)
- Port the Nix build to the new Flakes system. (#770)
- Client/Utils: Respect wasm directory, when specified and non-default in the command. The command now doesn't unpack the network config archive into its default directories, if any of them are specified with non-default values. (#813)
- Install the default token exchange matchmaker implemenetation into
~/.cargo/lib
directory when building from source. When not absolute, the matchmaker will attempt to load the matchmaker from the same path as where the binary is being ran from, from~/.cargo/lib
or the current working directory. (#816)
- Force non-dev build for make build-release, check-release & package (#791)
Anoma 0.3.1 - first maintenance release in the 0.3.x series. Protocol compatible with 0.3.0, but changes the on-disk storage format - nodes will need to resync from scratch.
- Fix the
anoma client utils join-network
to respect--base-dir
argument, if specified (#723) - Ledger: Fix an issue in the default thread count usage calculation that was previously causing it to crash for a target with a single logical core. (#726)
- Ledger: write storage diffs from the correct current block height and ignore these on loading last known block's state from persisted state on disk. (#732)
- Ledger: Handle Unix and Windows interrupt and termination signals to shut down cleanly. (#768)
- Ledger: enable atomic commits in RocksDB and explicitly flush blocks without waiting (#372)
- Fix the
anoma client utils join-network
to respect--base-dir
argument, if specified (#711) - Ledger: Write predecessor block's values to be able to integrate Tendermint's rollback helper command. (#729)
- Include a more accurate build version from git describe in help output version strings. (#733)
- Ledger: Updated wasmer dependency to v2.1.1. (#756)
- Config: Enable setting config values via environment variables, add variables for configuring Tendermint instrumentation and allow missing values in the config file (filled in with defaults defined in the code) (#774)
- Gossip: Enable peer discovery with libp2p Kademlia and Identify protocol and allow to keep the established peer connections open. (#775)
- Adds missing nix-shell openssl dependency. (#694)
- Don't include wasm checksums in the package, since the network configuration mechanisms now handle this. (#731)
- Force non-dev build for make clippy. (#783)
Anoma 0.3.0
- Ledger: Using fixes in
tower-abci
crate that improve shutdown and error handling. (#614) - Ledger: Fix rlimit breaking build on non-unix target. (#615)
- Ledger/client: Fixed an issue with obtaining a result of a transaction. (#668)
- Ledger: Fixed Windows build. (#684)
- Use at least one thread for rocksdb compaction. (#704)
- Downgrade to an older version of wasmer (1.0.2) to avoid runaway memory usage. (#708)
- Process ABCI requests in order in the shell. (#713)
- Added jobs for ABCI++ feature enabled builds (#661)
- Fix broken links (#605)
- Improved user guide installation section. Improved development scripts. (#613)
- Updated Anoma prototypes pages. (#642)
- Fix broken links to WASM sources. (#660)
- Ledger: Added storage query (non-)membership proofs (#498)
- Ledger: Make all transactions encrypted, add in ABCI++, support commit and reveal scheme for txs in a block. This feature is disabled by default because it requires a custom Tendermint build. The Tendermint version required with default features remains unchanged (currently 0.34.x). (#622)
- Cache compiled wasm modules on disk. (#697)
- Improve how the
anoma
binary launches a sub-process by replacing itself with it. (#609) - Ledger/client: Add archives for release-able networks from init-network utils command. (#616)
- Ledger: Open the default P2P address for non-localhost networks (#617)
- Tooling (switched to Rust 1.56.1 and nightly to 2021-11-01. Many Cargo dependencies updates. (#618)
- Ledger: Join Anoma networks from GitHub released network configurations. (#619)
- Ledger/storage: Write values from references. (#627)
- Build: Avoid build context in Docker image builds. (#629)
- Ledger: Add the WASM checksums file for the pre-built transactions and validity predicates to network releases. (#644)
- Ledger: Simplified gas addition code. (#648)
- Ledger: Improved the "wrapper" transaction type data structures and encoding. (#653)
- Ledger: Follow-up to the improved "wrapper" transaction type data structures and encoding. (#655)
- Ledger: Refactored ledger threads usage and made them configurable. (#658)
- Ledger: Updated dependencies names to nix friendly format. (#664)
- Ledger: Follow-up to the updated crate names to nix friendly format. (#666)
- Ledger/client: Set a default fee amount, token, and gas limit for txs. (#667)
- Remove intent gossiper key from configuration file, storing it separately. (#673)
- Refactor historical data storage in rocksdb to store diffs of key changes, and additional database performance changes. (#683)
- Improved nix integration. (#685)
- Ledger/client: Fix the confirmation dialog for using an existing alias and allow to select a new one. (#690)
- Refactor debug printouts in wasm modules to use conditional compilation. (#693)
- Ledger: Updated to wasmer 2.0.1. (#698)
- Allow zero-balance transactions pending proper gas fee deduction. (#700)
- Emit more CPU thread usage information. (#705)
- Tests/E2E: Added PoS tests for bonding and initialization of a validator account on-chain. (#463)