Контракт Corda для предотвращения создания состояний узлом - PullRequest
0 голосов
/ 21 января 2020

В Corda, как мы можем разработать контракт, чтобы запретить определенному узлу создавать состояния определенного типа? ⁿ Например, узлу Student нельзя разрешать создавать состояние QuestionPaper.

1 Ответ

0 голосов
/ 21 января 2020

Вы можете следовать подходу черный список проекта в хранилище образцов:
https://github.com/corda/samples/tree/release-V4/blacklist

  1. Ваш поток, который создает QuestionPaper Государство должно добавить вложение в транзакцию:
    https://github.com/corda/samples/blob/018502310b56bc1bb31440380af4b89e9bbd7ed8/blacklist/src/main/kotlin/net/corda/examples/attachments/flow/ReachAgreementFlow.kt#L31
  2. Ваш договор подтвердит, что прикрепленный документ соответствует га sh, который жестко закодирован в договоре (в противном случае узел может загрузить файл, который не содержит занесенный в черный список узел Student):
    https://github.com/corda/samples/blob/018502310b56bc1bb31440380af4b89e9bbd7ed8/blacklist/src/main/kotlin/net/corda/examples/attachments/contract/AgreementContract.kt#L33
  3. Затем вы проверяете, что issuer (атрибут в QuestionPaper) отсутствует в черном списке (т. Е. Student узел):
    https://github.com/corda/samples/blob/018502310b56bc1bb31440380af4b89e9bbd7ed8/blacklist/src/main/kotlin/net/corda/examples/attachments/contract/AgreementContract.kt#L53
...