relab/hotstuff

View change stalls when a leader is silent

Opened this issue · 0 comments

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