mirror of
https://github.com/corda/corda.git
synced 2024-12-20 05:28:21 +00:00
b3265314ce
The `TransactionBuilder` has been updated to look for any missing dependencies to legacy contract attachments, in the same way it does for missing dependencies for CorDapps in the "cordapps" directory, Since `TransactionBuilder` does verification on the `WireTransaction` and not a `SignedTransaction`, much of the verification logic in `SignedTransaction` had to moved to `WireTransaction` to allow the external verifier to be involved. The external verifier receives a `CoreTransaction` to verify instead of a `SignedTransaction`. `SignedTransaction.verify` does the signature checks first in-process, before then delegating the reset of the verification to the `CoreTransaction`. A legacy contract dependency is defined as an attachment containing the missing class which isn't also a non-legacy Cordapp (i.e. a CorDapp which isn't in the "cordapp" directory). |
||
---|---|---|
.. | ||
src/main | ||
build.gradle | ||
README.md |
This is the external verifier process, which the node kicks off when it needs to verify transactions which itself can't. This will be mainly due to differences in the Kotlin version used in the transaction contract compared to the Kotlin version used by the node.
This module is built with Kotlin 1.2 and so is only able to verify transactions which have contracts compiled with Kotlin 1.2. It relies on
specially compiled versions of core
and serialization
also compiled with Kotlin 1.2 (core-1.2
and serialization-1.2
respectively)
to ensure compatibility.