[blockchain-012] tendermint 安装和文档读书笔记

1. 安装go 1.9
  1.1 下载 
    https://golang.org/doc/install?download=go1.9.4.linux-amd64.tar.gz
  1.2 解压缩到目录 /home/bri/usr/go-1.9
    tar -C /home/bri/usr/go-1.9  -xzf go1.9.4.linux-amd64.tar.gz
  1.3 修改/etc/profile增加环境变量
---------------------
#for go
#gopath is woring directory
export GOPATH=/home/bri/workspace/go
#goroot is go install directory
export GOROOT=/home/bri/usr/go-1.9/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
---------------------




  1.4 在liteide编译一个helloworld.go以验证安装无误
  1.5 go version 检查版本为1.9




2.tendermint源码分析
  2.1 获取源码
    git clone -b v0.15.0 https://github.com/tendermint/tendermint.git
  2.2 tendermint官网
    https://www.tendermint.com/
  2.3 tendermint文档
    https://tendermint.readthedocs.io/en/master/




3. tendermint文档要点
  3.1 tendermint分量部分:共识引擎; 应用接口。共识引擎,又叫tendermint core。应用接口,又叫 ABCI,Application BlockChain Interface。tendermint的共识引擎可以单独部署,非go语言开发的应用也可以使用。
  3.2 bft最多运行1/3的节点坏掉,这个坏掉是指任意的攻击诈骗行为。
  3.3 早期,tendermint是内建的共识引擎,是pos的。现在,tendermint已经变成了通用的区块链共识引擎,支持各种应用,可拔插式的。
  3.4 cosmos是一个基于tendermint的加密数字货币。https://cosmos.network/ 
  3.5 ABCI,让多种语言可以写BFT共识应用。它的实现是TSP(tendermint socket protocal)
  3.6 tendermint把共识引擎和p2p网络这两个东东解耦出来了,比特币是整体设计。解耦更好。
  3.7 如果开发一个类似比特币的东东,ABCI和app分别解决不同的问题。ABCI需要解决的是:在节点间共享区块和交易事务; 用区块链建立不可变的事务次序。app需要解决的问题是:维护UTXO数据库; 验证交易事务的加密签名; 防范双花; 让客户端可以查询UTXO数据库。
  3.8 ABCI有三种消息类型:DeliverTx; CheckTx; Commit。
    3.8.1 DeliverTx 区块链上的每一个交易事务都是有DeliverTx消息发送的,app需要验证从DeliverTx收到的每个事务的当前状态,协议,加密验证等等。交易事务被验证后,app更新状态,把交易事务存入数据库,比如UTXO。
    3.8.2 CheckTx 跟DeliverTx相似,但仅用于验证交易事务。
    3.8.3 Commit 计算一个加密的提交给当前app的状态,这个提交将放在下一个区块的头部。
  3.9 一个app可以创建多个ABCI socket连接,每个连接处理一类消息。这个一个流程https://tendermint.readthedocs.io/en/master/_images/abci.png 




3. tendermint 二进制 安装
  3.1 下载Linux 64的版本 https://github.com/tendermint/tendermint/releases 解压缩到~/usr/tendermint
  3.2 运行
    初始化  tendermint init
    运行  tendermint node --proxy_app=dummy
  3.3 tender
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值