55

Ubuntu18.04系统下构建初(TrueChain)初链基础环境

 5 years ago
source link: https://studygolang.com/articles/15481?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文将基于前文 Windows操作系统用VMware 虚拟机安装Ubuntu系统 的基础上,详细描述包括GO语言配置,VSCODE的IDE安装配置,以及初币环境的环境搭建,

1.GO 语言的安装与配置

1.1.所需工具

1.Git

2.Go => version 1.7 或更高版本

3.编译工具

1.2. Git 的安装

首先,检查系统是否以经安装了git

$ git --version
NZ3aMvy.png!web

git version1

由于对Git的版本要求不高,所以直接使用包管理工具安装

$ sudo apt-get install git

最后,安装完成后,检查是否安装成功

$ git --version
UNvueaR.png!web

git version2

1.3.GO安装

1.首先,同样是检查是否已经安装了go

$ go version

2.包管理工具安装

$ sudo apt-get install golang-go

3.设置环境变量:

  1. 先创建GOPATH文件夹
$ cd ~
$ mkdir go
$ cd go
$ mkdir bin pkg src
  1. 在点击打开Files 在弹出的Files中打开 Home文件夹,然后选中Show Hidden Files 查看隐藏的文件,找到 .profile文件
eiIri2J.png!web

查找“.profile”文件

  1. 在$HOME/.profile 文件的最后添加下边的命令
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
rINJN3M.png!web

配置.profile文件

  1. 然后运行以下命令使之生效

$ source $HOME/.profile

再使用go version即可查看是否安装成功。

$ go version
zQVree6.png!web

go version

  1. 测试是否安装成功

    a) 执行命令

    $ cd go/src
    VJzu6zA.png!web

    go安装检查1

    b) 创建hello文件夹,执行命令

    $ mkdir Hello

    c) 创建Hello.go 文件夹,执行命令

    $ touch Hello.go

    d)将如下代码写入$HOME/go/src/Hello/Hello.go

package main    
import "fmt"
func main() {
            fmt.Printf("hello, world\n")
}
6Nv2maf.png!web

Hello.go

e)然后编译运行:

$ cd $HOME/go/src/Hello
    $ go build
    $ ./Hello // 输出:hello,world
VZJf6bz.png!web

go安装检查2

1.4 安装编译环境

执行命令

$ sudo apt-get install build-essential

2.VSCODE的安装与配置

2.1.准备工作

先安装一些工具

$ sudo apt-get install cmake
$ sudo apt-get install python-dev python3-dev

2.2.VSCode 安装

1.下载安装包,下载地址 https://code.visualstudio.com/ 在Linux下打开该页面会直接显示Linux安装包的下载页面。如下图:

iQb2Env.png!web

VSCode下载

因为是Ubuntu系统,所以下载.deb文件,下载的文件名为“code_1.26.1-1534444688_amd64.deb”(不同版本可能会有不同)。下边开始安装:6.1-1534444688_amd64.deb”(不同版本可能会有不同)。下边开始安装:

$ cd path/to/deb_file // 进入deb文件所在目录
$ sudo dpkg -i code_1.26.1-1534444688_amd64.deb // 开始安装

2.安装成功如下图:

ZzyyMve.png!web

VSCode安装成功

3.按 “Win” 键,在所有程序里边搜索 “vscode” 就可以找到他了

muiy2au.png!web

查找VSCode

2.3 VSCODE 扩展安装包安装

1)在扩展栏里搜索“chinese”,第一个就是中文包,需要的可以安装。安装完成后重启软件即可。

feqYFnf.png!web

VSCode中文扩展包安装

2)搜“Go”,安装Go的扩展。

euiaEbn.png!web

VSCode的GO扩展包安装

这样VSCode的安装就完成了。

3.初币代码下载

基于笔者在最初下载安装VSCODE查看代码,遇到过的问题,发现多数文件都是存放在 github.com文件夹中的情况,

F3m2amq.png!web

初币代码包结构

为少走弯路在下载代码时需要也要相应下载到对应的github.com的目录下。

1.创建相关路径的文件夹,执行命令

$ cd $GOPATH/src/
$ mkdir github.com
uyYZZ3j.png!web

创建下载初币代码的文件夹

2.进入相应文件夹路径,下载代码

