Release 0.9.25.1 is the second and substantial part of the Last Finalized State milestone. The main content in this release is DAG Store, BlockStore and LMDB improvements, using the Key Value Store implemented in 0.9.25. Node catch up is now much improved. This release also includes many bug fixes including for the slashing /tuple space mismatch bug reported earlier. gRPC behaviour is improved with per validator grpc channel
We will be releasing another small bug fix release 0.9.25.2 that also tests and cleans up end of epoch bonding and unbonding.
Sequence of updates is testnet to mainnet observers and then main net validators if applicable. Current philosophy is to minimize updates/disruptions to validator nodes while enabling improved observer node functionality.
Main difference between testing on Observer nodes vs. Validator nodes: When we test on the observer node, a large part of the code base is executed. The Block creation code runs only on the validator nodes. As a part of that, the portion of the Runtime Manager that plays the deploy is run on the validator node but not on the observer node.
Sprint 61 in progress
Main Focus: Epoch change on the main net at the 250k block height, take in new bonding, Work towards completing Last Finalized State, identify and address as many slashing issues/bugs as possible, hardening the main net, improve performance, prepare for epoch change. Current PR list at https://github.com/rchain/rchain/pulls
Fix this: We had an issue on the testnet where one block was corrupted at the tuple space level. We are investigating the code as well as devising a method of recovering if something like that happens on the mainnet. Tomislav has put together a proposal to correct and proceed in situations like that.
Protection from 'too much free work' attack, policy to reject deploys when user doesn't provide sufficient phlo or does not have sufficient REV in the wallet to cover the phlo etc - https://github.com/rchain/rchain/issues/2997
Fix additional identified bugs
Creating a design spec and the code for how to update contracts on the main net.
Ongoing - Improvements to last finalized state expected to be completed in the 0.9.26 release. Significant progress, some of which have been released in 0.9.25 and 0.9.25.1 . The PR and the branch are structured so that multiple people can collaborate/ work on different parts of the feature at the same time. The scope of this work enables (a) faster catchup by new nodes - you can start from the last finalized state - this is a differentiator for RChain (b) offloading older data, differentiated storage and retrieval strategies for the same (c) allows for a leaner / less bloated node. This change touches most parts of the code base. Having to pick between refactoring and work-arounds in various parts. Tomislav implemented a mostly modular and future-beneficial approach.
SRE - Procedure for faster garbage collection in JVM implemented, to reduce OOM errors
A total of 20 validator nodes in the new epoch, new nodes set up on IBM in multiple regions.
Ongoing - We are slowly moving from Jira to Github for the development team, started publishing release notes in Github with release 0.9.25. New issues are entered only in github. For a while, we will maintain in both Jira and Github.
ToDo - There were questions from the community regarding enabling privacy and zero knowledge proofs on the chain - this is in active discussion. Greg will create a position statement on this and likely discuss the current state of the art, use cases and potential approaches in an RCast session. Same with sharding and cross-chain operation.
Excel Model for 'economics of sustainable network security and decentralization' to enable community understanding of the inter-relationships and community conversation around these issues. Will be releasing the initial version soon. May have multiple releases.
Dan Connolly continues to make progress on the RChat effort using zulip.
Current Backlog (partial)
Improve merging in system deploys
Improve Casper by enabling more tests and resolving identified code issues
Improve BlockMerge including refactoring RunTimeManager
Improve multi-parent Casper enablement
Implement sharding capabilities
Improve logging to be able to learn what API calls are being used, so they can be related to resource use and performance etc
Rholang 1.1 to improve syntax and user experience / learning curve