DAML - Blockchain DSL and runtime services - Fabric, Corda, Besu, Postgres

 

Key Points



References


Key Concepts


Project Management 

  1. Deliverable definition
  2. Team - editors, reviewers
  3. Project Plan - work break down
  4. assignment
  5. deliverables w owners
  6. simple weekly timeline w status
  7. Checkpoint meeting weekly
  8. Review meetings as needed
  9. Publish all work in Teams ( what channel ? )


Report Contents and Scope



Review Questions to answer

  1. what functional features are delivered in each environment?
  2. what is open-source ?  how would that be supported?
  3. what is licensed ? what type of support levels are available?
  4. what operational features are provided compared to each of the supported native platforms?
  5. what level of architecture, product planning can we expect with the vendor? the community?
  6. what are keys for us in assessment if there is a value add?
  7.  


Work Tasks

Like we learned with existing DLT reviews, we need to:

  1. set research investment and decision gateways for this process
  2. id ALL the functional, non-functional use cases in our current production solutions
  3. id any new critical requirements not met in current solutions that are a priority based on regulations, compliance, business value, risk
  4. review the candidate DLT solutions and their runtimes and integrations in detail 
  5. map to a candidate DLT platform and environment to see what platform provides and what we need to provide
  6. determine any delivery partners needed for the platform
  7. determine long-term support for any external services, products that we integrate
  8. design E2E deployment and operational support needs for the solution
  9. forecast viability, growth, risks of the external product or platform: community, costs, risks, quality, support etc
  10. perform the right evaluations:  POT, POC, POV


Learning Path


DAML learn

https://www.digitalasset.com/developers/learn


Daml Developer
Learn how to write Daml and build simple multi-party applications.

System Integration
Learn how to produce an application that depends on a Daml back-end for business logic and data persistence.

application-architect
System Architect
Learn about the different components and how they work together to produce a Daml solution


DAML basics certification ( free )

https://daml.talentlms.com/catalog/info/id:132?_ga=2.249195908.2087773921.1659974785-2111037199.1659974785


DAML Cheat Sheet Concepts

https://docs.daml.com/cheat-sheet/

https://github.com/digital-asset/daml-cheat-sheet

docs.daml.com--cheat-sheet-The Fast Track to DAML.pdf file



Why DAML?

https://daml.com/why-daml

The open source Daml smart contract language, described in more detail below under “Daml Smart Contracts,” forms the core of the Daml application stack. The language is a purpose-built Domain Specific Language (DSL) designed to encode the shared business logic of the application. It provides developers primitives to safely and succinctly describe core concerns like data types, privacy, and authorization rules without concerning themselves with the ultimate deployment target. In terms of the virtual shared ledger, it expresses who may write what events, and to whom they are distributed.


Daml abstracts the event sourcing model employed by blockchains and distributed ledgers. Event sourcing means that the current state of the system can be computed from the log of past events. Instead of keeping a global event log, Daml provides each stakeholder a consistent view on a virtual shared event log, called the virtual shared ledger, while distributing data on a strict need-to-know basis under the hood. This creates a system in which each participant has a consistent view of the (virtual) global system state, consisting of exactly the data they are entitled to. The virtual shared ledger is described in Daml’s Ledger Model and implemented in the Daml smart contract language and associated Ledger API.

virtual-shared-ledger


The Ledger API is the primary API to interact with Daml smart contracts and the virtual shared ledger. It is a high-performance reactive gRPC-based streaming API. It allows applications to subscribe to events that they are permissioned to view, get their current state, or submit commands to write new events. As such, the Ledger API and smart contracts are the primary mechanisms for abstracting away concrete blockchains or databases to instead develop against a virtual shared ledger. Any node in a network that exposes Daml’s Ledger API—and thus gives access to the shared ledgers—is called a participant node as it allows participation in the network.

participant-nodes


To enable an infrastructure like a blockchain or database to run Daml applications, it needs a Daml Driver that allows a matching participant node to connect into the network. Daml Drivers do not store any data and are typically deployed per node of the underlying blockchain or database. There are already numerous drivers, both open source and commercial, available in the Daml ecosystem, with more under development. See https://daml.com for an overview.


The deployed Daml smart contracts as well as everything on top of the Ledger API are considered part of a Daml application. Daml Connect is a suite of tools that assists in the development of full-stack Daml applications. Daml Connect contains an SDK that includes an Integrated Development Environment (IDE) for smart contract development, a suite of runtime components, and integration libraries spanning all the way to user interfaces.

daml-connect


DAML Concept Overview slides

daml-101blockchains.com-DAML- The Language For Smart Contracts link

daml-101blockchains.com-DAML- The Language For Smart Contracts.pdf file



DAML Getting Started Docs

https://docs.daml.com/getting-started/index.html

local install? 

recommend ubuntu, Linux   

MACOS ok




General Notes on DAML work


DAML
tri tested

function delta
perf delta


arch overview

if we would use it
where
why ( over options )

map daml to our scenarios

corda for insurance


gartner
low-code, no-code

who can learn quickly?

4GLs
DSL

Python for analytics w libs

Normal languages with full flexibility in a runtime

arch process docs >>
quickLook - 5WH w refs
ISR - review - map to a test case,
ARB - arch, runtime
ORB - operations mapping << what IS our ORM by soln type?



daml review

summary on the opportunity, concerns, recs


what
why
who
where
how
when

feedback - internal, external

should we investigate daml as an option
of app fit


insurance test in DEVX


IT or ET


recommendations

dtcc roadmap

next steps

estimate
vcrs

when
1 week model - use cases, references, tests, evals


DAML Presentation 2/24/22

https://www.youtube.com/watch?v=QftcQgTfkJ4



DAML Sample Bike Repair Tutorial

https://kctheservant.medium.com/fix-my-bike-use-daml-to-model-a-real-life-example-ec6b578b02fb



DAML repos 



DAML reviews 



DAML POC for trade capture


Perfect analysis and conclusions in my opinion.

Absolutely stays on the radar but does not yet meet the needs of a portable, easy to learn, performant low-code DLT platform solution wih solid support for the primary DLT platforms in use today for most use cases today.

IF I were evaluating DAML vs Java in the future on any ledger, I'd look at the Java side very differently ( JDK17 ) with custom extensions to simplify code complexity ( making Java more of an event-driven DSL ). I'm guessing that would significantly simplify the developer experience with a shorter learning curve for Java Ledger development, improve portability, performance and reduce significantly the Java code lines involved ( like Firefly does ).

Really think this analysis project was really well done by you and the team.

You got the right outside partner to provide the best possible evaluation, picked a valuable use case but correctly simplified scope and did a great job leveraging DEVX for a training environment.



DAML solutions 



DAML 2.0 and Canton ledger service

DAML notes including DAML 2.0 overview

https://docs.google.com/document/d/112-MCDKhqz0-aQqjHXboVWsEO15ygtM5eU_ZzC5Svg4/edit#

daml-notes.pdf


Questions for 2.0

  1. support for extensions, customizations via policies, delegate services via interfaces, modularity
  2. open-source ?  base version not enterprise HA
  3. performance ? no benchmarks
  4. GA version? yes
  5. integration with other ledgers?  yes - Besu, Fabric, Corda ...
  6. integration concept?  Canton ledger service provides a common model that is integrated by any supported driver
  7. integration driver currency with DAML releases?  no formal timing commitments
  8. is the HA model useful? costly for license and runtime metering? easy to integrate, extend or customize? unknown
  9. can the metering service be used with the open-source model? unknown




Potential Value Opportunities



What DAML production solutions use open source DAML Canton version?  volumes?  performance? 



What DAML production solutions use enterprise DAML Canton version?  volumes?  performance? 



What DAML production solutions use DAML Hub Canton version?  volumes?  performance? 



Other DAML projects 


Australia Stock Exchange cancels DAML project

ASX-daml-project-cancelled-Chairman Apologizes After Writing Off 165 Million Blockchain Project.pdf  url

ASX-daml-project-cancelled-Chairman Apologizes After Writing Off 165 Million Blockchain Project.pdf file

the project was facing a number of obstacles, including resistance from companies on the platform to use the shared ledger.

<< Lesson learned:  engage key partners through out the solution life cycle, not at the test phase  ( see Food Trust, TradeLens, TYS )

<< Lesson learned: let the partner council define the economic. governance, compliance, trust models that work, not just the applications and technologies for the use cases in scope

the Accenture report commissioned by ASX that noted “the absence of appropriate design artefacts, rigour, or inconsistent design discipline to model the expected behaviour within the constraints of the technology.”

<< Lesson learned: don't try to be revolutionary. Be evolutionary in the solution design - takes longer but has lower risks, more network buy in for success



Potential Challenges








Candidate Solutions


DAML - language, tools, runtimes

can execute on Corda, Fabric, Besu





Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps