RNode v0.9.8 introduces slashing to the consensus protocol and performance improving features in RSpace and RNode. For more information about running RNode v0.9.8, please see our release page on GitHub and the User guide for running RNode. Continue reading for more detailed information about changes in this release.
Consensus protocol slashes validators upon proof of equivocation
This release delivers slashing, a key component of the consensus protocol. With slashing in place the protocol supports proving a validator produced an invalid block and then the subsequent slashing of that validator resulting in the removal of that validator from the validator pool and removing that validator's stake for producing the equivocation.
Steps toward delivery of validation and validator rewards protocols
This release includes building blocks in Rholang to support both the validation and validator rewards protocols. The new
closeBlock method will support validator transition as defined in the protocol, see Validator Incentives and Casper. The
pay method supports moving funds from the deployer to the validator proposing the block with that deployment.
New RSpace now runs by default
Following the introduction of the new RSpace in Rnode v0.9.6, users had to specify in the run command which version of RSpace to use. We did this to support testing and assurance the new RSpace worked properly. With this release the new RSpace now runs by default and users no longer need to to specify this in the run command:
--store-type v2. The old RSpace will be completely removed from the project in the next release.
Soft checkpoints in RSpace improve performance of block proposing
To significantly improve performance of `propose` we introduced the ability to create "soft checkpoints" in RSpace. These checkpoints remember the current state of the hot store so that it is possible to revert to this state if the subsequent deploy raises errors. The notable difference between this and standard checkpoints is the fact that the soft version does not build the history trie, which is costly both in terms of CPU time and storage, especially when repeated for every deploy.
Introduction of peek to RSpace
A key component of resolving conflicting blocks is the peek functionality. This release delivers the peek functionality to RSpace in that we can now mark a comm event with peek and an update to the event log to show peek events. When fully implemented in Rholang and in consensus, peek events will not be considered as conflicts between blocks, thus supporting conflict resolution. The completion of peek in Rholang and in consensus will be delivered in a future release.
Splitting the node discovery loop from clear connections loop provides node performance improvement
This release adds another performance improvement to node by creating two loops: one for node discovery and another for Casper-related messages and increasing the time between heartbeat checks related to the peering protocol. We continue to test this to ensure this resolves issues observed in testnet related to peering and timely receipt of the approved (genesis) block.
Removal of faucet from the codebase
Running a node with a faucet to generate tokens is no longer an option for node users. Users should instead fund a REV_vault with tokens to use in testing scenarios.
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