github iron-fish/ironfish v0.1.55

latest releases: v2.5.0, v2.4.1, v2.4.0...
21 months ago

What's Changed

Please note this release is not backward-compatible with previous releases.

  • You will not be able to connect to the Phase 2 testnet network with this version or access your Phase 2 chain or accounts using this version.
  • If you've earned Phase 2 testnet points, we recommend running ironfish accounts:export on an older version to back up your account keys.

Network definitions

Previously, network parameters like the genesis block and bootstrap nodes were built into the code, but in this release @mirayadav added support for network definitions, which allow the CLI to support multiple networks.

We'll eventually use this feature to run mainnet and testnet using the same CLI. You can pass --customNetwork to the start command if you'd like to create your own network, or pass --networkId with the ID of one of the networks in this file: https://github.com/iron-fish/ironfish/blob/38d2528903d3def6be0eaa4eaf400deb541b404c/ironfish/src/defaultNetworkDefinitions.ts

Related PRs

Add sender to transactions

Transactions now display the public address from which they were sent. Transactions still allow multiple recipients, but for now, we're limiting transactions to a single sender to support this feature.

Related PRs

Adding transaction commitment to block header

Block headers now contain a merkle root of all transactions in the block, allowing block recipients to verify that they've received the matching transactions for the block.

Related PRs

Reducing network and storage usage

We removed some unnecessary fields from the database and block header to save disk space and network usage.

Related PRs

Continuing work on multi-asset support

Multi-asset support is not yet usable in the CLI, but the underlying fields and circuits are nearly complete.

Related PRs

  • feat(ironfish,rust,rust-nodejs): Add Napi bindings for mint descriptions by @rohanjadvani in #2652
  • feat(ironfish): Read burn descriptions from transaction in deserialization by @rohanjadvani in #2659
  • feat(rust-nodejs): Add note.asset_identifier() by @rohanjadvani in #2661
  • feat(rust-nodejs): Add transaction.mint and transaction.burn by @rohanjadvani in #2662
  • feat(ironfish,rust-nodejs): Update create transaction handler to include mints and burns by @rohanjadvani in #2665
  • refactor(ironfish): Read and store Note asset identifier for quicker acces by @mat-if in #2666
  • feat(ironfish): Add assets store to blockchain by @rohanjadvani in #2677
  • feat(ironfish,rust-nodejs): Update blockchain assets store when processing blocks by @rohanjadvani in #2703
  • feat(ironfish): Update balances store in walletdb to include asset by @rohanjadvani in #2729
  • feat(ironfish): Add asset awareness when checking amounts needed for spends by @rohanjadvani in #2730
  • feat(ironfish): Use assetIdentifier when saving unconfirmed balance by @rohanjadvani in #2738
  • feat(rust): Assets should have a valid non-empty name by @mat-if in #2739
  • feat(ironfish): Update getBalance to take an asset identifier by @rohanjadvani in #2742
  • Check mints and burns in miner fee transactions by @dguenther in #2766

Change in data directory structure

We've changed the folder structure of our data directory to make it clearer which folders contain databases and which folders contain configuration.

Related PRs

Community PRs

Thanks to our community members for their contributions to this release!

Full Changelog: v0.1.54...v0.1.55

Don't miss a new ironfish release

NewReleases is sending notifications on new releases.