了解新的以太坊开发语言Vyper

Vyper 开发环境搭建 文章目录前言为什么用Vyper安装Vyper环境环境准备:创建虚拟Python环境安装Vyper 前言 vyper语言更新很快,此系列文章使用版本为(当时最新的):。随着版本更新,很多功能可能会与文章有出入,后续不会再做提示。无论你使用哪个版本,强烈建议查看官方文档进行学习。 为什么用Vyper Vyper是一种基于python的,运行在以太坊虚拟机上的智能合约语言 在vyper之前,编写智... 阅读详情

Vyper是一种全新的以太坊开发语言,主要用于商用区块链,对区块链开发者来说可以提高安全性。

Vyper是一种通用的实验性编程语言,可编译为EVM(以太坊虚拟机)字节码,Solidity也是如此。但是,Vyper旨在大规模简化流程,以便创建更易于理解的智能合约,这些合约对所有相关方更加透明,并且被攻击的点更少。

任何针对EVM的代码都必须是超高效的,以最大限度地减少智能合约执行所需的gas,因为与低效代码的合约实际上需要更多的以太执行,并且可能很快变得非常昂贵,特别是在微处理器等用例中交易。最终的结果是Vyper看起来在逻辑上类似于Solidity,在语法上类似于Python,但没有很多面向对象编程范例——可能需要一个新的范式定义用于交易编程。

现在学习这些逻辑和语法上的差异将有助于你成为世界级的Vyper开发人员,因为截至2018年6月,Vyper仍处于v0.1.0-beta.1版本!

比较Python,Vyper和Solidity

在这里,我们介绍了Vyper高级的“原因”——为我们分析和编写Vyper代码提供了一个重点,包括智能合约。

关键改进1:简单

Vyper不包含大多数程序员熟悉的许多构造:类继承,函数重载,运算符重载和递归。对于图灵完备语言而言,这些都不是技术上必需的,并且它们通过增加复杂性来避免安全风险。由于这种复杂性,这些结构将使得智能合约由非专业人员进行审计时难以理解,如在Solidity合约中所见。

不常见结构是修饰符(这使得编写误导性代码变得太容易),内联汇编(这会使Ctrl+F中断)和二进制固定点(二进制固定点通常需要近似值)。

关键改进2:安全

用Vyper开发者自己的话说,Vyper“如果为了提高安全性的目标,它会故意禁止一些事情或者让事情变得更难。”

因此,Vyper并不是Solidity的全部替代品,而是一种在安全性至关重要的地方使用的优秀语言,例如用于处理患者健康元数据的智能合约或用于去中心化AI的模型渐变。

Vyper代码和句法差异

Vyper的构建尽可能与Python类似,同时努力实现安全性和简单性的目标,因此语言的整体感觉是相同的,尽管有许多不同需要注意。

执行文件

虽然Python脚本执行为

python file_name.py

使用vyper编译脚本

vyper file_name.vy
状态变量

状态变量是永久存储在合约存储中的值,可以是任何类型,例如:

exampleStateVariable:int256。
mapping

Vyper合约包含的第一件事是合约存储字段,例如代币余额映射:

balance: public(wei_value[address])

这是一个定义键和相应值的状态变量。

Vyper映射基本上是初始化的哈希表,如上所示,所以“每个可能的密钥都存在,并映射到一个字节表示全为零的值:一个类型的默认值。”

关键数据不存储在映射中,而只是存储在keccak256哈希中,以查找其值。

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

定义

你会注意到Vyper在定义名称(如balance)时使用冒号而不是Python的等号,尽管Python 3.6包含与变量注释相同的语法:

context = {} # empty dictionary context["a"]: 2 # annotate dictionary va
什么是vyper语言 Vyper是一种全新的以太坊开发语言。 一、它在逻辑上类似于Solidity,在语法上类似于Python 和Solidity一样,Vyper可编译为以太坊虚拟机(EVM)字节码,运行在以太坊虚拟机(EVM)上。 语法与Python非常类似,可以说95%类似。所以Vyper是一个非常适合人类编写和阅读的语言。 二、Vyper最显著的两大特点是:安全和简单 以太坊是一个价值网络,构建于以太坊之... 阅读详情

