Skip to content

Releases: iron-fish/ironfish

v0.1.42

05 Aug 22:28
303e054
Compare
Choose a tag to compare

What changed

Snapshots

Service command to create and upload chain snapshots

The service:snapshot command zips the chain database and uploads it to an S3
bucket. A manifest file indicates the block sequence of the snapshot and the
creation time of the snapshot.

CLI command to download a chain snapshot

The chain:download command will download a chain database snapshot and replace
a node's database. This allows nodes that are far behind the head of the chain
to sync more quickly by downloading a pre-synced chain.

> ironfish chain:download
Download 42.57 GB snapshot to update chain head from block 1 to 124125?
Are you sure? (Y)es / (N)o: Y
Downloading snapshot from https://d1kj1bottktsu0.cloudfront.net/ironfish_snapshot_1659661487895.tar.gz
Downloading snapshot: [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 1% | 428.41 MB / 42.57 GB | 38.06 MB/s | ETA: 17m 31

Migration dry run support

Developers writing database migrations can use the dry run feature to test
migrations without affecting the database.

Disallow importing the same account twice.

Importing an account multiple times and affects node performance by requiring
each note to be decrypted multiple times.

Full changelog: v0.1.41...v0.1.42

v0.1.41

02 Aug 02:17
0c7a13b
Compare
Choose a tag to compare

What's Changed

A big change in this release is the database migration system which will be used for many future features. Currently database migrations must either be run manually with ironfish migrations:start or by running ironfish start --upgrade or by setting the databaseMigrate flag in config. This release does not have any long running migrations but in the future migrations may be long running. You WILL need to run ironfish migrations:start or ironfish start --upgrade or set databaseMigrate after upgrading or else your NODE WILL NOT START.

There's also some changes to our transaction gossip. We are using block and transaction hashes to determine when to send to a peer instead of gossip message nonce. This is a step in the direction towards gossiping blocks and transactions by hash which will reduce bandwidth.

We now have the ability to batch verify transactions in Rust which will improve accounts and gossip performance. There's also some code cleanup and helpful CLI improvements. All changes can be seen below

CLI Improvements

  • Add nodeName and blockGraffiti to debug command by @drunkensiberia in #1862
  • Add nodeName and blockGraffiti to status command by @drunkensiberia in #1863
  • Add new renderSpan() to render time to human text by @NullSoldier in #1878
  • Display options extend from CliUx.ux.table by @hairtail in #1855
  • Enable fullUnicode rendering for blessed by @drunkensiberia in #1876

Batch Verify Transactions

Gossip

Database Migrations

Developer Tools

Code Cleanup

Full Changelog: v0.1.40...v0.1.41

v0.1.40

23 Jul 03:13
0918065
Compare
Choose a tag to compare

What's Changed

The previous version v0.1.39 used a lot of additional memory because adding known transaction filters to each peer. This release reverts that change and adds a few more changes since the last release.

Full Changes

Full Changelog: v0.1.39...v0.1.40

v0.1.39

22 Jul 02:13
277a1b1
Compare
Choose a tag to compare

What's Changed

This is a smaller release. There are some improvements to the pool code, code cleanup (we've deleted rust-wasm). We are also making a change to how transactions are gossiped to see if that improves transaction propagation time and network usage for nodes.

Pool

Bug Fixes / Code Improvements

  • change metrics meter to exponential weighted moving average by @wd021 in #1646
  • FEAT: Add expiration to accounts:transaction command by @hairtail in #1801
  • Remove wasm code by @mat-if in #1814
  • Remove unnecessary type aliases by @mat-if in #1815
  • fix(ironfish): Remove submittedSequence check in accounts:transactions by @rohanjadvani in #1813
  • Add default trait to memo for better memo ergonomics by @mat-if in #1820

Block and Transaction Gossip

Full Changelog: v0.1.38...v0.1.39

v0.1.38

13 Jul 22:10
85dc82e
Compare
Choose a tag to compare

What's Changed

We've made some improvements in the mining pool, transaction and block propagation as well as many bug fixes and CLI improvements! Read on for more info.

Mining Pool

We've made some improvements to the mining pool by adding a command to get the status from the mining pool with the command ironfish miners:pools:status -p pool.ironfish.network. This shows things like subscribed count and number of clients connected to the pool

Transaction + Block Propagation

We've merged a lot of code related to transaction and block propagation improvements. Those improvements won't be seen in this release since the feature is not ready, but look forward to that code being used soon.

CLI Improvements

We've made some usability improvements to CLI commands notably adding progress bar to the long running accounts:rescan command and fixing the progress bar for chain:export.

Code Cleanup / Bug Fixes

Some users were seeing Node already in use messages even when a node was not running. That has been changed to surface underlying DB errors that may now show up instead. Also adding a potential fix for noteToNullifiers map error that some users encounter.

Full Changelog: v0.1.37...v0.1.38

v0.1.37

28 Jun 21:44
44a7990
Compare
Choose a tag to compare

Notable Changes

We've done a lot of work to stratum, and introduced a stratum protocol version. This will require you to upgrade your miner by the next major release or you will no longer be able to connect to the ironfish pool.

A big thank you to our external contributors like @wd021, @krompets, @rpanic, @hamza-siddiq, and @hpool-dev

What's Changed

  • Add a better description for accounts:balance command in --help #1599
  • Replace bfilter with @ironfish/bfilter #1598
  • chain:forks now shows graffiti, proper spacing for some columns #1606
  • Added test for accounts:publickey @krompets #1626
  • Updated fuse.js for ironfish-graph-explore @hamza-siddiq #1580
  • Added ironfish status test @krompets #1644
  • Log when syncing does not start from orphan blocks #1642
  • Small test script cleanup @wd021 #1647

Worker Pool

  • Remove lastJobId from worker pool #1605
  • Fix dropping transactions because of larger blocks by increasing worker pool saturation size #1608
  • Add a round robin queue to the worker pool #1607
  • Fix not properly stopping syncer on node close #1660
  • Rename accounts:publickey to accounts:address #1658

Peer Network

  • Send known peers in peer list message #1685

RPC

  • Stabilized and made TLS encryption the default wheen using the RPC layer over TCP #1581, #1584, #1585, #1565, #1575, #1589, #1592, #1591,
  • Fixed RPC messages being dropped by adding a message buffer to the RPC adapters #1614

Pool & Mining

  • Record the transaction hash in the payouts table #1586
  • Adds a config poolPayoutExpirationSequenceDelta option to change payout transaction expiry #1587
  • Fixed miner messages being dropped by adding a message buffer to the stratum server #1609
  • Factored out class for discord, lark notifications #1623
  • Don't accept miners without a remoteAddress #1631
  • Add option to the number of miners from one IP address @rpanic #1553
  • Add links to block explorer in webhook messages #1634
  • Add timeout to reconnection #1635
  • Adds more external notifications for the pool #1643
  • Add verison to stratum handshake #1656
  • Add stratum peer banning and management system #1659
  • Add miner disconnected messsage to stratum #1674
  • Resend stratum ban message on reconnect #1689
  • Add option to disable stratum server banning #1680

Wallet

  • Check for minimum confirmed blocks when fetching balance #1571
  • Add --no-rescan option on accounts:import by @wd021 #1594
  • Batch jobs to fetch unspent notes #1604
  • Added new accounts:notes and accounts:transactions commands by @wd021 #1086
  • Wallet should accept transaction regardles of mempool #1624
  • Add depositAll command @wd021 #1487

Full Changelog: v0.1.36...v0.1.370

v0.1.36

06 Jun 16:59
6dfc736
Compare
Choose a tag to compare

Notable changes

"Hosted Node" points will now only be counted for nodes running the latest version, with a 1 week grace period. This means that if you are running a node with version below 0.1.36, you have 1 week to upgrade to 0.1.36 to continue gaining points for the "Hosted Node" category.

For those of you hosting a pool: A new flag has been added --balancePercentPayout which will override the poolBalancePercentPayout config setting. This new CLI flag functions as an actual %, so for example miners:pools:start --balancePercentPayout=30 will payout 30%. The goal is to allow pools to update to this correct logic without causing unexpected changes. poolBalancePercentPayout will either be fixed or deprecated in a future release.

What's Changed

New Contributors

Full Changelog: v0.1.35...v0.1.36

v0.1.35

18 May 19:50
4bc3765
Compare
Choose a tag to compare

What's Changed

  • Add index for mined blocks (@deekerno in #1189)
  • Adjust miners:mined RPC route to use the index (@deekerno in #1239)
  • Reset index when running ironfish reset command (@deekerno in #1433)
  • "Deleted transactions" log should now only display if transactions are actually removed (@mat-if in #1432)
  • Speed up transaction merkleHash function (@dguenther in #1389)
  • Improve counting of mining pool clients, and properly dispose of clients that error out (@mat-if in #1442)
  • Revert change to new RPC TCP server (@dguenther in #1434)

Full Changelog: v0.1.34...v0.1.35

v0.1.34

14 May 15:12
Compare
Choose a tag to compare

What's Changed

  • Disconnect from peers who send too many unwanted transactions (@lwisne in #1383)
  • Check worker pool saturation before validating transactions (@mat-if in #1357)
  • Remove enableNativeTcpAdapter flag and switch to native TCP adapter (@danield9tqh in #1397)

Full Changelog: v0.1.33...v0.1.34

v0.1.33

13 May 01:38
48d9cef
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.1.32...v0.1.33