名詞理解
驗證人: 選定一些候選驗證的人
觀察者: 不參與驗證, 可以備份同步數據
提議人: 每一個輪次 從驗證人中選一個提議人 提議一個區塊
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 個