{"id":"F1kmh3TXQLM","title":"Daml 2.0 Canton Technical Primer [2022]","description":"📚Check out Daml Learning Center: https://bit.ly/LearnDaml\n📖Join our forum and get started: https://bit.ly/tryDaml\n\nDigital Asset announced the general availability of Daml 2.0, the newest version of Digital Asset’s multi-party application platform. This version makes it easier than ever to build and deploy best-in-class, multi-party applications. Daml 2.0 includes Canton, a privacy-enabled distributed ledger that is enhanced when deployed with complementary blockchains. Canton ensures strong privacy and compliance — unique among multi-party systems — while synchronizing transactions across any supported blockchain or database. For example, a Daml asset can now be safely delivered on Hyperledger Besu while the payment can be made using a different Daml asset on Hyperledger Fabric, in a single, atomic transaction.\n\nToday, businesses are increasingly using multi-party applications to drive efficiency and innovation by automating processes and delivering new products and services. However, the lack of reliable privacy protecting platforms means that multi-party applications too often languish in the proof-of-concept phase or fall behind a walled garden — a siloed blockchain implementation with limited reach. Additional challenges exist when connecting these applications that run on different blockchains or databases, requiring complex workarounds that introduce risk and issues with data consistency and privacy. Consequently, businesses have been unable to realize the full potential of blockchain, distributed ledger technologies, and the multi-party applications that can create novel products and experiences.","channel_name":"Daml","published_at":"2022-03-07T00:00:00.000Z","thumbnail_url":"https://i.ytimg.com/vi/F1kmh3TXQLM/hqdefault.jpg","transcript_text":"hello demo developers welcome to a technical primer to canton of demo 2.0 i will assume that some of you have familiarity with demo 1.0 but for all of you who are new to canton this is for you canton is privacy-enabled distributed ledger and a ledger protocol that's enhanced when deployed with complementary blockchains this version makes it easier than ever to build and deploy best-in-class multi-party applications demo 2.0 enables multi-party applications that synchronize between multiple blockchains and traditional it systems while ensuring the privacy businesses need to protect sensitive data and comply with regulations such as the gdpr in this short video we'll briefly go through the core concepts in canton and see how they work in concert to enable a level of data privacy that is not possible with other frameworks we'll cover components such as parties participant nodes and domains and see how they interface with each other to enable full sub-transaction privacy without trading off security or consistency let's get started let's start with something that we are already very familiar with parties parties remain unchanged from demo 1.0 conceptually it still represents a person or a legal entity and roles such as signatories and observers are still the same however there is a change in the way party ids are generated and we'll cover that in the later part of the video so every party is going to need a host right the party itself doesn't talk directly to the underlying dlt or database so we're going to need an intermediary to go in between them and that intermediary is the participant node now the participant node has various important functions but most important of all it exposes a public ledger api for the parties there is a many-to-many relationship between parties and participant nodes that is multiple parties can be connected to one participant node and each party can be hosted by more than one participant node in this latter case the same party hosted by different participant nodes will be recognized in canton with unique party ids and it's time for a sidebar in addition to the public ledger api the participant node also exposes an admin api this is important because this is going to help you manage connections add and remove parties and demo archives and run diagnostics let's take a closer look at the interfacing of participant nodes and drivers in 1.0 you have the participant nodes integrated into the drivers in 2.0 the participant node talks to the canton protocol and that talks to the drivers time for another sidebar the participant node is not the only node that's operating using the canton protocol you're going to find that there's something called the mediator node and the topology manager node we won't cover these nodes in this short video but you can think of them as servers that you can deploy either all together in a monolithic architecture or as standalone micro services so what we have here is the participant node talking to the canton protocol which then talks to the drivers and the drivers will talk to the underlying dlt or database this brings us to a point where we introduce a very important concept in canton called domains apart from the participant notes the domain nodes services and api constitute the domain this is sometimes called the synchronization domain and one or more participant nodes is joined into the domain here's the fun part a participant note can be joined to more than one domain which brings us to our next sidebar the ability for canton to allow multiple participant nodes to join across domains makes it possible for us to create a virtual global ledger with multiple domains are logically connected with sub-transaction privacy canton enables a high level of composability while allowing any domain to freely scale and grow without dependencies on the other domains because each of them is really a private or segregated domain in canton privacy takes the front row seat for example participants in a transaction only see what they're supposed to see in what we call a sub-transaction privacy what is sub-transaction privacy imagine if a party sends a message that contains complementary data that is intended to be received and seen by two different parties separately without sub-transaction privacy the entire message and its data will be visible to both recipients when the message arrives canton ensures sub-transaction privacy which guarantees that only the intended recipient sees the data that the recipient has been authorized to see and all that messaging happens with strong encryption between the nodes but like ssl party a and party b need unique identifiers for the encryption to work this brings us to a very important topic in canton regarding identities that allow for all that secure messaging all parties participants domains etc are represented by a unique identifier the format is an alias followed by two columns and a fingerprint of the public key here's an example now this may have implications in the way you read and use party ids in your app and definitely in the navigator and sandbox let's wrap this up with the top things you should know moving from demo 1.0 to 2.0 for canton enabled drivers we expect that in the majority of cases backwards compatibility will not be broken that means that a demo 1.x project should compile unchanged in demo 2.0x also a demo 1.x project should run unchanged on a demo 2.0x ledger changes which we expect to have zero or minimal impact on production customers except in corner cases can be found in the release notes demo will continue supporting superseded demo 1.x and associated drivers for minimum of 12 months and finally party ids are no longer user defined strings but are randomly and dynamically generated hashes therefore party id should no longer be hard coded into your code to help manage dynamic party ids the participant user manager feature has been added details of this change are outlined in the release notes we have covered a lot in just a few minutes but we have many resources lined up for you to go in depth into cantaloupe on tuesday april 12th we are having a special webinar with senior members of the daimler and canton project management teams we'll take you through the architecture of demo 2.0 in canton you can register for the live webinar and digitalasset.com developers in the meantime download the sdk and take a look at the release notes all at our website","transcript_synced_at":"2026-10-26T04:09:33.802Z","segments":[{"start_seconds":3,"text":"hello demo developers welcome to a technical primer to canton of demo 2.0 i will assume that some of you have","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=3s"},{"start_seconds":10,"text":"familiarity with demo 1.0 but for all of you who are new to canton this is for you canton is privacy-enabled","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=10s"},{"start_seconds":17,"text":"distributed ledger and a ledger protocol that's enhanced when deployed with complementary blockchains this version makes it easier than ever","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=17s"},{"start_seconds":26,"text":"to build and deploy best-in-class multi-party applications demo 2.0 enables multi-party applications that synchronize between","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=26s"},{"start_seconds":34,"text":"multiple blockchains and traditional it systems while ensuring the privacy businesses need to protect sensitive","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=34s"},{"start_seconds":42,"text":"data and comply with regulations such as the gdpr in this short video we'll briefly go through the core concepts in canton and","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=42s"},{"start_seconds":50,"text":"see how they work in concert to enable a level of data privacy that is not possible with other frameworks we'll cover components such as parties","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=50s"},{"start_seconds":59,"text":"participant nodes and domains and see how they interface with each other to enable full sub-transaction privacy","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=59s"},{"start_seconds":66,"text":"without trading off security or consistency let's get started let's start with something that we are already very familiar with parties","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=66s"},{"start_seconds":76,"text":"parties remain unchanged from demo 1.0 conceptually it still represents a person or a legal entity","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=76s"},{"start_seconds":84,"text":"and roles such as signatories and observers are still the same however there is a change in the way","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=84s"},{"start_seconds":90,"text":"party ids are generated and we'll cover that in the later part of the video so every party is going to need a host right","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=90s"},{"start_seconds":98,"text":"the party itself doesn't talk directly to the underlying dlt or database so we're going to need an intermediary to go in between them","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=98s"},{"start_seconds":107,"text":"and that intermediary is the participant node now the participant node has various important functions","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=107s"},{"start_seconds":114,"text":"but most important of all it exposes a public ledger api for the parties there is a many-to-many relationship","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=114s"},{"start_seconds":122,"text":"between parties and participant nodes that is multiple parties can be connected to one participant node and","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=122s"},{"start_seconds":130,"text":"each party can be hosted by more than one participant node in this latter case the same party","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=130s"},{"start_seconds":138,"text":"hosted by different participant nodes will be recognized in canton with unique party ids","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=138s"},{"start_seconds":146,"text":"and it's time for a sidebar in addition to the public ledger api the participant node also exposes an admin","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=146s"},{"start_seconds":154,"text":"api this is important because this is going to help you manage connections add and remove parties and demo archives and run","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=154s"},{"start_seconds":162,"text":"diagnostics let's take a closer look at the interfacing of participant nodes and drivers in 1.0 you have the participant","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=162s"},{"start_seconds":172,"text":"nodes integrated into the drivers in 2.0 the participant node talks to the canton protocol","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=172s"},{"start_seconds":180,"text":"and that talks to the drivers time for another sidebar the participant node is not the only node that's","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=180s"},{"start_seconds":187,"text":"operating using the canton protocol you're going to find that there's something called the mediator node and the topology manager node","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=187s"},{"start_seconds":195,"text":"we won't cover these nodes in this short video but you can think of them as servers that you can deploy either all together in a monolithic architecture or","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=195s"},{"start_seconds":204,"text":"as standalone micro services so what we have here is the participant node talking to the canton protocol","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=204s"},{"start_seconds":211,"text":"which then talks to the drivers and the drivers will talk to the underlying dlt or database this brings us to a point where we introduce a very important","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=211s"},{"start_seconds":219,"text":"concept in canton called domains apart from the participant notes the","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=219s"},{"start_seconds":225,"text":"domain nodes services and api constitute the domain this is sometimes called the synchronization domain","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=225s"},{"start_seconds":234,"text":"and one or more participant nodes is joined into the domain here's the fun part a participant note can be joined to more","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=234s"},{"start_seconds":242,"text":"than one domain which brings us to our next sidebar the ability for canton to allow multiple","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=242s"},{"start_seconds":250,"text":"participant nodes to join across domains makes it possible for us to create a virtual global ledger with multiple","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=250s"},{"start_seconds":258,"text":"domains are logically connected with sub-transaction privacy canton enables a high level of composability","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=258s"},{"start_seconds":266,"text":"while allowing any domain to freely scale and grow without dependencies on the other domains because each of them","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=266s"},{"start_seconds":273,"text":"is really a private or segregated domain in canton privacy takes the front row seat","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=273s"},{"start_seconds":281,"text":"for example participants in a transaction only see what they're supposed to see in what we call a sub-transaction privacy","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=281s"},{"start_seconds":289,"text":"what is sub-transaction privacy imagine if a party sends a message that contains complementary data that is intended to be received and seen by two","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=289s"},{"start_seconds":298,"text":"different parties separately without sub-transaction privacy the entire message and its data will be visible to both recipients when the","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=298s"},{"start_seconds":306,"text":"message arrives canton ensures sub-transaction privacy which guarantees that only the intended recipient sees the data that the","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=306s"},{"start_seconds":315,"text":"recipient has been authorized to see and all that messaging happens with strong encryption between the nodes","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=315s"},{"start_seconds":322,"text":"but like ssl party a and party b need unique identifiers for the encryption to work","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=322s"},{"start_seconds":329,"text":"this brings us to a very important topic in canton regarding identities that allow for all that secure messaging","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=329s"},{"start_seconds":337,"text":"all parties participants domains etc are represented by a unique identifier","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=337s"},{"start_seconds":344,"text":"the format is an alias followed by two columns and a fingerprint of the public key here's an example","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=344s"},{"start_seconds":352,"text":"now this may have implications in the way you read and use party ids in your app and definitely in the navigator and sandbox","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=352s"},{"start_seconds":361,"text":"let's wrap this up with the top things you should know moving from demo 1.0 to 2.0 for canton enabled drivers we expect","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=361s"},{"start_seconds":369,"text":"that in the majority of cases backwards compatibility will not be broken that means that a demo 1.x project","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=369s"},{"start_seconds":377,"text":"should compile unchanged in demo 2.0x also a demo 1.x project should run","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=377s"},{"start_seconds":385,"text":"unchanged on a demo 2.0x ledger changes which we expect to have zero or","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=385s"},{"start_seconds":391,"text":"minimal impact on production customers except in corner cases can be found in the release notes","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=391s"},{"start_seconds":398,"text":"demo will continue supporting superseded demo 1.x and associated drivers for minimum of 12 months","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=398s"},{"start_seconds":406,"text":"and finally party ids are no longer user defined strings but are randomly and dynamically generated hashes therefore","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=406s"},{"start_seconds":415,"text":"party id should no longer be hard coded into your code to help manage dynamic party ids the","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=415s"},{"start_seconds":422,"text":"participant user manager feature has been added details of this change are outlined in the release notes","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=422s"},{"start_seconds":432,"text":"we have covered a lot in just a few minutes but we have many resources lined up for you to go in depth into cantaloupe","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=432s"},{"start_seconds":440,"text":"on tuesday april 12th we are having a special webinar with senior members of the daimler and canton project management teams","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=440s"},{"start_seconds":448,"text":"we'll take you through the architecture of demo 2.0 in canton you can register for the live webinar","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=448s"},{"start_seconds":455,"text":"and digitalasset.com developers in the meantime download the sdk and","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=455s"},{"start_seconds":462,"text":"take a look at the release notes all at our website","url":"https://www.youtube.com/watch?v=F1kmh3TXQLM&t=462s"}],"youtube_url":"https://youtube.com/watch?v=F1kmh3TXQLM","url":"https://ccpedia.xyz/videos/F1kmh3TXQLM"}