以太坊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
- 1
- 2
开发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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
因此,把下载之后的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的目录,此目录的内容即为刚刚下载的依赖内容。
总结
此篇博客只是作为一个简单的入门介绍,其中有很多坑需要自己去踩。本人踩过的坑也已经分享出来,有问题共同讨论。
原文地址: http://blog.csdn.net/wo541075754/article/details/54017009
以太坊go-ethereum项目源码本地环境搭建相关推荐
- 以太坊(9)go-ethereum + mist 开发环境搭建 --mac
本章目的: 通过go-ethereum源码搭建本地私有链.同mist连接进行用户转账: 准备工作: 1. 安装mist客户端: https://github.com/ethereum/mist/rel ...
- Nacos-UI前端源码本地环境搭建,打包
Nacos-UI 环境版本 环境部署 1. 权限不足报错 2. 项目环境构建 启动Console-Ui 脱离Console-UI Console-UI配置 Nacos Console模块与Consol ...
- 以太坊客户端Ethereum Wallet与Geth区别简介
以太坊客户端Ethereum Wallet与Geth区别简介 最近有不少朋友在搭建交易平台,在咨询和技术交流的过程中发现很多朋友不太清楚Ethereum Wallet和Geth区别.甚至有朋友使用Ge ...
- 以太坊应用网络项目LUKSO通过可逆ICO筹集1800万美元
2月18日,开发人员.以太坊应用网络项目LUKSO创始人Fabian Vogelsteller发推称,在经历1.5年的律师.监管机构.编码.破解数学和几乎放弃之后,重启可逆ICO(Reversible ...
- 以太坊互助保险项目Nexus Mutual新增支持Badger DAO
1月6日消息,以太坊互助保险项目Nexus Mutual新增支持中心化自治组织Badger DAO,目前,用户可使用ETH或DAI在Nexus Mutual中购买关于Badger DAO的保单. 文章 ...
- 项目调研丨以太坊再质押项目EigenLayer白皮书四大看点(内附完整版中文白皮书)
北京时间2月21日下午,被众多一线投研机构视为2023年以太坊最重要的创新,有可能开启以太坊新叙事方向的项目Eigenlayer终于披露了其第一版白皮书. EigenLayer是以太坊的再质押集,允许 ...
- 【区块链 | ENS】以太坊(Ethereum)中的ENS已支持DNS,怎么使用DNS解析地址?
上篇文章:[区块链 | Ens]以太坊(Ethereum)中的ENS是什么?如何购买ENS? 我们可以了解到什么是ENS,ENS该怎么购买,但它只支持.eth对应后缀域名,并不支持.com .cn . ...
- spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]
spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ] 一. Gradle下载与安装 软件名称 版本 下载地址 jdk jdk 11.0.5 下载链接 提取码 ...
- spring5.3.x源码阅读环境搭建
spring5.3.x源码阅读环境搭建-gradle构建编译 文章目录 spring5.3.x源码阅读环境搭建-gradle构建编译 一.依赖工具 二.下载源码 三.开始构建 四.编译源码 五.源码测 ...
最新文章
- html5添加到安卓桌面图标,Android向桌面添加快捷方式,使其指向特定的网页
- 愿将一生献宏谋——送别于敏侧记
- 本杰明 富兰克林 道德13准则
- python 解方程 sympy_用Python和Sympy求解方程并得到数值答案
- 多线程的那点儿事(之大结局)
- tp3.2设置php文件编码,thinkphp3.2版本url访问:总是走默认文件默认方法
- OpenCV总结:目标跟踪之CamShift算法
- Android之apk优化
- 04735数据库系统原理(知识点整合)
- 推荐 10 款适合 C/C++ 开发人员的 IDE
- 【软件测试】使用C++ Test 进行静态测试
- ov5640_rgmii_udp
- 德国:认真是一种可怕的力量
- html唱片机效果,黑胶唱片风格音频播放器jQuery插件
- jpeg格式说明与解码学习
- 腾讯企业邮箱 POP3/SMTP 设置
- 巨富笔记:上者劳人,中者劳智,下者劳力
- 云服务器有什么优势和特点?
- SAS——编程——数学
- Java培训四个月能学会吗?
热门文章
- C++用法的学习心得
- 换掉flash,flex,用FlashDevelop
- Google Maps API编程资源大全
- 1SGD、Momention原理
- 两数相加python代码实现(leetcode2)
- 语音幅度统计-matlab-有问题
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20170412
- 云炬Android开发笔记 7登陆注册功能开发
- pyqt5中QWidget的show 一闪而过的原因及解决办法实例
- Go进阶(4): string接口函数+时间接口函数+内置函数+错误处理