Daml Developer Monthly - March 2021

What's New

Our forum turned 1 year old last week! Thanks to the efforts of all our members we had 731 problems solved, 1,100 topics, 5,000 posts, and 258,000 views! It's incredible to think that a community forum we only fully launched last May has garnered a community of over 400 people.

Want to skip reading and instead listen to this and earlier editions? Check out Richard's podcast here.

Jobs

We're still hiring and are looking for a Developer Evangelist! Plus many other positions including Engineering, Client Experience, Business Development, and Sales. If you even has so much of an inkling that a job is for you then make sure to visit digitalasset.com/careers to apply and share with your network.

IntellectEU is also looking for developers interested in writing Daml full time!

What We're Reading and Watching

KC Tam has been quite busy lately, first he released his second part of “Asset Modeling in Daml”, then he published another article where he used Daml to get his bike fixed (hypothetically).

We had a great Hyperledger In-depth where we weighed the pros and cons of UTXO and Account models in distributed ledgers. Which is better for scaling? Which easier to reason about? Which is more private? We talk about all of these and much more.

Fabio showed us how to build an end to end rental property application with Daml and also seems to be growing his own personal fanbase on the forum with applause from Khuram and Quid Agis.

Francesco held a webinar last week on Daml's usecases for Hyperledger Latinoamerica, Argentina, and Mexico City. Hyperledger has a recording if you missed it!

Richard had several Privacy and Security updates including: 5G, Gab hacked, and blaming interns for massive security holes; and many more all accessible on our forum under the tag rps-security. He's also recording our Community updates in podcast format every month, you can listen to last month's on anchor.fm.

Community Feature and Bug Reports

We now have test coverage reporting in Daml which had been requested by Asad Khan on our forum and many others in various channels. You can learn the full details in the latest release notes.

Gyorgy found a bug in closure references in Daml and they've been fixed.

Daml Connect 1.11 RC is out!

Highlights

  • Daml Ledger API 1.10 with Daml-LF 1.12 is now stable, significantly reducing the size of Daml transactions.
  • Daml-LF 1.11 is now the default. The previous default was Daml-LF 1.8.
  • daml test now includes coverage output so you can easily see which Templates and Choices are tested.
  • Daml Studio will now provide the last working state before a failed transaction, greatly streamlining debugging a broken transaction.
  • Daml Driver for PostgreSQL now has a separate migration mode and a configurable DB connection pool.

Impact and Migration

The only impact of this release is that with the switch from Daml-LF 1.8 to Daml-LF 1.11, the “no” contract-id-seeding mode in Sandbox Classic is no longer available by default. As already indicated in the Daml Connect 1.10 release notes, users must either pin the Daml-LF version to Daml-LF 1.8, or explicitly choose a new seeding mode. The recommended mode is “strong”.

The full release notes and installation instructions for Daml Connect 1.11.0 can be found here.

What’s Next

  • Despite the order of magnitude performance improvements we have already accomplished, this continues to be one of our top priorities. 
  • Improved exception handling in Daml is progressing well and expected to land in one of the next Daml-LF versions.
  • We are continuing work on several features for the Enterprise Edition of Daml Connect:
    • A profiler for Daml, helping developers write highly performant Daml code.
    • A mechanism to verify cryptographic signatures on commands submitted to the Ledger API, improving security in deployment topologies where the Ledger API is provided as a service.
    • Oracle DB support throughout the Daml Connect stack in addition to the current PostgreSQL support.
  • A new primitive data type in Daml that allows infinite precision arithmetic. This will make it much easier to perform accurate numeric tasks in Daml.