上一页 1 2 3 4 5 6 7 8 ··· 20 下一页
摘要: 以太坊虚拟机算术运算指令EVM总共定义了11条算术运算指令,见下表: 这些指令从栈顶弹出两到三个元素,进行相应计算,然后把结果推入栈顶。参与计算的元素和结果均被解释为按二的补码编码的整数。如果计算结果(假设为x)溢出(超出2^256),则最终的结果x’取值x % 2^256(%表示取模运算,^表示指 阅读全文
posted @ 2018-11-21 22:10 苦逼码农2014 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章对EVM和它的指令集进行了简单介绍,本文将介绍POP指令、PUSHx系列指令、DUPx系列指令、SWAPx系列指令。这些指令只对EVM栈进行单纯的操作,它们的操作码分布如下图所示: POP指令POP指令(操作码0x50)从栈顶弹出一个元素。下面是POP指令的操作示意图(白色表示元素即将发生 阅读全文
posted @ 2018-11-21 22:08 苦逼码农2014 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 近期打算写一些关于以太坊虚拟机(后面简称EVM)的文章,这是其中的第一篇。这一系列文章想站在EVM指令集的角度,带领读者逐步理解EVM工作原理,进而理解以太坊区块链技术细节。由于网上介绍以太坊的文章也比较多,所以这一系列文章将最大程度减少不必要的废话,直接提供文章想要表达的信息。 EVM基本信息编程 阅读全文
posted @ 2018-11-21 22:04 苦逼码农2014 阅读(940) 评论(0) 推荐(0) 编辑
摘要: 学习文档链接:here 一、虚拟机外 主要功能: 执行前将Transaction类型转化成Message,创建虚拟机(EVM)对象,计算一些Gas消耗,以及执行交易完毕后创建收据(Receipt)对象并返回 1 1.1 入口 和 返回值 文件:/core/state_processor.go Pro 阅读全文
posted @ 2018-11-16 11:03 苦逼码农2014 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 主命令框 F1 或 Ctrl+Shift+P: 打开命令面板。在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace 会进入到 Ctrl+P 模式 在 Ctrl+P 下输入 > 可以进入 Ctrl+Shift+P 模式 在 Ctrl+P 窗口下还可以: 直接输入文件名,跳转到文件 ? 阅读全文
posted @ 2018-11-15 14:34 苦逼码农2014 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 在该系列文章的前部分,我们学了EVM汇编基础,也学了ABI编码是如何允许外部程序与合约进行通信的。在本文中,我们将会学习一个合约是如何从零创建的。 本系列的相关文章(按照顺序): EVM汇编代码的介绍(第1部分) 固定长度数据类型的表示方法(第2部分) 动态数据类型的表示方法(第3部分) ABI编码 阅读全文
posted @ 2018-11-15 12:01 苦逼码农2014 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 在本系列的上一篇文章中我们看到了Solidity是如何在EVM存储器中表示复杂数据结构的。但是如果无法交互,数据就是没有意义的。智能合约就是数据和外界的中间体。 在这篇文章中我们将会看到Solidity和EVM可以让外部程序来调用合约的方法并改变它的状态。 “外部程序”不限于DApp/JavaScr 阅读全文
posted @ 2018-11-01 12:01 苦逼码农2014 阅读(787) 评论(0) 推荐(0) 编辑
摘要: Solidity提供了在其他编程语言常见的数据类型。除了简单的值类型比如数字和结构体,还有一些其他数据类型,随着数据的增加可以进行动态扩展的动态类型。动态类型的3大类: 映射(Mappings):mapping(bytes32 => uint256), mapping(address => stri 阅读全文
posted @ 2018-10-31 18:14 苦逼码农2014 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 在本系列的第一篇文章中,我们已经看到了一个简单的Solidity合约的汇编代码: contract C { uint256 a; function C() { a = 1; } } 该合约归结于sstore指令的调用: // a = 1 sstore(0x0, 0x1) EVM将0x1数值存储在0x 阅读全文
posted @ 2018-10-31 17:32 苦逼码农2014 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 译者说,深入了解以太坊虚拟机是一个系列的文章,一共5篇! 本文是第1篇,主要介绍的是以太坊虚拟机汇编代码基础。后续的4篇译文链接在本文的结尾处。 Solidity提供了很多高级语言的抽象概念,但是这些特性让人很难明白在运行程序的时候到底发生了什么。我阅读了Solidity的文档,但依旧存在着几个基本 阅读全文
posted @ 2018-10-31 14:06 苦逼码农2014 阅读(457) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 20 下一页