Windows环境下使用Goland编译go-etheruem

Windows环境下使用Goland编译go-etheruem

  • 摘要
    • Go语言的安装
      • 下载及配置
    • Goland安装
    • go-ethereum源码的下载
    • Goland打开go-ethereum源码
    • 源码的编译
    • 运行及测试

摘要

本文简要介绍了Go语言的安装、Goland软件的安装以及go-etheruem代码的下载编译及简要运行

Go语言的安装

下载及配置

首先打开Go的官网官网地址,但由于官网被墙需要大家自备梯子进行下载,或在中文镜像站Go语言中文网进行下载。
Windows环境下使用Goland编译go-etheruem_第1张图片
安装就没什么好说的了,当go安装好之后,输入

go version

结果如下图:
Windows环境下使用Goland编译go-etheruem_第2张图片
安装成功后,还需要配置go语言环境,设置环境变量,在path中添加go的安装路径,作者go的安装路径为D:\Go\bin 此外还需要添加Gopath环境变量,这个环境变量设置的目录用来存放源码,编译后的可执行文件以及包文件。这个目录下有3个子目录分别为src、bin、pkg,以下是作者的GOPATH路径
GOPATH
此外设置GOROOT,是GO的安装根目录
GOROOT
以上 $GOPATH 目录约定有三个子目录:

  • src 存放源代码(比如:.go .c .h .s等)
  • pkg 编译后生成的文件(比如:.a)
  • bin 编译后生成的可执行文件

Goland安装

在官网上下载Goland下载地址,安装上之后可以采用正版或依照教程进行破解,没什么好说的,作者在这里不进行展开,直接用edu邮箱进行授权。

go-ethereum源码的下载

需要的工具:git下载地址
在gopath目录src下新建github.com目录,接着在github.com目录下新建ethereum目录,最终作者的目录结构如下:
-my code go
–src
—github.com
-----ethereum
这个目录结构很重要很重要很重要,作者吃了好多亏才意识到的。
利用cmd或者PowerShell打开ethereum目录,在目录下执行命令:

git clone https://github.com/ethereum/go-ethereum.git

源码下载下来之后,将下载下来的目录改为go-ethereum

Goland打开go-ethereum源码

Goland将go-ethereum作为项目打开
Windows环境下使用Goland编译go-etheruem_第3张图片
进入cmd/geth文件夹 打开mian.go 文件,展开import,发现包都是红的(作者已经添加了依赖包,所以是绿的)
Windows环境下使用Goland编译go-etheruem_第4张图片
在goland命令行Terminal输入以下指令自动安装所有的依赖包(所需包在go.mod文件中都有提及)

go get -d -v ./...
  • -d标志只下载代码包,不执行安装命令
  • -v打印详细日志和调试日志。这里加上这个标志会把每个下载的包都打印出来
  • ./…这个表示路径,代表当前目录下所有的文件

Windows环境下使用Goland编译go-etheruem_第5张图片
执行之后,所有的包就会变绿了。

源码的编译

在打开main.go文件的情况下,点击右上角的Edit Configurations按钮编辑所需变量
Windows环境下使用Goland编译go-etheruem_第6张图片
这里主要设置5个参数

  • Run kind设置为:package
  • Package path设置为:github.com/ethereum/go-ethereum/cmd/geth
  • Output directory(可选,将生成的程序存储下来)我在这里设置为:F:\My code go\bin
  • Working directory设置为:F:\My code go\src\github.com\ethereum
  • Program arguements设置为:–datadir “F:/My code go/src/github.com/ethereum/datadir/geth-data0” init “F:/My code go/src/github.com/ethereum/datadir/genesis.json”

在Program arguements中出现了 genesis.json,这是创世区块的配置文件


{
  "config": {
    "chainId": 666,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {}
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3e",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x00002",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": { },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

运行及测试

点击run或者debug,运行成功会返回code0
运行结果
正常通过RPC进入控制台后,即可进行相关geth操作
Windows环境下使用Goland编译go-etheruem_第7张图片
Windows环境下使用Goland编译go-etheruem_第8张图片
参考文章:
https://blog.csdn.net/qq_21518355/article/details/88639441
https://blog.csdn.net/feng_xinlei/article/details/104200467
https://www.cnblogs.com/landv/p/10948227.html

你可能感兴趣的:(学习日常)