V神绞尽脑汁开发Vyper,Python

任何在EVM运行的代码都必须是非常高效的,以尽可能减少执行智能合约过程中消耗的Gas。同时,智能合约也需要一定的安全性、透明性。

Vyper是一种通用的、实验性的编程语言。Vyper的设计初衷是极大地简化将代码编译为EVM字节码这个过程,以便创建更容易理解的智能合约,使合约对相关各方都更加透明,攻击入口点也更少。

Vyper在逻辑上类似于Solidity,在语法上类似于Python,所以上手十分容易。截止到年6月,Vyper仅仅为1.0-beta版本!也许,从现在开始学习Vyper语言,你成为世界级的Vyper开发人员。

十分钟!了解下这份全面的灵活、全新以太坊语言Vyper的学习指南?

编译

kou??

全新的以太坊语言Vyper已经发布,并在社交媒体上引起热议。Vyper是由废弃语言Serpent升级而来,为开发者们提供了可以替代Solidity语言的一种选择。

如果你了解Python和Solidity,Vyper也不是很难

在这里,我们将详细介绍为何选择“Vyper”的理由:

关键改进1:简易

Vyper不包含大多数程序员所熟悉的结构:类继承、函数重载、操作符重载和递归。从技术上说,这些结构对图灵完整的语言来说都不是必要的,它们通过增加复杂性来表示安全风险。由于这种复杂性,这些结构一个外行人难以理解和审计智能合约,而这些结构在Solidity智能合约中是普遍存在的。

Vyper中不太常见的也不包括的结构有装饰符(它们使编写误导性代码变得太容易)、内联汇编和二进制不动点(通常需要使用二进制不动点进行近似)。

关键改进2:安全

用Vyper开发人员自己的话说,Vyper

“为了增加安全,它会故意禁止或使事情变得更困难。”

因此,Vyper并不是一个Solidity的彻底替代品,而是一种很优秀的、适合在安全至上场景使用的语言,比如处理患者健康元数据的智能合约或分散人工智能的模型梯度。

??

Vyper代码和语法差异

在设计上,Vyper与Python极为相似,同时在努力实现安全性和简单性目标。因此,总体上,语言与Python是大致相似的,但还是存在一些不同之处的。

执行一个文件

当执行一个Python脚本时,是这样:

pythonfile_name.py

,而编译一个Vyper脚本时,是这样:

vyperfile_name.vy.

状态变量

状态变量是永久存储在合约仓库中的值,类型多样,例如:

exampleStateVariable:int.

映射

Vyper合约中包含合约存储域,例如Token平衡映射:

balance:public(wei_vaue[address])

它是一个定义键和相关值的状态变量。

Vyper映射基本上是初始化的哈希表,所以

“每个可能的键都存在,并被映射到一个字节表示均为默认值零的数值中。”

键数据不是存储在映射中,而是由keccak散列来查找相关值。

在定义balance时,给出了typepublic(),后面是映射语法:首先给出wei_value的值类型,然后是方括号中的键(地址)——类似于Python中对数组的处理。

定义

你将注意到Vyper在定义names(比如balance)时使用了冒号,而不是Python中使用的等号,尽管Python3.6在变量注释中包含了相同的语法:

context={}#emptydictionarycontext["a"]:2#annotatedictionaryvariable

这里的冒号语法用于变量注释,冒号用作赋值操作符,只分配一个类型注释。Vyper使用这种语法进行真正的赋值。

整型

Vyper只有两个整型:uint(对于非负整数)和int(对于有符号整数)——与之相对的是Solidity的uint8到uint,int8到int也是如此(这意味着int类型有64个不同的关键字)。

布尔值、运算符、比较和函数

Vyper中的大多数操作符的语法与Python几乎相同,包括:

trueandfalsebooleans;not,and,or,==,and!=operators;,=,==,!=,=,and



转载请注明地址:http://www.quanyii.com/jbfz/85265.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章