相关推荐

Playwright MCP Server完整配置手册:从安装到AI自动化测试实战

本文详细介绍了Playwright MCP Server的完整配置流程,从环境准备、主流开发工具(如VS Code、Claude、Cursor)的集成,到高级参数调优与AI自动化测试实战。通过将Playwright的浏览器自动化能力封装为MCP协议工具,开发者可以让大语言模型直接操作浏览器,实现自然语言驱动的测试生成、探索性测试和视觉回归测试,显著提升自动化测试效率。

git9versioner的博客 1650

Vyper教程 使用Truffle框架开发Vyper

文章目录写在前面什么是Truffle安装TruffleVyper支持使用Truffle框架开发测试Vyper创建空项目创建模板项目进入控制台编译部署测试写在最后 写在前面 上一篇 Vyper 编译部署合约 的最后,我们提到了在开发智能合约过程中,为了更方便的即时部署和测试,我们需要一个智能合约开发、测试框架:truffle。本文就将简单的介绍如何使用truffle快速的在本地测试Vyper合约。 ...

队长的博客 1305

用通俗易懂的话来讲以太坊虚拟机、Solidity、Vyper、ConsenSys、Truffle、MetaMask、Ropsten、Remix、Guestbook、ABI、Etherscan、payl

摘要:以太坊生态是一个去中心化的计算网络,核心由EVM虚拟机驱动,确保全球节点执行结果一致。开发者使用Solidity(主流)或Vyper(安全优先)编写智能合约,通过Truffle等工具编译测试,部署到Ropsten测试网验证后上线主网。用户通过MetaMask钱包与DApp交互,交易数据编码为Payload由EVM执行,所有操作公开记录在Etherscan。ConsenSys提供开发工具链(如Remix、Infura),形成从编码到部署的完整工作流。该生态通过Gas机制、沙盒隔离等技术保障安全,支持构建

通俗易懂学IT 926

Vyper教程 第一个合约

文章目录前言第一个合约创建合约文件版本号 前言 上篇文章已经搭建好了vyper的开发环境,如果你还没有,请先看上一篇文章Vyper教程 开发环境搭建。 第一个合约 《精通以太坊》中介绍的第一个用solidity实现的以太坊合约如下: // Our first contract is a faucet! contract Faucet { // Give out ether to anyo...

队长的博客 963

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题:哪种智能合约语言更有优势,Solidity、Vyper、Huff 和 Yul ?最近,关于哪种是“最好的”智能合约语言存在很多争论,当然了,每一种语言都有适用的场景。这篇文章是为了最根本的问题:我应该使用哪一种智能合约语言?

ChainlinkO的博客 2352

使用 Vyper 实现智能合约——一种 Python 方法

使用 Vyper 实现智能合约——一种 Python 方法 许多正在学习如何编写智能合约的程序员将学习Solidity语言。有丰富的在线教程和书籍资源,将教我们关于Solidity的内容。当与Truffle框架相结合时,Solidity形成了开发智能合约的“杀手”组合。几乎所有存在于以太坊区块链上的智能合约都是用Solidity编程语言编写的。 在本文中,我们将探讨如何用Vyper编程语言编写智能合约。 主题 介绍 设置环境 使用Vyper创建智能合约 将智能合约部署到 Ganache 与智能合约交互

chinadefi的博客 1456

5、智能合约基础与Vyper语言应用解析

本文详细解析了智能合约的基础知识及其与Vyper语言的应用。内容包括如何使用Truffle与智能合约交互、向合约发送和提取以太币、智能合约的优势,以及Vyper语言的设计动机和安装使用步骤。文章还比较了Vyper与Solidity在安全性、易审计性等方面的特点,并提供了Vyper开发的基本流程和技巧。

cream的博客 68

TRK-MPC5634M开发板实战:从硬件解析到CAN、ADC外设驱动调试

在嵌入式系统开发,尤其是汽车电子和工业控制领域,微控制器(MCU)是核心执行单元。其工作原理基于处理器内核、存储器和丰富的外设接口协同工作,通过软件编程实现对硬件的精确控制。这种技术价值在于能够为严苛环境提供可靠、实时的控制解决方案。典型的应用场景包括汽车车身控制、网关、电池管理系统以及工业自动化设备。本文聚焦于恩智浦(NXP)基于Power Architecture e200z0内核的汽车级MCU——MPC5634M,并以其官方评估板TRK-MPC5634M为平台,深入探讨其硬件设计逻辑、软件环境搭建及核

