Где хранятся данные в базе данных 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
может видеть неправильные данные в бухгалтерской книге, или может предлагать недопустимые транзакции или другие побочные эффекты. Это зависит от того, какие данные повреждены и как.