relab / hotstuff

MIT License
166 stars 52 forks source link

View change stalls when a leader is silent #106

Open hans-repo opened 10 months ago

hans-repo commented 10 months ago

When running an experiment with a single silent leader, the protocol stalls as soon as that silent leader proposes no block.

Commands I am running:

./hotstuff run --output experiments --measurement-interval 1s --replicas 7 --duration 35s --byzantine "silence:1" --client-timeout 30s --clients 1 consensus chainedhotstuff --metrics "client-latency","throughput","timeouts","datalogger" --log-level debug

In the DEBUG logs it becomes clear that the protocol proceeds until the silent node (here hs1) proposes no block and NewView messages are not triggered.

Full logs Full logs: ``` 2023-08-23T13:59:12.578+1000 INFO ctrl orchestration/controller.go:281 replica 1 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:281 replica 2 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:281 replica 3 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:281 replica 4 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:281 replica 5 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:281 replica 6 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:281 replica 7 assigned to host localhost 2023-08-23T13:59:12.580+1000 INFO ctrl orchestration/controller.go:287 client 1 assigned to host localhost 2023-08-23T13:59:12.581+1000 INFO ctrl orchestration/controller.go:77 Creating replicas... 2023-08-23T13:59:12.602+1000 INFO hs7 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.602+1000 INFO hs7 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.604+1000 INFO hs1 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.604+1000 INFO hs1 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.604+1000 INFO hs2 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.604+1000 INFO hs2 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.604+1000 INFO hs3 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.604+1000 INFO hs3 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.605+1000 INFO hs4 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.605+1000 INFO hs4 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.605+1000 INFO hs5 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.605+1000 INFO hs5 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.606+1000 INFO hs6 metrics/throughput.go:53 Throughput metric enabled 2023-08-23T13:59:12.606+1000 INFO hs6 metrics/timeouts.go:42 ViewTimeouts metric enabled. 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 1: localhost 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 2: localhost 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 3: localhost 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 4: localhost 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 5: localhost 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 6: localhost 2023-08-23T13:59:12.606+1000 DEBUG ctrl orchestration/controller.go:170 Address for replica 7: localhost 2023-08-23T13:59:12.606+1000 INFO ctrl orchestration/controller.go:83 Starting replicas... 2023-08-23T13:59:12.850+1000 INFO ctrl orchestration/controller.go:89 Starting clients... 2023-08-23T13:59:12.848+1000 DEBUG hs7 backend/config.go:150 Replica 1 connected from address 127.0.0.1:49287 2023-08-23T13:59:12.848+1000 DEBUG hs4 backend/config.go:150 Replica 1 connected from address 127.0.0.1:49284 2023-08-23T13:59:12.850+1000 DEBUG hs5 backend/config.go:150 Replica 1 connected from address 127.0.0.1:49285 2023-08-23T13:59:12.851+1000 DEBUG hs7 backend/config.go:150 Replica 2 connected from address 127.0.0.1:49291 2023-08-23T13:59:12.851+1000 DEBUG hs4 backend/config.go:150 Replica 2 connected from address 127.0.0.1:49294 2023-08-23T13:59:12.851+1000 DEBUG hs7 backend/config.go:150 Replica 3 connected from address 127.0.0.1:49299 2023-08-23T13:59:12.851+1000 DEBUG hs4 backend/config.go:150 Replica 3 connected from address 127.0.0.1:49296 2023-08-23T13:59:12.851+1000 DEBUG hs7 backend/config.go:150 Replica 4 connected from address 127.0.0.1:49302 2023-08-23T13:59:12.851+1000 DEBUG hs4 backend/config.go:150 Replica 5 connected from address 127.0.0.1:49309 2023-08-23T13:59:12.851+1000 DEBUG hs4 backend/config.go:150 Replica 6 connected from address 127.0.0.1:49315 2023-08-23T13:59:12.851+1000 DEBUG hs4 backend/config.go:150 Replica 7 connected from address 127.0.0.1:49321 2023-08-23T13:59:12.851+1000 DEBUG hs5 backend/config.go:150 Replica 2 connected from address 127.0.0.1:49295 2023-08-23T13:59:12.851+1000 DEBUG hs5 backend/config.go:150 Replica 3 connected from address 127.0.0.1:49297 2023-08-23T13:59:12.851+1000 DEBUG hs5 backend/config.go:150 Replica 4 connected from address 127.0.0.1:49306 2023-08-23T13:59:12.851+1000 DEBUG hs5 backend/config.go:150 Replica 6 connected from address 127.0.0.1:49316 2023-08-23T13:59:12.851+1000 DEBUG hs5 backend/config.go:150 Replica 7 connected from address 127.0.0.1:49322 2023-08-23T13:59:12.850+1000 DEBUG hs2 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.851+1000 DEBUG hs7 backend/config.go:150 Replica 5 connected from address 127.0.0.1:49311 2023-08-23T13:59:12.851+1000 DEBUG hs1 backend/config.go:150 Replica 2 connected from address 127.0.0.1:49292 2023-08-23T13:59:12.849+1000 DEBUG hs3 backend/config.go:150 Replica 1 connected from address 127.0.0.1:49289 2023-08-23T13:59:12.850+1000 DEBUG hs6 backend/config.go:150 Replica 1 connected from address 127.0.0.1:49286 2023-08-23T13:59:12.851+1000 DEBUG hs6 backend/config.go:150 Replica 2 connected from address 127.0.0.1:49290 2023-08-23T13:59:12.851+1000 DEBUG hs6 backend/config.go:150 Replica 3 connected from address 127.0.0.1:49298 2023-08-23T13:59:12.851+1000 DEBUG hs6 backend/config.go:150 Replica 4 connected from address 127.0.0.1:49307 2023-08-23T13:59:12.851+1000 DEBUG hs6 backend/config.go:150 Replica 5 connected from address 127.0.0.1:49310 2023-08-23T13:59:12.851+1000 DEBUG hs6 backend/config.go:150 Replica 7 connected from address 127.0.0.1:49323 2023-08-23T13:59:12.852+1000 DEBUG hs7 backend/config.go:150 Replica 6 connected from address 127.0.0.1:49317 2023-08-23T13:59:12.852+1000 DEBUG hs3 backend/config.go:150 Replica 2 connected from address 127.0.0.1:49293 2023-08-23T13:59:12.852+1000 DEBUG hs3 backend/config.go:150 Replica 4 connected from address 127.0.0.1:49305 2023-08-23T13:59:12.852+1000 DEBUG hs3 backend/config.go:150 Replica 5 connected from address 127.0.0.1:49308 2023-08-23T13:59:12.852+1000 DEBUG hs3 backend/config.go:150 Replica 6 connected from address 127.0.0.1:49314 2023-08-23T13:59:12.852+1000 DEBUG hs3 backend/config.go:150 Replica 7 connected from address 127.0.0.1:49320 2023-08-23T13:59:12.852+1000 DEBUG hs1 backend/config.go:150 Replica 3 connected from address 127.0.0.1:49300 2023-08-23T13:59:12.852+1000 DEBUG hs1 backend/config.go:150 Replica 4 connected from address 127.0.0.1:49303 2023-08-23T13:59:12.852+1000 DEBUG hs1 backend/config.go:150 Replica 5 connected from address 127.0.0.1:49312 2023-08-23T13:59:12.852+1000 DEBUG hs1 backend/config.go:150 Replica 6 connected from address 127.0.0.1:49318 2023-08-23T13:59:12.852+1000 DEBUG hs1 backend/config.go:150 Replica 7 connected from address 127.0.0.1:49324 2023-08-23T13:59:12.852+1000 INFO cli1 metrics/clientlatency.go:50 Client Latency metric enabled 2023-08-23T13:59:12.892+1000 INFO cli1 client/client.go:154 Starting to send commands 2023-08-23T13:59:12.897+1000 DEBUG hs4 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs1 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.897+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.897+1000 DEBUG hs6 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs2 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs3 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.897+1000 DEBUG hs5 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.897+1000 DEBUG hs7 consensus/consensus.go:168 OnPropose: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.897+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.898+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.897+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:88 OnPropose: liveness condition failed 2023-08-23T13:59:12.898+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(4): jQvwYOlX 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(1): jQvwYOlX 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(3): jQvwYOlX 2023-08-23T13:59:12.898+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(2): jQvwYOlX 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(5): jQvwYOlX 2023-08-23T13:59:12.898+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.898+1000 DEBUG hs2 backend/config.go:150 Replica 1 connected from address 127.0.0.1:49288 2023-08-23T13:59:12.898+1000 DEBUG hs2 backend/config.go:150 Replica 3 connected from address 127.0.0.1:49301 2023-08-23T13:59:12.898+1000 DEBUG hs2 backend/config.go:150 Replica 4 connected from address 127.0.0.1:49304 2023-08-23T13:59:12.898+1000 DEBUG hs2 backend/config.go:150 Replica 5 connected from address 127.0.0.1:49313 2023-08-23T13:59:12.898+1000 DEBUG hs2 backend/config.go:150 Replica 6 connected from address 127.0.0.1:49319 2023-08-23T13:59:12.898+1000 DEBUG hs2 backend/config.go:150 Replica 7 connected from address 127.0.0.1:49325 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(6): jQvwYOlX 2023-08-23T13:59:12.898+1000 DEBUG hs3 consensus/votingmachine.go:51 OnVote(7): jQvwYOlX 2023-08-23T13:59:12.900+1000 DEBUG hs3 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.900+1000 DEBUG hs3 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.900+1000 DEBUG hs3 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.901+1000 DEBUG hs3 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs4 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 5 4 1 3 2 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs6 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs2 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs1 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs5 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs7 consensus/consensus.go:168 OnPropose: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.901+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.902+1000 DEBUG hs1 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.902+1000 DEBUG hs1 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.902+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.902+1000 DEBUG hs4 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.902+1000 DEBUG hs4 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.902+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.902+1000 DEBUG hs5 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.902+1000 DEBUG hs5 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(3): ZuOQzwax 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(4): ZuOQzwax 2023-08-23T13:59:12.902+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.902+1000 DEBUG hs6 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.902+1000 DEBUG hs6 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.902+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.902+1000 DEBUG hs7 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.902+1000 DEBUG hs7 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(1): ZuOQzwax 2023-08-23T13:59:12.902+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.902+1000 DEBUG hs2 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.902+1000 DEBUG hs2 synchronizer/synchronizer.go:325 advanced to view 2 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(5): ZuOQzwax 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(6): ZuOQzwax 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(7): ZuOQzwax 2023-08-23T13:59:12.902+1000 DEBUG hs4 consensus/votingmachine.go:51 OnVote(2): ZuOQzwax 2023-08-23T13:59:12.903+1000 DEBUG hs4 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.903+1000 DEBUG hs4 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.903+1000 DEBUG hs4 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.903+1000 DEBUG hs4 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs3 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs7 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 1 5 6 4 3 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs1 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs2 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 1 5 6 4 3 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs5 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs6 consensus/consensus.go:168 OnPropose: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 3 1 5 6 4 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs1 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.903+1000 DEBUG hs1 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.903+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 5 4 1 3 2 ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.903+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs3 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.904+1000 DEBUG hs3 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.904+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs7 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.904+1000 DEBUG hs7 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.904+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 4 1 3 2 5 ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs5 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.904+1000 DEBUG hs5 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.904+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs6 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.904+1000 DEBUG hs6 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.904+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: T+peaj parent: AAAAAA, proposer: 0, view: 0 , cert: QC{ hash: AAAAAA, IDs: [ ] } } 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(4): hU9C/V+S 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(1): hU9C/V+S 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(3): hU9C/V+S 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(7): hU9C/V+S 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(5): hU9C/V+S 2023-08-23T13:59:12.904+1000 DEBUG hs2 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(6): hU9C/V+S 2023-08-23T13:59:12.904+1000 DEBUG hs2 synchronizer/synchronizer.go:325 advanced to view 3 2023-08-23T13:59:12.904+1000 DEBUG hs5 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.904+1000 DEBUG hs5 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.904+1000 DEBUG hs5 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.905+1000 DEBUG hs4 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.905+1000 DEBUG hs6 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.905+1000 DEBUG hs1 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 7 3 4 5 1 ] } } 2023-08-23T13:59:12.905+1000 DEBUG hs7 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.906+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.906+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.906+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.906+1000 DEBUG hs4 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.906+1000 DEBUG hs4 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.906+1000 DEBUG hs4 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.907+1000 DEBUG hs5 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 1 7 3 4 5 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs5 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs5 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.907+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 6 4 3 1 5 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 4 1 3 2 5 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs1 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs1 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.907+1000 DEBUG hs5 consensus/votingmachine.go:51 OnVote(2): hU9C/V+S 2023-08-23T13:59:12.907+1000 DEBUG hs1 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.907+1000 DEBUG hs1 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.907+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 3 1 5 6 4 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs7 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs7 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.907+1000 DEBUG hs7 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.907+1000 DEBUG hs7 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.907+1000 DEBUG hs3 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs2 consensus/consensus.go:168 OnPropose: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.907+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.908+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.908+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.908+1000 DEBUG hs6 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.908+1000 DEBUG hs6 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.908+1000 DEBUG hs6 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.908+1000 DEBUG hs6 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.908+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(5): n7EOMpmS 2023-08-23T13:59:12.908+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(1): n7EOMpmS 2023-08-23T13:59:12.908+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(6): n7EOMpmS 2023-08-23T13:59:12.907+1000 DEBUG hs4 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.910+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 5 4 1 3 2 ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs3 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs3 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.910+1000 DEBUG hs3 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.910+1000 DEBUG hs3 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.910+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs2 consensus/consensus.go:285 EXEC: Block{ hash: jQvwYO parent: T+peaj, proposer: 2, view: 1 , cert: QC{ hash: T+peaj, IDs: [ ] } } 2023-08-23T13:59:12.910+1000 DEBUG hs2 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.910+1000 DEBUG hs2 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.910+1000 DEBUG hs2 synchronizer/synchronizer.go:325 advanced to view 4 2023-08-23T13:59:12.911+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(3): n7EOMpmS 2023-08-23T13:59:12.912+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(2): n7EOMpmS 2023-08-23T13:59:12.912+1000 DEBUG hs6 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.912+1000 DEBUG hs6 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.912+1000 DEBUG hs6 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.912+1000 DEBUG hs6 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 1 3 2 6 5 ] } } 2023-08-23T13:59:12.912+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 1 7 3 4 5 ] } } 2023-08-23T13:59:12.912+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.912+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 2 6 5 1 3 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs6 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs6 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.912+1000 DEBUG hs3 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 3 2 6 5 1 ] } } 2023-08-23T13:59:12.912+1000 DEBUG hs7 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 3 2 6 5 1 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(7): n7EOMpmS 2023-08-23T13:59:12.913+1000 DEBUG hs6 consensus/votingmachine.go:51 OnVote(4): n7EOMpmS 2023-08-23T13:59:12.913+1000 DEBUG hs5 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 6 5 1 3 2 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs1 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 2 6 5 1 3 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs2 consensus/consensus.go:168 OnPropose: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 1 3 2 6 5 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 3 1 5 6 4 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 4 1 3 2 5 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.913+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 3 4 5 1 7 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 4 1 3 2 5 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs7 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 4 1 3 2 5 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs7 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.913+1000 DEBUG hs7 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.913+1000 DEBUG hs7 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.914+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(6): +nA2iZtx 2023-08-23T13:59:12.914+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(7): +nA2iZtx 2023-08-23T13:59:12.913+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 3 1 5 6 4 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 1 3 2 5 4 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs3 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 2 5 4 1 3 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs3 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.914+1000 DEBUG hs3 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.914+1000 DEBUG hs3 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.914+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs4 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.914+1000 DEBUG hs4 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.914+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.913+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 1 7 3 4 5 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 2 5 4 1 3 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs5 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs5 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.914+1000 DEBUG hs5 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.914+1000 DEBUG hs5 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.914+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(4): +nA2iZtx 2023-08-23T13:59:12.914+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(3): +nA2iZtx 2023-08-23T13:59:12.914+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 3 4 5 1 7 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 3 1 5 6 4 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 3 2 5 4 1 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs2 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 2 5 4 1 3 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs2 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.914+1000 DEBUG hs2 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.914+1000 DEBUG hs2 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.914+1000 DEBUG hs1 consensus/consensus.go:285 EXEC: Block{ hash: ZuOQzw parent: jQvwYO, proposer: 3, view: 2 , cert: QC{ hash: jQvwYO, IDs: [ 5 4 1 3 2 ] } } 2023-08-23T13:59:12.914+1000 DEBUG hs1 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.914+1000 DEBUG hs1 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.914+1000 DEBUG hs1 synchronizer/synchronizer.go:325 advanced to view 5 2023-08-23T13:59:12.915+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(5): +nA2iZtx 2023-08-23T13:59:12.915+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(2): +nA2iZtx 2023-08-23T13:59:12.915+1000 DEBUG hs7 consensus/votingmachine.go:51 OnVote(1): +nA2iZtx 2023-08-23T13:59:12.915+1000 DEBUG hs7 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.915+1000 DEBUG hs7 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.915+1000 DEBUG hs7 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.915+1000 DEBUG hs7 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 3 4 5 7 6 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 3 2 6 5 1 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs7 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs7 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs3 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 4 5 7 6 3 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs7 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.915+1000 DEBUG hs1 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 5 7 6 3 4 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs5 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 5 7 6 3 4 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs4 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 5 7 6 3 4 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 2 6 5 1 3 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 1 7 3 4 5 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs3 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 3 1 5 6 4 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs3 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 6 5 1 3 2 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs3 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.916+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 1 3 2 6 5 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 1 7 3 4 5 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs2 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 6 3 4 5 7 ] } } 2023-08-23T13:59:12.915+1000 DEBUG hs6 consensus/consensus.go:168 OnPropose: Block{ hash: w4HS3L parent: +nA2iZ, proposer: 7, view: 6 , cert: QC{ hash: +nA2iZ, IDs: [ 3 4 5 7 6 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 6 5 1 3 2 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 5 1 7 3 4 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs4 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 1 5 6 4 3 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs4 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs4 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.916+1000 DEBUG hs5 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs4 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.916+1000 DEBUG hs4 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.916+1000 DEBUG hs1 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 1 5 6 4 3 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs5 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs1 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 6 4 3 1 5 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs5 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.916+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 6 5 1 3 2 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs5 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.916+1000 DEBUG hs5 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.916+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:53 PRE_COMMIT: Block{ hash: +nA2iZ parent: n7EOMp, proposer: 6, view: 5 , cert: QC{ hash: n7EOMp, IDs: [ 3 2 6 5 1 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 1 7 3 4 5 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs1 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.916+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:61 COMMIT: Block{ hash: n7EOMp parent: hU9C/V, proposer: 5, view: 4 , cert: QC{ hash: hU9C/V, IDs: [ 7 3 4 5 1 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs2 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs2 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 5 6 4 3 1 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs2 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.916+1000 DEBUG hs2 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.916+1000 DEBUG hs2 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.916+1000 DEBUG hs3 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.916+1000 DEBUG hs6 chainedhotstuff/chainedhotstuff.go:71 DECIDE: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs3 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.916+1000 DEBUG hs6 consensus/consensus.go:285 EXEC: Block{ hash: hU9C/V parent: ZuOQzw, proposer: 4, view: 3 , cert: QC{ hash: ZuOQzw, IDs: [ 4 3 1 5 6 ] } } 2023-08-23T13:59:12.916+1000 DEBUG hs6 replica/clientsrv.go:114 Hash: e3b0c44298fc1c14 2023-08-23T13:59:12.916+1000 DEBUG hs6 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.916+1000 DEBUG hs6 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.916+1000 DEBUG hs1 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.916+1000 DEBUG hs1 synchronizer/synchronizer.go:325 advanced to view 6 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(7): w4HS3LUL 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(4): w4HS3LUL 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(5): w4HS3LUL 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(1): w4HS3LUL 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(2): w4HS3LUL 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(3): w4HS3LUL 2023-08-23T13:59:12.917+1000 DEBUG hs1 synchronizer/synchronizer.go:348 HighQC updated 2023-08-23T13:59:12.917+1000 DEBUG hs1 synchronizer/synchronizer.go:325 advanced to view 7 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/consensus.go:114 Propose 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/consensus.go:139 Propose: No block 2023-08-23T13:59:12.917+1000 DEBUG hs1 consensus/votingmachine.go:51 OnVote(6): w4HS3LUL 2023-08-23T13:59:42.894+1000 DEBUG cli1 client/client.go:289 Command timed out. 2023-08-23T13:59:42.894+1000 DEBUG cli1 client/client.go:289 Command timed out. 2023-08-23T13:59:42.894+1000 DEBUG cli1 client/client.go:289 Command timed out. 2023-08-23T13:59:42.915+1000 DEBUG cli1 client/client.go:289 Command timed out. 2023-08-23T13:59:42.915+1000 DEBUG cli1 client/client.go:289 Command timed out. 2023-08-23T13:59:42.916+1000 DEBUG cli1 client/client.go:289 Command timed out. 2023-08-23T13:59:47.893+1000 INFO ctrl orchestration/controller.go:97 Stopping clients... 2023-08-23T13:59:47.901+1000 INFO cli1 client/client.go:170 Done sending commands (executed: 3, failed: 0, timeouts: 6) 2023-08-23T13:59:47.901+1000 INFO ctrl orchestration/controller.go:104 Waiting 500ms for replicas to finish. 2023-08-23T13:59:48.403+1000 INFO ctrl orchestration/controller.go:108 Stopping replicas... ```

When running the same parameters without the silent node (--byzantine "silence:0"), there is no issue. Full command with 0 silent nodes:

./hotstuff run --output experiments --measurement-interval 1s --replicas 7 --duration 35s --byzantine "silence:0" --client-timeout 30s --clients 1 consensus chainedhotstuff --metrics "client-latency","throughput","timeouts","datalogger" --log-level debug