在本文中,简单地解释一些 EVM 基础知识。
本文参考许多书籍资料,分析了 EVM 的存储空间和运行机制,对操作码进行了一定的整理,给出了参考资源,基本上涵盖了分析字节码、操作码,单步调试,观察堆栈的基础。
在本文中,将看到:1.解释这些函数解决的问题。2.讨论 Solidity 编译器如何处理新的 assert(), require() 和 revert()。3.给出一些经验法则来决定如何以及何时使用每一个。
assert()
require()
revert()
深入了解一下以太坊虚拟机兼容性的相关内容
系统学习EVM的设计原理。
本文旨在探索 EVM 的 gas 机制,尤其是 GasToken 的 EVM gas 机制。
以太坊预编译合约
EVM字节码和逆向基础
本文来自我在HackQuest学习笔记的整理EVM交易结构交易数据主要包含如下字段:●nonce:发送方账户的交易计数器,统计该账户在此区块链中的总交易次数。●gasPrice:发送方愿意为每单位gas支付的价格。●gasLimit:发送方为这次交易设置的最大gas消耗
EVM Trackooor:在 EVM 链上跟踪任何事物
开发可升级合约时,需要避坑的一些存储区问题
Nervos 支持使用与以太坊兼容的智能合约,允许开发者使用目前最流行的 Solidity 智能合约语言创建 dApp。这是通过使用 Godwoken 和 Polyjuice 框架在基于 Layer 2 的执行环境中运行 EVM(以太坊虚拟机)来实现的。
EVM dapps 在 Nervos 上的运行方式与在以太坊上几乎相同。这样一来,dApp用户就可以继续使用最常见的 MetaMask 钱包,而无需安装任何新的钱包。熟悉以太坊的 dApp 用户也会有宾至如归的感觉!
通过Timelock合约可以引入了一种延迟函数执行的机制。如果想让某个函数调用满足一定的时间约束时才执行,可以在Timelock中注册该调用,后面也可以取消注册。
EVM(以太坊虚拟机)的堆栈指令是智能合约操作的基础,使用这些指令可以对堆栈中的数据进行各种操作。
让我们尝试从头开始去构建一个以太坊虚拟机(EVM)!只参考以太坊黄皮书(yellowpaper)