corda/.ci
Shams Asari f30ba33929 ENT-11255: Scan attachments to determine if they are Kotlin 1.2 or later
The node now sends a transaction to the verifier if any of its attachments were compiled with Kotlin 1.2 (the net.corda.node.verification.external system property has been removed). It uses kotlinx-metadata to read the Kotlin metadata in the attachment to determine this. For now this scanning is done each time the attachment is loaded from the database.

The existing external verification integration tests were converted into smoke tests so that 4.11 nodes could be involved. This required various improvements to NodeProcess.Factory. A new JAVA_8_HOME environment variable, pointing to JDK 8, is required to run these tests.

There is still some follow-up work that needs to be done:

Sending transactions from a 4.11 node to a 4.12 node works, but not the other way round. A new WireTransaction component group needs to be introduced for storing 4.12 attachments so that they can be safely ignored by 4.11 nodes, and the 4.12 node needs to be able to load both 4.11 and 4.12 versions of the same contracts CorDapp so that they can be both attached to the transaction.
Even though attachments are cached when retrieved from the database, the Kotlin metadata version should be stored in the attachments db table, rather than being scanned each time.
Finally, VerificationService was refactored into NodeVerificationSupport and can be passed into SignedTransaction.verifyInternal, instead of needing the much heavier VerifyingServiceHub. This makes it easier for internal tools to verify transactions and spawn the verifier if necessary.
2024-01-22 11:31:51 +00:00
..
dependency-checker CORDA-351: force update dependencies and suppress vulnerabilities not… (#1944) 2017-10-26 12:16:57 +01:00
dev ENT-11255: Scan attachments to determine if they are Kotlin 1.2 or later 2024-01-22 11:31:51 +00:00
api-current.txt Detekt. 2023-12-19 10:02:12 +00:00
check-api-changes.sh Exclude kotlin.jvm.internal from api scanning (#4478) 2019-01-07 15:02:32 +00:00
ci-gradle-build-cache-init.sh CORDA-1509 Configure and enable Gradle Build Cache (#3908) 2018-09-26 13:38:23 +01:00
Dockerfile add timeouts to all tests (#5875) 2020-02-11 10:14:05 +00:00
kill_corda_procs.cmd Move cmd file to more suitable place 2018-11-09 17:55:15 +01:00
README.md Update references to point to new repo and remove other redundant references. (#3151) 2018-05-15 17:09:50 +01:00

!! DO NOT MODIFY THE API FILE IN THIS DIRECTORY !!

The api-current.txt file contains a summary of Corda's current public APIs, as generated by the api-scanner Gradle plugin. (See here for a detailed description of this plugin.) It will be regenerated and the copy in this repository updated by the Release Manager with each new Corda release. It will not be modified otherwise except under special circumstances that will require extra approval.

Deleting or changing the existing Corda APIs listed in api-current.txt may break developers' CorDapps in the next Corda release! Please remember that we have committed to API Stability for CorDapps.

!! DO NOT MODIFY THE API FILE IN THIS DIRECTORY !!