Haskell、Plutus 和 Marlowe 的基础知识

对于卡尔达诺区块链开发人员来说,由于卡尔达诺中存在不同的 Haskell、Plutus 和 Marlowe 语言,一开始可能会有点困惑。 该博客解释了它们之间的差异、各自所扮演的角色,以及它们在卡尔达诺上构建时如何相互构建。

作为一个开源、去中心化的区块链,它具有快速、安全的交易、可预测的费用和其他独特功能,卡尔达诺是开发人员构建 dApp 时最通用的智能合约区块链之一。 卡尔达诺也是第一个基于科学同行评审和密码学研究方法构建的公共区块链。 考虑到这一点,Cardano 提供了一个多方面的智能合约平台,以满足区块链开发人员、企业和企业家不同的 Web3 需求。

在 Cardano 中,计算机语言 Haskell 以及两种特定领域语言 Plutus 和 Marlowe 作为编程工具,提供多维视图来满足不同的用户需求。 这些语言在产品开发方面各司其职,但它们也相互促进。

下面详细介绍每一项。

哈斯克尔是什么?
Haskell-Plutus 和 Marlowe-Cardano-2 的基础知识
Haskell 是一种通用、静态类型、纯函数式编程语言。 它基于 Lambda 演算,这是图灵机的替代方案,是一种用于表达计算概念的正式数学系统。

自 1990 年诞生以来,Haskell 一直处于函数式编程的前沿。在金融界和不同航天机构构建关键系统时,它得到了广泛采用,因为它在设计时提供了强大的安全特性 复杂的系统。

在卡尔达诺中,Haskell 是整个网络的核心。

Cardano 节点是用 Haskell 编写的,支撑区块链内部运作的大部分架构都是用 Haskell 代码编写的。 任何想要在网络较低层工作的人都需要对 Haskell 有深入的了解。

当然,大多数卡尔达诺区块链开发人员在创建 dApp 时不会深入研究。 然而,Haskell 对他们也发挥着重要作用。 正如我们之前所说,链下代码是任何 dApp 的主要组成部分。 当使用 IOG 或 Atlas 的 Plutus 应用程序后端 (PAB) 等工具时,可以用 Haskell 编写这段智能合约。

阅读更多:成为链外卡尔达诺开发者

使用 Haskell 进行链下代码时可以实现安全性和性能提升,尽管它不是我们在本系列之前的文章中看到的唯一选择。

Haskell 是支持整个卡尔达诺网络的语言。 即使对于那些在设计 dApp 时不希望使用它的区块链开发人员来说,它也是区块链的主要组成部分。 因此,该语言的基本知识对于任何转向卡尔达诺的人都很重要。

什么是普利拓斯?
Haskell-Plutus 和 Marlowe-Cardano-3 的基础知识
Plutus 是一种特定于领域的语言,旨在为卡尔达诺编写链上代码。 正如我们之前讨论的,卡尔达诺上的 dApp 分为链上代码和链下代码,前者也称为验证器。

编写智能合约链上部分的主要语言是 Plutus。 该语言借用了 Haskell 的大部分语法和属性,还继承了其母语言的许多安全功能。

这意味着掌握 Haskell 的基本知识不仅有助于编写 Plutus 代码,还有助于巩固两种语言的知识。 大多数来自 Haskell 函数式编程的原则使得 Plutus 代码在智能合约方面更加安全。

具体来说,Plutus 是区块链开发人员用来编码卡尔达诺网络需要验证的业务逻辑的语言。 链上代码是一组使 dApp 公开且不可变的规则,因为当用户与 dApp 交互时,Cardano 上的节点将执行此代码。

阅读更多:如何成为链上卡尔达诺开发人员

Cardano 上的 dApp 依靠 Plutus 来保护此业务逻辑、防止攻击发生并管理加密资产的行为。 由于所有这些原因,它在生态系统中具有巨大的重要性。

Plutus 语言将成为卡尔达诺区块链开发人员的主要工具。 这是最受支持的编写验证器的方式,EMURGO、IOG 和 Cardano 基金会花费了大量时间为这种语言编写文档。

它在生态系统中拥有最多的支持,并且随着更多功能的添加来支持它,它将继续改进。 因为 Plutus 并不是一款让人欣喜若狂的产品,而是一款不断收集社区反馈以进一步改进的产品。

马洛是什么?
Haskell-Plutus 和 Marlowe-Cardano-4 的基础知识
Marlowe 是卡尔达诺的另一种特定领域语言。 它还用于设计验证器(链上)并允许他们将此业务逻辑部署到网络。 Marlowe 和 Plutus 之间的主要区别在于,前者使用视觉结构而不是抽象的编码逻辑来更加友好和直观。

Marlowe 使用图形界面,其中转账、金额、存款等智能合约概念由图形拼图表示。 每个部分都有一组逻辑连接,需要这些连接才能使逻辑有效。

图3
该界面可用于创建区块链技术中的大多数基本金融应用程序。 另外,通过使用系统的逻辑,可以由各个部分组成更复杂的功能。

Marlowe 的设计目的是让项目能够轻松开发和部署链上代码。 它的目的是降低障碍,并向可能无法找到全职卡尔达诺区块链开发人员的团队开放区块链的力量。

此外,Marlowe 的后端也使用 Haskell 的原理。 任何使用 Marlowe 设计的验证器都可以从组合在一起的视觉效果转换为 100% 有效的 Haskell 代码。

图5
这使得它成为 Haskell 和 Plutus 的强大教学工具。 未来的学生可以使用图形界面自由地编写验证器,然后将其转换为代码。 这样他们就可以看到所代表的作品如何转化为 Plutus 并将其用作参考。

通过这种方式,学习马洛加强了普利图斯和哈斯克尔原理。 卡尔达诺上的所有三种主要语言相互关联并相互构建。

通过 EMURGO Academy 学习成为卡尔达诺区块链开发人员的技能
博客 CTA 横幅 EMURGO Academy Dark
现在报名

Cardano 创始实体 EMURGO 的教育部门 EMURGO Academy 创建了专门定制的项目,旨在培训未来的 Cardano 区块链开发人员。 这些课程介绍了所有必要的 Haskell 原理、Plutus 开发以及使用 Marlowe 的真实示例。

它旨在吸引来自其他领域的程序员,并为他们提供成为合格的卡尔达诺开发人员所需的工具。 它让学生了解卡尔达诺中的所有不同领域,例如卡尔达诺节点、卡尔达诺 CLI、Plutus、链下代码和 Marlowe。

立即注册 EMURGO Academy,开始成为卡尔达诺区块链开发人员的旅程。

关于艾默格

官方主页:emurgo.io
Twitter(全球):@EMURGO_io
YouTube:EMURGO 频道
脸书:@EMURGO.io
Instagram:@EMURGO_io
领英:@EMURGO_io
免责声明

您不应将任何此类信息或其他材料解释为法律、税务、投资、财务或其他建议。 本文包含的任何内容均不构成 EMURGO 的投资招揽、推荐、认可或要约。