At
blk.io we’ve had some exciting times recently; our team has been growing in order to bring to fruition our plans for web3j.
Earlier this month we released web3j 3.6.0 with some critical fixes, and we are now happy to announce the release of 4.0.0-alpha-1 with internal and community contributions.
4.0.x is still undergoing active development but we thought we’d give you a flavour of what is to come with an alpha release. Stay tuned, we don’t intend on keeping it an alpha for too long! Full details on this release can be found below.
Reactive Streams 2.0
The first of two headline features in this release is the upgrade from RxJava 1.0 to RxJava 2.0, a discussion of the main differences between these two versions can be found
here.
What does this mean for web3j? All of the methods that included Observable in their names have been renamed to instead use Flowable.
We have also done a cleanup of the lengthy method names that were impacted by this API upgrade.
For example,
has been renamed to
replayPastAndFutureTransactionsFlowable
For more information refer to the
Web3jRx interface.
The full change set can be found at
#753, thanks to
@vpriscan for this valued contribution.
BIP44 implementation
The second headline feature in this release is BIP44 implementation, thanks to
@AmiMobilechain; the full change set can be found at
#686.
This spec builds upon the scheme described in BIP43 and the algorithm in BIP32 to provide a logical hierarchy for wallets, thus enabling generation of keys in a hierarchical structure from one single seed. There are many benefits to this, such as ease of maintenance and key regeneration. Refer to the BIP44
specification and
Bip44WalletUtils source code for further information.
Various other fixes and improvements
Equally as important are the various fixes and improvements we look to include in each release. Some prominent fixes are:
Please accept my apologies if I’ve missed your contribution of the list — pull requests and issues are one of the main mechanisms to get feedback from users on the library, so I appreciate people taking the time to submit them.
For further details of the other changes, please refer to the
releases page.
What do I need to do?
For almost all use cases, if you were using web3j core previously you shouldn’t have any problems dropping in the 4.0 core.
You will need to regenerate your smart contract wrappers to use this release, in addition to migrating across your method calls to use the updated function names as per the RxJava 2.0 section above.
What’s next?
We’ve got some exciting plans for the upcoming 4.x releases, with various community-driven
pull requests, build and process improvements, and
blk.io contributions.
For 5.x and beyond we will be looking to streamline our libraries and use
Java 9’s Flows.
We are actively developing web3j, watch this space for more exciting news!