weixin_29997523的博客 288

从FreeCAD到BIMBase:PlaneGCS约束求解器的移植使用指南

本文为BIMBase平台的开发者提供了一份详细的PlaneGCS几何约束求解器移植与集成指南。文章深入探讨了如何从FreeCAD中提取PlaneGCS核心代码,并将其适配到BIMBase的C++二次开发环境中,重点解决了内存管理、数据模型桥接、约束抽象以及性能调优等关键问题,旨在帮助开发者构建稳定高效的参数化设计模块。

weixin_29213525的博客 320

Node.js内存溢出?一招搞定JavaScript heap out of memory错误(附永久配置方案)

本文深入解析Node.js内存溢出问题,提供从临时调整到永久配置的完整解决方案。重点介绍通过设置`max-old-space-size`参数和`NODE_OPTIONS`环境变量来扩展JavaScript堆内存限制,适用于Webpack、Vite等构建工具的大型项目场景,并涵盖Windows、Linux/macOS多平台配置方法。

cake8的博客 1053

Unity如何实现数字人口型同步

SALSA LipSync v2是一款实时唇音同步系统,无需音素映射即可根据音频自动生成口型动画。系统提供三大核心功能:基于音频波形分析的智能口型同步、EmoteR表情随机化工具以及Eyes眼睛/头部追踪系统。配置流程简单快捷,只需导入模型后通过一键配置完成基础设置,再添加A/E/I/O/U等基本口型混合变形即可实现基础功能。进阶功能支持表情池管理(手动/随机/强调/重复触发)和眼部动作配置(骨骼旋转或混合变形)。系统支持三种输入方式:本地音频文件分析、麦克风实时输入和文本转语音,为数字人角色提供完整的表情

TxNet 759

手把手教你学PCIE--PCIe架构详解 - 物理层结构

在前一篇文章中,我们对PCIe与其他总线协议进行了对比分析。本文将深入探讨PCIe的物理层结构,这是PCIe协议的核心组成部分之一。物理层负责实际的电气信号传输,理解其工作原理对于设计和调试PCIe系统至关重要。PCIe的物理层是协议栈的最底层,负责将数据从链路层转换为电信号进行传输,并在接收端将电信号还原为数据。差分信号传输:通过一对差分信号线实现高速、低噪声的数据传输。时钟恢复:从数据流中提取时钟信号以同步收发双方。均衡与预加重:补偿信号在传输过程中的损耗,提高链路可靠性。

MHD0815的博客 362

2025目标检测新方向:弱监督目标检测的最新论文研究与应用

2025目标检测新方向:弱监督目标检测的最新论文研究与应用 ,人工智能,计算机视觉,大模型,AI,本文聚焦2025年弱监督目标检测新方向,阐述其基础概念,包括弱监督学习定义、标注形式及面临的定位不准等挑战。介绍最新论文研究的多种算法,如基于点标注的算法等,还涉及相关模型、应用领域,以及评价指标、数据集、实现工具框架,分析未来趋势与补充挑战及解决方案,为该领域研究提供全面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理)

uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错

🏆 前端领域优质创作者 3773

比NTP还牛逼的时间同步协议:1588v2,亚微秒级!

1588v2,又称为Precision Time Protocol Version 2,即精密时间协议的第二版本,或称为PTPv2,是一种精密时间同步协议标准,旨在实现网络中设备之间的高精度时间同步。该协议由IEEE标准组织发布,并在网络测量和控制系统中得到广泛应用。1588v2的主要目的是在计算机网络中提供高度准确的时间同步。它可用于确保不同设备之间的时钟同步,从而协调它们的操作。这对于需要协同工作的系统、无线通信基站等具有关键性的应用非常重要。

网络技术联盟站 4276

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Solidity陷阱:以太坊的随机数生成
下一篇: 了解不同种类的以太坊网络
落叶无声9
博客等级 码龄12年 443粉丝 343原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值