如果要深入了解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的目录,此目录的内容即为刚刚下载的依赖内容。

总结

此篇博客只是作为一个简单的入门介绍,其中有很多坑需要自己去踩。本人踩过的坑也已经分享出来,有问题共同讨论。

go-ethereum的更多相关文章

  1. 02-windows 安装以太坊 ethereum 客户端 (win7-64)-大叔思维

    以太坊(Ethereum)是一个运行智能合约的去中心化平台(Platform for Smart Contract),平台上的应用按程序设定运行,不存在停机.审查.欺诈.第三方人为干预的可能.以太坊平 ...

  2. 关于centos版本安装ethereum钱包

    安装go wget https://studygolang.com/dl/golang/go1.9.linux-amd64.tar.gz --no-check-certificatetar -zxvf ...

  3. The Ethereum devp2p and discv4 protocol Part II

    描述 本文章主上下两篇 上篇:讲述以太坊devp2p与disc4节点发现协议 下篇:实践篇,实现如何获取以太坊所有节点信息(ip,port,nodeId,client) 正文 本片为下篇:实践篇,主要 ...

  4. The Ethereum devp2p and discv4 protocol Part I

    描述 本文章分上下两篇 上篇:讲述以太坊devp2p与disc4节点发现协议 下篇:实践篇,实现如何获取以太坊所有节点信息(ip,port,nodeId,client,type,os) 正文 devp ...

  5. Ethereum(1)—— 基本介绍

    1 环境安装 安装Ethereum 协议的Go语言的最新实现. git clone https://github.com/ethereum/go-ethereum.git make all cd bu ...

  6. go ethereum源码分析 PartIV Transaction相关

    核心数据结构: core.types.transaction.go type Transaction struct { data txdata // caches hash atomic.Value ...

  7. [转]How to Send Ethereum with Web3.js and Node

    原文:https://davekiss.com/ethereum-web3-node-tutorial/   Ethereum took the web and cryptocurrency worl ...

  8. 【转】干货 | 【虚拟货币钱包】从 BIP32、BIP39、BIP44 到 Ethereum HD Wallet

    虚拟货币钱包 钱包顾名思义是存放$$$.但在虚拟货币世界有点不一样,我的帐户资讯(像是我有多少钱)是储存在区块链上,实际存在钱包中的是我的帐户对应的 key.有了这把 key 我就可以在虚拟货币世界证 ...

  9. 区块链使用Java,以太坊 Ethereum, web3j, Spring Boot

    Blockchain is one of the buzzwords in IT world during some last months. This term is related to cryp ...

  10. ethereum/EIPs-1271 smart contract

    https://github.com/PhABC/EIPs/blob/is-valid-signature/EIPS/eip-1271.md Standard Signature Validation ...

随机推荐

  1. IAR EWARM 关闭纯汇编函数的警告的方法

    /关闭警告 #pragma diag_suppress=Pe940 uint8_t GetMyData(void) { asm(“MOV R0, #0x550F”); } //恢复警告 #pragma ...

  2. golang 引用相对路径package

    My $GOPATH is "/Users/peter/goworkspace" Golang 版本是: go version go1.6 darwin/amd64 在这个work ...

  3. Android笔记之 网络http通信

    0.在认识HTTP前先认识URL 在我们认识HTTP之前,有必要先弄清楚URL的组成,比如: http://www.******.com/china/index.htm 它的含义例如以下: 1. ht ...

  4. CentOS内核定制

    版本号:1.0.1 作者:石硕 更新:2014-05-09 15:04:53 ============================================================ ...

  5. 使用Oracle DBLink进行数据库之间对象的訪问操作

    Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中能够操作还有一个数据库中的对象,比如我们新建了一个数据database1.我们须要操 ...

  6. Windows Phone本地数据库(SQLCE):8、DataContext(翻译)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的第八篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知 ...

  7. mormot支持https

    mormot支持https 将ssl证书导入电脑系统,以Windows 10为例: 运行 mmc 证书导入成功后,双击证书,查看证书指纹: 第二项工作:将证书与https绑定:以管理员身份启动cmd, ...

  8. [官方摘要]Setup And Configuration memcached with Tomcat

    原文地址:https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration SetupAndConfigur ...

  9. Netty 包头

    LengthFieldBasedFrameDecoder 常用的处理大数据分包传输问题的解决类,先对构造方法LengthFieldBasedFrameDecoder中的参数做以下解释说明 maxFra ...

  10. ASP.NET MVC:三个被隐藏的扩展性“钻石”(转载)

    原文地址:http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx/. ASP.N ...