Могу ли я включить в Corda вечеринку в качестве необязательного подписывающего лица? - PullRequest
1 голос
/ 29 мая 2019

Возможно ли дополнительное подписание транзакции? Я знаю, что в команде явно указаны обязательные подписывающие лица (стороны, которые должны подписать транзакцию для ее нотариального заверения), но может ли сторона иметь возможность подписать? Как мы могли бы это реализовать?

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

val requiredSigners = listOf<PublicKey>()
val optionalSigners = listOf<PublicKey>()

tb.addCommand(TestContract.Commands.TestCommand(), requiredSigners, optionalSigners)

Приведенный выше код невозможен при использовании существующего SDK.

1 Ответ

1 голос
/ 29 мая 2019

Если уровень доверия известен при создании транзакции, мы можем явно указать необходимых подписчиков при добавлении TestCommand() в построитель транзакций.

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

Чтобы включить необязательных подписывающих лиц, мы бы скорректировали содержимое требуемых подписчиков на основе входных данных и выходных данных от построителя транзакций (или любой другой бизнес-логики).Затем в контракте Corda - мы могли бы проверить количество необходимых подписей на основе той же бизнес-логики.

Короче говоря: команды определяют, кто должен подписывать, но логика проверки в вашем методе проверки в вашем контракте Cordaчто смотрит на включенные состояния и решает, какие открытые ключи должны быть в командах.Поэтому вполне возможно иметь условную логику вокруг требуемых подписчиков.

...