拜占庭容错算法中间件Tendermint的安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zg_hover/article/details/82226235

概述

Tendermint是Tendermint是拜占庭容错(BFT)中间件,通过它可以实现分布式网络的共识机制。在现有的分布式系统中:zookeeper使用的是Paxos算法,kafka使用的算法相对简单,而以太坊使用的工作量证明或股权证明共识算法,fabric目前还没有加入BFT共识机制,而是使用kafka等中间件来实现了共识。
Tendermint实现了BFT算法,可以把它引入到自己的分布式系统中,通过该算法可以让分布式系统的容错性得到很大的提升。对于该算法的具体讲解,以后会有文章专门进行说明。

下载安装包

mkdir -p $GOPATH/src/github.com/tendermint
cd $GOPATH/src/github.com/tendermint
git clone https://github.com/tendermint/tendermint.git
cd tendermint

安装

安装依赖包

make get_tools
make get_vendor_deps

编译

make build

此时编译好的二进制文件在,./build/目录下,我们可以make install 也可以不用,直接在该目录下执行。

错误的解决

错误1

  • 错误信息
make: gometalinter.v2: No such file or directory
  • 解决办法
go get -v -u gopkg.in/alecthomas/gometalinter.v2
cd $GOPATH/gopkg.in/alecthomas/gometalinter.v2
go build

若还有错误,可能是PATH中没有添加该执行路径,需要把该命令添加到路劲中,可以做一个软连接:

ln -s $GOPATH/gopkg.in/alecthomas/gometalinter.v2/gometalinter.v2  /usr/local/bin/gometalinter.v2 

其他错误

还可能出现其他错误,大多数是由于没有找到依赖的包。可以查看错误信息例如:

cannot find package "github.com/golang/snappy"

要是出现这样的错误信息,直接执行一下命令:

go get -u github.com/golang/snappy

测试

通过以下命令查看是否已经编译成功:

$ ./build/tendermint version
0.23.0-013b9cef

若没有报错,说明安装成功了。

运行一个节点的区块链

tendermint init
tendermint node --proxy_app=kvstore

若没有其他错误,说明启动成功,可以在控制台看到区块链相关的输出。

参考资料

猜你喜欢

转载自blog.csdn.net/zg_hover/article/details/82226235
今日推荐