Pull to refresh

Rspace — библиотека организации пространства кортежей

Хочу познакомить вас с библиотекой rspace, которая предоставляет пространство кортежей для хранения данных для интерпретатора Rholang, языка для описания распределенных вычислений, основанного на pi-алгебре процессов.


rspace — часть проекта RChain по созданию распределенной масштабируемой вычислительной платформы для смарт-контрактов.


Существующие сейчас реализации пространства кортежей опираются на механизм "ключ-значение", которые предусматривают две основные функции для взаимодействия с хранилищем: get, которая возвращает данные хранящиеся по определенному ключу, и put, которая помещает данные в хранилище по указанному ключу.


rspace отходит от этой модели и предлагает новый подход к хранению и извлечению данных.


Главные отличия:


  • В этой библиотеке данные соотносятся не с определенным ключом, а с каналом (channel). В rspace каналом может быть любой тип Scala, который может быть сериализован в или десериализован из байтового массива Array[Byte].
  • rspace может хранить не только данные, но и продолжения (continuations), которые представляют действия, которые можно произвести над полученными данными. В rspace продолжением может быть любой тип Scala, который может быть сериализован в или десериализован из байтового массива Array[Byte].
  • Продолжение соотносится со списком каналов и списком паттернов. Паттернами могут быть любые типы Scala, которые могут быть сериализованы в байтовый массив Array[Byte] или десериализованы из него. Пользователи rspace могут создавать собственную функцию сопоставления, чтобы извлекать из хранилища данные по определенному паттерну.
  • Две основные функции для взаимодействия с хранилищем: consume, которая ищет в хранилище данные по предоставленному списку паттернов на предоставленном списке каналов, и produce, которая использует предоставленные данные и ищет для них подходящее продолжение в хранилище.

Страница библиотеки на GitHub.
Библиотека распространяется по лицензии Apache 2.0


Чтобы использовать rspace в своем проекте, нужно в билде (build.sbt) указать следующее:


coop.rchain %% rspace % "0.1.1"

Если вам стало интересно, то тут можно найти полный туториал.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.