Skip to content

Commit

Permalink
Refactor the quorum batches computing (#1191)
Browse files Browse the repository at this point in the history
  • Loading branch information
jianoaix authored Jan 31, 2025
1 parent 8424283 commit b5e3c8b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion disperser/dataapi/nonsigner_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ func computeNumFailed(batches []*BatchNonSigningInfo, operatorQuorumIntervals Op
func computeNumResponsible(batches []*BatchNonSigningInfo, operatorQuorumIntervals OperatorQuorumIntervals) map[string]map[uint8]int {
// Create quorumBatches, where quorumBatches[q].AccuBatches is the total number of
// batches in block interval [startBlock, b] for quorum "q".
quorumBatches := CreatQuorumBatches(batches)
quorumBatches := CreatQuorumBatches(CreateQuorumBatchMap(batches))

numResponsible := make(map[string]map[uint8]int)
for op, val := range operatorQuorumIntervals {
Expand Down
12 changes: 9 additions & 3 deletions disperser/dataapi/nonsigner_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,9 @@ func ComputeNumBatches(quorumBatches *QuorumBatches, startBlock, endBlock uint32
return num
}

// CreatQuorumBatches returns quorumBatches, where quorumBatches[q] is a list of
// QuorumBatches in ascending order by block number.
func CreatQuorumBatches(batches []*BatchNonSigningInfo) map[uint8]*QuorumBatches {
// CreateQuorumBatchMap returns quorumBatchMap, where quorumBatchMap[q][b] means the number of
// batches at block b that have dispersed to quorum q.
func CreateQuorumBatchMap(batches []*BatchNonSigningInfo) map[uint8]map[uint32]int {
quorumBatchMap := make(map[uint8]map[uint32]int)
for _, batch := range batches {
for _, q := range batch.QuorumNumbers {
Expand All @@ -221,6 +221,12 @@ func CreatQuorumBatches(batches []*BatchNonSigningInfo) map[uint8]*QuorumBatches
quorumBatchMap[q][batch.ReferenceBlockNumber]++
}
}
return quorumBatchMap
}

// CreatQuorumBatches returns quorumBatches, where quorumBatches[q] is a list of
// QuorumBatches in ascending order by block number.
func CreatQuorumBatches(quorumBatchMap map[uint8]map[uint32]int) map[uint8]*QuorumBatches {
quorumBatches := make(map[uint8]*QuorumBatches)
for q, s := range quorumBatchMap {
numBatches := make([]*NumBatchesAtBlock, 0)
Expand Down
2 changes: 1 addition & 1 deletion disperser/dataapi/nonsigner_utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ func TestCreatQuorumBatches(t *testing.T) {
},
}

quorumBatches := dataapi.CreatQuorumBatches(batchNonSigningInfo)
quorumBatches := dataapi.CreatQuorumBatches(dataapi.CreateQuorumBatchMap(batchNonSigningInfo))

assert.Equal(t, 3, len(quorumBatches))

Expand Down

0 comments on commit b5e3c8b

Please sign in to comment.