RSpace介绍

rong jialei
RChain Cooperative (China)
3 min readJun 9, 2018

RSpace-0.1是RChain区块链存储层组件的第一个实现版本。

RChain Coop的开发团队很高兴地宣布存储层的初始版本 — RSpace正式发布。RSpace — 0.1是RChain实现存储功能的早期版本。 这是RChain区块链正式发布前的另一个重要的里程碑。

版本介绍

RSpace 0.1是如何运作的

RSpace 0.1是一个Scala库,将为Rholang的解释器提供基于磁盘存储的持久化功能。RSpace 0.1是基于一个早期使用Rosette Base Language (RBL)开发的内存持久化组件所设计开发的独立库。

传统意义上的KV数据库主要为外部调用者提供了两个功能函数:能够将一对key-value数据进行持久化的put函数以及根据特定的key查找对应value的get函数。

RSpace 0.1抛弃了这种传统的模式,提供了一种新的方法来存储和检索数据。

主要区别在于:

  • 传统的KV数据库将数据与一个特定的key绑定在一起,而在RSpace中,将数据与一个特定的channel绑定在一起。

通俗地来讲,就是在RSpace中,任何可以序列化、反序列化的scala类型都可以成为一个channel。

  • 除了可以存储数据,RSpace中还支持存储回调回调代表着收到数据之后采取的一系列执行动作。

通俗地来讲,就是在RSpace中,任何可以序列化、反序列化的scala类型都可以成为一个回调

  • 一个回调与一系列的channel以及一系列的模式所对应。与channel,回调一样,模式也可以是任何可以序列化、反序列化的scala类型。

RSpace的用户可以定制化匹配函数,基于数据来进行模式匹配。

  • RSpace提供了两个关键函数:

consume: 该函数将在数据库中搜索与指定模式及channel匹配的数据存储位置并将数据持久化。

produce: 该函数将在数据库中检索与指定回调匹配的数据,通过channel将数据读取并返回。

详情可见RSpace 0.1规范

如何使用RSpace 0.1

在这次发布的RSpace 0.1版本中,我们实现了Rholang解释器所需要使用到的元组空间的基本函数。本版本已经被包含在RNode 0.2版本中了。RSpace 0.1 将允许Rholang解释器能够对数据对象进行持久化,通过执行状态从数据库中检索数据对象。除了在Rholang解释器的上下文中充当存储层的backend,RSpace 0.1还将作为一个通用的持久层,以自存储library的形式提供给scala开发者使用。

开发者可以使用RSpace进行以下操作:

  • 以Jar包的形式获取rspace,或者以编译安装的方式获取rspace库。
  • 阅读rspace使用文档
  • 阅读scala调用手册
  • 通过library检索与持久化数据

RSpace 0.1暂不支持以下功能

  • 持久化存储调用历史,区块DAG以及区块链
  • 在分布式环境下进行使用
  • 不支持系统进程

大家可以通过Rspace教程来了解更多使用细节

Space 0.1 快速入门

开发者网站中下载二进制以及相关的文档。

我们感谢所有社区成员的持续支持,并且希望每一个成员都可以去试用此版本。

在每一个开发进程中,构建、测试节点是最终能够交付一个工业级区块链的关键。大家若有任何疑问,可以在JIRA以及RChain开发者论坛中进行提问交流。

有关更多咨询,请移步我们的官方medium RChain Coop.

在接下来的几周内,我们还将不断地发布新的RChain版本,敬请期待!

--

--