Skip to content

Releases: iron-fish/ironfish

v0.1.57

09 Jan 23:21
7886c32
Compare
Choose a tag to compare

What's Changed

  • Fixed wallet crashing when there are no accounts

Full Changelog: v0.1.56...v0.1.57

v0.1.56

09 Jan 17:40
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.55...v0.1.56

v0.1.55

20 Dec 20:03
38d2528
Compare
Choose a tag to compare

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

v0.1.54

20 Nov 18:30
22e9f8c
Compare
Choose a tag to compare

What's Changed

Adds a critical fix for the accounts:repair command released in v0.1.53

  • fixes accounts:repair for expired transactions by @hughy in #2623

Full Changelog: v0.1.53...v0.1.54

v0.1.53

19 Nov 22:30
de27e51
Compare
Choose a tag to compare

What's Changed

‼️ V3 Consensus Upgrade ‼️

⚠️ We are turning off miners rewards at block 279900 which is estimated to be mined at November 21st, 2022 3:30 PM EST.

This will stop new iron from being generated, and allow deposits to the end of the testnet Phase 2. You MUST upgrade immediately as this adds a hard fork at block 279900.

ironfish accounts:repair

You can use this new command to repair your wallet and help fix some corruption. We recommend running this on your wallet to repair some issues with note to nullifier errors happening. We also put in some wallet fixes thanks to @hughy to hopefully prevent this, and other issues from happening again.

Full Changelog: v0.1.52...v0.1.53

v0.1.52

16 Nov 03:33
1bf0c8e
Compare
Choose a tag to compare

What's Changed

Hard fork repair

The chain:hardfork command repairs nodes that incorrectly accepted a double spend block that resulted in a hard fork.

Syncing performance Improvements

Many improvements have been made to parallelize operations while downloading, verifying, and adding blocks which have improved overall syncing speed.

Wallet bug fixes

Several changes that address common wallet issues such as the display of negative balances and nullifierToNote errors.

Full Changelog: v0.1.51...v0.1.52

v0.1.51

01 Nov 21:31
67da183
Compare
Choose a tag to compare

What's Changed

Syncing performance Improvements

Many improvements have gone into add block speed which have improved overall syncing speed.

Fixed installing and building node-datachannel

node-datachannel was broken on the latest release, requiring users to build it form source even when using NPM installations.

Fixed CLI on windows

This fixes the CLI on windows. It was broken with an error regarding permissions around an IPC socket.

Full Changelog: v0.1.50...v0.1.51

v0.1.50

31 Oct 23:02
02939ae
Compare
Choose a tag to compare

What's Changed

‼️ V2 Consensus Upgrade ‼️

Iron Fish's second consensus upgrade will activate at block 255,000 estimated to occur on November 2nd, 2022. You must upgrade your node by block 255,000 or you will be on a hard fork. These changes were merged in #2378.

Why are you doing this?

We are moving to block size based consensus with a maximum block size of 2MB. This is replacing the previous transaction count limit of 300 transactions. We've updated the mining manager to optimize packing transactions in a block according to this max size limit.

Fee Estimation

@ygao76 and @hughy added a new transaction fee estimation module. The FeeEstimator caches fees from transactions in recent blocks and uses that history to estimate the fee level needed for new transactions to be mined in upcoming blocks. A future release will us the RPC endpoint implemented in #2428 to estimate fees for transactions created using the accounts:pay and deposit commands.

Bug Fix: Spent Notes Marking

@hughy fixed an issue where notes were being marked as unspent after you spent them. The fix to stop wallet rebroadcasting expired transactions was implemented in #2399.

Other changes

  • Speed up transaction creation by not materializing unspent notes (@NullSoldier in #2299)
  • Fix transaction and block size calculations for the block explorer (@mirayadav in #2302)
  • Get latest transactions when listing transactions (@hairtail in #2355)
  • Validate config file settings (@neuronull in #2359)
  • Add accounts:status CLI command (@jowparks in #2366)
  • Updates to deposit and deposit-all commands to allow increased deposit size (currently not enabled yet) (@jowparks #2391 , #2418 , @hairtail #2414 )
  • Add block download speed to status (@danield9tqh in #2349)
  • Reduce CPU usage by only storing peers in CONNECTED or CONNECTING states (@dguenther in #2275)
  • Standardize ore calculations across the codebase to avoid floating point precision problems (@web3Liuwentong & @NullSoldier in #2368)
  • Add rpc:token CLI command for setting/retrieving RPC auth token (@hughy in #2293)
  • Stop wallet rebroadcasting expired transactions (@hughy in #2399)

Full Changelog: v0.1.49...v0.1.50

v0.1.49

05 Oct 18:50
ec57ed3
Compare
Choose a tag to compare

This release fixes an issue that users have had when running the Wallet 2.0 data migration.

We're still working on optimizations and bug fixes. This isn't the end of improvements to the wallet. If you have any issues, please reach out in discord.

Full Changelog: v0.1.48...v0.1.49

v0.1.48

05 Oct 08:42
6769ec1
Compare
Choose a tag to compare

What's Changed

Wallet Improvements

This release primarily focuses on Wallet improvements. We are launching significant wallet improvements with the launch of Wallet 2.0. You'll need to migrate your accounts database to the new Wallet format. You can do that using ironfish migrations:start -v or just use ironfish start --upgrade.

Some of the improvements are

  • Added a new explain flag to ironfish accounts:balance --explain to better understand your balance.
  • Wallet data is no longer stored in memory, we've pushed everything into the wallet database. Large wallets would cause the node to run out of memory.
  • Calculating your balance is now significantly faster and you can customize your confirmation range with the new --confirmations flag
  • You will no longer spend notes unless they are in the confirmation range. You can customize this with the new config option minimumBlockConfirmations.
  • Expired transactions are now left in the wallet, and shown in ironfish accounts:transactions
  • Many bugs have been fixed with displaying the status of transactions and they should now be much more reliable

We're still working on optimizations and bug fixes. This isn't the end of improvements to the wallet. If you have any issues, please reach out in discord.

We're also heavily been focused on increasing sync speed. We have made significant optimization to our mempool. When the mempool had many transactions, it would cause the node to slow down to the point where syncing wouldn't happen. The mem pool should now be less likely to cause syncing issues.

Breaking Changes

If you were previously using the hidden feature to enable RPC over TLS using --rpc.tcp, you won't be able to connect to your node anymore. The node now requires token authentication with our RPC TLS adapter. You can disable and use the unencrypted TCP adapter by passing --no-rpc.tls or set enableRpcTls config to false. Only do this if you're using Iron Fish behind a secure VPS or SSH tunnel!

Full Changelog: v0.1.47...v0.1.48