- 博客(10)
- 收藏
- 关注
原创 以太坊EVM源码注释之State
以太坊EVM源码注释之StateEthereum StateEVM在给定的状态下使用提供的上下文(Context)运行合约,计算有效的状态转换(智能合约代码执行的结果)来更新以太坊状态(Ethereum state)。因此可以认为以太坊是基于交易的状态机,外部因素(账户持有者或者矿工)可以通过创建、接受、排序交易来启动状态转换(state transition)。从状态的角度来看,可以将以太坊看作是一条状态链; 从实现来看,可以将以太坊看作是一条区块组成的链,即"区块链(Blockchain)"。
2020-05-09 22:52:54
1114
原创 以太坊EVM源码注释之执行流程
以太坊EVM源码分析之执行流程业务流程概述EVM是用来执行智能合约的。输入一笔交易,内部会将之转换成一个Message对象,传入 EVM 执行。在合约中,msg 全局变量记录了附带当前合约的交易的信息,可能是为了一致,这里也将transaction转换成Message传给 EVM 对象。如果是普通转账交易,执行时完全不需要EVM的操作(EVM进行的是空操作),直接修改 StateDB 中对...
2020-05-05 18:22:28
1931
原创 以太坊EVM源码注释之数据结构
以太坊EVM源码分析之数据结构EVM代码整体结构EVM相关的源码目录结构:~/go-ethereum-master/core/vm# tree.├── analysis.go // 分析合约字节码,标记是否是跳转目标(jumpdest)├── analysis_test.go├── common.go ...
2020-05-05 17:55:43
1559
原创 LDD3示例代码sbull编译问题
编译块设备驱动程序实例代码sbull遇到的问题示例代码版本为 2.6.10,编译时的内核版本为2.6.39。内核中许多函数和结构发生变化,造成了编译问题,记录如下:error: unknown type name ‘request_queue_t’原因:新版内核中已经没有request_queue_t的定义解决方法:可在代码所在文件添加如下定义:typedef struct requ...
2019-10-15 19:31:06
1419
1
原创 LDD3示例代码Scull编译问题
在运行《Linux设备驱动程序》第三版书中的示例代码时出现了很多编译错误 ,主要原因是我的系统内核版本为 2.6.39,而示例代码运行的内核版本为 2.6.10。以下是我遇到的问题以及解决方案:
2019-09-29 20:22:03
427
原创 Ubuntu编译linux2.6.x内核遇到的问题
编译linux2.6.x内核问题记录Ubuntu16.04 内核版本4.15.10 gcc版本4.4编译linux2.6.10内核遇到的问题编译Linux2.6.32内核遇到的问题
2019-09-29 14:00:43
795
原创 vim常用命令
vim常用指令汇总一般指令模式可用的按钮说明,光标移动、复制粘贴、搜索取代等一般指令模式切换到编辑模式的可用的按钮一般指令模式切换到指令列模式的可用按钮区块选择的按键多文件编辑的按键 多窗口情况下的按键挑字补全功能 vim的环境设定参数
2019-09-29 13:18:24
172
原创 git配置 常用命令
Git配置:设置用户名git config --global user.name "your username"设置用户邮箱git config --global user.email"your email"生成公钥,并将公钥加入对应网站的公钥库,私钥保留在文件夹中ssh -keygen -t rsa -C "your email"多个公钥配置方式Git常用命令
2019-09-29 11:13:26
166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人