|
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | +是t+1时刻的状态(account trie). |
| 5 | +是状态转换函数,也可以理解为执行引擎 |
| 6 | + 是transaction。 一次交易。 |
| 7 | + |
| 8 | + 是区块级别的状态转换函数。 |
| 9 | + B是区块,由很多交易组成。 |
| 10 | + 0号位置的交易 |
| 11 | + 其中Ω是块终结状态转换函数(一个奖励挖矿者的函数) |
| 12 | + Ether的标识 |
| 13 | + Ether的价值 |
| 14 | + machine-state |
| 15 | + |
| 16 | +## 一些基本的规则 |
| 17 | + |
| 18 | +- 对于大多数的函数来说,都用大写字母来标识。 |
| 19 | +- 元组一般用大写字母来标识 |
| 20 | +- 标量或者固定大小的字节数组都用小写字母标识。 比如 n 代表交易的nonce, 有一些可能有例外,比如δ代表 一个给定指令需要的堆栈数据的多少。 |
| 21 | +- 变长的字节数组一般用加粗的小写字母。 比如 **o** 代表一个message call的输出数据。对于某些重要的也可能使用加粗的大写字母 |
| 22 | + |
| 23 | + |
| 24 | + 字节序列 |
| 25 | + 正整数 |
| 26 | + 32字节长度的字节序列 |
| 27 | + 小于 2^256 的正整数 |
| 28 | +**[ ]** 用于索引数组里面的对应元素 |
| 29 | + 代表机器堆栈(machine's stack)的第一个对象 |
| 30 | + 代表了机器内存(machine's memory)里面的前32个元素 |
| 31 | + 一个占位符号,可以是任意字符代表任意对象 |
| 32 | + |
| 33 | + 代表这个对象被修改后的值 |
| 34 | + 中间状态 |
| 35 | + 中间状态2 |
| 36 | + |
| 37 | +  如果前面的f代表了一个函数, 那么后面的f*代表了一个相识的函数,不过是对内部的元素依次执行f的一个函数。 |
| 38 | + |
| 39 | + 代表了列表里面的最后一个元素 |
| 40 | + 代表了列表里面的最后一个元素 |
| 41 | + 求x的长度 |
| 42 | + |
| 43 | + |
| 44 | + a代表某个地址,代表某个账号的nonce |
| 45 | + banlance 余额 |
| 46 | + storage trie 的 root hash |
| 47 | + Code的hash。 如果code是b 那么KEC(b)===这个hash |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | + world state collapse function |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | + 任意的 any |
| 57 | + 并集 or |
| 58 | + 交集 and |
| 59 | + |
| 60 | + Homestead |
| 61 | +## 交易 |
| 62 | + |
| 63 | + 交易的nonce |
| 64 | + gasPrice |
| 65 | + gasLimit |
| 66 | + to |
| 67 | + value |
| 68 | + |
| 69 | +通过者三个值可以得到sender的地址 |
| 70 | + |
| 71 | + 合约的初始化代码 |
| 72 | + 方法调用的入参 |
| 73 | + |
| 74 | + |
| 75 | +## 区块头 |
| 76 | + |
| 77 | +ParentHash |
| 78 | +OmmersHash |
| 79 | +beneficiary矿工地址 |
| 80 | +stateRoot |
| 81 | +transactionRoot |
| 82 | +receiptRoot |
| 83 | +logsBloom |
| 84 | +难度 |
| 85 | +number高度 |
| 86 | +gasLimit |
| 87 | +gasUsed |
| 88 | +timestamp |
| 89 | +extraData |
| 90 | +mixHash |
| 91 | +nonce |
| 92 | +## 回执 |
| 93 | + |
| 94 | + 第i个交易的receipt |
| 95 | + |
| 96 | + |
| 97 | + 交易执行后的world-state |
| 98 | +交易执行后区块总的gas使用量 |
| 99 | +本交易执行产生的所有log的布隆过滤数据 |
| 100 | +交易产生的日志集合 |
| 101 | + |
| 102 | + Log entry Oa日志产生的地址, Ot topic Od 时间 |
| 103 | + |
| 104 | +## 交易执行 |
| 105 | + substate |
| 106 | + suicide set |
| 107 | + log series |
| 108 | + refund balance |
| 109 | + |
| 110 | + 交易过程中使用的总gas数量。 |
| 111 | + 交易产生的日志。 |
| 112 | + |
| 113 | + 执行代码的拥有者 |
| 114 | + 交易的发起者 |
| 115 | + gasPrice |
| 116 | + inputdata |
| 117 | + 引起代码执行的地址,如果是交易那么是交易的发起人 |
| 118 | + value |
| 119 | + 需要执行的代码 |
| 120 | + 当前的区块头 |
| 121 | + 当前的调用深度 |
| 122 | + |
| 123 | + |
| 124 | + 执行模型 s suicide set; l 日志集合 **o** 输出 ; r refund |
| 125 | + |
| 126 | + 执行函数 |
| 127 | + |
| 128 | + 当前可用的gas |
| 129 | + 程序计数器 |
| 130 | + 内存内容 |
| 131 | + 内存中有效的word数量 |
| 132 | + 堆栈内容 |
| 133 | + |
| 134 | + w代表当前需要执行的指令 |
| 135 | + |
| 136 | + 指令需要移除的堆栈对象个数 |
| 137 | + 指令需要增加的堆栈对象个数 |
0 commit comments