0.9.25.4 release resolves one of the long standing bugs
Getting issue details...STATUS
that was causing jvm errors. In this release, multiple keys support for LMDBStore is added.
Rnode 0.9.26-rc is ready. This concludes the Last Finalized State (LFS) work, which is a major milestone. We're calling this a pre-release, to allow the community to test for several days, before we make it final. Nutzipper will prepare a bog article to explain how the community can use this release to test LFS.
Test net is currently running release 0.9.25.4.
With 0.9.26-lfs-Pre-release, 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
Main net has 20 nodes running plus observer nodes and exchange nodes.
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 66 in progress
Completed - Main Focus of release 0.9.26: Completing and testing Last Finalized State, identify and address as many slashing issues/bugs as possible, hardening the main net, improve performance. Current PR list at https://github.com/rchain/rchain/pulls
Completed - Complete Last Finalized State https://github.com/rchain/rchain/pull/2913 Working through different kinds of testing and resolving the discovered bugs - both in the newly written code as well as in the previous code. Validation tests for state are now completed.
DONE - Team is working on mapping out all state changes and the inter-relationships, to make sure LFS calculation/characterization is correct in all possible conditions. Also trying to resolve issues related to properly handling slashing justifications and the blocks that contain those. https://gist.github.com/tgrospic/4f92351474e1aea44dfcd9c55c0d697d has the latest version of the Last Finalized State specification
Once we have the process for PoS contract changes (hard fork) implemented (0.9.27 or later versions), further simplification of last finalized state may be possible.
API and usability improvements - in conjunction with the community
In Process - Will has started on OpenAPI/Swagger documentation of the API https://github.com/rchain/rchain/pull/3128 Familiarity with Swagger and the available swagger tools should make it easy for developers to use our API.
In Process - Identify and implement further 'quick hit' improvements to developer experience, in preparation for the hackathon.
Future - Also in the thinking stage is a graph representation of payments, with perhaps date+time and amount on the arcs.
Release 0.9.27 and beyond
Creating a design spec and the code for how to update contracts on the main net. This will enable addressing some of the pressing issues such as faster epoch times, and other issues listed below
In process: Finish dependency updates and plugin updates
In process: Improve error logging, debugging and monitoring infrastructure. This will help improve developer productivity, both on the core team as well as dApp developers
Completed for now - Refactor Run Time Manager. This includes many changes including https://github.com/rchain/rchain/pull/2946. We will be testing this with non-conflicting deploys. We're getting nice clean DAG after the refactoring the runtime to remove most of the locks and allow multiple runtimes to run in parallel. We may need more refactoring in future, but we want to do this incrementally, as needed.
In Process - conflict resolution among deploys within a block and/or maximal feasible concurrency during creation and block processing
Explanation for last finalized state (released in 0.9.26): 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.
Hackathon planning and execution is in full swing. Registration page is ready. Much improved hacakathon page at https://rchain.coop/hackathon.html .Hackathon dates are pushed back to Nov 7-8, with qualifying test on Oct 31, to accommodate student exam schedules and to give us more time to market and prepare for it.
In process - We need to generate a bank of test questions, Pull Request tasks on Github, and Problem Statements, brief sessions on tips and tricks during the hackathon, and office hours during the hackathon.
In process - We need to improve documentation, learning links and examples to help developers brand new to Rholang get up to speed. The community is requested to contribute to any or all of these.
Ongoing - First meeting with the developer community was held last week. Current plan is to make https://rholang.github.io/ the hub of all learning materials. dckc has been making substantial improvements to the learning materials as well as the API tools.
Slow Going - Dependencies updates are now being handled in 9rb/rchain branch. It's a good exercise in learning Scala environment and dependencies. We may use these as exercises for potential Scala interns to be gained from the Hackathon engagement.
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. Meets alternate weeks. Meeting notes are at https://docs.google.com/document/d/1fvxMC6Bt5XwbVaLzYPy6ZPB8KzJvASO2sKRC6ZCPwpI Discussions and work on a model of economics to ensure network security is proceeding. Most recent discussion was about ensuring some amount of stake beyond a 4 month window, spreading out stake over a longer time and how to incentivize that, while ensuring that everyone pays for network security.
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.
In progress - 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.
Substantial progress on RVote including user testing of UI and improvements resulting from that.
Looking for developers to help make progress on the RChat effort using zulip. SRT and possibly Will to add 'Rchain to zulip' functionality. Invite any community members with the expertise to help in this.
Current Backlog (partial)
Improve merging in system deploys
Improve Casper by enabling more tests and resolving identified code issues
Improve multi-parent Casper enablement
Resolve slashing bugs, including additional refactoring of RunTimeManager
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