Где хранятся данные в базе данных Corda?

Я понимаю, что DB по умолчанию является H2, который каждый узел использует локально. Я пытаюсь понять, где хранятся фактические данные транзакции (полезные данные). Кроме того, мне интересно, что произойдет, если я изменю данные в базе данных непосредственно на узле. Что произойдет, если я сделаю запрос на другой узел?

PartyA = Data1
PartyB = Data1
PartyC = Data1

Теперь я повреждаю версию PartyB в своей базе данных на Data2: Теперь она становится:

PartyA = Data1
PartyB = Data2
PartyC = Data1

Что бы я увидел, если бы я запросил PartyB? Что бы я увидел, если бы я запросил PartyC?

1 ответ

Каждая транзакция хранится в виде большого двоичного объекта в базе данных узла в NODE_TRANSACTIONS Таблица. Различные части информации также извлекаются и хранятся в других таблицах (например, состояния хранятся индивидуально в VAULT_STATES Таблица).

Что происходит, когда вы повреждаете данные, зависит от того, какую таблицу вы испортили. Если вы испортили данные на PartyB, PartyC будет совершенно не затронут. PartyB может видеть неправильные данные в бухгалтерской книге, или может предлагать недопустимые транзакции или другие побочные эффекты. Это зависит от того, какие данные повреждены и как.

Другие вопросы по тегам