The release of RChain RNode v0.9.7 (f0299e4) progresses the platform toward the Mercury release and delivers optimizations and breaking changes current users of RNode should make note of. Below are some of the highlights of this release. For complete details about work included in RNode v0.9.7, please see the list below in the section "Work included in this release". For more information about using RNode, please see
--help within the node or User guide for running RNode
Changes to key algorithm and key handling (!!! BREAKING CHANGE !!!)
The RChain platform now uses the secp256k1 algorithm exclusively for public/private key pairs for both consensus protocol and system contracts. The previous release supported both the ed25519 and secp256k1 algorithms.
You can either bring your own key pair or use the
rnode keygen command to generate a key pair. RNode accepts secp256k1 keys in encoding similar to Bitcoin:
- Plain-text private keys as 64 hexadecimal digits (32 bytes)
- Uncompressed public keys as 130 hexadecimal digits (65 bytes) —
04 prefix followed by 128 hexadecimal digits (64 bytes) of public key points x and y.
See Bitcoin Book chapter about key formats for more details. Compressed public key format is not supported yet.
With the release or RNode v0.9.7 we are pleased to provide private key encryption support so you do not need to pass your private key on the command line. Users can now provide
--private-key-path <path to file containing the encrypted private key> command line option when a private key is required.
We are investigating a known issue for some RNode users who experience a break in console typing related to both
keygen and use of the password after using the path to the private key. Please see
for a more detailed description and interim workaround. TL;DR: You can use
tput init command to restore your console to normal state.
Changes to locating a deploy
Until this release, finding a Rholang deployment to the blockchain by poking around in the tuplespace of a block was tricky. Users used the `show-block` command and inspected the stringified tuplespace dump to check whether their data is available on chain. In addition to the challenge of searching in the tuplespace, there are other performance-related reasons to remove the tuplespace dump from the block info. With the release of RNode v0.9.7 we provide a much improved experience. First, we've removed the tuplespace dump from the block info and only report the change. Second, now every deploy command returns a
DeployID. Finally, users now use
find-deploy --deploy-id <arg> in node to query the blockchain for the block containing that deploy. The call returns the block header information.
Fetch last finalized block
Interested in knowing more about the most recently finalized block? You can now use
last-finalized-block to return information about the last finalized block known by Casper on a running node.
The Mercury release requires the propose API of the node to be on an internal port. Prior to this release it was on an external port which benefited early RNode users. With this release the propose API is available on both an internal and external API as we make the transition to just the internal port and continue to support dApp developers who still rely on the external availability of the propose API.
Note to dApp developers: Please prepare for the propose API to no longer be available on an external port in an upcoming release.
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:v0.9.7
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