The DAML ledger is not a blockchain. But when we run DAML contracts on some other supported platforms, i.e., Fabric or Corda, they inherit the properties of the underlying persistent layer. For instance, their consensus mechanism?
The basic answer is yes.
Note that as explain in this thread, we are working on enabling the Canton Synchronization and Consensus layer over Byzantine Fault Tolerant (BFT). Once done we plane to remove the dependency on any external blockchain layer for consensus
could you please share the thread you mention?
To take this one step further, you could argue that a blockchain provides at least:
- Guarantee of ordering, and
- Guarantee of consistent and immutable state
among other guarantees.
Canton 2.x gets its ordering guarantees from the sync domain, which in turn relies on a source of ordering that can either be a simple relational database, or a decentralized ordering service. If you need your ordering service to be decentralized, then for Canton 2.x you can use Hyperledger Besu or some alternative.
It might be helpful to think of the Canton sync domain as a “router with guarantees”, rather than thinking of it as the underlying persistence layer. Instead, the state maintained on the participant nodes is closer to being a root persistence layer; the sync domain is there to deliver guarantees of ordering, delivery and readiness to commit a transaction, not to serve as the root source of persistent data. The sync domain does persist the transaction log to get that job done, but I’d argue that the state maintained in the contracts stored in the participant nodes is the root persistence layer.
Which gets us to the second major property: consistent and immutable state. That is provided by the hashes that Canton records with each change to the contract data, and the proofs (“commitments”) sent among the stakeholders to verify that the resulting contract creation and update/archive actions have produced the same state for every stakeholder.
So Canton splits its blockchain into two concerns: a chain of validated hashes and proofs between UTXO states on the Canton participant nodes, and an ordering and routing service with strong guarantees, provided by the synchronization domain.
The missing piece in the Canton protocol is to make the synchronization domain fully decentralized within the Canton protocol itself. That’s the work we’re doing now, and we plan to announce more details about it over the coming months.