Как написать поток, в котором служба Oracle подписывает транзакции параллельно с Peers в Corda - PullRequest
0 голосов
/ 15 октября 2018

Из документов я понимаю, что существует способ разрешить параллельное подписание между одноранговыми узлами и Oracle, но я не вижу, как это работает функционально в данном потоке на документах Corda:

  1. Создатель транзакции, которая зависит от процентной ставки, запрашивает текущую ставку.В этот момент они могут прервать операцию, если захотят.
  2. Они вставляют команду с такой скоростью и временем, когда она была получена в транзакции.
  3. Затем они отправляют его оракулу для подписания вместе со всеми, возможно, параллельно.Оракул проверяет, что команда имеет правильные данные для заявленного времени, и подписывает, если так.

Была ли команда не предоставлена ​​Оракулом в первую очередь, подписав таким образомтранзакция на первом этапе?Я понимаю, что цель здесь состоит в том, чтобы избежать первого входа в Oracle, но как вышеуказанный поток способствует этому?Как можно получить ставку, если не через Oracle, и не будет ли Oracle подписывать это первое положение?Это тот случай, когда Oracle подтверждает дважды;один раз при предоставлении факта запрашивающей стороне и дважды, когда запрашивающий повторно вставляет факт в качестве команды, которая должна быть проверена как Oracle, так и остальными пирами?

1 Ответ

0 голосов
/ 16 октября 2018

Начиная с Corda 3, нет возможности запрашивать подписи параллельно.Эта функция, вероятно, будет добавлена ​​в будущем выпуске.На данный момент вы должны запрашивать подписи в определенном порядке.

Оракул не подписывает команду, которую он предоставляет.Вместо этого:

  • Создатель транзакции получает команду от оракула и включает ее в транзакцию
  • Как только транзакция полностью построена, создатель транзакции отправляет транзакцию обратно.к оракулу
  • оракул решает, подписать ли:
    • Если данные в команде верны, оракул должен подписать всю транзакцию
    • Если данные в команденеверно, оракул должен отказаться подписывать

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

...