mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-19 21:31:37 +00:00
separate fullVerifies array into v1fullVerifies and v2fullVerifies (#1618)
This commit is contained in:
parent
6abb4f88da
commit
c95d258058
1 changed files with 9 additions and 3 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue