mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 18:30:45 +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
|
// 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).
|
// 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) {
|
func (x *XDPoS) VerifyHeaders(chain consensus.ChainReader, headers []*types.Header, fullVerifies []bool) (chan<- struct{}, <-chan error) {
|
||||||
|
|
||||||
abort := make(chan struct{})
|
abort := make(chan struct{})
|
||||||
results := make(chan error, len(headers))
|
results := make(chan error, len(headers))
|
||||||
|
|
||||||
// Split the headers list into v1 and v2 buckets
|
// Split the headers list into v1 and v2 buckets
|
||||||
var v1headers []*types.Header
|
var v1headers []*types.Header
|
||||||
var v2headers []*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) {
|
switch x.config.BlockConsensusVersion(header.Number) {
|
||||||
case params.ConsensusEngineVersion2:
|
case params.ConsensusEngineVersion2:
|
||||||
v2headers = append(v2headers, header)
|
v2headers = append(v2headers, header)
|
||||||
|
v2fullVerifies = append(v2fullVerifies, fullVerifies[i])
|
||||||
default: // Default "v1"
|
default: // Default "v1"
|
||||||
v1headers = append(v1headers, header)
|
v1headers = append(v1headers, header)
|
||||||
|
v1fullVerifies = append(v1fullVerifies, fullVerifies[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if v1headers != nil {
|
if v1headers != nil {
|
||||||
x.EngineV1.VerifyHeaders(chain, v1headers, fullVerifies, abort, results)
|
x.EngineV1.VerifyHeaders(chain, v1headers, v1fullVerifies, abort, results)
|
||||||
}
|
}
|
||||||
if v2headers != nil {
|
if v2headers != nil {
|
||||||
x.EngineV2.VerifyHeaders(chain, v2headers, fullVerifies, abort, results)
|
x.EngineV2.VerifyHeaders(chain, v2headers, v2fullVerifies, abort, results)
|
||||||
}
|
}
|
||||||
|
|
||||||
return abort, results
|
return abort, results
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue