以太坊虚拟机比较操作指令 EVM定义了6条比较操作指令,见下表: 下面是比较操作指令的操作码分布图: LT、GT、SLT、SGT、EQ这5条指令都是从栈顶弹出两个元素,进行比较,然后把结果(1表示true,0表示false)推入栈顶。其中LT和GT把弹出的元素解释为无符号整数进行比较,SLT和SGT ...
分类:
其他好文 时间:
2018-11-22 00:07:29
阅读次数:
161
以太坊虚拟机算术运算指令EVM总共定义了11条算术运算指令,见下表: 这些指令从栈顶弹出两到三个元素,进行相应计算,然后把结果推入栈顶。参与计算的元素和结果均被解释为按二的补码编码的整数。如果计算结果(假设为x)溢出(超出2^256),则最终的结果x’取值x % 2^256(%表示取模运算,^表示指 ...
分类:
其他好文 时间:
2018-11-22 00:06:05
阅读次数:
136
以太坊虚拟机按位运算指令 EVM定义了8条按位运算指令,见下表: 下面是按位运算指令的操作码分布图: AND、OR、XOR、NOT AND、OR、XOR指令从栈顶弹出两个元素,进行按位运算,然后把结果推入栈顶。以AND指令为例,下面是它的操作示意图: NOT指令将栈元素按位取反,下面是它的操作示意图 ...
分类:
其他好文 时间:
2018-11-22 00:01:50
阅读次数:
275
pragma solidity ^0.4.4; contract funder{ //0xca35b7d915458ef540ade6068dfe2f44e8fa733c //0x14723a09acff6d2a60dcdf7aa4aff308fddc160c :10 //0x583031d1113... ...
分类:
其他好文 时间:
2018-11-19 20:21:00
阅读次数:
156
以太坊节点之间能够互相链接需要满足: (1)相同的协议版本 (2)相同的networkid,所以搭建私有网络最方便的方法就是通过geth命令中的--networkid选项,设置一个与主网不同的networkid(主网的networkid为1)。这也是官方推荐的方法。 建立创世纪区块文件,是一个jso ...
分类:
其他好文 时间:
2018-11-17 13:21:42
阅读次数:
218
pragma solidity ^0.4.0; contract byte1{ /* 固定大小字节数组(Fixed-size byte arrays) 固定大小字节数组可以通过bytes1,bytes2...bytes32声明,byte=byte1 bytes1 只能存储1个字节,也就是二进制的8位... ...
分类:
编程语言 时间:
2018-11-16 18:24:17
阅读次数:
249
pragma solidity ^0.4.0; contract modifierTest{ bytes32 public blockhash; address public coinbase; uint public difficulty; uint public gaslimit; uint p... ...
分类:
其他好文 时间:
2018-11-15 17:19:16
阅读次数:
230
在该系列文章的前部分,我们学了EVM汇编基础,也学了ABI编码是如何允许外部程序与合约进行通信的。在本文中,我们将会学习一个合约是如何从零创建的。 本系列的相关文章(按照顺序): EVM汇编代码的介绍(第1部分) 固定长度数据类型的表示方法(第2部分) 动态数据类型的表示方法(第3部分) ABI编码 ...
分类:
其他好文 时间:
2018-11-15 13:58:00
阅读次数:
261
从一起“盗币”事件再谈合约安全问题 <! @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} 本来是受到 "从一起“盗币”事件看以太坊存储 hash 碰撞问题" 一文启发,但是我并不太认同文中的观点.并且文中有一些技 ...
分类:
其他好文 时间:
2018-11-15 13:34:39
阅读次数:
177