Fixed a bug resulting in a crash after a call to
This happened because a new participant in a contract does not know the well-known identity of previous participants. It was incorrectly assumed that any participant can always lookup the well-known identity of all other participants in a contract.
ContractHandler.setParticipants reuses anonymous identities for existing participants¶
Previously, if Alice was a participant of a contract and she called
setParticipants to change the participants to herself and Bob, Alice would get a new anonymous identity in the contract.
The result is that Bob could not resolve Alice’s anonymous identity for any events she applied before he was included in the contract.
Migration of running contracts on Corda¶
It is now possible to migrate a running CSL contract on Corda.
This enables you to upgrade instantiated contracts to new versions of your CSL code.
To migrate a single contract, you must first terminate it with a
TerminationIntent that specifies how the contract subsequently can be migrated.
This includes an entrypoint, the attachment (declaration) id of the new CSL code, and a list of events that will be applied to the contract upon migration.
Once all parties of the contract have agreed to the termination, any party can initiate the migration itself through e.g. the
You must again specify entrypoint, attachment id, and a list of events, and they must match exactly the
TerminationIntent that was used to terminate the contract.
Contract migration is an advanced feature. It is not possible to migrate several contracts at once atomically. Therefore, we strongly recommend that you backup your Corda nodes before migrating your contracts.
The automated release process now builds and publishes an aggregated documentation JAR file for the entire project under the name
The JAR file has the classifier “
javadoc” and can be downloaded from the Artifactory repository: