/
6 Aug 2019 Notes
6 Aug 2019 Notes
- The main presentation was from Nathan Mathews of Digital Asset
- Video of the slides and talk can be found here
- Key points were;
- Digital Asset was founded in 2015 and DAML (Digital Asset Modelling Language) has always been part of their offering
- DAML was opensourced under the Apache II license earlier this year
- You can write DAML as an opensource language and deploy it on any ledger
- The history of Digital Asset has been in financial services but they are expanding into all markets including start ups
- The aim of DAML is reduce the amount of coding that is required to deliver business applications, while avoiding lock-in on the technology stack. Their aim is a 10x improvement in productivity, but Nathan believes that this may be a conservative estimate.
- DAML is a smart contract that has its own IDE.
- Digital Asset have integrated with a number of ledgers including Fabric, and there is an integration kit which users can use to integrate to any ledger, and can even interact with database products as well.
- Key features of DAML are;
- It separates business logic from the system code (e.g. keys). This makes the code far more readable
- A bit of contract theory;
- Contracts cover the rights and duties of parties (plural)
- It is legally enforceable and it covers the exchange of something
- Contracts come into being because someone offers it and someone else agrees, and there is mutual intent to be bound
- They should not be forgeable and are covered by law
- DAML Smart contracts
- Start with a template, which is similar to a class in OO programming
- The template defines how the contract is going to work and defines properties like;
- Issuer
- Owner
- Observer
- DAML enforces strict rules about who can see what. These are defined by the observers
- You can also add rules e.g. a value cannot be less than zero
- Parties
- A party in DAML is someone with signatory authority. This is a required field
- A contract cant come into existence unless its signed by the issuer and the owner
- Different named people have different rights. For example the issuer cannot transfer the contract.
- The controller block controls the rights that the different parties have
- The ledger model means that each contract is immutable.
- Comparison with the Libra "Move" language
- Move prevents the inadvertent creation or destruction of assets through poorly written code. How does DAML address this?
- DAML achieves the same thing by limiting the options that the named people in the controller can have.
- By making the code as small and concise as possible it reduced the "surface area" that problems can be introduced.
- Move is a lower level language more similar to "C" rather than a business modelling language
- Where is the contract formed from a legal perspective?
- The smart contract is written by a smart contract writer
- The smart contract writer will be in a particular jurisdiction, the contract execution will depend upon the ledger upon which the contract exists
- Specifics about parties or enforceability will depend upon the contract itself
- It's possible (but not mandatory) to include what the governing law is going to apply
- Trade Finance demo
- There is a demo on the website (link to come)
- You can watch the video here; (link to come)
- Questions
- What is the onboarding process for companies?
- There are a set of templates which act as a starting point. The critical point is being able to understand the business domain that you are modelling, and who can do what, rather than being a language expert
- The company also has consulting services
- How would you integrate into Hyperledger fabric?
- DAML code is blockchain independent. The development is the same irrespective of which chain you use. Integrating therefore becomes a deployment issue.