Everything you build against ships in a NodeAsset release, tagged v<major>.<minor>.<patch>. Take every piece from the same release: the engine is built against that release’s packages, and a mismatched pair fails at its first ledger command.

What a release carries

Check what you downloaded before you use it:

The DARs

A DAR keeps its package’s own name and version, and the release’s version moves independently of it. Each carries the compiled package without its Daml source. A Daml package of your own that builds on one names it under data-dependencies:. Each party’s node vets what it uses: the register keeper’s vets nodeasset, nodeasset-oracle-api and the package its price source publishes on (nodeasset-oracle, for PublishedNav); each custodian’s vets nodeasset; the price source’s vets nodeasset-oracle-api, nodeasset-oracle and nodeasset, for the orders it prices. Backed issuance adds the reserve’s two: the venue’s node and the register keeper’s vet nodeasset-reserve and nodeasset-reserve-lock, and another registrar whose asset a reserve holds vets nodeasset-reserve-lock alone. Each role’s page under Who runs what has its list. A package id moves only when its Daml does, and every such move is a vetting event: each Canton node that uses the package vets the new id before it is used. Compare package-ids.txt between two releases to see whether an upgrade is one. See Upgrades and package versions.