RSpace介绍
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版本,敬请期待!