Today marks the release of IRI 1.5.5. The IOTA Reference Implementation (IRI) software is the backbone of the IOTA network. An evolving piece of software that is incrementally moving towards the implementation outlined in the IOTA white paper.

As development has progressed, we have aimed to make running an IRI node and contributing to the IRI code as simple as possible. In this regard, there is room for significant improvement both from the node operators’ perspective and community developer perspective. With IRI 1.5.5, we hope to make a step in tackling this with an improved and refactored IRI configuration.

Configuration improvements

The configuration improvements we have made to IRI are visible both from the usability perspective and the code quality perspective. To begin with, you can run the new version of IRI with the `--help` parameter. This prints out all the configuration options and their descriptions. Testnet configuration has also been separated from Mainnet configuration, and offers additional options. If you want to print the Testnet configuration, just use `--testnet--help`.

Printing out configuration options with the — help parameter.

In previous versions of IRI, not all configuration options were supported from the CLI, and could only be specified in the `.ini` file that was loaded when launching IRI. In IRI 1.5.5, all options are also available as command line arguments.

We have also made changes to the description of individual options to make them more understandable and easier to use.

Some of our follow-ups are to make sure all the configuration flags have a well defined and unified behavior. We have reserved these for the upcoming releases as these will be breaking changes.

Other improvements

IRI 1.5.5 also contains multiple other improvements, for example, a fix to how transactions are propagated. This should help with transaction promotions and lower the need to re-attach transactions.

What’s coming next: IRI functionality improvements and local snapshots

There’s a lot more coming in terms of refactoring and improvements to the existing IRI functionality. We want to make changes to the database layer, refactor the APIs to make the contracts clearer, improve the networking layer and much more. Our highest priority right now, however, is finalizing and testing local snapshots, which will be part of IRI 1.6.0.

Your feedback on new versions of IRI is always appreciated. That’s why in the future, we’ll be posting pre-release versions of IRI in the #IRI channel on the IOTA Discord channel for you to download and test. This is is a great opportunity for you to get your hands on what’s coming and help us shape what the new versions will look like.

Release notes

A full set of release notes is available on the release page.

This version includes the following:

Fix solidity propagation from bottom to top (#907) …

move sleep inside spawnSolidTransactionsPropagation loop (#911) …

Error in log statement (#829) …

Fix grammar in API responses (#884)

Changed Dockerfile to source java and maven from precompiled docker (#929)

Fix: TransactionValidator instance based / TransactionRequester fixed (#914)

remove checkSolidity mocks (#908)

some TransactionValidator fixes regarding solidity (#913) …

Refactor Configuration (#910) …

Enable batch deletion in rocksDB (#939)

Fix milestone start index default value (#941) …

Contributing guidelines (#947)

fix generics in RocksDbPersistenceProvider (#956)

re-enable ` — remote` flag — opens API interface to all hosts (#953)

Parse case insensitive boolean text (#966) …

Javadoc on API command methods (#943) …

renamed addresses to addressList (#992)

Fixed line 612906 because it was incomplete (#1019)

Fix/config trailing whitespaces (#1050)

Thanks to Gal Rogozinski.