Невозможно создать транзакцию Corda с собственным узлом, используя corda 4.0 - PullRequest
0 голосов
/ 18 июня 2019

Я хочу создать транзакцию с собственным узлом, используя corda 4.0.

Я использовал для этого пример примера ввода-вывода и добавил свои изменения в ExampleFlow, как показано в приведенном ниже коде.https://github.com/corda/cordapp-example/tree/release-V4/java-source.

Но это не позволяет создать транзакцию с собственным узлом.

также я следовал / реализовал ответы из этого Corda 4 - односторонняя транзакция не удалось зафиксироватьв книгу

, но это не сработало.

Я внес только изменения в ExampleFlow, как показано ниже / Остальная часть кода из примера iOU такая же.

Пожалуйстапомощь.

@Suspendable
override fun call(): SignedTransaction {
// Obtain a reference to the notary we want to use.
val notary = serviceHub.networkMapCache.notaryIdentities[0]

// Stage 1.
progressTracker.currentStep = GENERATING_TRANSACTION
// Generate an unsigned transaction.
val iouState = IOUState(iouValue, serviceHub.myInfo.legalIdentities.first(), otherParty)
val txCommand = Command(IOUContract.Commands.Create(), listOf(ourIdentity.owningKey))
val txBuilder = TransactionBuilder(notary)
        .addOutputState(iouState, IOU_CONTRACT_ID)
        .addCommand(txCommand)

// Stage 2.
progressTracker.currentStep = VERIFYING_TRANSACTION
// Verify that the transaction is valid.
txBuilder.verify(serviceHub)

// Stage 3.
progressTracker.currentStep = SIGNING_TRANSACTION
// Sign the transaction.
val partSignedTx = serviceHub.signInitialTransaction(txBuilder)

// Stage 5.
progressTracker.currentStep = FINALISING_TRANSACTION
// Notarise and record the transaction in both parties' vaults.
return subFlow(FinalityFlow(partSignedTx,emptyList()))
}

1 Ответ

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

Я полагаю, что проблема заключается в том, что вы используете otherparty в состоянии:

val iouState = IOUState(iouValue, serviceHub.myInfo.legalIdentities.first(), otherParty)

Corda 4 требует, чтобы все участники flowsession были предоставлены в FinalityFlow, поэтомучто информация о состоянии может распространяться надлежащим образом.

Подробнее см. Здесь Flow Sessions, которые нам не предоставлены для следующих участников транзакции - Corda 4

...