Browse Source

add checksum and msg size to TimedWALMessage

updated test_data/build.sh script
pull/672/head
Anton Kaliaev 7 years ago
parent
commit
7b8ffc9981
No known key found for this signature in database GPG Key ID: 7B6881D965918214
8 changed files with 175 additions and 47 deletions
  1. +13
    -0
      consensus/replay.go
  2. +1
    -1
      consensus/replay_test.go
  3. +47
    -43
      consensus/test_data/build.sh
  4. +12
    -0
      consensus/test_data/empty_block.cswal
  5. +67
    -0
      consensus/test_data/many_blocks.cswal
  6. +12
    -0
      consensus/test_data/small_block1.cswal
  7. +13
    -0
      consensus/test_data/small_block2.cswal
  8. +10
    -3
      consensus/wal.go

+ 13
- 0
consensus/replay.go View File

@ -4,6 +4,7 @@ import (
"bytes"
"errors"
"fmt"
"hash/crc32"
"io"
"reflect"
"strconv"
@ -47,6 +48,18 @@ func (cs *ConsensusState) readReplayMessage(msgBytes []byte, newStepCh chan inte
fmt.Println("MsgBytes:", msgBytes, string(msgBytes))
return fmt.Errorf("Error reading json data: %v", err)
}
// check checksum
innerMsgBytes := wire.JSONBytes(msg.Msg)
crc32c := crc32.MakeTable(crc32.Castagnoli)
crc := crc32.Checksum(innerMsgBytes, crc32c)
if crc != msg.CRC {
return fmt.Errorf("Checksums do not match. Original: %v, but calculated: %v", msg.CRC, crc)
}
// check msg size (optional)
msgSize := uint32(len(innerMsgBytes))
if msgSize != msg.MsgSize {
return fmt.Errorf("Sizes do not match. Original: %v, but calculated: %v", msg.MsgSize, msgSize)
}
// for logging
switch m := msg.Msg.(type) {


+ 1
- 1
consensus/replay_test.go View File

@ -60,7 +60,7 @@ var baseStepChanges = []int{3, 6, 8}
var testCases = []*testCase{
newTestCase("empty_block", baseStepChanges), // empty block (has 1 block part)
newTestCase("small_block1", baseStepChanges), // small block with txs in 1 block part
newTestCase("small_block2", []int{3, 9, 11}), // small block with txs across 6 smaller block parts
newTestCase("small_block2", []int{3, 7, 9}), // small block with txs across 6 smaller block parts
}
type testCase struct {


+ 47
- 43
consensus/test_data/build.sh View File

@ -1,8 +1,15 @@
#!/usr/bin/env bash
# XXX: removes tendermint dir
# TODO: does not work on OSX
cd "$GOPATH/src/github.com/tendermint/tendermint" || exit 1
# Get the parent directory of where this script is.
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
DIR="$( cd -P "$( dirname "$SOURCE" )/../.." && pwd )"
# Change into that dir because we expect that.
cd "$DIR" || exit
# Make sure we have a tendermint command.
if ! hash tendermint 2>/dev/null; then
@ -20,71 +27,70 @@ TMHOME="$HOME/.tendermint"
cp $TMHOME/genesis.json $TMHOME/genesis.json.bak
function reset(){
tendermint unsafe_reset_all
cp $TMHOME/genesis.json.bak $TMHOME/genesis.json
tendermint unsafe_reset_all
cp $TMHOME/genesis.json.bak $TMHOME/genesis.json
}
reset
# empty block
function empty_block(){
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 5
killall tendermint
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 5
killall tendermint
# /q would print up to and including the match, then quit.
# /Q doesn't include the match.
# http://unix.stackexchange.com/questions/11305/grep-show-all-the-file-up-to-the-match
# note on macbook we need `gnu-sed` for Q to work
sed '/ENDHEIGHT: 1/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/empty_block.cswal
# /q would print up to and including the match, then quit.
# /Q doesn't include the match.
# http://unix.stackexchange.com/questions/11305/grep-show-all-the-file-up-to-the-match
sed -e "/ENDHEIGHT: 1/Q" ~/.tendermint/data/cs.wal/wal > consensus/test_data/empty_block.cswal
reset
reset
}
# many blocks
function many_blocks(){
bash scripts/txs/random.sh 1000 36657 &> /dev/null &
PID=$!
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 10
killall tendermint
kill -9 $PID
bash scripts/txs/random.sh 1000 36657 &> /dev/null &
PID=$!
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 10
killall tendermint
kill -9 $PID
sed '/ENDHEIGHT: 6/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/many_blocks.cswal
sed -e '/ENDHEIGHT: 6/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/many_blocks.cswal
reset
reset
}
# small block 1
function small_block1(){
bash scripts/txs/random.sh 1000 36657 &> /dev/null &
PID=$!
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 10
killall tendermint
kill -9 $PID
bash scripts/txs/random.sh 1000 36657 &> /dev/null &
PID=$!
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 10
killall tendermint
kill -9 $PID
sed '/ENDHEIGHT: 1/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/small_block1.cswal
sed -e '/ENDHEIGHT: 1/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/small_block1.cswal
reset
reset
}
# small block 2 (part size = 512)
# small block 2 (part size = 64)
function small_block2(){
cat ~/.tendermint/genesis.json | jq '. + {"consensus_params": {"block_size_params": {"max_bytes":1000000}, "block_gossip_params": {"block_part_size_bytes":512}}}' > genesis.json.new
mv genesis.json.new ~/.tendermint/genesis.json
bash scripts/txs/random.sh 1000 36657 &> /dev/null &
PID=$!
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 10
killall tendermint
kill -9 $PID
sed '/ENDHEIGHT: 1/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/small_block2.cswal
reset
cat ~/.tendermint/genesis.json | jq '. + {"consensus_params": {"block_size_params": {"max_bytes":1000000}, "block_gossip_params": {"block_part_size_bytes":512}}}' > genesis.json.new
mv genesis.json.new ~/.tendermint/genesis.json
bash scripts/txs/random.sh 1000 36657 &> /dev/null &
PID=$!
tendermint node --proxy_app=persistent_dummy &> /dev/null &
sleep 5
killall tendermint
kill -9 $PID
sed -e '/ENDHEIGHT: 1/Q' ~/.tendermint/data/cs.wal/wal > consensus/test_data/small_block2.cswal
reset
}
@ -108,5 +114,3 @@ case "$1" in
empty_block
many_blocks
esac

+ 12
- 0
consensus/test_data/empty_block.cswal View File

@ -1,4 +1,5 @@
#ENDHEIGHT: 0
<<<<<<< HEAD
{"time":"2017-10-23T13:26:49.706Z","msg":[3,{"duration":-2002813432,"height":1,"round":0,"step":1}]}
{"time":"2017-10-23T13:26:49.708Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-10-23T13:26:49.708Z","msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":1,"hash":"4595668C5D5D0A3670EBD56FB9D5A0F0B3252C07"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"452FC4AC6B6313F2815671BE51EA6E56C267C18357655B960CC353CA73BE64A393D2840A36B48B73B01466C174F13CADD1AADCBFADA953D322BCDF00BD185C06"]}}],"peer_key":""}]}
@ -8,3 +9,14 @@
{"time":"2017-10-23T13:26:49.710Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-10-23T13:26:49.710Z","msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"717AD9D244E7BA9C76300185BC51D727D50E24AF","parts":{"total":1,"hash":"4595668C5D5D0A3670EBD56FB9D5A0F0B3252C07"}},"signature":[1,"B7106616D0C2173AB31A6D844AD0C01A4506287D6B88EC9EB91283FDE99232F1DADE2C44B8C67C46B154EA57E456AF82661FE61590C566560C202526BD971F09"]}}],"peer_key":""}]}
{"time":"2017-10-23T13:26:49.711Z","msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
=======
{"time":"2017-09-21T21:02:36.475Z","crc":1749821628,"msg_size":54,"msg":[3,{"duration":-2007792988,"height":1,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:36.477Z","crc":1757077690,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:36.477Z","crc":3636989308,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":1,"hash":"2648A332454650C8E65338863A7F124ECB88709D"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"7A6CD808D8FA6D9194BF3CF21F884A9A297CB3A4FE5BF469DE388E15B437197D9BB5758415B9DAAE80D13CA653185EC41156557E90F1F7E62051C802515AA90B"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:36.477Z","crc":895681161,"msg_size":230,"msg":[2,{"msg":[19,{"Height":1,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010114E67C43E6A1670000000000000001147297262C6CD96190E46846C9A0DE1227E76077CF0001000100000000","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:36.479Z","crc":2263378695,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:36.479Z","crc":3498215865,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":1,"block_id":{"hash":"3D2ADB721946B87F16FF4F797BDFFF66914F00FD","parts":{"total":1,"hash":"2648A332454650C8E65338863A7F124ECB88709D"}},"signature":[1,"6CFD65255FFE0926D7DD5DB70464C596B61631BE518D82149DBCE97A57C6357AB7779E15A0D8A11D7583BE3BAE0369DBF51859555A29C9ECE18C8C731730B000"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:36.481Z","crc":568814784,"msg_size":50,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:36.481Z","crc":265265909,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"3D2ADB721946B87F16FF4F797BDFFF66914F00FD","parts":{"total":1,"hash":"2648A332454650C8E65338863A7F124ECB88709D"}},"signature":[1,"EE6C5094DD02E25BA6D4B75FD060BE91FBA7E182F1E48B6643F4ED517AE6816819F18918243B89EC4BBE2B7F42984AE823E1E36C13CC7AEA9B8B55F18728AC03"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:36.482Z","crc":864216102,"msg_size":47,"msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
>>>>>>> add checksum and msg size to TimedWALMessage

+ 67
- 0
consensus/test_data/many_blocks.cswal View File

@ -1,4 +1,5 @@
#ENDHEIGHT: 0
<<<<<<< HEAD
{"time":"2017-10-23T13:26:54.768Z","msg":[3,{"duration":-2003763150,"height":1,"round":0,"step":1}]}
{"time":"2017-10-23T13:26:54.769Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-10-23T13:26:54.770Z","msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":1,"hash":"60EC1BBCD363321BB4F052A1BB3186EF51E2C445"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"E602895032E445489FA5FEDE71674D9A71FAA96965C5BF3ED0B735545441550ED4DD93F82E871D3DA8777173AE343C2FDEF1CDAD01AB3F88AB57684485A6E206"]}}],"peer_key":""}]}
@ -63,3 +64,69 @@
{"time":"2017-10-23T13:26:59.812Z","msg":[1,{"height":6,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-10-23T13:26:59.812Z","msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":6,"round":0,"type":2,"block_id":{"hash":"118ED0A8B32E1DAABE06FF4D701B20826C3B9BFB","parts":{"total":1,"hash":"8E0E9FFAAB54FD93DF8597731D613A50D3CD5654"}},"signature":[1,"9CECA34991E232992D283ABD15E396EA699C12CE057288B407D37DFE6BCE2932B8A3919FAE1325FB77DA96882153C74AC2EB57D23BC21D18CA187E62E6B28C05"]}}],"peer_key":""}]}
{"time":"2017-10-23T13:26:59.813Z","msg":[1,{"height":6,"round":0,"step":"RoundStepCommit"}]}
=======
{"time":"2017-09-21T21:02:41.595Z","crc":4241336841,"msg_size":54,"msg":[3,{"duration":-2002212400,"height":1,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:41.596Z","crc":1757077690,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:41.596Z","crc":2412477983,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":1,"hash":"36C638D4510E60298D2F01BB36E7DF3A2FC52B2A"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"5F6A6CAE63F6F39F5626847AD32366308A1468A7AD576D32ED28CC607C34C96379006FE1679C0308961690265B6432AA2098B3BA6E2EDDDC846A5FBB55799409"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:41.596Z","crc":546512024,"msg_size":230,"msg":[2,{"msg":[19,{"Height":1,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010114E67C4517BF24C000000000000001147297262C6CD96190E46846C9A0DE1227E76077CF0001000100000000","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:41.597Z","crc":2263378695,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:41.597Z","crc":676057690,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":1,"block_id":{"hash":"36FB16DCD9ACBD1C2864D1900871EDBBD250E307","parts":{"total":1,"hash":"36C638D4510E60298D2F01BB36E7DF3A2FC52B2A"}},"signature":[1,"C2582E9EDC20CF13212B0270AC4E4E121E7EDB0B268457C96C6DB92E2FC9F203952E63571C078F3DD1DAED8CF0975D7CB4436D93E1E433B758BC0DB4BED1D50D"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:41.598Z","crc":568814784,"msg_size":50,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:41.598Z","crc":2635275730,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"36FB16DCD9ACBD1C2864D1900871EDBBD250E307","parts":{"total":1,"hash":"36C638D4510E60298D2F01BB36E7DF3A2FC52B2A"}},"signature":[1,"E756EAC1E35DCA357EBCB9E5297213D43FBD4559951817DDA09AD37496B097A831DA785A51351F0065908C6DB8616F589AF20F2F9F367B3CA50F59B23604360C"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:41.598Z","crc":864216102,"msg_size":47,"msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
#ENDHEIGHT: 1
{"time":"2017-09-21T21:02:41.600Z","crc":1879068072,"msg_size":50,"msg":[1,{"height":2,"round":0,"step":"RoundStepNewHeight"}]}
{"time":"2017-09-21T21:02:42.599Z","crc":3884114927,"msg_size":52,"msg":[3,{"duration":997969011,"height":2,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:42.600Z","crc":2888433882,"msg_size":48,"msg":[1,{"height":2,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:42.600Z","crc":4018149758,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":2,"round":0,"block_parts_header":{"total":1,"hash":"789A387D91E55393E20CF45B9FBB45D1045A0599"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"33737B3AB4C9E279D33F0A29305B4EDC04C19E4B130277C0C4D93F39C2EAE545C8FB112FA2D7D2944959EFAF1AF32E6E116A76EAA36627AD9D702456764DF505"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:42.600Z","crc":4013972068,"msg_size":3348,"msg":[2,{"msg":[19,{"Height":2,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010214E67C455396F7C00156011436FB16DCD9ACBD1C2864D1900871EDBBD250E3070101011436C638D4510E60298D2F01BB36E7DF3A2FC52B2A0114085320F15E07C91FCB122B51E74428CA271159850114D7C8CB3C857279C1A9F477A644C2220A2967321901147297262C6CD96190E46846C9A0DE1227E76077CF011488D0C1CD8AB7B6194FE53AF95083240D38FC461B010156010E65FFAB691CD24D99F9A03D313933010E797654C8171B6F18D8413D313934010E04D5BAEB2CE0214B9A613D313935010ECAC5FCDE8E780E16DA783D313936010EF1BA444A70B283DAB04A3D313937010E420FB49B9D678C60D9633D313938010E8707C7E32BBDFBAB2BBA3D313939010E7FE09DACA3ECADFC923E3D323030010ED95C2E3E5057C80DC4D53D323031010E1B050B95586874734C603D323032010EF1136E58291E030BB73E3D323033010E423AF685047562C33D283D323034010E303FEF6D8DF4CFFB78513D323035010E9985BF6189B5944C01733D323036010E05CDCB96B368340E6BAB3D323037010E4D832481490F794D9A433D323038010EB55255A2EB449455A88C3D3230390104A78FCA70010E873A65F6AEE5ED41E1B43D3231310108BBD7A9DB9BF2567C010E2A2D80AF07B8939415B83D32313301059A34D8FE1B010E21333D68372F664C6C343D323135010E3A454E5D31D0B31FB8723D323136010ECEF39F46B39F7898222D3D323137010E3095D7673C1F247008A63D323138010E17F7670210033D1F7CBD3D323139010E8150D171CE19528DA7FE3D323230010EFA54F068C02F3E1B5DA63D323231010E568A30A6EFBB50495B2D3D3232320101CC010EE90FFDE43D76937B152B3D323234010E8F6D8986DE744D4A719A3D323235010ED7E4E957F2A59366C5D93D323236010EA99DC9F15F65A0AEC1D53D3232370101E4010EF133DBD35037E4F141A93D3232390101F1010ED6E29F57252E2A826C3D3D323331010E711253F15A48485C3E3B3D323332010E608503BD82CA7472287B3D323333010E61F29B351751988CC15B3D323334010E5C4760B623557895DAF13D323335010E71CECA243B2CB1AB2C493D323336010E5C876246CD96382F6AC73D323337010E8A25604B608D3ED9DAD03D323338010E1310595C189F9024476C3D323339010E3ED6FB4F1297FDF9053E3D323430010EE3CB0529D9BA8DCDEE063D323431010E5E27328010F37D33F3E83D323432010E7F6CEA32B6C55D29F0073D3234330106C399F2F005E9010E619E055027C937D42E5C3D323435010EC5D8F92DCD9E682445073D323436010E4F214C0DA1316DFD22293D32343701093D621557890F375D97010E031A6B6E9E85AF3E69333D323439010E895B147AB824F133C80C3D323530010E8F138CE4C9F9D1BBEA2D3D323531010EB999A7B4EBC09431A97F3D323532010E95C99B163EABEF46C3A83D323533010EFB66FBA99A534B7A6A943D323534010E634BF4B68ACA3BC55BA63D323535010E8CB83F732C9FD54A27983D323536010EE7142747B834F4F3ADE63D323537010EE9C16C539714F4641A503D323538010EE0A5E6C29EFD6C0425563D3235390109937E644105BCDCE92E010EDE6CEDBE3F1AC3C3A6403D323631010EC2C37D365F498CC3FAD73D3236320102D1F5010E5818D6CEB9F902FB83013D323634010E86A78C85EEB8345F7AFF3D32363501014B010D88A062C6B3B07FFDF43D323637010EF9CDEB89933B4EF115503D323638010EBE18630BAEB84014FEB93D323639010E819350F46EABE3721B763D323730010E864EDBD6D840238DB0453D323731010EDA933D46B3DB877A05973D323732010E29FEE04EC2FB811CA33D3D323733010E8987A11778EC0D5B2FED3D323734010E3CE078D2948C8C9392E23D323735010E5BB2C8AF85B6BFD7D87B3D323736010EDC230E42601C0DB5C8763D323737010E72E8D47674FD7A8695773D32373801011436FB16DCD9ACBD1C2864D1900871EDBBD250E3070101011436C638D4510E60298D2F01BB36E7DF3A2FC52B2A0101010114D028C9981F7A87F3093672BF0D5B0E2A1B3ED4560001010002011436FB16DCD9ACBD1C2864D1900871EDBBD250E3070101011436C638D4510E60298D2F01BB36E7DF3A2FC52B2A01E756EAC1E35DCA357EBCB9E5297213D43FBD4559951817DDA09AD37496B097A831DA785A51351F0065908C6DB8616F589AF20F2F9F367B3CA50F59B23604360C","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:42.602Z","crc":1115196263,"msg_size":48,"msg":[1,{"height":2,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:42.602Z","crc":815977924,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":2,"round":0,"type":1,"block_id":{"hash":"3244593C64E06D6AA0A7B8D4B41A4704841DC44B","parts":{"total":1,"hash":"789A387D91E55393E20CF45B9FBB45D1045A0599"}},"signature":[1,"044A05FA6DEE3AD2BB5463845D3606476FFBBB9C2411D792CB5D780F470F2313E6ED9906B4EEFC3696008BD8A85617F1AEEC33A00195A1EB8FAB2399F18FE808"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:42.603Z","crc":1112221004,"msg_size":50,"msg":[1,{"height":2,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:42.604Z","crc":2925616764,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":2,"round":0,"type":2,"block_id":{"hash":"3244593C64E06D6AA0A7B8D4B41A4704841DC44B","parts":{"total":1,"hash":"789A387D91E55393E20CF45B9FBB45D1045A0599"}},"signature":[1,"79C1C191D5A5B04C5B0C716940AC02EA42174F9D9A95F2FB4CA80A74A5E3AD22A12970A27C3D7F1616924237ED02FDB53AE086221AA34A3849C112BA4DE0BD02"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:42.604Z","crc":935395377,"msg_size":47,"msg":[1,{"height":2,"round":0,"step":"RoundStepCommit"}]}
#ENDHEIGHT: 2
{"time":"2017-09-21T21:02:42.608Z","crc":2915063939,"msg_size":50,"msg":[1,{"height":3,"round":0,"step":"RoundStepNewHeight"}]}
{"time":"2017-09-21T21:02:43.604Z","crc":1661556736,"msg_size":52,"msg":[3,{"duration":996430298,"height":3,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:43.605Z","crc":4020609274,"msg_size":48,"msg":[1,{"height":3,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:43.605Z","crc":460367116,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":3,"round":0,"block_parts_header":{"total":1,"hash":"ECD0EBB3511DA1AD0EFD3B4E679464DD93269C7F"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"ACBECD39C8B9E1501911FDCBE9ED3CD2ED1B024862F696B607E3E8395442E55F2885A9A64269EBEA430C2D549AF270522E635DF1B43E0B766347D92A669F9F03"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:43.605Z","crc":1917215695,"msg_size":3272,"msg":[2,{"msg":[19,{"Height":3,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010314E67C458F8D4F40015001143244593C64E06D6AA0A7B8D4B41A4704841DC44B01010114789A387D91E55393E20CF45B9FBB45D1045A05990114C48F8085CF26A98F92FD9E969DF94228CB50EA820114D65501871634DA2643D2AAAFF46BAA363F880CB901147297262C6CD96190E46846C9A0DE1227E76077CF01143BEE0F91821F457CA0708E20CA3B9BFE0C8239F5010150010E13AF40A0773FC2146BA53D323739010E49F87618716137C10C013D323830010E0373584C3D21859E75D83D3238310102C89B010E40140CBEA70EDEC1DA383D323833010EDC28E64229CB613188033D323834010E7BAB445184250C7FBCEF3D323835010E5EFA47920D6862AF0FE73D323836010E29ED19397EAD15CAF1B93D323837010EF6C0D826F54663ED27373D323838010EC71ED67075F4A0B621213D323839010E960E8767BB5BF8FA8A223D323930010EC6931A30E7EB7D74D07C3D323931010EF4AEFEC01E43974FFF2C3D323932010E88CFDC38F1A391690EDD3D323933010E63E1FB2F5AEFA5D980D13D3239340101B0010E0E875A466C59C97EDC743D32393601058B343DA388010E48E5E7B09466130ED7503D323938010DDBF18F419BEFEE14AA3D323939010E5C656F7AB5DABA4EFC533D333030010E2DF169DB434ACFAFEBBB3D333031010E1BB7E80B4AE9B269802C3D333032010E67990B0F8616CA587C013D333033010E837DC5BD4AEDB2985F5E3D333034010E0F11424DCD83D607FCF63D333035010EAF51C6D26B1EA09EEEF03D333036010E28BC83D812C7740E12713D333037010E4F3F87882DCBAB5B589F3D333038010E8D33FB9F2BE8C1DE74B43D333039010E21FB70D6E8FABAE491243D333130010E036482AB4F3AE86593D43D333131010ECDEEA0BF4E8D6B1183183D333132010E1662620FE490809CB7AF3D333133010EA2072DE8D37FA728ADBE3D333134010E6D5E117623E073F3CC2A3D333135010E4A379F9553AFE30EB4EC3D333136010E4A4E99BC9911702DA0CD3D333137010E06D229C312028357EFDB3D333138010E0BADBF815768195CF5FA3D333139010EE77A985CFB29ECCF9D773D333230010E6AA149A533B856D2E93E3D333231010EF5FB721442E55F128BD43D3332320101F4010DE8E802802771889D273D333234010E35849E2EF967CBA789EC3D333235010E0BB371DD8872BAFB0E8D3D333236010EF0D3FE319D31D85B7CF73D333237010E65A8C35FE3BA1101A7A13D333238010E47C58773821E37B39E3C3D333239010E85E8374DCE5B72CC5BFE3D333330010ECE9994A2DDB9B3DCFC443D333331010E31E1ACF206A663B2FF9B3D333332010E7A867606BB97DDBA22E43D333333010E809375316872E49201E43D333334010EE808126D53C67029A6693D333335010E91B486BD46C4FDD867433D333336010E6F8CB93D1A78B8E01BDE3D333337010E5DF168B00F2FDB0F02C13D333338010ECA56FB4D7D9AE1C518A53D333339010E2FB3A4CB402F179D86733D333430010E8F89379D81298B84C0353D333431010EEAB6D69B6383F7A1D8683D333432010ED4FB1077E546DACDF2993D333433010E537ABC29114C08496EBE3D333434010E0BD919694601949E1A633D333435010E9F2577436BEB8FBC813D3D333436010E90DBB8DC1E2F61A9D8FC3D333437010E71EF58475F3ADCEFAD4D3D333438010E9C3C77FBD2D05A941C923D333439010E29959238B1522A7111C43D333530010E9AF90695C7E07D4A44273D333531010E62A33ADA6B63C66CDFE03D333532010E59C9725385BB2435046B3D333533010EFA0511250BAD9962F8393D333534010EBD14F9CEB8AB0D9F888F3D333535010E26CF512B539B36C690C53D333536010D8F295B470C9A5958993D333537010EC145AB80B3294A551CBE3D3335380101143244593C64E06D6AA0A7B8D4B41A4704841DC44B01010114789A387D91E55393E20CF45B9FBB45D1045A05990101010114D028C9981F7A87F3093672BF0D5B0E2A1B3ED456000102000201143244593C64E06D6AA0A7B8D4B41A4704841DC44B01010114789A387D91E55393E20CF45B9FBB45D1045A05990179C1C191D5A5B04C5B0C716940AC02EA42174F9D9A95F2FB4CA80A74A5E3AD22A12970A27C3D7F1616924237ED02FDB53AE086221AA34A3849C112BA4DE0BD02","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:43.608Z","crc":32975687,"msg_size":48,"msg":[1,{"height":3,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:43.608Z","crc":336246969,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":3,"round":0,"type":1,"block_id":{"hash":"F3180CDFB5882D93E70817C3F382C13C9A5AEDCD","parts":{"total":1,"hash":"ECD0EBB3511DA1AD0EFD3B4E679464DD93269C7F"}},"signature":[1,"52629E5AFC5C451A130D6A81EE8D999515B177572E60180FECEDE249767560BDA27D50CA5ADC9A99ECDD724F075C12BDCBAC747886FFD62281D9D8768C802103"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:43.610Z","crc":2676699239,"msg_size":50,"msg":[1,{"height":3,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:43.610Z","crc":1842694991,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":3,"round":0,"type":2,"block_id":{"hash":"F3180CDFB5882D93E70817C3F382C13C9A5AEDCD","parts":{"total":1,"hash":"ECD0EBB3511DA1AD0EFD3B4E679464DD93269C7F"}},"signature":[1,"6964D4300FDE309725A3A35A0341286054C0161685650BFA95AB0598B73D511B55C2C33B63674AB2AD766B83917607392AA37A4C3F6A5F5FF12FD9385F811B01"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:43.611Z","crc":3366220179,"msg_size":47,"msg":[1,{"height":3,"round":0,"step":"RoundStepCommit"}]}
#ENDHEIGHT: 3
{"time":"2017-09-21T21:02:43.623Z","crc":3076054704,"msg_size":50,"msg":[1,{"height":4,"round":0,"step":"RoundStepNewHeight"}]}
{"time":"2017-09-21T21:02:44.611Z","crc":4187647328,"msg_size":52,"msg":[3,{"duration":987282952,"height":4,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:44.613Z","crc":552056555,"msg_size":48,"msg":[1,{"height":4,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:44.613Z","crc":1121089675,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":4,"round":0,"block_parts_header":{"total":1,"hash":"90C06A74163663140A1ACE905D7558690E921645"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"C429541AFB2B756C141202A789BE152BBFA6865029D27898B26C4AFF1B7FC60BCE07496948BDDC16F72CB4FEA5614088C905BB23BE84AE76A0CE95DFD0E26B08"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:44.614Z","crc":3194003520,"msg_size":2980,"msg":[2,{"msg":[19,{"Height":4,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010414E67C45CB92E90001470114F3180CDFB5882D93E70817C3F382C13C9A5AEDCD01010114ECD0EBB3511DA1AD0EFD3B4E679464DD93269C7F011418C36A8066A499681EFDD5967EB1575C58AC68B80114AAF7CA5F3ABDEA4FD203C0791792E5336DC9F56101147297262C6CD96190E46846C9A0DE1227E76077CF01146190A1C815731BD46D80E434301400C50366B232010147010E48F84ED430032697D1813D333539010D8F11FDFF6C56EDF7933D333630010814B4AA975C60339F010E0B1B55B6B31DF2C81C053D333632010D9B8313AB2A7C38BD293D333633010EA11DB5B3DB74FBF79D1C3D333634010E3DD711A278970C1D8E9F3D333635010E8061CF3556E64DE8248A3D333636010E8697DCBFDBC61AA6D7643D333637010E5D6EBB26F3801199378A3D333638010E5D8C88B91CC82EF7A07A3D333639010E5E842B9E53A8FC875CCF3D333730010E1895784543FFC9793E063D333731010E388038EBF4A9B65C92D73D333732010E81A450C45045CF1E432D3D333733010E52137A19C2147838BF433D333734010E90474A9652E7810D369B3D333735010EBE68CC1F53B2EC1A5F5F3D333736010E161168B0B510E6B4A7B83D333737010E035B3CABF91D07DCED9B3D333738010E350EBE91A4FCD2C77EDD3D333739010E80DE5508B4FA69BF2B453D333830010EAECD7CC91A41B95006FD3D333831010EC7E284F1891E4F43BFCC3D333832010EC9AF4AD79930D57118033D333833010EABFDF42BB1AF8465BA073D333834010EA2FB730CFDCB8D24A18A3D3338350107F0F321365BB8F8010E827E1DB3FB1B48800BE63D333837010E6F1CE2A0786F2C9C6D443D333838010EA0325DC77CFEA8EB47A23D33383901034132B9010ED67E99BC2B5FB41586053D333931010DBA96DEF45CED24A54D3D333932010E698E3BE0F471F8E8AFB53D333933010ED55C28C95DA456D346E23D333934010EA0D41712D0258D3A9BEB3D333935010ED7E414B8B8F0083594123D333936010E5779C88881F03553FEA83D333937010EE5983D72E1AF30C63CA43D333938010D3C8FD2E5BCB61D6B7B3D333939010E1C7EF0DA421DB30C903D3D343030010EC7E53555135140C78A623D343031010EA4B040BF93D7027EE1533D343032010EE3075158E9D49744C5383D343033010E75A3668F0BD41296371F3D343034010EDAF3CAFEFC21120D633D3D343035010ED7A8DB33A19105B4880C3D343036010E611A4F9B8236E185A5673D343037010EC094FD017146CC9704F53D343038010E245F70B8B508220B6CFE3D343039010E5379862397AE0B478B793D343130010EE493FAF97A78E4B229EE3D343131010EDBE89F6A5340D2961F693D343132010E152555F61C9F41AE31E73D343133010E7EFBA63E12FF1B68F1C33D343134010EF44557C8CE18B91B5D2E3D343135010E4A84A602A6E7F72C36543D343136010191010EB1563B4F5B21F222ABB13D343138010E5FD08AF34B0B19C606A93D343139010EAAF32E434811D853D1633D343230010E376E630D69DBE71A07EB3D343231010EFA68BA7EF53B6999B0AE3D343232010DEA4E7ACB81A33B8FF53D343233010E5D56A650F646016352163D343234010422D86672010EBBB869BF49DD535387D23D343236010E82394DA31BB943EDE1473D343237010EC13A97431A4417CC48393D343238010EECEE500577C40154610B3D343239010114F3180CDFB5882D93E70817C3F382C13C9A5AEDCD01010114ECD0EBB3511DA1AD0EFD3B4E679464DD93269C7F0101010114D028C9981F7A87F3093672BF0D5B0E2A1B3ED45600010300020114F3180CDFB5882D93E70817C3F382C13C9A5AEDCD01010114ECD0EBB3511DA1AD0EFD3B4E679464DD93269C7F016964D4300FDE309725A3A35A0341286054C0161685650BFA95AB0598B73D511B55C2C33B63674AB2AD766B83917607392AA37A4C3F6A5F5FF12FD9385F811B01","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:44.617Z","crc":3467984214,"msg_size":48,"msg":[1,{"height":4,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:44.617Z","crc":3491129899,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":4,"round":0,"type":1,"block_id":{"hash":"AE9A8D2E11EC3917944C635469E69C65669B9E81","parts":{"total":1,"hash":"90C06A74163663140A1ACE905D7558690E921645"}},"signature":[1,"142759FF49492836E8658E8DBD05C2F9FB00F6A2D68BF2F6915018DCCADB073E0B71F0A56C92B62118F25AB11B1AD98D1C5A69CC781122B1BC0CDDA32AE70906"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:44.625Z","crc":2232661588,"msg_size":50,"msg":[1,{"height":4,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:44.625Z","crc":1857168407,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":4,"round":0,"type":2,"block_id":{"hash":"AE9A8D2E11EC3917944C635469E69C65669B9E81","parts":{"total":1,"hash":"90C06A74163663140A1ACE905D7558690E921645"}},"signature":[1,"0D9D7CEEA8327A4F5EFBE365EAAFD55C7B66BDB0B880036ADABFE82446798FE40BCAB60F3E1A69DA005A05B6E266B2F13713DA686C815DE3DD38EECFA5010B07"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:44.626Z","crc":1061603359,"msg_size":47,"msg":[1,{"height":4,"round":0,"step":"RoundStepCommit"}]}
#ENDHEIGHT: 4
{"time":"2017-09-21T21:02:44.648Z","crc":1788398491,"msg_size":50,"msg":[1,{"height":5,"round":0,"step":"RoundStepNewHeight"}]}
{"time":"2017-09-21T21:02:45.626Z","crc":2715020958,"msg_size":52,"msg":[3,{"duration":977242216,"height":5,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:45.628Z","crc":1667765963,"msg_size":48,"msg":[1,{"height":5,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:45.628Z","crc":685855787,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":5,"round":0,"block_parts_header":{"total":1,"hash":"0A9D846B3F374D055C52B5C5B23F948E6E0D3D9E"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"BDA927431F26777EE29F3800A8C21567F59D1D36417B3D27F84B6F063D3361E38EAC5FD920A315B709ACCF561EBAF57F508D12F0AE61552943419DF5CA26B40B"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:45.628Z","crc":626568543,"msg_size":3190,"msg":[2,{"msg":[19,{"Height":5,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010514E67C4608035280014D0114AE9A8D2E11EC3917944C635469E69C65669B9E810101011490C06A74163663140A1ACE905D7558690E9216450114F2846C86D0FD2029FE39C2CE7ABEE02E39D4AD700114E307A24217C0E35B070F79FBC1AAE23434B49C4501147297262C6CD96190E46846C9A0DE1227E76077CF0114CE5F24AEDF447ECD327E18E8B0FA894B433B285F01014D010E99F086B81C4E251367DA3D343330010E40E296E779ABD1299C923D343331010EA65466A9521E14C7BE7C3D343332010E467488BD5F950C29AD7C3D343333010E01A036466FE6EA9B57593D343334010E8D50B731FB90F8BD18893D343335010E9684EE963EA067D3AB7F3D343336010EB355EB7970DBDE531CCE3D3433370105F612736882010EFB45A483A0C5076968333D34333901064E38F6B978A0010EE395808D7F5E7242E96A3D343431010EFEADDF3959B82B289EA63D343432010EB563D50253AED08864183D343433010E061DF919F8AFAC4B425C3D343434010E34A9ED80194C48066FE03D343435010E1EDF428ADEA9F86DC1803D343436010EEAEE4A7341E8914B3C5B3D343437010E03AB5D9B5051A82798163D343438010EF37DD0884DADD47EB2403D343439010E5ECA2CC3AD38B4C0BD4D3D343530010E77CA96831313023F45423D343531010ED4B24FE6DEB9EF291DB93D343532010EA7DE4AB04BE660E8D9BE3D343533010770CFE264B0FDC5010E9B07640C7B2A6530E1B23D343535010E852494823EAFB7A9C9493D343536010E90ED93E7B8E7243026263D343537010E7280D8F22A2303468A733D343538010EC8674F475E43039BF5A43D343539010E1FAD60EBBF1F5B78D2F43D343630010EC415B94EB1879F6819C23D343631010EDDD98C5ED2870D52B6C03D343632010E569D33BED8BDDF6072F63D343633010E58DE3CD4F57FF2B4BBEB3D343634010EEFC7C09565CE8B4523603D343635010E9EAF22A59A37849F249A3D343636010E18346B7873DA186B8C213D343637010EC7110FA83783F6F0FE993D343638010EC98EAEF90C7FB388D8213D343639010E1EF53E19E6B368C0F5653D343730010EFDBFFE9A57468CCD7F9F3D343731010E32BBB486783EBA61BE063D343732010EF59F403B06C68E4051F93D343733010E134F67219EEA7337AD513D343734010E6CA09734F47776EF949D3D343735010DE3329179C2D4F797263D343736010E945707E9AE8927D6F2593D343737010EE9139034597E24B9EA133D343738010EBBEA75398EFC30AE60233D343739010E13C89690D6493AA912A13D343830010EC379BED6322CE3F7BB9E3D343831010D68521A6DFE933C73E03D343832010EF4E8BCC725AE0312954E3D343833010E74A127288126148FEDE93D3438340103C6A277010E1C22D7AC2664F07A76DC3D343836010EE4BC54EC59DC1F9F8B253D343837010E01B35E26D289628EF8413D343838010ECBBB47290797EAB6E9523D343839010E1799A437D9BAB256BF4F3D343930010EF8F0D1E8FB012EFD68013D343931010E96FCD414DB0BB86F568E3D343932010E4419B98BB03A8C3EAEF93D343933010E9826BC03088B1245841E3D343934010E49A5C871E20B03AC90443D343935010E2D92E2C9A4D13BA8A2943D343936010EB26955AC9B39E73B8BC13D343937010EC4F1DCAE2819B3C49B333D343938010EB4FFDF8901A457511E6E3D343939010E0F2636C23C0716E4C3AD3D353030010E3D6918AE2729D30FDB8A3D353031010ECA7899AA77439D61D9F93D353032010EB8F26EE67977934B266D3D353033010E45E69C684DA7373AF3843D35303401085EE4F823DE1AD2CA010E3C12C7DED860478E514A3D353036010114AE9A8D2E11EC3917944C635469E69C65669B9E810101011490C06A74163663140A1ACE905D7558690E9216450101010114D028C9981F7A87F3093672BF0D5B0E2A1B3ED45600010400020114AE9A8D2E11EC3917944C635469E69C65669B9E810101011490C06A74163663140A1ACE905D7558690E921645010D9D7CEEA8327A4F5EFBE365EAAFD55C7B66BDB0B880036ADABFE82446798FE40BCAB60F3E1A69DA005A05B6E266B2F13713DA686C815DE3DD38EECFA5010B07","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:45.629Z","crc":2369428854,"msg_size":48,"msg":[1,{"height":5,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:45.629Z","crc":1873412959,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":5,"round":0,"type":1,"block_id":{"hash":"6335A62426B28EFCDC8C8A8BC6573A6833CB6056","parts":{"total":1,"hash":"0A9D846B3F374D055C52B5C5B23F948E6E0D3D9E"}},"signature":[1,"65A29FAACFC75AAC31F1A242C27940F9E40DDC719786E1613385B3A962D89E6E94313B93798D4286177AE2C1D8FA2B6A6FB379629073CCD8A0194DEF7289680C"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:45.630Z","crc":1490264959,"msg_size":50,"msg":[1,{"height":5,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:45.630Z","crc":288826032,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":5,"round":0,"type":2,"block_id":{"hash":"6335A62426B28EFCDC8C8A8BC6573A6833CB6056","parts":{"total":1,"hash":"0A9D846B3F374D055C52B5C5B23F948E6E0D3D9E"}},"signature":[1,"24D4697C0AAB387B0976E31D1CDF73B2D8EC073FEC431A2C50E89F032EAB94DB31D25A95FB34EDF6EFBF7CE37F02FD967E206F769F7C84D5C74E276A54340A00"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:45.630Z","crc":3223566781,"msg_size":47,"msg":[1,{"height":5,"round":0,"step":"RoundStepCommit"}]}
#ENDHEIGHT: 5
{"time":"2017-09-21T21:02:45.639Z","crc":154436119,"msg_size":50,"msg":[1,{"height":6,"round":0,"step":"RoundStepNewHeight"}]}
{"time":"2017-09-21T21:02:46.631Z","crc":1290620847,"msg_size":52,"msg":[3,{"duration":990909429,"height":6,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:46.633Z","crc":2818111147,"msg_size":48,"msg":[1,{"height":6,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:46.633Z","crc":2092753621,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":6,"round":0,"block_parts_header":{"total":1,"hash":"2ED4AEEC6DC93F574465D86F7D6D6779B281BA7E"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"CC33B13BC11490077FB3AD341C1762552C3945519701A5E2E97F602795156D62823B0125C1B7E1147FE275C4F89D14760514F02398223CFBD24FFC95D49A270B"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:46.633Z","crc":2113551309,"msg_size":2776,"msg":[2,{"msg":[19,{"Height":6,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010614E67C4643EA67C0014401146335A62426B28EFCDC8C8A8BC6573A6833CB6056010101140A9D846B3F374D055C52B5C5B23F948E6E0D3D9E01143C62B6C2271A4F1048F75AE0883D7E19B04F15BA01141793784F32CC8D611D7D5FCE28294BA31277529F01147297262C6CD96190E46846C9A0DE1227E76077CF01146F5C9E783E2CBF7754F1D799290269301EAA450C010144010813B1987788D56043010E303106E63799C359B0563D353038010EE9E026A088AC71C3BC803D353039010E10C40D0DA8089CEBA5BD3D353130010E30D293394543AF60F7E23D353131010EE1A9B2DE9C9A4CD58DED3D353132010EC43391DA9B740F6A872E3D353133010EB5309DEFC0EBAC12798C3D353134010E6E54A9F15A1974403B1F3D353135010E2F4C04A0020894AB9F2A3D353136010E8960F14BDDC554E281E43D353137010E3F9B7E79BBCDFE611C973D353138010E9EA9A36F5FCFFF2905303D353139010E8524F36006D0DEF079A33D353230010E080DF3B80BA72CFCEA0D3D353231010EE49EE907D4BB3EC163843D353232010E70F3C2571B451C4EE7EE3D353233010ED8C438B078BDB015034E3D353234010E2C88D62E0526950CC3223D353235010E58F5A4A3EC55E7BF52DC3D3532360104DED3A2CC010E10FF54A949CF35DC572E3D353238010E461B8553F2197FCBA02F3D353239010ED12EBB1DF473DB6F59E33D353330010111010E7834074D998D8181E2D43D353332010E33314A9DBB90D2D28E353D353333010ECFD8E5A527870DB0DBC23D353334010E55FBA95D1E52B0BF95B93D35333501053B12537550010EB122053AB572117B4B1F3D353337010EE98BA06B0254315FFE1A3D353338010EC5D5FCFB6D413E8E935E3D353339010E9CA7628553C6547E21FE3D353430010E25B6D3A74082F53884E73D353431010EE12B8F35685C616356913D3534320105FDAD0F798A0102B2A5010574AB5BF97C010E89E4A329DB5AC31286C03D353436010EEDABF4342CD4B59CBD7A3D353437010E1AC8DB792B77346FC9E53D353438010ED8DC8A2353654FE5E59E3D353439010E90B8397548269AFB354A3D353530010236D2010E246A794B0C3B68E686723D35353201040CEB03EC010E6FA8089B068641D2B2783D353534010EE067B465A5EF0C070F383D353535010E61CB5A8BE91F32CA15173D353536010E0FE3069B6C8CF658CAB93D353537010E433F473226261FA4CED83D353538010EA9FF4BDD3B169374024F3D353539010EA0DD3FD76282611D56543D353630010E893A5D34B892673015413D353631010E8C96E0DF56DECF395F313D353632010EA39259FD9AD8C8F6023F3D353633010E6CF7AF270C7AD8D4B33F3D353634010EA7902DCDD224BACB17593D353635010E4D97B0490B480FAD96C43D353636010E80DD5AB1E7A5A56DC9943D353637010373E007010E7B9CEC805FE817D83B583D353639010E87D907A3B08008051D593D353730010E97A3B904C85AF2BB39E43D353731010E4ECA0B77ECB8944F39963D3537320109D3FC116C802BA7FA46010E4A161A71C0123C4CA6523D3537340101146335A62426B28EFCDC8C8A8BC6573A6833CB6056010101140A9D846B3F374D055C52B5C5B23F948E6E0D3D9E0101010114D028C9981F7A87F3093672BF0D5B0E2A1B3ED456000105000201146335A62426B28EFCDC8C8A8BC6573A6833CB6056010101140A9D846B3F374D055C52B5C5B23F948E6E0D3D9E0124D4697C0AAB387B0976E31D1CDF73B2D8EC073FEC431A2C50E89F032EAB94DB31D25A95FB34EDF6EFBF7CE37F02FD967E206F769F7C84D5C74E276A54340A00","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:46.639Z","crc":1235909910,"msg_size":48,"msg":[1,{"height":6,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:46.640Z","crc":4040702774,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":6,"round":0,"type":1,"block_id":{"hash":"8C498FBCFD2F1C855AD9ECE80F3303C4D792F1C0","parts":{"total":1,"hash":"2ED4AEEC6DC93F574465D86F7D6D6779B281BA7E"}},"signature":[1,"129900BFD7B75DCDEB24A2DF2D70D3AEF49AD2370D1D59AB42366989162E9B70FDC28B3B422BFE5D3803B99C90474607B8B7EECF7750D91734AB4092EF723B09"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:46.643Z","crc":998238963,"msg_size":50,"msg":[1,{"height":6,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:46.644Z","crc":2930422499,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":6,"round":0,"type":2,"block_id":{"hash":"8C498FBCFD2F1C855AD9ECE80F3303C4D792F1C0","parts":{"total":1,"hash":"2ED4AEEC6DC93F574465D86F7D6D6779B281BA7E"}},"signature":[1,"0E0529431F1CC4151F264D4822C1522AD6688E5D2C595D5818E7F85E890E5FABFA679DEC804A8A69D92DF034ABC4D4EF59324A950AF6003E3FB4D176B418610A"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:46.645Z","crc":3294649770,"msg_size":47,"msg":[1,{"height":6,"round":0,"step":"RoundStepCommit"}]}
>>>>>>> add checksum and msg size to TimedWALMessage

+ 12
- 0
consensus/test_data/small_block1.cswal View File

@ -1,4 +1,5 @@
#ENDHEIGHT: 0
<<<<<<< HEAD
{"time":"2017-10-23T13:26:29.560Z","msg":[3,{"duration":-2002220818,"height":1,"round":0,"step":1}]}
{"time":"2017-10-23T13:26:29.561Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-10-23T13:26:29.562Z","msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":1,"hash":"B8A47B357210D59E0170747FF4ACDB366C706D57"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"AFCEA71535E0DF9E5D58DEE0F412903AC87C4DD09FCED3FC0267FCDE9E6069758C42B5C934DF514E898C7D30BA68815245005E99DDD9924BC182C11C5447180A"]}}],"peer_key":""}]}
@ -8,3 +9,14 @@
{"time":"2017-10-23T13:26:29.564Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-10-23T13:26:29.564Z","msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"B2ABE6C01E098186990295E19E2F80B23A6B3D97","parts":{"total":1,"hash":"B8A47B357210D59E0170747FF4ACDB366C706D57"}},"signature":[1,"E08C7C03E44B8A2DE4807BCD16C35688AA042ED7AE46FA3572759B9CBAE3E14DB6FD7AD14954BAAFCFB080DC6B45075602C865C123E77799DB0896DF07869103"]}}],"peer_key":""}]}
{"time":"2017-10-23T13:26:29.565Z","msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
=======
{"time":"2017-09-21T21:02:21.324Z","crc":2662164156,"msg_size":54,"msg":[3,{"duration":-2001855698,"height":1,"round":0,"step":1}]}
{"time":"2017-09-21T21:02:21.327Z","crc":1757077690,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:02:21.327Z","crc":3823114220,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":1,"hash":"4FBDB1EEEED075D82DA06FB5AF43F868EC369AAA"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"575362A80587D7F1F14F320EE19DDAF9BA565CBEDF902A6DE52E99461E7D8C69683694DCCEB656A2B9614EF0DA1A587C571AA078F727FD0B505777EC9C9F300C"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:21.327Z","crc":2999219296,"msg_size":230,"msg":[2,{"msg":[19,{"Height":1,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010114E67C405F803B0000000000000001147297262C6CD96190E46846C9A0DE1227E76077CF0001000100000000","proof":{"aunts":[]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:21.331Z","crc":2263378695,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:02:21.331Z","crc":3984981327,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":1,"block_id":{"hash":"6AD76FBC533267511F70830EC7D02C1B2EC11EB5","parts":{"total":1,"hash":"4FBDB1EEEED075D82DA06FB5AF43F868EC369AAA"}},"signature":[1,"D47083E71D5D953190899A4082AFFBC3B1497F07291895D1375AB892ED52EC43E77E6EC139DFB3362E8621840E735194FEA1665EC0A3B359E5BE0BC274F8FE02"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:21.332Z","crc":568814784,"msg_size":50,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:02:21.332Z","crc":4002880845,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"6AD76FBC533267511F70830EC7D02C1B2EC11EB5","parts":{"total":1,"hash":"4FBDB1EEEED075D82DA06FB5AF43F868EC369AAA"}},"signature":[1,"FED53EF2E110E04A8FE004A100C00E9518942D99BECA3281403A4FC42A3C0BCECE15FE67BBAFDCC6DDAEA00DE597D4E6952183070B6D823A24D7447AC0B8C60A"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:02:21.340Z","crc":864216102,"msg_size":47,"msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
>>>>>>> add checksum and msg size to TimedWALMessage

+ 13
- 0
consensus/test_data/small_block2.cswal View File

@ -1,4 +1,5 @@
#ENDHEIGHT: 0
<<<<<<< HEAD
{"time":"2017-10-23T13:52:43.764Z","msg":[3,{"duration":-1002188229,"height":1,"round":0,"step":1}]}
{"time":"2017-10-23T13:52:43.766Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-10-23T13:52:43.766Z","msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":4,"hash":"6675CB6BFC1FA7C968167B59BC014D39BE9B34F7"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"02579FC60A63CF9AB5E3130B2047EA89E7DEDA413216F59EFF4C848A25EBBC33F240678873950E79D8404F6AAB9951048E3B5EB80BE97E451D5176DBA1A39507"]}}],"peer_key":""}]}
@ -11,3 +12,15 @@
{"time":"2017-10-23T13:52:43.770Z","msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-10-23T13:52:43.770Z","msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"CB6E7845598FAC92F2AE92DD8BEAB16EEA181600","parts":{"total":4,"hash":"6675CB6BFC1FA7C968167B59BC014D39BE9B34F7"}},"signature":[1,"E0E079B157BE09B0C5F8CAAE98B9378927F6C21DA3E54FA010FF8E570378DABE4BA5537680B41A9C403CFB3307054028B80A29A72CD12098A3C844383DEDA50E"]}}],"peer_key":""}]}
{"time":"2017-10-23T13:52:43.771Z","msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
=======
{"time":"2017-09-21T21:04:15.378Z","crc":1223221531,"msg_size":54,"msg":[3,{"duration":-2001076947,"height":1,"round":0,"step":1}]}
{"time":"2017-09-21T21:04:15.379Z","crc":1757077690,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPropose"}]}
{"time":"2017-09-21T21:04:15.379Z","crc":3871811126,"msg_size":364,"msg":[2,{"msg":[17,{"Proposal":{"height":1,"round":0,"block_parts_header":{"total":2,"hash":"022275F4745CA1690A520BFEA532FA7284BB3C0A"},"pol_round":-1,"pol_block_id":{"hash":"","parts":{"total":0,"hash":""}},"signature":[1,"746889A2795E83E152177575A2DB0E5D720B29D8DE3A2C1CD83BBCC38A992F2D8F43B7951E247EE85FADBF754310A8DC0B75CC09742F375A8CC90828D1BE2009"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:04:15.379Z","crc":2061550640,"msg_size":270,"msg":[2,{"msg":[19,{"Height":1,"Round":0,"Part":{"index":0,"bytes":"0101010F74656E6465726D696E745F74657374010114E67C5AEDA6288000000000000001147297262C6CD96190E46846C9A0DE1227E76077CF00010001000000","proof":{"aunts":["C81B94933420221A7AC004A90242D8B1D3E5070D"]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:04:15.380Z","crc":3313825580,"msg_size":144,"msg":[2,{"msg":[19,{"Height":1,"Round":0,"Part":{"index":1,"bytes":"00","proof":{"aunts":["90B5D854612C60876416CD087401539E0BE90F7D"]}}}],"peer_key":""}]}
{"time":"2017-09-21T21:04:15.380Z","crc":2263378695,"msg_size":48,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrevote"}]}
{"time":"2017-09-21T21:04:15.381Z","crc":3434814947,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":1,"block_id":{"hash":"A4B158C1334517CFDEB21ACD00B81E35322FA8C3","parts":{"total":2,"hash":"022275F4745CA1690A520BFEA532FA7284BB3C0A"}},"signature":[1,"3DD4E445D2072D332C299ABDCF09707F1827511D128E7EC4439CC9DFA8FF1A2F3A5B357AE901FC5C1334EC9605CF5417D995A2ACF814A7E9AD42C8EA32E2E507"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:04:15.381Z","crc":568814784,"msg_size":50,"msg":[1,{"height":1,"round":0,"step":"RoundStepPrecommit"}]}
{"time":"2017-09-21T21:04:15.381Z","crc":2666952672,"msg_size":430,"msg":[2,{"msg":[20,{"Vote":{"validator_address":"D028C9981F7A87F3093672BF0D5B0E2A1B3ED456","validator_index":0,"height":1,"round":0,"type":2,"block_id":{"hash":"A4B158C1334517CFDEB21ACD00B81E35322FA8C3","parts":{"total":2,"hash":"022275F4745CA1690A520BFEA532FA7284BB3C0A"}},"signature":[1,"0C569450E3A83EAD0223CC7FD9E1BA0630DF271A462C69320996537BE674A8943923875A2A9F707164124901AF6090510B82E52AE3984819C843B1527ECBB609"]}}],"peer_key":""}]}
{"time":"2017-09-21T21:04:15.382Z","crc":864216102,"msg_size":47,"msg":[1,{"height":1,"round":0,"step":"RoundStepCommit"}]}
>>>>>>> add checksum and msg size to TimedWALMessage

+ 10
- 3
consensus/wal.go View File

@ -1,6 +1,7 @@
package consensus
import (
"hash/crc32"
"time"
wire "github.com/tendermint/go-wire"
@ -13,8 +14,10 @@ import (
// types and functions for savings consensus messages
type TimedWALMessage struct {
Time time.Time `json:"time"`
Msg WALMessage `json:"msg"`
Time time.Time `json:"time"` // for debugging purposes
CRC uint32 `json:"crc"`
MsgSize uint32 `json:"msg_size"`
Msg WALMessage `json:"msg"`
}
type WALMessage interface{}
@ -83,7 +86,11 @@ func (wal *WAL) Save(wmsg WALMessage) {
}
}
// Write the wal message
var wmsgBytes = wire.JSONBytes(TimedWALMessage{time.Now(), wmsg})
innerMsgBytes := wire.JSONBytes(wmsg)
crc32c := crc32.MakeTable(crc32.Castagnoli)
crc := crc32.Checksum(innerMsgBytes, crc32c)
wmsgSize := uint32(len(innerMsgBytes))
var wmsgBytes = wire.JSONBytes(TimedWALMessage{time.Now(), crc, wmsgSize, wmsg})
err := wal.group.WriteLine(string(wmsgBytes))
if err != nil {
cmn.PanicQ(cmn.Fmt("Error writing msg to consensus wal. Error: %v \n\nMessage: %v", err, wmsg))


Loading…
Cancel
Save