以太坊go-ethereum项目源码本地环境搭建
如果要深入了解go-ethereum项目的实现与机制,看源代码是必不可少的。今天这篇博客就简单介绍一下如何在本地搭建项目的开发环境。
GO语言环境搭建
以win8为例,访问地址https://golang.org/dl/,下载windows版本。直接执行安装,默认会安装到C:\Go目录下,将 c:\Go\bin 目录添加到 PATH 环境变量中。
执行命令,验证安装配置成功:
C:\Users\Administrator>go version
go version go1.7.4 windows/amd64
开发ide
本篇博客以intellij idea 15为例。
首先安装go语言插件(地址https://github.com/go-lang-plugin-org)。进入idea的settings,选择plugins, Browse repositories,搜索go lang。具体操作如下图:
点击install,安装Go Lang Plugin。上图仅为参考,因为截图中的idea已经安装过插件了。如果无法直接下载,可在Manager repositories中配置一下地址:https://plugins.jetbrains.com/plugins/alpha/5047
然后再尝试下载。如果因网路原因无法下载,可考虑在https://plugins.jetbrains.com搜索go lang 找到插件(注意版本与插件中的一致)直接下载文件到本地,然后导入idea中,安装完成插件重启即可。
创建go项目
安装完成插件,在idea中创建项目,即会显示Go语言的项目。选择项目,配置SDK到Go安装的根目录。
导入项目
下载项目
通过git客户端,下载github上的go-ethereum项目(https://github.com/ethereum/go-ethereum.git)。
目录结构
此时,如果直接将项目导入到idea中,你会发现有很多错误。这是因为go-ethereum对项目的目录有一定的要求。
基础的目录结构需要按照以下路径:
-bin(可省略)
-pkg(可省略)
-src
-github.com
-ethereum
-go-ethereum
-project2(其他项目)
-golang.org
因此,把下载之后的go-ethereum按照目录要求,放到指定的层级位置。然后再导入项目。
导入项目和配置
导入项目后,打开一个go文件时idea会提示配置SDK和Configure Go Libraries。SDK配置直接找到go语言的根路径或之前的配置即可。
Configure Go Libraries,点击此提示,进入配置选项,在下面的Project Libraries中添加当前项目根路径(此处需注意是上面目录结构src的上层目录),点击OK,即完成了GOPATH的配置。项目的external libraries中会显示GOPATH的相关文件。
引入依赖
当完成以上步骤之后,比如打开interface.go 你会发现import中"golang.org/x/net/context"为红色。
使用快捷键alt+enter,会提示执行go get命令。点击回车之后,idea会帮忙把相关的依赖添加到项目中。
此时,再回头看上面的目录结构中与github.com同级会出现一个golang.org的目录,此目录的内容即为刚刚下载的依赖内容。
总结
此篇博客只是作为一个简单的入门介绍,其中有很多坑需要自己去踩。本人踩过的坑也已经分享出来,有问题共同讨论。
以太坊go-ethereum项目源码本地环境搭建的更多相关文章
- elasticsearch 源码本地环境搭建
elasticsearch6.0.0 源码本地环境搭建步骤如下: 1.资源准备 ElasicSearch版本:6.0.0: https://github.com/elastic/elasticsear ...
- [中文] 以太坊(Ethereum )白皮书
以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译|巨蟹 .少平 译者注|中文读者可以到以太坊爱好者社区(www.ethfans.org)获取最新的以太坊信息. 当中本聪在2009年 ...
- 以太坊go-ethereum签名部分源码解析
以太坊go-ethereum签名部分源码解析 golang标准库里的crypto/ecdsa椭圆曲线加密算法所提供的函数有: ecdsa.PublicKey结构体通过持有一个elliptic,Curv ...
- 以太坊客户端Ethereum Wallet与Geth区别简介
以太坊客户端Ethereum Wallet与Geth区别简介 最近有不少朋友在搭建交易平台,在咨询和技术交流的过程中发现很多朋友不太清楚Ethereum Wallet和Geth区别.甚至有朋友使用Ge ...
- Spark源码分析环境搭建
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3868718.html 本文主要分享一下如何构建Spark源码分析环境.以前主要使用eclipse来阅读源 ...
- 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...
- 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建
基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...
- Hadoop源码阅读环境搭建(IDEA)
拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...
- 从零构建以太坊(Ethereum)智能合约到项目实战——第22章 玩转truffle framework 、Web3.js 框架
P84 .1-玩转truffle framework.Web3.js 框架 内容介绍 truffle官方网站:https://truffleframework.com/ P85 .2-truffle ...
随机推荐
- 【Cogs2187】帕秋莉的超级多项式(多项式运算)
[Cogs2187]帕秋莉的超级多项式(多项式运算) 题面 Cogs 题解 多项式运算模板题 只提供代码了.. #include<iostream> #include<cstdio& ...
- 【BZOJ4828】【HNOI2017】大佬(动态规划)
[BZOJ4828][HNOI2017]大佬(动态规划) 题面 BZOJ 洛谷 LOJ 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场 就能让周围 ...
- ms17-010漏洞扫描工具
说明: 1.先利用masscan进行445端口探测 2.利用巡风的脚本对开放445端口的IP进行ms17-010漏洞扫描. 3.使用方法:Python2运行后,按提示输入单个IP或者IP网段. # c ...
- [NOI2008]糖果雨
bzoj1062[Noi2008]糖果雨 首先给出的颜色没有用. 估计要用数据结构.而线段难以维护. 考虑把线段变成点 T是单增的. 所以询问的时候,存在的线段都可能贡献答案. 那些线段的位置如果可以 ...
- vector 和数组 之间的转化
1.数组转vector float arrHeight[] = { 1.68,1.72,1.83,2.05,2.35,1.78,2.1,1.96 }; vector<float> vec ...
- opencv函数制作的时钟模型
http://www.cnblogs.com/sytu/p/4192652.html 在秒针模型的基础上添加了分针和时针,并且添加了暂停控件和设置时间的功能. #include"cv.h&q ...
- 111.保留的编号(ing)
用于做整理的编号,000,111,222,……999
- .Net平台下实例类型无法转换成接口类型?
首先这种情况出现在应用程序启动前的方法里面. 本想通过发射来实现一些功能.谁知道被这个坑了. 碰到这种问题.已经相当无语了.同时也不知道该如何解决.望有能之士帮忙解答 using System; us ...
- 解决问题Can’t connect to local MySQL server through socket
不幸遇到MySQL出现ERROR 2002 (HY000): Can’t connect to local mysql server through socket ‘/tmp/mysql.sock’错 ...
- Mybatis多参数及实体对象传递
在使用Mybatis的时候,经常会有各种各样的参数传递,不同类型,不同个数的参数. 先上个例子: public List<LifetouchRelease> findOfficeL ...