如果要深入了解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项目源码本地环境搭建相关推荐

  1. 以太坊(9)go-ethereum + mist 开发环境搭建 --mac

    本章目的: 通过go-ethereum源码搭建本地私有链.同mist连接进行用户转账: 准备工作: 1. 安装mist客户端: https://github.com/ethereum/mist/rel ...

  2. Nacos-UI前端源码本地环境搭建,打包

    Nacos-UI 环境版本 环境部署 1. 权限不足报错 2. 项目环境构建 启动Console-Ui 脱离Console-UI Console-UI配置 Nacos Console模块与Consol ...

  3. 以太坊客户端Ethereum Wallet与Geth区别简介

    以太坊客户端Ethereum Wallet与Geth区别简介 最近有不少朋友在搭建交易平台,在咨询和技术交流的过程中发现很多朋友不太清楚Ethereum Wallet和Geth区别.甚至有朋友使用Ge ...

  4. 以太坊应用网络项目LUKSO通过可逆ICO筹集1800万美元

    2月18日,开发人员.以太坊应用网络项目LUKSO创始人Fabian Vogelsteller发推称,在经历1.5年的律师.监管机构.编码.破解数学和几乎放弃之后,重启可逆ICO(Reversible ...

  5. 以太坊互助保险项目Nexus Mutual新增支持Badger DAO

    1月6日消息,以太坊互助保险项目Nexus Mutual新增支持中心化自治组织Badger DAO,目前,用户可使用ETH或DAI在Nexus Mutual中购买关于Badger DAO的保单. 文章 ...

  6. 项目调研丨以太坊再质押项目EigenLayer白皮书四大看点(内附完整版中文白皮书)

    北京时间2月21日下午,被众多一线投研机构视为2023年以太坊最重要的创新,有可能开启以太坊新叙事方向的项目Eigenlayer终于披露了其第一版白皮书. EigenLayer是以太坊的再质押集,允许 ...

  7. 【区块链 | ENS】以太坊(Ethereum)中的ENS已支持DNS,怎么使用DNS解析地址?

    上篇文章:[区块链 | Ens]以太坊(Ethereum)中的ENS是什么?如何购买ENS? 我们可以了解到什么是ENS,ENS该怎么购买,但它只支持.eth对应后缀域名,并不支持.com .cn . ...

  8. spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]

    spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ] 一. Gradle下载与安装 软件名称 版本 下载地址 jdk jdk 11.0.5 下载链接 提取码 ...

  9. spring5.3.x源码阅读环境搭建

    spring5.3.x源码阅读环境搭建-gradle构建编译 文章目录 spring5.3.x源码阅读环境搭建-gradle构建编译 一.依赖工具 二.下载源码 三.开始构建 四.编译源码 五.源码测 ...

最新文章

  1. html5添加到安卓桌面图标,Android向桌面添加快捷方式,使其指向特定的网页
  2. 愿将一生献宏谋——送别于敏侧记
  3. 本杰明 富兰克林 道德13准则
  4. python 解方程 sympy_用Python和Sympy求解方程并得到数值答案
  5. 多线程的那点儿事(之大结局)
  6. tp3.2设置php文件编码,thinkphp3.2版本url访问:总是走默认文件默认方法
  7. OpenCV总结:目标跟踪之CamShift算法
  8. Android之apk优化
  9. 04735数据库系统原理(知识点整合)
  10. 推荐 10 款适合 C/C++ 开发人员的 IDE
  11. 【软件测试】使用C++ Test 进行静态测试
  12. ov5640_rgmii_udp
  13. 德国:认真是一种可怕的力量
  14. html唱片机效果,黑胶唱片风格音频播放器jQuery插件
  15. jpeg格式说明与解码学习
  16. 腾讯企业邮箱 POP3/SMTP 设置
  17. 巨富笔记:上者劳人,中者劳智,下者劳力
  18. 云服务器有什么优势和特点?
  19. SAS——编程——数学
  20. Java培训四个月能学会吗?

热门文章

  1. C++用法的学习心得
  2. 换掉flash,flex,用FlashDevelop
  3. Google Maps API编程资源大全
  4. 1SGD、Momention原理
  5. 两数相加python代码实现(leetcode2)
  6. 语音幅度统计-matlab-有问题
  7. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170412
  8. 云炬Android开发笔记 7登陆注册功能开发
  9. pyqt5中QWidget的show 一闪而过的原因及解决办法实例
  10. Go进阶(4): string接口函数+时间接口函数+内置函数+错误处理