名词理解
验证人: 选定一些候选验证的人
观察者: 不参与验证, 可以备份同步数据
提议人: 每一个轮次 从验证人中选一个提议人 提议一个区块
tendermint 第二个节点:
1. 添加 种子节点
persistent_peers = "[email protected]:26656"
以上 配置一个就可以 同步数据,但是 不能验证节点
2. 添加验证人
在genesis.json中添加 多个验证人
{
"genesis_time": "2019-12-23T02:31:55.8264552Z",
"chain_id": "test-chain-zRQ8Qq",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1",
"time_iota_ms": "1000"
},
"evidence": {
"max_age": "100000"
},
"validator": {
"pub_key_types": [
"ed25519"
]
}
},
"validators": [
{
"address": "CB0864B798EBD801FAE2113F674B313FE6218FBD",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "N8o1VQtR9M7/jD3CvKjXmBu65SdXricxVArz3X8UQvk="
},
"power": "10",
"name": "zhangxing"
},
{
"address": "AE005176E717C7DADF10CFC0B79B344839AD9E88",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "UUF5Xu5fGzAHQ/wFYFwXoPakOFCfmzcMYT9vqOsCoD4="
},
"power": "10",
"name": "wuhualong"
},
{
"address": "5F4E82760715EAC24D6D79F5D560440D894076F7",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "7IPSDXQms2Ga7pzYBmkfnYiCXgHWGBzmU7QlB/2OOAM="
},
"power": "10",
"name": "test002"
},
{
"address": "08896D42BC366158915D7FB851672E57539E0D80",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "0ftr3it1xZ2k0Kviqun4irrBUa96gVHMnc64dntI71k="
},
"power": "10",
"name": "test004"
}
],
"app_hash": ""
}
可以添加多个验证人; 单个节点也可以添加多个验证人。
3. 运行kvstore
https://gitee.com/ifinder/tendermint-study
kvstore -config=D:\install\yzchain\config\config.toml -dataDir=D:\install\yzchain\store
4. 测试 拜占庭
拜占庭: 权益 大于 2/3 即可稳定安全运行,否则就不能进行共识。
算法 : N >= 3n+1 ; 以下都是按照 power 计算
当 允许1个机器宕机,那必须最少有4台;
当 允许2个宕机, 那必须最少有7 个