Tendermint 学习随笔(1)环境配置
创建于 2022-10-26
更新于 2023-10-27
科技
Tendermint
blockchain
golang
1831 字 · 约 7 分钟

前言

Tendermint 学习随笔。

一、概述

Tendermint Core 是 Byzantine Fault Tolerant(BFT) 中间件,它采用状态转换机(以任何编程语言编写),并在许多机器上安全地复制它。

Tendermint Core 是一个区块链应用平台;它为以任何编程语言编写的区块链应用程序提供了相当于 Web 服务器,数据库和支持库的功能。就像服务 Web 应用程序 的 Web 服务器 一样,Tendermint 服务于区块链应用程序。

(摘自Tendermint 去中心化的共识引擎)

二、环境配置

作为简单的代码学习之用,在 Windows 上进行开发自然更符合常规使用习惯,然而编译不支持 Windows 环境,所以使用 wsl remote作为开发方案。整体环境如下:

操作系统 Windows 10/11
虚拟机 Windows Subsystem for Linux(ubuntu)
开发环境 Visual Studio Code
golang go1.19.2 linux/amd64

2.1 虚拟机安装

安装过程参考官方文档 安装 WSL | Microsoft Learn。

代理配置可参考博客 电脑重装纪实。

命令行美化可参考博客 Windows 终端美化。

2.2 Visual Studio Code 安装

Windows 环境下推荐使用 winget 作为包管理工具进行安装,同样参考博客 电脑重装纪实。

安装完成后推荐使用以下插件:

  1. Blockman

    代码区块高亮

  2. Go

    golang 官方插件

  3. Project Manager

    项目管理插件

  4. WSL

    wsl 支持插件,可以在 wsl 中任意使用 code 命令打开 vscode。

2.3 golang 安装

在 Ubuntu22.02 中,通过 apt 方式安装的 golang 版本为 1.13,缺少部分语言特性,无法编译 master 分支的源码。
具体原因为开发分支中在 go.mod 文件中使用了 1.16 版本以后才提供的 retract 关键字。

  1. 获取发行版代码
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
## 下载源码 mkdir ~/download cd ~/download wget https://golang.google.cn/dl/go1.19.2.linux-amd64.tar.gz ### 若无法访问外网,可使用以下链接替代 wget https://gomirrors.org/dl/go/go1.19.2.linux-amd64.tar.gz tar -zxvf ./go1.19.2.linux-amd64.tar.gz ## 配置路径 mkdir ~/env mkdir ~/env/gobin mkdir ~/env/gopath mv ./go ~/env/
  1. 配置环境变量

修改 .bashrc 文件,添加:

bash
1
2
3
4
## 配置须为绝对路径,将 yourname 改为自己的用户名 GOROOT=/home/yourname/env/go GOBIN=/home/yourname/env/gobin export PATH=$PATH:$GOROOT/bin:$GOBIN

然后执行 source ~/.bashrc 激活修改内容。

  1. 修改 go 环境变量配置,命令行执行:
bash
1
2
3
4
## 配置须为绝对路径,将 yourname 改为自己的用户名 go env -w GOBIN=/home/yourname/env/gobin go env -w GOPATH=/home/yourname/env/gopath go env -w GOPROXY=https://goproxy.cn,direct

2.4 集成 vscode

在获取到 tendermint 源码后,直接在源码根目录执行 code . 即可调出 vscode,随后将目录添加进项目管理器。

bash
1
2
3
4
5
mkdir ~/workspace cd ~/workspace git clone https://github.com/tendermint/tendermint.git cd tendermint code .

2.5 指定版本编译

代码学习一般从一个稳定版本开始,目前的最新稳定版是 v0.34.24,故以此版本为基础进行编译和阅读。

bash
1
2
3
4
5
## 以2.4进入的路径为基础继续 cd ~/workspace/tendermint git checkout v0.34.24 make build make install

2.6 单机启动

bash
1
2
3
## 初始化配置,默认路径为 ~/.tendermint tendermint init tendermint node --proxy_app=kvstore

参考

手机扫码阅读
本文作者: 有次元袋的 tiger
本文链接: https://www.superheaoz.top/2022/10/1036/
版权声明: 本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的个人天地!