以太坊虚拟机科普指南

 2026-11-02 10:16:07    TP钱包官方网站  

从直白的说法来看, 以太坊虚拟机可以被视为存在于链上的所有智能合约所依赖的, 那个用来推动其运转的所谓“发动机”。

你嫌它抽象?

以太坊虚拟机科普指南

打个比方, 它在本质上跟CPU是没有区别的, 但是它的运行方式不一样, 它不运行x86指令集里面的那些命令, 而是去执行字节码。

就这个简单的东西, 大家不要把它想得太复杂了, 只要能够真正理解了这一点, 那么后面的所有内容就能全部顺利通了。

以太坊虚拟机是啥

你那个在Solidity里面的逻辑, 编译好了就变成字节码, 然后把这些东西塞进到合约里面去, 接着那个EVM就会一条一条地把那些内容读到并且执行。

栈、内存、存储, 这三个东西组成的一个整体, 它们所采用的设计思路跟八十年代计算器是一个样的, 极简到极致, 到了抠门的地步, 但是能够满足使用的需要。

别被那个叫做虚拟机的是非字给吓住了, 你就只管把它当成普通玩意儿看就行。

它没有垃圾回收机制, 也不进行垃圾回收处理, 所以每一个操作步骤都会牵扯到gas费用, 如果算不清楚账目, 那么就会直接导致反向操作并且返回错误给你看, 甚至连一个比较像样的带有描述性的报错日志系统都没有。

这句话所涉及的内容, 与Java虚拟机在本质属性方面并不存在同一物种那样的关联性质, 因此在理解的过程之中绝对不可以将其相互混淆来进行解读。

以太坊虚拟机怎么用

在实际开发的工作场景里, 你基本上是不可能直接去触碰那些与EVM有关的东西的。

在针对Solidity进行编译、部署和调用的过程中, 相关工具链会帮你把工作搞定。具体表现是把字节码直接灌进系统里去。

如果确实需要去进行调试工作, 那么在本地环境里面启动一个geth节点, 并且在Hardhat工具中将断点设置在了bytecode这一层面, 以便观察堆栈的变化情况, 这种操作方式所带来的效果, 远比只是死死盯着Solidity源码来看要强得太多许多。

这里有一个巨大的坑, 让我必须痛痛快快地吐槽一下, 那就是存储和内存在gas费用上的差距, 简直差出了一个数量级的水平。

现在的存储器价格相对昂贵, 而内存的价格相对便宜。如果你不小心将存储结构放到了内存空间内并进行反复读取与写入操作的话, 会导致需要燃烧的气体费用高得让你感到心疼, 甚至产生想要摔碎键盘的烦躁情绪。

在真正去执行存储操作之前,先老老实实算清楚这笔账目吧, 千万不要一直拖延到最终数据都被上链以后, 那时候再感到惊慌和懊恼, 那就已经来不及了。

EVM这个东西呢,它是一个确定性的执行环境, 这个环境中不存在网络功能, 也缺少时钟设施, 同时还不具备生成随机数的能力, 所以只要输入是确定的, 输出的结果就一定是确定的。

如果你无法忍受这种严格的限制条件的话, 那么就请不要再在以太坊这个平台上去进行折腾了, 直接换个其他的区块链吧。

它并不是万能的, 可是, 正是因为它让人觉得无聊, 所以这份无聊反倒成了它的价值。

原文链接:https://chinaibfc.com/tpgfxz/6923.html

本文版权:如无特别标注,本站文章均为原创。

相关文章