您在搜索DAML教程吗?如果这样做,那么您来对地方了。在本文中,我们将做一个适当的DAML区块链教程.
本教程将基本了解DAML,为什么需要DAML,以及一些使它更有意义的代码示例。如果您是初学者,则可以找到本教程以开始使用DAML。简而言之,这是适合初学者的完美DAML教程。但是,它不是完整的DAML开发教程,因为我们不会在该教程中构建任何完整的应用程序,因为它不在本文的讨论范围之内。.
DAML教程:DAML入门
那么,什么是DAML?让我们来探索.
需要区块链更新?查看初学者区块链指南以开始使用!另外,请查看我们的DAML最终指南.
什么是DAML?
DAML是用于开发分布式应用程序的开源编程语言。它使开发人员可以简洁,快速且正确地创建那些分布式应用程序.
Hyperledger维护DAML并将其纳入其生态系统。这也使DAML成为在领先的区块链平台之上运行的编程语言之一。是的,它已被多个平台接受。这也使开发人员可以轻松快速地开发其应用程序,然后确定要在哪里部署它的应用程序.
是什么使DAML如此特别?
DAML是一种用于构建分布式语言的编程语言。随着越来越多的公司了解分布式应用程序的重要性,DAML为这些公司及其开发人员提供了实现其目标的工具。实际上,它是使您能够将分布式应用程序置于控件中的出色工具之一.
DAML直接解决了难题,因为它提供了解决复杂问题(例如分布式状态同步和加密)的解决方案。为了实现这一目标,我们对其进行了重新设计.
当开发人员编写其区块链应用程序时,底层的设计或实现即被抽象化。它使开发人员可以专注于抽象需求,并让DAML处理所有艰苦的工作。通过了解DAML是特殊的,您可以更好地欣赏使用我们的DAML教程学习DAML的过程.
DAML功能
在我们的DAML教程的这一部分中,我们将学习DAML的关键功能.
资料模型: DAML使开发人员可以轻松地为其应用程序创建复杂的数据方案。这使得设计和实施复杂的需求或业务流程变得容易.
细粒度的权限: 微调DAML合同以设置权限。这意味着开发人员可以设置谁可以签署合同,谁可以看到合同以及在什么条件下签订合同。.
商业逻辑: 业务逻辑也可以轻松集成。开发人员可以编写合同,其断言,参数等所需的操作!
基于方案的测试: DAML也可以进行基于方案的测试。它使开发人员可以测试分散式应用程序的业务逻辑和其他方面,例如工作流.
运行时功能
除了上述四个核心功能之外,我们还具有DAML运行时。运行时是指应用程序在执行过程中创建的环境。在这种状态下,具有使程序高效运行的关键功能。通过在DAML教程中了解它们,您将能够巩固您对DAML的学习.
让我们在下面谈论它们.
存储抽象 →存储抽象提供了一个持久层,可确保所有DAML程序都与存储无关。简而言之,DAML程序不依赖于所选的存储,因为它可以将所述数据转换为可消化的格式.
授权检查→ 授权检查合同中的所有动作。如果该操作未通过适当的授权,则将不允许执行该操作.
然后,合同将引发运行时错误,并通知买方或开发人员.
问责制跟踪→ 运行时还负责问责制跟踪。它确保当事方自愿输入协议。为了实现这一点,需要签名人签名。这样做是为了保护买方免遭组织者或卖方的任何有力行为.
原子可组合性→ DAML支持原子设计。这意味着所有动作都是原子执行的,因此可以执行或根本不执行。在执行合同方面没有中间立场。这样做是为了确保工作流程的安全并使开发人员远离.
没有双花 →在DAML运行时中,合同旨在确保不会发生重复支出。这意味着同一合同不能执行两次.
需要知道的隐私→ DAML提供了子交易级别,该级别可在获得批准后使信息可用.
确定性执行 →最后,运行时支持确定性执行。这意味着任何操作的效果取决于分类帐的当前状态.
DAML入门
在我们的DAML教程的这一部分中,我们将研究DAML区块链教程的入门指南。在使用DAML之前,需要先安装它.
要使用DAML,您需要遵循两个步骤.
1)安装依赖项
要使用DAML,首先需要安装依赖项。为此,您需要下载SDK并将其安装在操作系统上.
除此之外,最好还具有以下内容
- Visual Studio Code或任何兼容的集成开发环境
- JDK 8或更高版本.
2)SDK安装
如果您使用的是Windows,则可以转到 链接,然后下载可执行文件.
对于Linux或MAC,您需要使用curl运行以下命令.
curl –sSL https://get.daml.com/ | SH
它将要求您将〜/ .daml / bin添加到PATH变量中。完成后,就可以使用DAML了。.
DAML入门指南
您从未与DAML合作过吗?然后,请放心,如本节所述,我们将介绍DAML的基础知识,其数据类型,模板,函数,表达式等!
但是,在这样做之前,我们需要了解(数字资产)DA分类帐模型。这是我们DAML教程的重要组成部分.
DA Ledger模型
DA Ledger模型是DAML的核心。它借助虚拟共享分类帐提供多方工作流。为了获得更好的主意,您可以查看以下屏幕截图.
来源:DAML文档
该模型用于定义DA分类帐结构(什么样),完整性模型(谁可以请求)和隐私模型(谁可以看到).
要更深入地了解DA分类帐模型,请查看官方文档 这里.
基本合约
在DAML的核心处,您将找到DAML分类帐。我们将通过一个小模板,因为它将帮助我们理解基本概念,包括交易,模板合同,签署人,DAML模块和文件。.
提交
DAML分类帐包含一个“提交”列表。简单来说,提交是提交到分类账的交易。从合同开始,您可以将其视为需要执行的活动事务,其执行取决于合同的属性和条件.
DAML模块和文件
在开始之前,您需要提及DAML版本。可以在DAML文件的顶部完成此操作。该版本将通知编译器正在使用哪种语言版本.
达姆 1.2
要导入模块,您需要使用“ module”关键字.
模块令牌在哪里
评论
如果要添加注释,可以使用“ –”关键字.
—这是一条评论
范本
模板用于定义合同类型。这定义了有权执行合同的实体。您可以将合同视为模板实例.
模板令牌
和
拥有人:派对
在哪里
签字人
如您所见,我们使用“ template”关键字定义了令牌模板。这也需要一个论点。您需要注意的另一件事是它是面向空白的。如果您以前使用过Python,您将了解代码的结构和意图.
最后,您可以看到signatory关键字,它表示合同实例的签署者。这些当事人的权限必须对合同采取行动,包括存档和创建合同.
使用模板了解方案
现在我们已经了解了模板的基本结构,现在我们将在DAML教程中使用另外两个模板来了解场景。但是,在我们这样做之前,让我们了解什么是“设想.”
设想
方案可以最好地描述为一种测试方法,可以用来检查模板是否按其应有的方式运行。它可以用于执行事务测试。让我们看下面的例子.
token_test_one =场景执行
山姆 <– getParty“山姆”
提交山姆做
使用owner = sam创建令牌
以上是处理称为“ sam”的一方的令牌的基本方案。
要运行该方案,您需要使用DAML工作室.
要了解有关此场景的更多信息,建议您查看 场景文档页面在这里.
数据类型
就像任何编程语言一样,DAML也支持数据类型。数据类型使您可以定义变量并在其中存储数据.
为简化起见,我们将模板视为数据库表。现在,您可以将数据保存在模板中,并通过模板设计帮助自己轻松管理数据.
DAML包含许多本机数据类型。它包括以下内容.
- 派对→存储实体身份。各方可以提交交易并签订合同.
- 文本→存储Unicode字符
- Int→存储64位整数
- Decime→存储定点数字
- 日期→存储日期
- 时间→将时间存储在UTC中
- RelTime→存储时差
- ContractId→合同类型参考
以下是了解某些本机类型的代码.
native_test =场景执行
山姆 <- getParty“山姆”
奥秘 <- getParty“ Mysterio”
让
my_int = –657
my_dec = 0.001:十进制
my_text =“山姆”
my_bool =假
断言(Sam / = Mysterio)
断言(-my_int == 123)
断言(1000.0 * my_dec == 1.0)
断言(my_text ==“ Sam”)
DAML还支持其他数据类型,包括元组,列表和记录.
要了解DAML中的数据类型,请查看其文档页面 这里.
使用选择转换数据
DAML支持不变性。这意味着每当需要更新数据时;需要使用新数据创建新合同。但是,情况并非总是如此,因为总会有一些很小的更改和修改。例如,某公司可能想更改其电话号码以使用 选择.
让我们看一下DAML文档中的示例.
模板联系方式
和
拥有人:派对
派对:派对
地址:文字
电话:文字
在哪里
签字人
控制器所有者可以
更新电话
:ContractId联系人
和
newTelephone:文字
做
用这个创造
电话=新电话
上面的大多数代码都是不言自明的。您需要知道的唯一一件事是,我们定义了一个称为“ UpdateTelephone”的选择。
选择也可以用作委派。最后,它们也可以集成到分类帐模型中.
要了解有关DAML选项的更多信息,可以查看官方文档页面 这里.
向合同添加约束
您也可以使用“ ensure”关键字将约束添加到DAML合同。您还可以使用其他机制,该机制利用assert,abort和error关键字向合同添加约束.
但是,在这样做之前,您需要在合同中设置适当的模板前提条件.
要了解有关约束和限制的更多信息,可以查看文档。 这里.
政党与权力机构
DAML具有处理当事人并授权他们访问合同的正确方法。您可以使用它们不仅通过权限,还可以编写可以更改分类帐工作方式的高级选择。这种灵活性非常重要,因为它为当事方提供了足够的工具来进行更改,并保持了合同的核心思想不变.
例如,您可以阻止IOU撤销,或者可以使用“提议接受”工作流更好地进行一次性授权。 DAML中提供了许多选项,可以为几乎每种情况提供解决方案.
阅读有关政党和当局的更多信息 这里.
结论
这使我们结束了DAML教程。在本教程中,我们设法了解了DAML及其特殊之处。我们还了解了DAML的内部工作原理和编程语言的其他关键方面,例如数据类型,方案等。这些关键概念将帮助您参与将来要进行的DAML项目.
那么,您如何看待DAML?您是否认为它有可能成为创建去中心化应用程序的无处不在的编程语言?在下面发表评论,让我们知道.