Это было бы не просто. Вот общее описание шагов, которые вам необходимо выполнить:
- Используйте клиентскую утилиту для создания
SignedTransaction
, соответствующего транзакции, которую вы хотите добавить в свою базу данных (, включая подписи контрагента и нотариуса! )
- Сохраните следующие свойства транзакции для последующего использования:
- ID транзакции
- нотариус сделки
- Сериализованный
SignedTransaction
BLOB
- Для каждого состояния вывода:
- Выходной индекс
- Наименование класса контракта
- Для каждого состояния ввода:
- Ссылка на его состояние (выходной индекс и идентификатор создаваемой транзакции)
- Войдите в базу данных узла, следуя инструкциям здесь
- Добавить запись в таблицу
NODE_TRANSACTIONS
с идентификатором транзакции и сериализованным SignedTransaction
blob
- Для каждого состояния вывода добавьте запись в таблицу
VAULT_STATES
с информацией, сохраненной ранее.
-
CONSUMED_TIMESTAMP
, LOCK_ID
и LOCK_TIMESTAMP
должны быть пустыми
-
RECORDED_TIMESTAMP
должно быть текущим временем
-
STATE_STATUS
должен быть не потреблен
- Для каждого состояния ввода обновите свою запись в таблице
VAULT_STATES
до потребляемой.
- Вы можете идентифицировать рассматриваемое состояние ввода, используя ссылку на состояние, сохраненную ранее
И это при условии, что в вашем штате не реализованы интерфейсы, которые потребовали бы обновления дополнительных таблиц, таких как LinearState
, QueryableState
, SchedulableState
или FungibleAsset
.