了解 Tezos 的脚本语言 Michelson 是如何工作的,并学会编写一些简单的智能合约。
原文标题:《手把手教你使用 Michelson 编写智能合约》 Michelson 入门:Tezos 的脚本语言Michelson 肯定是目前智能合约中最令人兴奋的编程语言之一。它是一种基于堆栈的严格类型化语言,编写智能合约可以确保 Tezos 区块链的安全。Michelson 可以和以太坊智能合约的字节码相媲美,但它更具可读性,更安全,更强大。用来为 Tezos 编写智能合约的所有高级语言——比如 SmartPy、Ligo 或 Lorentz——最终都可以编译成 Michelson。 在这第一篇文章中,我们将尝试使用 Michelson 语言,理解「基于堆栈」的含义,并编写一些非常简单的智能合约。本文主要是为编程或者 Tezos 开发的初学者编写的,但是想要更多地了解 Michelson 的中级程序员也可以在这里找到有用的信息。我们将使用 Baking Bad 开发的 Jupyter 内核,在 Jupyter 笔记本中编写 Michelson 代码。如果你想了解代码的工作原理,可以在每个部分中找到一个链接。 让我们写一些代码。
堆栈要理解 Michelson 是如何工作的,堆栈是需要正确理解的主要概念之一。每一份 Michelson 合约都是相互遵循的指令清单。这些指令以准确的顺序排列,并按照写入的顺序执行。 每条指令都会以某种方式操纵堆栈。把它想象成一堆数据。你编写的指令将对堆中的数据产生影响。例如,你可以将堆上两段数据相加,删除顶部的数据,将另一段数据放在顶部,传输一些令牌,等等。该堆栈以后进先出的方式工作 :如果要访问不在堆栈顶部的数据,必须先处理它上面的数据。 使用 Michelson 进行编码时,你必须记住的三个主要概念:
让我们看一个例子。 PUSH 操作如果你要在堆栈顶部添加一条数据,你将调用 PUSH 操作。它是这样工作的: 此时需要注意的是,堆栈中可能已经有数据,在这种情况下,新值会放在它们之上。这是你在 Michelson 中推送新数据的方式: PUSH value-type value 例如,如果要推送一个整数,你会写 PUSH int 2,对于一个字符串,你会写 PUSH string 「 Tezos」。 Michelson 智能合约结构 (责任编辑:admin1) |