- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

coop.rchain %% rspace % "0.1.1"

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

Автор: незнакомец

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/scala/278121

Ссылки в тексте:

[1] пространство кортежей: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D1%80%D1%82%D0%B5%D0%B6%D0%B5%D0%B9

[2] Rholang: http://rchain-architecture.readthedocs.io/en/latest/contracts/contract-design.html#rholang-a-concurrent-language

[3] RChain: https://developer.rchain.coop/

[4] GitHub: https://github.com/rchain/rchain/tree/master/rspace

[5] Apache 2.0: https://www.apache.org/licenses/LICENSE-2.0

[6] туториал: https://github.com/rchain/rchain/blob/master/rspace/docs/Tutorial.md

[7] Источник: http://habrahabr.ru/sandbox/115270/