$ cd $GOPATH/src/github.com
$ git clone https://github.com/truechain/truechain-engineering-code.git

3.使用VSCode打开truechain-engineering-code所在文件夹。

nq6nYf7.png!web

打开文件夹

Zfm26jR.png!web

查找初币代码

fIn2meA.png!web

成功加载初币代码

4.VSCODE的依赖包安装与配置

VSCODE中需要安装GO的依赖包,因这些依赖包不是初币项目的实际项目需要的依赖包。所以不安装也不会影响运行源码。这些包应该是装Go扩展的时候统一装的,并不是项目需要。

因为国内的网络屏蔽,在GO官网的golang.org无法连接上,安装依赖包不能成功,如下图:

为解决此问题,可到github下载go tools 和 golint 的源码到本地目录,用go install 命令安装即可

Aj22mqv.png!web

GO依赖包安装

1、在%GOPATH%\src\ 目录下,建立golang.org 文件夹,并再新建x文件夹。 目录为 "%GOPATH\src\golang.org\x"

jeuuU3m.png!web

创建文件夹

2、完成目录切换后,开始下载插件包:git clone https://github.com/golang/tools.git tools

3、执行完以后,会多一个tools文件夹。

3qauA3a.png!web

下载插件包

4、打开VSCode终端,切换到 终端,进入“%GOPATH”目录,执行

go install github.com/ramya-rao-a/go-outline
    go install github.com/acroca/go-symbols
    go install golang.org/x/tools/cmd/guru
    go install golang.org/x/tools/cmd/gorename
    go install github.com/josharian/impl
    go install github.com/rogpeppe/godef
    go install github.com/sqs/goreturns
    go install github.com/golang/lint/golint
    go install github.com/cweill/gotests/gotests
    go install github.com/ramya-rao-a/go-outline
    go install github.com/acroca/go-symbols
    go install golang.org/x/tools/cmd/guru
    go install golang.org/x/tools/cmd/gorename
    go install github.com/josharian/impl
    go install github.com/rogpeppe/godef
    go install github.com/sqs/goreturns
    go install github.com/cweill/gotests/gotests

5.编译TrueChain。

1.在VSCODE中打开“调试->打开配置”就打开了“lanuch.json”文件 修改参数:

{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${fileDirname}",
            "env": {},
            "args": ["init", "./genesis.json"], // 主要修改这里
            "showLog": false
        }
    ]
}

2.按照README里的,写一个genesis.json文件,然后第二个参数把路径指向这个文件也可以:

{
  "config": {
    "chainId": 10,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "alloc":{
    "0xbd54a6c8298a70e9636d0555a77ffa412abdd71a" : { "balance" : 90000000000000000000000},
    "0x3c2e0a65a023465090aaedaa6ed2975aec9ef7f9" : { "balance" : 10000000000000000000000}
  },
  "committee":[
    {
      "address": "0x76ea2f3a002431fede1141b660dbb75c26ba6d97",
      "publickey": "0x04044308742b61976de7344edb8662d6d10be1c477dd46e8e4c433c1288442a79183480894107299ff7b0706490f1fb9c9b7c9e62ae62d57bd84a1e469460d8ac1"
    }
  ]
,
  "coinbase"  : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x100",
  "extraData"  : "",
  "gasLimit"  : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

3.然后,在“cmd/getrue/main.go”上F5就可以初始化了。初始化成功如下图:

ANJN736.png!web

初始化

4.继续修改“lanuch.json”的“args”参数为

"args": ["--nodiscover", "--singlenode", "--mine", "--etherbase", "0x8a45d70f096d3581866ed27a5017a4eeec0db2a1", "--bftkeyhex", "c1581e25937d9ab91421a3e1a2667c85b0397c75a195e643109938e987acecfc", "--bftip", "192.168.68.43", "--bftport", "10080"],

5.再F5就可以挖矿了。运行成功如下图,有时候可能不太一样:

zimmMbA.png!web

挖矿

常见问题

报错:

Fatal: Failed to write fast genesis block: database already contains an incompatible genesis block (have 1acaa8c23f22e0ae, new bc72c21faf0bc5b9)
J7J3ue2.png!web

常见问题

你肯定是在配置“lanuch.json”的“args”参数之前,按下了F5,执行以下命令即可:

$ rm -rf ~/.truechain/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK