go-ethereum代码阅读环境搭建

Ubuntu 16.04 64bit/Mac

安装GO

配置环境变量(GOROOT, GOPATH, GOBIN)

下载源码:

$ cd  $GOPATH;
$ mkdir src
$ cd src  #进入go项目目录,创建src目录, 并进入src目录
$ git clone https://github.com/ethereum/go-ethereum

使用vim或其他IDE打开即可

windows 10 64bit

安装GO

配置环境变量(GOROOT, GOPATH, GOBIN)

安装git工具,请参考网络上的教程安装git工具, go语言从github自动下载代码需要git工具的支持

打开命令行工具下载 go-ethereum的代码

go get github.com/ethereum/go-ethereum

命令执行成功之后,代码就会下载到下面这个目录,%GOPATH%\src\github.com\ethereum\go-ethereum
如果执行过程中出现

# github.com/ethereum/go-ethereum/crypto/secp256k1
exec: "gcc": executable file not found in %PATH%

则需要安装gcc工具,我们从下面地址下载并安装

http://tdm-gcc.tdragon.net/download

安装相应的IDE(Goland)

环境测试

打开go-ethereum/rlp/decode_test.go. 在编辑框右键选择运行, 如果运行成功,代表环境搭建完成

go ethereum 目录大概介绍

go-ethereum项目的组织结构基本上是按照功能模块划分的目录,下面简单介绍一下各个目录的结构,每个目录在GO语言里面又被成为一个Package

accounts        实现了一个高等级的以太坊账户管理
bmt             二进制的默克尔树的实现
build           主要是编译和构建的一些脚本和配置
cmd             命令行工具,又分了很多的命令行工具/abigen     Source code generator to convert Ethereum contract definitions into easy to use, compile-time
type-safe Go packages/bootnode   启动一个仅仅实现网络发现的节点/evm        以太坊虚拟机的开发工具, 用来提供一个可配置的,受隔离的代码调试环境/faucet     /geth       以太坊命令行客户端,最重要的一个工具/p2psim     提供了一个工具来模拟http的API/puppeth    创建一个新的以太坊网络的向导/rlpdump    提供了一个RLP数据的格式化输出/swarm      swarm网络的接入点/util       提供了一些公共的工具/wnode      这是一个简单的Whisper节点。 它可以用作独立的引导节点。此外,可以用于不同的测试和诊断目的。
common          提供了一些公共的工具类
compression     Package rle implements the run-length encoding used for Ethereum data.
consensus       提供了以太坊的一些共识算法,比如ethhash, clique(proof-of-authority)
console         console类
contracts
core            以太坊的核心数据结构和算法(虚拟机,状态,区块链,布隆过滤器)
crypto          加密和hash算法,
eth         实现了以太坊的协议
ethclient       提供了以太坊的RPC客户端
ethdb           eth的数据库(包括实际使用的leveldb和供测试使用的内存数据库)
ethstats        提供网络状态的报告
event           处理实时的事件
les         实现了以太坊的轻量级协议子集
light           实现为以太坊轻量级客户端提供按需检索的功能
log         提供对人机都友好的日志信息
metrics         提供磁盘计数器
miner           提供以太坊的区块创建和挖矿
mobile          移动端使用的一些warpper
node            以太坊的多种类型的节点
p2p         以太坊p2p网络协议
rlp         以太坊序列化处理
rpc         远程方法调用
swarm           swarm网络处理
tests           测试
trie            以太坊重要的数据结构Package trie implements Merkle Patricia Tries.
whisper         提供了whisper节点的协议。

go-ethereum环境搭建及目录结构介绍相关推荐

  1. React脚手架搭建及目录结构介绍

    react脚手架(create-react-app)搭建 npm install -g create-react-app create-react-app todolist (文件夹名) npm st ...

  2. 大数据之-Hadoop环境搭建_hadoop目录结构---大数据之hadoop工作笔记0019

    前面我们安装配置好了hadoop以后, 现在我们进入这个hadoop-2.7.2这个目录,看看他的目录结构 首先我们先进入bin这个目录,可以看到有个hadoop hadoop,管理hadoop集群的 ...

  3. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  4. Flutter 基础目录结构介绍、入口自定义widget、等相关组件使用

    提示:此文章为前端学习flutter过程,如有歧义期望各位大大的宝贵意见 学习Dart 基础知识 移步这里 安装flutter环境相关 移步这里 flutter基础组件使用相关 移步这里 文章目录 一 ...

  5. Kettle教程(二):Kettle目录结构介绍

    文章目录 前言 一.Kettle的Spoon/Pan/Kitchen/Carte 简介 1.Spoon 2.Pan 3.Kitchen 4.Carte 二.Kettle的目录结构介绍 三.总结 前言 ...

  6. 【Vue】—项目的目录结构介绍

    [Vue]-项目的目录结构介绍

  7. 帝国cms目录结构介绍

    帝国CMS目录结构介绍 / 系统根目录 ├d/            附件和数据存放目录 (data) │├file/       附件存放目录 │├js/         JS调用生成目录 │└tx ...

  8. ① uni-app 介绍、项目搭建、目录结构

    uni-app uni-app介绍 项目搭建 目录结构 App.vue 和 main.js manifest.json uni.scss pages.json 页面配置 tabbar的配置 condi ...

  9. Lichee(一)­­ lichee目录结构介绍和编译命令

    经过繁琐的环境搭建和漫长的代码下载的等待,我们终于可以开始我们的lichee之旅了,由于内容很繁杂,涉及面比较广,接下来就针对linux uboot modules等是如何被打包到固件这条主线来分析, ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task02. 删除排序数组中的重复项
  2. Flex通过Iframe使用activex控件,点击除Iframe的其他地方后,Iframe内容消失
  3. 视频协议 rtsp 默认弱口令 漏洞
  4. Android Stdio 插件谷歌兼容库Appcompat
  5. “两元故事”后,谭木匠需要新叙事
  6. 无法监控端口_zabbix 监控远程主机端口
  7. Jmeter基础(二)
  8. Unity3d中BlinnPhong光照模型注解
  9. php类3个属性是哪3种,PHP获取类私有属性的3种方法
  10. 蓝桥杯 ALGO-30算法训练 入学考试(01背包,动态规划)
  11. source ubuntu 退出_ubuntu中安装JDK和Tomcat(一)
  12. Java生成随机常用汉字或姓名
  13. Hadoop2.8.5详细教程(四)Linux集群搭建+免密登录
  14. PDF查看器Spire.PDFViewer 教程:如何在一个网页中查看多个PDF文件
  15. OneAPIConnect(一) 欧姆龙FINS协议实现源代码
  16. android studio keymap eclipse,android studio eclipse keymap theme 快捷键 主题风格设置
  17. 计算机的应用数据处理,计算机的应用领域:数据处理(或信息处理)
  18. 成为创新高手的18堂课
  19. 体验卓越品质 新贵Whql认证鼠标
  20. 计算机组成原理MVRD,计算机组成原理实验

热门文章

  1. eigrp配置实验_路由器 OSPF 动态路由配置
  2. DayDayUp:分析“普通人”如何逐步走上食物链顶端(看那些成名史案例,有感而发)
  3. 成功解决AttributeError: module 'string' has no attribute 'find'
  4. Py之moviepy:python库之moviepy的简介、安装、使用方法详细攻略
  5. shell对文本进行操作命令
  6. multiprocessing创建自定义进程类
  7. PHPsession工作机制以及销毁session
  8. Java基础——JVM内存结构
  9. json数组显示格式
  10. jQuery $.ajax传递数组的traditional参数传递必须true 对象的序列化