RNode v0.9.5 introduces a redesign of RSpace to better support blockchain building on the RChain platform and provides optimizations in RNode to improve the user experience for RNode operators.
The release of RNode v0.9.5 completes the delivery of work to renovate RSpace to better support blockchain building on the RChain platform. This release offers users the option to run RNode with the new RSpace via a flag in the run command,
--store-type v2. In an upcoming release and once we fully complete testing of the new RSpace,
v2, we will change to make this run by default and without the flagThe need for this work emerged in late March 2019 when we observed limitations in the platform for building long chains. The RSpace team investigated the issue and proposed renovating the data, trie, and hot storages solutions. To do this they introduced a history reader impl to the data store, created a trie store that tracks only key structures without data, and provided a new in-memory hot store that lazily reads data from history when needed. Full details and links to relevant PRs to the codebase are available in
. The remaining work to complete the RSpace renovation work will be to optimize the system.
This release contains several changes to improve the user experience of RNode. For complete information on running RNode, please see User guide for running RNode.
Generate a public/private key pair via the command line
You can now generate a public/private key pair to use with RNode and on the RChain platform via the command line. Today this generates an ed25519 key pair. In the next release, as we move over to using secp256k1, this command line key generator will be updated to provide this type of key pair.
Node fails if passed invalid paths to files
Previously if users provided an invalid path to a file in the run command such as
--config-file there was no feedback from RNode to indicate this was the cause of problems with operation after node startup. We resolve that in this release with a change that makes node fail immediately if the path to a file is invalid.
Completion of work to support blocks of all sizes with the addition of a circuit breaker
The release of RNode v0.9.5 completes the feature work to provide streaming of block messages of all sizes and provision for a circuit breaker to stop receiving a stream if the data received is too big. See RCHAIN-1496 for complete details. By default the circuit breaker is set at 200 MB. Users can customize this value by specifying using the
flag --max-allowed-streamed-message. RNode logs a warning when the circuit breaker breaks.
Locate RNode address in HTTP node information
This release adds the RNode address to the information provided via port 40403.
Improved messaging from consensus
RNode operators now have better messaging from the consensus module at RNode startup to observe the execution of steps to request, receive, and process the approved genesis block and initialize the consensus module in RNode as part of the process of joining an RChain network. In addition to improving the RNode operator experience, this improved messaging supports debugging of issues at startup.
Work included in this release
Description of release packaging
Release packaging will include:
Where do developers go to learn more and get started?
Please visit our release page on GitHub for binary artifacts.
A docker image is available
docker pull rchain/rnode
Homebrew installation via
brew install rchain/rchain/rnode
Where will bugs be filed?
We use Jira to collect bugs and feedback. File a bug
Where do developers go for support?
Please visit https://developer.rchain.coop or file a bug.
What license will this be released under?
The RChain software is licensed under Apache License, version 2.0
Rholang is licensed under the MIT License (MIT)
The Docker image is licensed under the GPL 2.0 License
Work completed since last release