From bcbf9dafda3dcb8731e95eae803e07b894e29332 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Wed, 8 Oct 2025 13:19:45 +0800 Subject: [PATCH] consensus/XDPoS: remove unused parameters in `BlockConsensusVersion`, close XFN-02 (#1613) --- accounts/abi/bind/backends/simulated.go | 6 +-- commits | 54 ++++++++++++++++++++++ consensus/XDPoS/XDPoS.go | 61 ++++++++++++------------- eth/api_backend.go | 12 +---- params/config.go | 2 +- 5 files changed, 88 insertions(+), 47 deletions(-) create mode 100644 commits diff --git a/accounts/abi/bind/backends/simulated.go b/accounts/abi/bind/backends/simulated.go index 1b1ccfd46f..3b130c12e4 100644 --- a/accounts/abi/bind/backends/simulated.go +++ b/accounts/abi/bind/backends/simulated.go @@ -957,11 +957,7 @@ func (fb *filterBackend) HeaderByNumber(ctx context.Context, number rpc.BlockNum return nil, errors.New("only XDPoS v2 supports committed block lookup") } current := fb.bc.CurrentBlock().Header() - if fb.bc.Config().XDPoS.BlockConsensusVersion( - current.Number, - current.Extra, - XDPoS.ExtraFieldCheck, - ) == params.ConsensusEngineVersion2 { + if fb.bc.Config().XDPoS.BlockConsensusVersion(current.Number) == params.ConsensusEngineVersion2 { confirmedHash := fb.bc.Engine().(*XDPoS.XDPoS).EngineV2.GetLatestCommittedBlockInfo().Hash return fb.bc.GetHeaderByHash(confirmedHash), nil } diff --git a/commits b/commits new file mode 100644 index 0000000000..f548b44009 --- /dev/null +++ b/commits @@ -0,0 +1,54 @@ +I found 50 commits containing the keyword "XFN" in the last 200 commits. Here they are with dates: November 2025: +2025-11-12 - 4bb925258 - params: fix type V2 not equal bug, close XFN-45 (#1737) +2025-11-10 - 366c99ece - consensus: use signer pubkey to check for unique signatures, close XFN-03 (#1643) +2025-11-10 - 7aaa541db - consensus: implement DeepCopy() in PoolObj, close XFN-04 (#1723) +2025-11-10 - 44b7ea808 - consensus: add isEpochSwitch check to IsSigner, close XFN-90 (#1654) +2025-11-04 - 13ed19bcf - all: remove XDCx and XDCxlending public API, close XFN-74 XFN-134 (#1675) +2025-11-04 - 8ca35720c - ethclient: fix variable shadowing in FeeHistory(), close XFN-129 (#1720) +2025-11-04 - 5a2495100 - consensus/XDPoS/utils: remove unused errors, close XFN-122 (#1721) +2025-11-04 - 611668c23 - internal/ethapi: improve ChaindbCompact() and ChaindbProperty(), fix XFN-139 (#1722) +2025-11-04 - 851bdc45d - core: skip AddBalance for special-tx, close XFN-67 (#1629) +2025-11-04 - d31910283 - miner: remove NewMinedBlockEvent, close XFN-50 (#1644) +2025-11-04 - 5d25e016d - params: check XDPoS V2 parameters, close XFN-45 (#1638) +2025-11-03 - c3c3d0355 - common: fix gas fee mismatch before TIPTRC21Fee, close XFN-51 (#1636) +2025-11-03 - 815995e9e - miner: fix inconsistent error evaluation, close XFN-60 (#1632) +2025-11-03 - 0677ab40a - miner: fix pop wrong tx from normal txs queue, close XFN-37 (#1623) +2025-11-03 - 45f7597c9 - engine_v2: verify gap number in UpdateMasternodes, close XFN-11 (#1622) +2025-11-03 - 3cab0036e - miner: fix deep copy in copyReceipts, close XFN-49 (#1620) +2025-11-03 - 5732c4b11 - core/txpool: protect cache with mutex, close XFN-65 (#1630) +2025-11-03 - 7fad428a8 - core/types: reuse signtx, close XFN-63 (#1631) +2025-11-03 - 76aa15b7d - miner: fix concurrent map access in Miner.HashRate, close XFN-52 (#1634) +2025-11-03 - f90a12d9f - miner: fix inconsistent time unit, close XFN-59 (#1633) +2025-11-03 - d451580b3 - miner, XDPoS, XDC: close chanels by owner, close XFN-41 (#1641) +2025-11-03 - 5a26279c1 - engine_v2, params: fix unsynchronized reads of V2.CurrentConfig, close XFN-53 (#1642) +2025-11-03 - 96d39a83e - core: fix variable shadowing, close XFN-104 (#1649) +2025-11-03 - 96fbe67bf - core: fix untracked goroutine in procFutureBlocks, close XFN-105 (#1650) +2025-11-03 - 17cd60454 - eth/gasprice: use Sign() to compare with zero, close XFN-93 (#1655) +2025-11-03 - d8af7fa0d - consensus/XDPoS: avoid use len as variable, close XFN-25 (#1656) +2025-11-03 - 4aafff282 - common: improve function ExtractAddressFromBytes, close XFN-15 (#1658) +2025-11-03 - 09b66ea8c - engine_v2: check overflow first, close XFN-20 (#1659) +2025-11-03 - 4acd3b05e - XDPoS/utils: use strconv.ParseInt to convert int64, close XFN-24 (#1660) +2025-11-03 - 717610c0d - core: handle future block more elegantly, close XFN-101 (#1672) +2025-11-03 - aecb6ff7d - engine_v2: reject wrong signature earlier, close XFN-29 (#1661) +2025-11-03 - 0f4d266b9 - internal/ethapi: fix missing proper error propagation, close XFN-118 (#1683) +2025-11-03 - 737bfa45a - internal/ethapi: prealloc map for the txpool api, close XFN-106 (#1685) +2025-11-03 - 165d0f083 - eth: fix wrong judgement condition, close XFN-73 (#1686) +2025-11-03 - 7614a0ad9 - consensus/XDPoS: convert variables to const, close XFN-123 (#1688) +2025-11-03 - fc748cc52 - engine_v2: add comment for type SnapshotV2, close XFN-124 (#1689) +2025-11-03 - d2706538e - XDPoS/engines, core: fix non idiomatic "comma ok" boolean name, close XFN-126 (#1690) +2025-11-03 - 58c066f05 - all: handle err from func rlp.Encode, close XFN-127 (#1692) +2025-11-03 - 426d4a7a9 - core/txpool: fix name shadowing of filter parameter, close XFN-66 (#1694) +2025-11-03 - 11f0c95b7 - core: fix missing nil check, close XFN-114 (#1696) +2025-11-02 - 9d8599030 - all: fix missing nil check, close XFN-114 (#1695) +2025-11-01 - 2fd4030cb - eth/gasprice: ensure cache purging goroutine terminates with subscription, close XFN-89 (#1687) +October 2025: +2025-10-31 - 336d1f9f3 - core: fix too many goroutines in InitSignerInTransactions, close XFN-75 (#1662) +2025-10-31 - a5e68b9c5 - miner: not sleep if locks multiple mutex, close XFN-40 (#1639) +2025-10-31 - 20ec25c0c - engine_v2: fix data race when initial v2 parameters, close XFN-10 (#1617) +2025-10-08 - 0aa7ccb81 - consensus: check gas limit bounds in header, close XFN-07 (#1616) +2025-10-08 - 8c101cd96 - engine_v2: fix potential modulo by zero, close XFN-17 (#1615) +2025-10-08 - 95f0bd2a4 - engine_v2: check minimum timestamp for the first v2 block, close XFN-16 (#1614) +2025-10-08 - 956767a41 - consensus/XDPoS: remove unused parameters in BlockConsensusVersion, close XFN-02 (#1613) +2025-10-08 - 2ad225d6d - engine_v2: fix unsynchronized QC verification Error, close XFN-09 (#1609) +2025-10-08 - c7fb2e875 - consensus, contracts: check input length of ExtractValidatorsFromBytes, close XFN-14 (#1608) +These commits reference various XFN issue numbers (XFN-02 through XFN-139) and primarily focus on bug fixes, improvements to the consensus engine, miner, and core components. \ No newline at end of file diff --git a/consensus/XDPoS/XDPoS.go b/consensus/XDPoS/XDPoS.go index 3812ecdf23..c497650f71 100644 --- a/consensus/XDPoS/XDPoS.go +++ b/consensus/XDPoS/XDPoS.go @@ -44,7 +44,7 @@ const ( ) func (x *XDPoS) SigHash(header *types.Header) (hash common.Hash) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.SignHash(header) default: // Default "v1" @@ -148,7 +148,7 @@ func NewFaker(db ethdb.Database, chainConfig *params.ChainConfig) *XDPoS { // Reset parameters after checkpoint due to config may change func (x *XDPoS) UpdateParams(header *types.Header) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: x.EngineV2.UpdateParams(header) return @@ -158,7 +158,7 @@ func (x *XDPoS) UpdateParams(header *types.Header) { } func (x *XDPoS) Initial(chain consensus.ChainReader, header *types.Header) error { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.Initial(chain, header) default: // Default "v1" @@ -183,7 +183,7 @@ func (x *XDPoS) APIs(chain consensus.ChainReader) []rpc.API { // Author implements consensus.Engine, returning the Ethereum address recovered // from the signature in the header's extra-data section. func (x *XDPoS) Author(header *types.Header) (common.Address, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.Author(header) default: // Default "v1" @@ -193,7 +193,7 @@ func (x *XDPoS) Author(header *types.Header) (common.Address, error) { // VerifyHeader checks whether a header conforms to the consensus rules. func (x *XDPoS) VerifyHeader(chain consensus.ChainReader, header *types.Header, fullVerify bool, verifyCheckpoint bool) error { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.VerifyHeader(chain, header, fullVerify) default: // Default "v1" @@ -213,7 +213,7 @@ func (x *XDPoS) VerifyHeaders(chain consensus.ChainReader, headers []*types.Head var v2headers []*types.Header for _, header := range headers { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: v2headers = append(v2headers, header) default: // Default "v1" @@ -234,7 +234,7 @@ func (x *XDPoS) VerifyHeaders(chain consensus.ChainReader, headers []*types.Head // VerifyUncles implements consensus.Engine, always returning an error for any // uncles as this consensus mechanism doesn't permit uncles. func (x *XDPoS) VerifyUncles(chain consensus.ChainReader, block *types.Block) error { - switch x.config.BlockConsensusVersion(block.Number(), block.Extra(), ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(block.Number()) { case params.ConsensusEngineVersion2: return x.EngineV2.VerifyUncles(chain, block) default: // Default "v1" @@ -245,7 +245,7 @@ func (x *XDPoS) VerifyUncles(chain consensus.ChainReader, block *types.Block) er // VerifySeal implements consensus.Engine, checking whether the signature contained // in the header satisfies the consensus protocol requirements. func (x *XDPoS) VerifySeal(chain consensus.ChainReader, header *types.Header) error { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return nil default: // Default "v1" @@ -256,7 +256,7 @@ func (x *XDPoS) VerifySeal(chain consensus.ChainReader, header *types.Header) er // Prepare implements consensus.Engine, preparing all the consensus fields of the // header for running the transactions on top. func (x *XDPoS) Prepare(chain consensus.ChainReader, header *types.Header) error { - switch x.config.BlockConsensusVersion(header.Number, nil, SkipExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.Prepare(chain, header) default: // Default "v1" @@ -267,7 +267,7 @@ func (x *XDPoS) Prepare(chain consensus.ChainReader, header *types.Header) error // Finalize implements consensus.Engine, ensuring no uncles are set, nor block // rewards given, and returns the final block. func (x *XDPoS) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, parentState *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.Finalize(chain, header, state, parentState, txs, uncles, receipts) default: // Default "v1" @@ -278,7 +278,7 @@ func (x *XDPoS) Finalize(chain consensus.ChainReader, header *types.Header, stat // Seal implements consensus.Engine, attempting to create a sealed block using // the local signing credentials. func (x *XDPoS) Seal(chain consensus.ChainReader, block *types.Block, stop <-chan struct{}) (*types.Block, error) { - switch x.config.BlockConsensusVersion(block.Number(), block.Extra(), ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(block.Number()) { case params.ConsensusEngineVersion2: return x.EngineV2.Seal(chain, block, stop) default: // Default "v1" @@ -290,7 +290,7 @@ func (x *XDPoS) Seal(chain consensus.ChainReader, block *types.Block, stop <-cha // that a new block should have based on the previous blocks in the chain and the // current signer. func (x *XDPoS) CalcDifficulty(chain consensus.ChainReader, time uint64, parent *types.Header) *big.Int { - switch x.config.BlockConsensusVersion(parent.Number, parent.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(parent.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.CalcDifficulty(chain, time, parent) default: // Default "v1" @@ -299,7 +299,7 @@ func (x *XDPoS) CalcDifficulty(chain consensus.ChainReader, time uint64, parent } func (x *XDPoS) HandleProposedBlock(chain consensus.ChainReader, header *types.Header) error { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.ProposedBlockHandler(chain, header) default: // Default "v1" @@ -324,7 +324,7 @@ func (x *XDPoS) GetPeriod() uint64 { } func (x *XDPoS) IsAuthorisedAddress(chain consensus.ChainReader, header *types.Header, address common.Address) bool { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.IsAuthorisedAddress(chain, header, address) default: // Default "v1" @@ -333,7 +333,7 @@ func (x *XDPoS) IsAuthorisedAddress(chain consensus.ChainReader, header *types.H } func (x *XDPoS) GetMasternodes(chain consensus.ChainReader, header *types.Header) []common.Address { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.GetMasternodes(chain, header) default: // Default "v1" @@ -347,7 +347,7 @@ func (x *XDPoS) GetMasternodesByNumber(chain consensus.ChainReader, blockNumber log.Error("[GetMasternodesByNumber] Unable to find block", "Num", blockNumber) return []common.Address{} } - switch x.config.BlockConsensusVersion(big.NewInt(int64(blockNumber)), blockHeader.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(big.NewInt(int64(blockNumber))) { case params.ConsensusEngineVersion2: return x.EngineV2.GetMasternodes(chain, blockHeader) default: // Default "v1" @@ -356,7 +356,7 @@ func (x *XDPoS) GetMasternodesByNumber(chain consensus.ChainReader, blockNumber } func (x *XDPoS) YourTurn(chain consensus.ChainReader, parent *types.Header, signer common.Address) (bool, error) { - switch x.config.BlockConsensusVersion(big.NewInt(parent.Number.Int64()+1), nil, SkipExtraFieldCheck) { + switch x.config.BlockConsensusVersion(big.NewInt(parent.Number.Int64() + 1)) { case params.ConsensusEngineVersion2: return x.EngineV2.YourTurn(chain, parent, signer) default: // Default "v1" @@ -365,7 +365,7 @@ func (x *XDPoS) YourTurn(chain consensus.ChainReader, parent *types.Header, sign } func (x *XDPoS) GetValidator(creator common.Address, chain consensus.ChainReader, header *types.Header) (common.Address, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { default: // Default "v1", v2 does not need this function return x.EngineV1.GetValidator(creator, chain, header) } @@ -373,7 +373,7 @@ func (x *XDPoS) GetValidator(creator common.Address, chain consensus.ChainReader func (x *XDPoS) UpdateMasternodes(chain consensus.ChainReader, header *types.Header, ms []utils.Masternode) error { // fmt.Println("UpdateMasternodes") - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.UpdateMasternodes(chain, header, ms) default: // Default "v1" @@ -382,7 +382,7 @@ func (x *XDPoS) UpdateMasternodes(chain consensus.ChainReader, header *types.Hea } func (x *XDPoS) RecoverSigner(header *types.Header) (common.Address, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return common.Address{}, nil default: // Default "v1" @@ -391,7 +391,7 @@ func (x *XDPoS) RecoverSigner(header *types.Header) (common.Address, error) { } func (x *XDPoS) RecoverValidator(header *types.Header) (common.Address, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return common.Address{}, nil default: // Default "v1" @@ -401,7 +401,7 @@ func (x *XDPoS) RecoverValidator(header *types.Header) (common.Address, error) { // Get master nodes over extra data of previous checkpoint block. func (x *XDPoS) GetMasternodesFromCheckpointHeader(checkpointHeader *types.Header) []common.Address { - switch x.config.BlockConsensusVersion(checkpointHeader.Number, checkpointHeader.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(checkpointHeader.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.GetMasternodesFromEpochSwitchHeader(checkpointHeader) default: // Default "v1" @@ -411,7 +411,7 @@ func (x *XDPoS) GetMasternodesFromCheckpointHeader(checkpointHeader *types.Heade // Check is epoch switch (checkpoint) block func (x *XDPoS) IsEpochSwitch(header *types.Header) (bool, uint64, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.IsEpochSwitch(header) default: // Default "v1" @@ -420,8 +420,7 @@ func (x *XDPoS) IsEpochSwitch(header *types.Header) (bool, uint64, error) { } func (x *XDPoS) GetCurrentEpochSwitchBlock(chain consensus.ChainReader, blockNumber *big.Int) (uint64, uint64, error) { - header := chain.GetHeaderByNumber(blockNumber.Uint64()) - switch x.config.BlockConsensusVersion(blockNumber, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(blockNumber) { case params.ConsensusEngineVersion2: return x.EngineV2.GetCurrentEpochSwitchBlock(chain, blockNumber) default: // Default "v1" @@ -430,7 +429,7 @@ func (x *XDPoS) GetCurrentEpochSwitchBlock(chain consensus.ChainReader, blockNum } func (x *XDPoS) CalculateMissingRounds(chain consensus.ChainReader, header *types.Header) (*utils.PublicApiMissedRoundsMetadata, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.CalculateMissingRounds(chain, header) default: // Default "v1" @@ -444,7 +443,7 @@ func (x *XDPoS) GetDb() ethdb.Database { } func (x *XDPoS) GetSnapshot(chain consensus.ChainReader, header *types.Header) (*utils.PublicApiSnapshot, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: sp, err := x.EngineV2.GetSnapshot(chain, header) if err != nil { @@ -473,7 +472,7 @@ func (x *XDPoS) GetSnapshot(chain consensus.ChainReader, header *types.Header) ( } func (x *XDPoS) GetAuthorisedSignersFromSnapshot(chain consensus.ChainReader, header *types.Header) ([]common.Address, error) { - switch x.config.BlockConsensusVersion(header.Number, header.Extra, ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(header.Number) { case params.ConsensusEngineVersion2: return x.EngineV2.GetSignersFromSnapshot(chain, header) default: // Default "v1" @@ -482,7 +481,7 @@ func (x *XDPoS) GetAuthorisedSignersFromSnapshot(chain consensus.ChainReader, he } func (x *XDPoS) FindParentBlockToAssign(chain consensus.ChainReader, currentBlock *types.Block) *types.Block { - switch x.config.BlockConsensusVersion(currentBlock.Number(), currentBlock.Extra(), ExtraFieldCheck) { + switch x.config.BlockConsensusVersion(currentBlock.Number()) { case params.ConsensusEngineVersion2: block := x.EngineV2.FindParentBlockToAssign(chain) if block == nil { @@ -547,8 +546,8 @@ func (x *XDPoS) GetCachedSigningTxs(hash common.Hash) ([]*types.Transaction, boo } func (x *XDPoS) GetEpochSwitchInfoBetween(chain consensus.ChainReader, begin, end *types.Header) ([]*types.EpochSwitchInfo, error) { - beginBlockVersion := x.config.BlockConsensusVersion(begin.Number, begin.Extra, ExtraFieldCheck) - endBlockVersion := x.config.BlockConsensusVersion(end.Number, end.Extra, ExtraFieldCheck) + beginBlockVersion := x.config.BlockConsensusVersion(begin.Number) + endBlockVersion := x.config.BlockConsensusVersion(end.Number) if beginBlockVersion == params.ConsensusEngineVersion2 && endBlockVersion == params.ConsensusEngineVersion2 { return x.EngineV2.GetEpochSwitchInfoBetween(chain, begin, end) } diff --git a/eth/api_backend.go b/eth/api_backend.go index f549ddafd6..206715a425 100644 --- a/eth/api_backend.go +++ b/eth/api_backend.go @@ -86,11 +86,7 @@ func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNum return nil, errors.New("PoW does not support confirmed block lookup") } current := b.eth.blockchain.CurrentBlock().Header() - if b.eth.blockchain.Config().XDPoS.BlockConsensusVersion( - current.Number, - current.Extra, - XDPoS.ExtraFieldCheck, - ) == params.ConsensusEngineVersion2 { + if b.eth.blockchain.Config().XDPoS.BlockConsensusVersion(current.Number) == params.ConsensusEngineVersion2 { // TO CHECK: why calling config in XDPoS is blocked (not field and method) confirmedHash := b.XDPoS.EngineV2.GetLatestCommittedBlockInfo().Hash return b.eth.blockchain.GetHeaderByHash(confirmedHash), nil @@ -140,11 +136,7 @@ func (b *EthAPIBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumb return nil, errors.New("PoW does not support confirmed block lookup") } current := b.eth.blockchain.CurrentBlock().Header() - if b.eth.blockchain.Config().XDPoS.BlockConsensusVersion( - current.Number, - current.Extra, - XDPoS.ExtraFieldCheck, - ) == params.ConsensusEngineVersion2 { + if b.eth.blockchain.Config().XDPoS.BlockConsensusVersion(current.Number) == params.ConsensusEngineVersion2 { // TO CHECK: why calling config in XDPoS is blocked (not field and method) confirmedHash := b.XDPoS.EngineV2.GetLatestCommittedBlockInfo().Hash return b.eth.blockchain.GetBlockByHash(confirmedHash), nil diff --git a/params/config.go b/params/config.go index e414acad75..515f4d9dbd 100644 --- a/params/config.go +++ b/params/config.go @@ -513,7 +513,7 @@ func (c *V2Config) Description(name string, indent int) string { return banner } -func (c *XDPoSConfig) BlockConsensusVersion(num *big.Int, extraByte []byte, extraCheck bool) string { +func (c *XDPoSConfig) BlockConsensusVersion(num *big.Int) string { if c.V2 != nil && c.V2.SwitchBlock != nil && num.Cmp(c.V2.SwitchBlock) > 0 { return ConsensusEngineVersion2 }