Canton Documentation

Canton (canton.io) is a Daml ledger interoperability protocol. Parties which are hosted on different participant nodes can transact using smart-contracts written in Daml and the Canton protocol. The Canton protocol allows to connect different Daml ledgers into a single virtual global ledger. Daml as the smart contract language defines who is entitled to see and who is authorized to change any given contract. The Canton synchronization protocol enforces these visibility and authorization rules, and ensures that the data is shared reliably with very high levels of privacy, even in the presence of malicious actors. The Canton network can be extended without friction with new parties, ledgers, and applications building on other applications. Extensions require neither a central managing entity nor consensus within the global network.

Canton supports applications written using the smart contract language Daml. Daml is an enterprise grade language that defines authorization and privacy requirements for its transactions, and Canton implements these models faithfully.

_images/topology1.svg

Parties are hosted on participant nodes. Applications connect as parties to their participant node using the Ledger API. The participant node runs the Daml interpreter for the locally installed Daml smart contract code and stores the smart contracts in the private contract store (PCS). The participants connect to domains and synchronise their state with other participants by exchanging Canton protocol messages with other participants leveraging the domain services. The use of the Canton protocol creates a virtual global ledger.

Canton is written in Scala and runs as a Java process against a database (currently H2 and Postgres). Canton is easy to set up, easy to develop on and is easy to operate safe and securely.

Tutorials

  • To understand what Canton offers and how it is different to existing solutions, run or watch the reference demo.

  • To learn the basic concepts of Canton, use our getting started tutorial and use our advanced configuration examples which ship with the packaged release.

  • To develop applications using Canton, follow the Create Daml App guide.

  • Follow our installation guide to install your Canton nodes.

Background Concepts

  • In order to get an overview and to clarify terminology, consult the section on key concepts.

  • To understand how Canton works in detail and what requirements it fulfills, consult the architecture manual.

  • To dive deeply into the theory, read the Daml Ledger model, as Canton implements this model faithfully.

Project State

Canton is currently under active development in beta quality. Canton is available in two variants:

  • Canton Community: The freely available community version of Canton, featuring the participant node and the reference integration of Canton with a Postgres based domain. This version is publicly available for downloading as a beta version for evaluation purposes. The community version is fully functional and compatible with the Enterprise version, however lacks certain capabilities desirable or necessary for high demand use.

  • Canton Enterprise: The paid enterprise version with advanced capabilities such as drivers for Oracle, Fabric, Ethereum and CCF, or parallel transaction processing. If you are interested in the enterprise version, please contact us at sales@digitalasset.com.