Корда линейного состояния уникальности - PullRequest
0 голосов
/ 24 июня 2019

Я использую Corda 4.0. При использовании линейных состояний я обнаружил, что можно создавать несколько линейных состояний с одинаковым линейным идентификатором (внешний идентификатор и UUID). Согласно моей логике для несмешиваемых цифровых активов, линейный идентификатор должен быть уникальным, что-то вроде уникального токена в реализациях блокчейна.

В базе данных, в vault_linear_states (аналогично vault_states и vault_fungible_states ), я вижу, что ограничение первичного ключа определено как " output_index , action_id"

Если какое-то состояние будет изменяться несколько раз, для одной и той же линейной формы будет несколько записей.

столбец output_index , как я вижу в БД, всегда "0".

Вопрос:

1) Какова цель output_index ? Не нашел соответствующей информации.

2) Как правильно работать с линейными состояниями с точки зрения уникальности? Должен ли я программно выбирать и проверять перед вставкой или есть другие способы справиться с этим?

1 Ответ

0 голосов
/ 25 июня 2019

1) Выходной индекс - это индекс предыдущей субтранзакции, поскольку одна транзакция может иметь несколько субтранзакций.Причина, по которой всегда 0, если есть больше суб-транзакций, то это будет 0,1,2 и т. Д.

2) Сначала создайте линейное состояние, верните его уникальный идентификатор после этогоиспользуйте тот же идентификатор для запроса к хранилищу и используйте его в качестве входного состояния в построителе транзакций и обновите его в качестве цепочки создания выходного состояния.

дополнительную информацию можно найти здесь https://docs.corda.net/key-concepts-transactions.html

...