RSpace - 0.1.1 release plan

Reference

Document status

Release status

Related pages

Storage.01 Specification

Release announcement

RSpace README

Tutorial


Milestones

Start date9 Oct 2017
Sprint9 March 2018
Sprint23 March 2018
Release from development26 March 2018
Membership demo28 March 2018
Release29 March 2018


Development team


Stakeholders

NameRole
CEO-RChain coop
CEO-Pyrofex


Marketing team

Marketing leadEvangelistContent 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, in rspace, a channel can be any Scala type that can be serialized to and deserialized from an Array[Byte].

  • In addition to storing data, rspace can also store continuations, which represent actions to carry out once the data is retrieved. Roughly speaking, in rspace, 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 of rspace 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?

README and tutorial

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?

What license will this be released under?

RChain software is licensed under the Apache 2.0 license

JIRA issues in this release