- PVSM.RU - https://www.pvsm.ru -
Хочу познакомить вас с библиотекой rspace
, которая предоставляет пространство кортежей [1] для хранения данных для интерпретатора Rholang [2], языка для описания распределенных вычислений, основанного на pi-алгебре процессов.
rspace
— часть проекта RChain [3] по созданию распределенной масштабируемой вычислительной платформы для смарт-контрактов.
Существующие сейчас реализации пространства кортежей опираются на механизм "ключ-значение", которые предусматривают две основные функции для взаимодействия с хранилищем: get, которая возвращает данные хранящиеся по определенному ключу, и put, которая помещает данные в хранилище по указанному ключу.
rspace
отходит от этой модели и предлагает новый подход к хранению и извлечению данных.
Главные отличия:
rspace
каналом может быть любой тип Scala, который может быть сериализован в или десериализован из байтового массива Array[Byte]
.rspace
может хранить не только данные, но и продолжения (continuations), которые представляют действия, которые можно произвести над полученными данными. В rspace
продолжением может быть любой тип Scala, который может быть сериализован в или десериализован из байтового массива Array[Byte]
.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/
Нажмите здесь для печати.