делиться сделками с новыми участниками - PullRequest
0 голосов
/ 18 мая 2018

Есть ли у Corda лучшая практика, как делиться данными для нового узла в сети?Например, у узла A есть транзакции, и у нас есть НОВЫЙ один узел B. Узел A должен обмениваться транзакциями за последние 3 месяца с узлом B.

Не могли бы вы поделиться некоторыми примерами, как это сделать?

Спасибо.

1 Ответ

0 голосов
/ 18 мая 2018

Вы можете легко написать пару потоков для этого.

Первая сторона вызывает следующий поток для отправки всех своих сохраненных транзакций контрагенту:

@InitiatingFlow
@StartableByRPC
class Sender(val counterparty: Party) : FlowLogic<Unit>() {
    @Suspendable
    override fun call() {
        val (existingTransactions, _) = serviceHub.validatedTransactions.track()
        val counterpartySession = initiateFlow(counterparty)
        counterpartySession.send(existingTransactions)
    }
}

Контрагент отвечает, вызываяследующий поток для получения и записи всех транзакций:

@InitiatedBy(Sender::class)
class Receiver(val counterpartySession: FlowSession) : FlowLogic<Unit>() {
    @Suspendable
    override fun call() {
        val existingTransactions = counterpartySession.receive<List<SignedTransaction>>().unwrap { it }
        serviceHub.recordTransactions(existingTransactions)
    }
}
...