hotstuff
hotstuff copied to clipboard
View change stalls when a leader is silent
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