RNode-0.8.1 release plan
Reference
Document status | COMPLETE |
---|---|
Release status | RELEASED |
Related pages | RChain consensus specification |
Milestones
Start date | |
---|---|
Sprint 18 | |
Sprint 20 | |
Demo | |
Release | |
Testnet relaunch |
RNode v0.8.1 (fbd2fc9) includes several new features, security improvements, bug fixes, and work to improve testing and debugging. Work continues to address stability issues in the platform that block the launch of a public test net. Test net blockers shows these known issues.
Upgrade to Java 10
The most important change for RNode users with this release is the upgrade to Java 10. The software works with Java 10 or higher. We recommend https://openjdk.java.net/projects/jdk/10/.
Consensus
This release includes work to improve debugging efforts and a number of bug fixes related to the Casper consensus protocol.
Rholang
RNode v0.8 introduces the ability to measure 'time' on the blockchain. To implement certain features, there needs to be a notion of time on the blockchain accurate to the day (+- 24 hours). This is done by way of an ambient channel that is a notion of 'wall clock time'. This Rholang feature supports requirements for unbonding wait time for validators.
This release also includes an update to the matching tutorial and an example for use with the registry, 'tut-registry.rho'.
DAG storage
RNode operators need a way to save the state of the blockchain to disk to support faster recovery after a restart. This release supports RNode writing complete block data to disk to minimize network synchronization across node restarts. If a node is down for extended periods, it will be forced to perform synchronization with others nodes in order to update both its block data store, the DAG, and the LatestMessages table for validators.
Name registry
The name registry debuted in RNode v0.7.1. This release includes changes to support use of the name registry for the proof of stake contract, make mint, and the basic wallet. You can find examples for using some of the registry functions in rholang/examples/tut-registry.rho.
dApp developer and RNode operator support
This release provides:
- An API to provide block information for a deploy given a user ID and timestamp
- A method to return an unforgeable name
- The start of the work to deliver the Rholang API to fund contract deployment. Please see - RHOL-775Getting issue details... STATUS for more details. In addition, this release provides a Rholang API to support deploy information to payment code, an API that accepts REV for deployment in the proof of stake contract, and adds a test for estimating the cost of deploying payment code.
Performance and security
We observed stack overflow errors while processing large amounts of Rholang. This release includes work to harden against deeply nested Rholang. Since this is a generic issue that could occur in different scenarios and in different parts of the interpreter, we focused on hardening the interpreter, specifically improving stacksafety of the normalizer, the reducer, spatial match, and most of the recursive functions used for the interpreter.
Other work in this release supported performance enhancements related to streaming of messages across the network and refactoring in the consensus module to use communication status messages and broadcast.
Work completed for this release
Description of release packaging
Release packaging will include:
- Docker image (Supported on Linux only)
- Debian package
- RPM package
- .zip file
- tar.gz file
- Brew installation
Where do developers go to learn more and get started?
Please visit v0.8.1 on GitHub for binary artifacts.
A docker image is available via
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