Транзакционная система

Описание соглашений между участниками сети может задаваться через отдельные транзакции. Для этого бизнес-процессы сети разбиваются на отдельные атомарные транзакции, которые задают набор действий над данными участников сети.

В рамках транзакционной системы весь набор действий задается непосредственно в коде пира. Транзакцией задается код действия (тип транзакции) и необходимые для действия данные. Определяются форматы данных в транзакции. Описываются обработчики всех типов транзакций. Задается формат хранения данных участников сети. Данные же объединяются в дерево состояний (одно или несколько).

Ведущую роль в рамках транзакционной системы имеет именно дерево состояний. Транзакции выполняются последовательно, каждая транзакция порождает новое дерево состояний на основе предыдущего. Транзакция фактически задает функцию изменения дерева состояний. Все, что необходимо для проверки и выполнения транзакции, должно находиться в дереве состояний.

При этом история транзакций имеет две основных роли:

  1. Валидация дерева состояний. Начальное состояние и вся история транзакций должны породить точно то же дерево, что есть на данный момент.

  2. Предотвращение обработки одной и той же транзакции дважды.

Last updated