Tendermint 学习随笔(1)环境配置
创建于 2022-10-26
更新于 2023-10-27
科技
Tendermint
blockchain
golang

前言

Tendermint 学习随笔。

一、概述

Tendermint CoreByzantine 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 许可协议。转载请注明来自 我的个人天地