All the validator nodes on the main net are currently running release 0.9.25. The observer nodes and the exchange node on the main net are running 0.9.25.1 release candidate.
Test net is currently running 0.9.25.1 release candidate. We're tagging the final 0.9.25.1 release and expect to update the test net and the main net observer and exchange nodes with it soon and the main net validator nodes subsequently.
The final tagged version of 0.9.25.1 has a new PR to implement per validator grpc channel https://github.com/rchain/rchain/pull/3006, along with the tests for nutzipper's PR for node catch up optimization and a fix for the slashing bug / tuple space mismatch error (Tomislav). This 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. This release also includes many bug fixes. Included PRs are listed at https://github.com/rchain/rchain/pulls?q=is%3Apr+milestone%3Av0.9.25.1
0.9.25 is a bug fix release, with significant configuration changes, preparatory constructs for last finalized state and many other enhancements (total of 25 PRs): Improvements to RNode Storage (Keyvaluestore in LMDB to be used in future releases by DAG Store and Block Store, as well as to cache transactions and state changes), HTTP Admin API endpoint and by bytesToHex method by Arthur Greef, Ability to visualize DAG from any point, Improved logging and handling of errors in the Web API, Configuration for API server, isFinalized call in the http API etc.
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.
Sprint 59 in progress
Main Focus: 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 at the 250k block height, expand validator nodes and take in new bonding. Current PR list at https://github.com/rchain/rchain/pulls
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.
Current Work In Progress
final PRs being merged and the release tagged for updates to the various networks. Expected to be completed this week.
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 more scheduled to be released in 0.9.25.1 after testing is complete. 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
DONE - Setting up a private repository to collect, discuss and resolve any security issues reported by the community or discovered by the team
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.
Thursday 10 AM Eastern. In the last session, we (a) reviewed the issues in the rchip repository, update status on some (b) Decided to complete the review and prioritize the items this week (c) decided to make the meeting frequency alternate weeks, to allow time for members to research governance technical approaches from other projects like Ethereum, Tezos etc. as input to designing our own Governance mechanisms. Meeting notes are at https://docs.google.com/document/d/1fvxMC6Bt5XwbVaLzYPy6ZPB8KzJvASO2sKRC6ZCPwpI
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.
Dan Connolly continues to make progress on the RChat effort using zulip. There was discussion of the RChat integration pattern in both this week's Casper session and last Saturday's Rchat session. This pattern can be effectively used in other situations. Steve Ross-Talbot is looking at using this pattern for polis open source voting app https://github.com/pol-is/polis
This week, Raphael conducted a couple of working session(s) to teach people how to create pages on Dappy
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