Upgrading the Daml for Corda Driver

General Guidance

  • Upgrading the Universal CordApp that we embed in the Corda nodes follows the standard Corda process, which involves draining the host and then upgrading flows, contracts and existing states
  • Updating DAML templates involves
    • uploading new DAML libraries containing the updated templates
    • the updated templates should contain choices/methods to consume existing contracts and replace with the same contract of the updated type
    • Follow the guidance here
    • CAVEAT:
      • Any DAML contract that is consumed and recreated will require another round of counter-party signatures on the Corda side
      • the old DAML contract embedded in Corda Vault state will need to be consumed and recreated - this may or may not require the Universal CordApp to be upgraded simultaneously

Daml Driver for Corda and SDK versions

Regarding how the Daml Driver for Corda and SDK versions are related and whether they need to be updated together, check the relationship between Daml Drivers and Connect via the Ledger API.

  • If you upgrade the Daml Driver for Corda, you don’t need to upgrade the SDK or your app. Compatibility is guaranteed.
  • If you upgrade Daml Connect to one with a newer Ledger API version, but not the Daml Driver for Corda, you need to pin the versions for your project appropriately via the platform-version, and build-options: --target: flags as appropriate.

Thx @viv.diwakar @bernhard

1 Like

Excellent guide, going to move this to the #tutorials-and-guides section