separate fullVerifies array into v1fullVerifies and v2fullVerifies (#1618)

This commit is contained in:
Wanwiset Peerapatanapokin 2025-10-16 12:17:05 +04:00 committed by GitHub
parent 6abb4f88da
commit c95d258058
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -203,27 +203,33 @@ func (x *XDPoS) VerifyHeader(chain consensus.ChainReader, header *types.Header,
// method returns a quit channel to abort the operations and a results channel to
// retrieve the async verifications (the order is that of the input slice).
func (x *XDPoS) VerifyHeaders(chain consensus.ChainReader, headers []*types.Header, fullVerifies []bool) (chan<- struct{}, <-chan error) {
abort := make(chan struct{})
results := make(chan error, len(headers))
// Split the headers list into v1 and v2 buckets
var v1headers []*types.Header
var v2headers []*types.Header
var v1fullVerifies []bool
var v2fullVerifies []bool
for _, header := range headers {
for i, header := range headers {
switch x.config.BlockConsensusVersion(header.Number) {
case params.ConsensusEngineVersion2:
v2headers = append(v2headers, header)
v2fullVerifies = append(v2fullVerifies, fullVerifies[i])
default: // Default "v1"
v1headers = append(v1headers, header)
v1fullVerifies = append(v1fullVerifies, fullVerifies[i])
}
}
if v1headers != nil {
x.EngineV1.VerifyHeaders(chain, v1headers, fullVerifies, abort, results)
x.EngineV1.VerifyHeaders(chain, v1headers, v1fullVerifies, abort, results)
}
if v2headers != nil {
x.EngineV2.VerifyHeaders(chain, v2headers, fullVerifies, abort, results)
x.EngineV2.VerifyHeaders(chain, v2headers, v2fullVerifies, abort, results)
}
return abort, results