RSpace - 0.1.1 release plan
Reference
Document status | APPROVED |
---|---|
Release status | RELEASED |
Related pages |
Milestones
Start date | 9 Oct 2017 |
---|---|
Sprint | 9 March 2018 |
Sprint | 23 March 2018 |
Release from development | 26 March 2018 |
Membership demo | 28 March 2018 |
Release | 29 March 2018 |
Development team
Development lead | Program manager | Project manager | Developer | DevOps | Page owner |
---|---|---|---|---|---|
Henry Till | Medha Parlikar (Unlicensed) | Kelly Foster | Yaraslau Levashkevich | Jeremy Busk | Medha Parlikar (Unlicensed) |
Stakeholders
Name | Role |
---|---|
CEO-RChain coop | |
CEO-Pyrofex |
Marketing team
Marketing lead | Evangelist | Content owner |
---|---|---|
Kelly Foster |
Release summary
Simple overview
This release introduces the RChain storage implementation as a separate library for use by Scala developers.
Technical overview
Metric for tracking success
Done when:
- Users can fetch the library as a JAR from Maven Central or build it from source.
- Users can read Markdown documentation about how to use the library. This documentation will be published in the main {{rchain}} Github repository.
- Users can read Scaladoc API documentation for the library. (TBD: where do we publish? GitHub Pages)
- Users are able to store data into the library and retrieve the data by using the methods outlined in the documentation.
What is special about this release?
Traditionally, a key-value store provides two main functions for interacting with a given store: put, which persists a piece of data at a given key, and get, which retrieves the data stored at a particular key.
rspace
departs from this model and provides a novel approach to storing and retrieving data.
Here are some key differences:
Rather than associating a piece of data with a particular key, in
rspace
, a piece of data is associated with a channel. Roughly speaking, inrspace
, a channel can be any Scala type that can be serialized to and deserialized from anArray[Byte]
.In addition to storing data,
rspace
can also store continuations, which represent actions to carry out once the data is retrieved. Roughly speaking, inrspace
, a continuation can be any Scala type that can be serialized to and deserialized from anArray[Byte]
.A continuation is associated with a list of channels and a list of patterns. Like channels and continuations, patterns can be any Scala type that can be serialized to and deserialized from an
Array[Byte]
. Users ofrspace
provide their own custom match function for matching patterns against data.The two main functions for interacting with a given store are:
consume, which searches the store for data matching a given list of patterns at a given list channels; and
produce, which, given a piece data at a given channel, searches the store for matching continuation, using existing data in the store to help satisfy the match.
After these features launch, what will developers be able (and not able) to do with RChain?
Developers will be able to:
- Users can fetch the library as a JAR from Maven Central or build it from source.
- Users can read Markdown documentation about how to use the library. This documentation will be published in the main {{rchain}} Github repository.
- Users can read Scaladoc API documentation for the library. (TBD: where do we publish? GitHub Pages)
- Users are able to store data into the library and retrieve the data by using the methods outlined in the documentation.
Developers will not be able to:
- Storage functionality relating to history / blockdag / blockchain.
- Operation in a distributed setting.
- Support for system processes.
Where do developers go to learn more and get started?
Where will bugs be filed?
Bugs can be filed on our JIRA.
Where do developers go for support? What is the SLA? Who is on point?
- Get support on the RChain developer forum
What license will this be released under?
RChain software is licensed under the Apache 2.0 license
JIRA issues in this release