[ethereum源码分析](1) dubug环境搭建
前言
因为最近云小哥哥换了一份工作,新公司比较忙,所以一直没有更新新的博客。云小哥哥新的公司是做区块链的,最近在学习区块链相关的东西(也算是乘坐上了区块链这艘大船)。本博客是记录我搭建ethereum的debug环境的步骤。
系统环境及工具
- 操作系统:mac 10.13.4
- ide:go-land
- 版本控制:git
- go-lang:go version go1.10.3 darwin/amd64
通过 brew 就可以安装上述提到的所有工具,其他操作系统请自行安装上述工具。
搭建ethereum的debug环境
1.查看go的环境,找到 GOPATH
command:
go env
output:
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/qingyun.yu/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/qingyun.yu/go"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.10.3/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.10.3/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/cg/xnlvmg894zs64pmk0cvzxxg1jzppgf/T/go-build103516383=/tmp/go-build -gno-record-gcc-switches -fno-common"
通过上面的输出,我们就可以找到 GOPATH 的配置为 /Users/qingyun.yu/go
2.进入 /Users/qingyun.yu/go文件夹
command:
cd /Users/qingyun.yu/go
3.在文件夹上创建以下目录
eth/
src/
github.com/
ethereum/
golang.org/
bin/
pkg/
command:
mkdir eth eth/bin eth/src eth/pkg eth/src/github.com eth/src/golang.org eth/src/github.com/ethereum
4.进入 eth/src/github.com/ethereum 文件夹
cd eth/src/github.com/ethereum
5.通过git下载ethereum,地址是 https://github.com/ethereum/go-ethereum.git
command:
git clone https://github.com/ethereum/go-ethereum.git
output:
thereum/go-ethereum.git
Cloning into 'go-ethereum'...
remote: Counting objects: 71480, done.
remote: Total 71480 (delta 0), reused 0 (delta 0), pack-reused 71480
Receiving objects: 100% (71480/71480), 97.76 MiB | 1.81 MiB/s, done.
Resolving deltas: 100% (47359/47359), done.
出现以上输出表示下载成功了。
6.打开ide go-land
键盘按住:command+空格
搜索go-land,打开
7.载入eth文件夹
点击 Open Project ,找到 /Users/qingyun.yu/go/eth 文件夹,点击确定即可
8.创建 genesis.json 文件(初始化需要的一些参数)
genesis.json:
{
"config": {
"chainId": 666,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x40000",
"extraData" : "",
"gasLimit" : "0xffffffff",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc": { }
}
9.进入 Edit Configurations
点击 Edit Configurations ,出现以下界面
10.创建两个 Go Build
点击+号,然后点击 Go Build ,出现下面的界面
配置下面的参数:
第一个go build(初始化一些信息):
其中 dev/data/02 是存储数据的地方, private-geth/genesis.json 是初始化配置文件的地址,
第二个go build(运行以太坊客户端,并且打开控制台):
其中 666 为你要加入链的编号,以太坊默认的链是1号, console 表示进入控制台。
小结
通过以上的配置,你就可以使用ide进行debug调试了。
[ethereum源码分析](1) dubug环境搭建的更多相关文章
- Dubbo 源码分析系列之一环境搭建
环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外 ...
- mybatis源码分析之01环境搭建
直接使用maven搭建一个mybatis的运行环境 1. pom.xml <?xml version="1.0" encoding="UTF-8"?> ...
- JDK1.8源码分析03之idea搭建源码阅读环境
序言:上一节说了阅读源码的顺序,有了一个大体的方向,咱们就知道该如何下手.接下来,就要搭建一个方便阅读源码及debug的环境.有助于跟踪源码的调用情况. 目前新开发的项目, 大多数都是基于JDK1.8 ...
- DolphinScheduler1.3.2源码分析(二)搭建源码环境以及启动项目
前置依赖组件安装 找一台服务器,或者本地的虚拟机,然后在服务器上安装好jdk,zookeeper,mysql. 1.源码调试环境搭建 源码环境搭建可以参考DolphinScheduler官方网站的开发 ...
- [ethereum源码分析](3) ethereum初始化指令
前言 在上一章介绍了关于区块链的一些基础知识,这一章会分析指令 geth --datadir dev/data/02 init private-geth/genesis.json 的源码,若你的eth ...
- 《k8s-1.13版本源码分析》-测试环境搭建(k8s-1.13版本单节点环境搭建)
本文原始地址(gitbook格式):https://farmer-hutao.github.io/k8s-source-code-analysis/prepare/debug-environment. ...
- openwrt(一):openwrt源码下载及编译环境搭建
声明:从网上各位大神的博客学习,整理后记录,非原创. 注:请用非root用户来下载源码 导航: 1. openwrt编译环境搭建 2. openwrt源码下载 3. feeds更新 1. openwr ...
- spring源码学习之路---环境搭建(一)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近已经开始了spring源 ...
- bigdata_spark_源码修改_本地环境搭建_eclise
Eclipse 下开发调试环境的配置该小节中使用的各项工具分别为:mac (Windows 7)+Eclipse Java EE 4.4.2+Scala 2.10.4+Sbt 0.13.8+Maven ...
随机推荐
- Github 上 Star 最多的个人 Spring Boot 开源学习项目(三)
网上连载了 Spring Boot 系列文章 这个开源项目就是 spring-boot-examples ,这是一个专注帮助初学者学习 Spring Boot 的开源项目,里面分享了各种场景下 Spr ...
- SpringBoot 单元测试junit test
pom引用 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http: ...
- 使用Oracle12c 以上的PDB创建数据库用户 密码过期的简单处理
1. 先通过监听查看PDB的名字 Windows 打开命令行: 输入命令 lsnrctl status 一般在如图示的最下面 2. 也可以通过GS的全局配置文件来查看 数据库连接SID信息. C:\P ...
- P1056排坐椅
这是2008普及组真题,是一个提高—的模拟. 仔细读完题便有了思路:累放在i行能隔开wi个,比较排序wi,输出即可.所以在这里遇到了结构体排序的问题与手写cmp的问题.对于两个语法知识掌握得都不好,所 ...
- Scrapy 教程(七)-架构与中间件
Scrapy 使用 Twisted 这个异步框架来处理网络通信,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求. Scrapy 架构 其实之前的教程都有涉及,这里再做个系统介绍 Engin ...
- nginx运行出现 file not found 错误处理原因
在阿里云装nginx+php+mysql nginx运行出现 file not found 错误处理原因 1,第一情况 location ~ \.php$ { # root html; fastcgi ...
- 编写的Java第一个程序
没什么好介绍的,嘻嘻 package head; public class ee { public static void main(String[] args) { System.out.print ...
- easyUI相关文件的引入
引入以下内容: <head> <meta http-equiv="Content-Type" content="text/html; charset=u ...
- 系统环境: CentOS 64位+千万不要在生产环境中升级glibc!
# cd /lib64# LD_PRELOAD=/lib64/libc-2.15.so ln -sf /lib64/libc-2.15.so libc.so.6 libc-2.15.so 这个文件名根 ...
- VB.NET Event RaiseEvent用处
一.代码 Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventA ...