以太坊虚拟机介绍

以太坊虚拟机介绍 近期打算写一些关于以太坊虚拟机(后面简称EVM)的文章,这是其中的第一篇。这一系列文章想站在EVM指令集的角度,带领读者逐步理解EVM工作原理,进而理解以太坊区块链技术细节。由于网上介绍以太坊的文章也比较多,所以这一系列文章将最大程度减少不必要的废话,直接提供文章想要表达的信息...

2018-08-20 09:16:41

阅读数 899

评论数 0

以太坊虚拟机介绍5-比较操作指令

以太坊虚拟机比较操作指令 EVM定义了6条比较操作指令,分别是: LT 0x10 GT 0x11 SLT 0x12 SGT 0x13 EQ 0x14 ISZERO 0x15 LT、GT、SLT、SGT、EQ ISZERO 实例分析 // comparison_dem...

2018-08-28 11:25:44

阅读数 297

评论数 0

以太坊虚拟机介绍4-按位运算指令

以太坊虚拟机按位运算指令 EVM定义了8条按位运算指令,分别是: * AND,按位与,操作码0x16 * OR,按位或,操作码0x17 * XOR,按位异或,操作码0x18 * NOT,按位取反,操作码0x19 * BYTE,取第n个字节,操作码0x1A * SHL,左移,操作码0x...

2018-08-27 15:00:32

阅读数 212

评论数 0

以太坊虚拟机介绍3-算术运算指令

以太坊虚拟机算术运算指令 EVM总共定义了11条算术运算指令,分别是ADD(加法指令,操作码0x01)、MUL(乘法指令,操作码0x02)、SUB(减法指令,操作码0x03)、DIV(无符号整除指令,操作码0x04)、SDIV(有符号整除指令,操作码0x05)、MOD(有符号取模指令,操作码0x...

2018-08-22 23:10:56

阅读数 280

评论数 0

以太坊虚拟机介绍2-栈操作指令

以太坊虚拟机栈操作指令 本文介绍POP指令、PUSHx系列指令、DUPx系列指令、SWAPx系列指令。这些指令只对EVM栈进行单纯的操作,它们的操作码分布如下图所示: POP指令 POP指令(操作码0x50)从栈顶弹出一个元素。下面是POP指令的操作示意图(白色表示元素即将发生变动): ...

2018-08-21 07:32:00

阅读数 432

评论数 1

Java9之class文件格式变动

Java9之class文件格式变动Java9已经于2017年09月27日发布。Java9引入了很多新特性,其中最重要的特性无疑就是模块化了。为了支持模块化,Java从方方面面都进行了改进,包括class文件格式。网上已经有很多文章介绍Java9模块化,因此本文并不打算成为另一篇模块化入门文章。本文...

2017-10-19 16:57:55

阅读数 789

评论数 1

Go语言小知识之append()函数

内置的append()函数,给slice追加一个item。如果这个slice还有空闲容量(cap(s) > len(s)),则直接进行追加。否则,先对slice进行扩容,然后再进行追加。上述这些在append()函数的文档里有详细的说明,但是文档并没有说扩容是如何进行的,所以下面用一段代码做...

2017-04-13 17:11:20

阅读数 4573

评论数 0

Go语言小知识之map遍历

1Go语言里的map,是不保证遍历顺序的(这一点很好理解)。甚至同样内容的map,两次遍历的顺序,也可能不一样。下面是一个例子:m := map[string]int{"a1": 1,"b2": 10,"c3": 2,} for k, v...

2017-04-13 16:38:43

阅读数 26388

评论数 0

图解Protobuf编码

图解Protobuf编码Protobuf是Google发布的消息序列化工具。Protobuf定义了消息描述语法(proto语法)和消息编码格式,并且提供了主流语言的代码生成器(protoc)。本文仅讨论Protobuf消息编码格式,并且假定读者已经熟悉Protobuf消息描述语法(proto2或者...

2016-11-21 13:53:13

阅读数 13021

评论数 3

探索Scala(8)-- 关键字

本文比较一下Java和Scala语言的关键字

2014-11-04 18:39:06

阅读数 7840

评论数 2

探索Scala(7)-- 字段

本文讨论一下在Scala语言里,字段(Fields)是如何实现的

2014-11-03 15:04:19

阅读数 1660

评论数 0

探索Scala(6)-- Tuples

本文讨论一下Tuple的用法和实现方式

2014-10-31 15:36:59

阅读数 4934

评论数 1

探索Scala(5)-- 基本类型

文本讨论一下Scala语言基本类型的实现方式

2014-10-30 13:47:03

阅读数 6771

评论数 0

探索Scala(4)-- Case Classes

本文简单探讨一下Scala语言Case Class的实现机制

2014-10-27 09:55:36

阅读数 6366

评论数 2

探索Scala(3)-- 单例对象

探索Scala语言单例对象

2014-10-24 16:13:16

阅读数 4031

评论数 0

探索Scala(2)-- Traits

本文记录我对Scala语言Traits的一些理解。

2014-10-22 20:04:41

阅读数 1929

评论数 1

Akka边学边写(4)-- MiniRPG

前面几篇文章用Akka写了HelloWorld和EchoServer,为了更进一步学习Akka,本文将会实现一个很小的RPG游戏服务器:MiniRPG。

2014-10-21 11:29:51

阅读数 2906

评论数 2

Akka边学边写(3)-- ByteString介绍

本文简单介绍一下ByteString的设计和使用

2014-10-16 18:43:21

阅读数 5999

评论数 1

探索Scala(1)-- 运算符重载

Scala语言运算符重载完全是语法层面的小把戏,本文记录我对Scala语言运算符重载的一些理解

2014-10-14 14:39:44

阅读数 4842

评论数 1

Akka边学边写(2)-- Echo Server

Akka版ECHO服务器

2014-10-13 11:36:51

阅读数 3951

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