技术概述。Plutus架构

既然你在这里,你可能已经听说过Cardano。如果你已经在这里呆了一段时间,你可能知道什么是 “智能合约”。这里有一个仍然不为许多人所知的东西。Plutus。本文借鉴了4月份发表在IOG的YouTuve频道上的一段视频,描述了什么是Plutus以及它在Cardano架构中的重要性。

Cardano区块链平台的基础是建立在两个独立的层面上。一个Cardano结算层(CSL)和一个Cardano计算层(CCL)。Plutus是为CCL提供动力的一系列技术。

  • Plutus是Cardano智能合约平台的核心,为创建DApps(去中心化的应用程序)提供动力。
  • Plutus实现了今年非常流行的不可伪造的代币(NFTs)。
  • Plutus是你在Cardano上启动本地资产的方式:你能够创建你自己的硬币或货币。
  • 最后,Plutus允许任意的链上条件逻辑:想象一下excel风格的 “if “语句的可编程性,但在Cardano区块链上。

Plutus平台组件运作的核心是称为EUTxO的东西

首先,“UTxO “代表 “未花费的交易输出”;它是比特币开创的 “现金抽屉 “会计模式的名称。在这种模式下,不同金额的价值被存储在UTxO中,就像你可能把不同价值的钞票放在现金抽屉里。你也可以把UTxO看作是Cardano区块链上一个或多个ADA的包装器。

EUTxO开头的 “E “代表了 “扩展”。EUTxO是Cardano做链上可编程性和智能合约的方式。EUTxO有四个组成部分。契约、救赎者、数据和背景。

**合同:**智能合约是存储在区块链上的程序,在满足预先设定的条件时运行。它们可以被认为是持有UTxO的锁。你也可以把智能合约看作是验证器或简单的编程脚本。

**赎回者:**这是由用户传递给智能合约的数据。 在一个简单的UTXO中,赎回者可以是一个签名,它提供了UTXO的所有权证明和对内容的访问。你可以把赎回者看作是打开合同的钥匙。

**Datum:**可与UTxO关联的信息。它用于存储脚本状态信息,如其所有者或时间细节(定义UTxO何时可以花费)。你可以把Datum想象成智能合约的硬盘,用于存储各种数据。

**背景:**背景本质上是交易的摘要或元数据。它可以包括诸如谁签署了交易或资金去向的信息。

有了EUTxO的这四个组成部分,Plutus平台允许企业和开发者在Cardano上开发广泛的去中心化应用、金融产品和游戏。

###Plutus平台 Plutus平台从开发者的代码开始,然后经过一系列的优化步骤,最后被放到链上(分类账api),最终由plutus核心评估器以去中心化的方式执行和运行。

###源代码 Plutus从开发者的计算机上的编程代码开始,在代码到达区块链之前,在用户进入画面之前。 截至目前,所有Plutus合约都是用Haskell编程语言或Haskell的超集编写的。令人困惑的是,Plutus本身也是一种编程语言,是Haskell的超集,使编写Haskell不那么费力,并减少模板。Plutus平台的设计是为了在未来支持其他语言或特定领域的语言,使其更容易用于某些用途,但在目前,Plutus和Haskell是你唯一的选择。

###编译器管道 在开发人员完成了I和T的交叉工作后,Haskell脚本将被转换为Plutus IR。Plutus IR是Haskell代码的 “中间表述”。这个IR状态还不是1s和0s的机器码,而是一个机会,让Plutus优化开发者的代码,以获得最有效的1s和0s输出。 Plutus IR对Cardano开发的作用就像LLVM对苹果iOS应用开发或Rust编程语言一样。

从Plutus IR开始,代码就变成了类型化的Plutus核心。这只是在原始1和0之前。它提供了一个低级别的层,以帮助开发人员在整个1s和0s着陆之前轻松发现问题。

接下来是untyped-Plutus核心–lambda calculus的变体,一种用纯逻辑表达应用程序的方式(见底部链接的维基百科文章)。 这个应用程序的Untyped Plutus核心表示就是将在区块链上执行的东西。

###在链上获得 在所有的优化之后,编译后的应用程序终于可以被 “部署 “或注入到区块链上。在Cardano中,有其他Plutus应用程序来帮助实现这一点,还有开发者工具包。

###链外代码 一旦你的代码在区块链上,你将需要编写另一套Plutus/Haskell代码来支持交易生成。你的应用程序的这个链外组件是正确收集诸如赎回者和数据的部分,并建立一个可以与生活在区块链上的编译代码互动的交易。

###结论 有了编译好的链上代码和链下代码,你的DApp已经准备好促进用户互动了。本系列的下一篇文章将深入介绍Plutus互动。

Related Links

  • Lambda calculus writeup wikipedia
  • Cardano Technical Briefing: Plutus by John Woods video

在您的收件箱中获得更多类似的文章

你对Plutus平台有什么经验?哪些地方还让你感到困惑?

Or leave comment
Share

No comments yet…

avatar
You can use Markdown
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分钟24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分钟3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分钟48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分钟16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分钟14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分钟19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分钟59秒
    Darlington Kofa
0:00
/
~0:00