From 66462eb421901e619cb89a056f079759b91c497a Mon Sep 17 00:00:00 2001 From: devopsbo3 <69951731+devopsbo3@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:27:53 -0600 Subject: [PATCH] Revert "miner: refactor getSealingBlock method (#27993)" This reverts commit 4c1fe069eb6337cce3a18062ffb59bb297d3fdb8. --- miner/payload_building.go | 24 ++---------------------- miner/worker.go | 12 ++++++++++-- miner/worker_test.go | 20 ++------------------ 3 files changed, 14 insertions(+), 42 deletions(-) diff --git a/miner/payload_building.go b/miner/payload_building.go index 5ec756c0e8..74c1eee59f 100644 --- a/miner/payload_building.go +++ b/miner/payload_building.go @@ -175,20 +175,10 @@ func (w *worker) buildPayload(args *BuildPayloadArgs) (*Payload, error) { // Build the initial version with no transaction included. It should be fast // enough to run. The empty payload can at least make sure there is something // to deliver for not missing slot. - emptyParams := &generateParams{ - timestamp: args.Timestamp, - forceTime: true, - parentHash: args.Parent, - coinbase: args.FeeRecipient, - random: args.Random, - withdrawals: args.Withdrawals, - noTxs: true, - } - empty := w.getSealingBlock(emptyParams) + empty := w.getSealingBlock(args.Parent, args.Timestamp, args.FeeRecipient, args.Random, args.Withdrawals, true) if empty.err != nil { return nil, empty.err } - // Construct a payload object for return. payload := newPayload(empty.block, args.Id()) @@ -205,21 +195,11 @@ func (w *worker) buildPayload(args *BuildPayloadArgs) (*Payload, error) { // by the timestamp parameter. endTimer := time.NewTimer(time.Second * 12) - fullParams := &generateParams{ - timestamp: args.Timestamp, - forceTime: true, - parentHash: args.Parent, - coinbase: args.FeeRecipient, - random: args.Random, - withdrawals: args.Withdrawals, - noTxs: false, - } - for { select { case <-timer.C: start := time.Now() - r := w.getSealingBlock(fullParams) + r := w.getSealingBlock(args.Parent, args.Timestamp, args.FeeRecipient, args.Random, args.Withdrawals, false) if r.err == nil { payload.update(r, time.Since(start)) } diff --git a/miner/worker.go b/miner/worker.go index 652dc61d15..3ec8c84dc0 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -1106,9 +1106,17 @@ func (w *worker) commit(env *environment, interval func(), update bool, start ti // getSealingBlock generates the sealing block based on the given parameters. // The generation result will be passed back via the given channel no matter // the generation itself succeeds or not. -func (w *worker) getSealingBlock(params *generateParams) *newPayloadResult { +func (w *worker) getSealingBlock(parent common.Hash, timestamp uint64, coinbase common.Address, random common.Hash, withdrawals types.Withdrawals, noTxs bool) *newPayloadResult { req := &getWorkReq{ - params: params, + params: &generateParams{ + timestamp: timestamp, + forceTime: true, + parentHash: parent, + coinbase: coinbase, + random: random, + withdrawals: withdrawals, + noTxs: noTxs, + }, result: make(chan *newPayloadResult, 1), } select { diff --git a/miner/worker_test.go b/miner/worker_test.go index cc58578e37..e504342fab 100644 --- a/miner/worker_test.go +++ b/miner/worker_test.go @@ -452,15 +452,7 @@ func testGetSealingWork(t *testing.T, chainConfig *params.ChainConfig, engine co // This API should work even when the automatic sealing is not enabled for _, c := range cases { - r := w.getSealingBlock(&generateParams{ - parentHash: c.parent, - timestamp: timestamp, - coinbase: c.coinbase, - random: c.random, - withdrawals: nil, - noTxs: false, - forceTime: true, - }) + r := w.getSealingBlock(c.parent, timestamp, c.coinbase, c.random, nil, false) if c.expectErr { if r.err == nil { t.Error("Expect error but get nil") @@ -476,15 +468,7 @@ func testGetSealingWork(t *testing.T, chainConfig *params.ChainConfig, engine co // This API should work even when the automatic sealing is enabled w.start() for _, c := range cases { - r := w.getSealingBlock(&generateParams{ - parentHash: c.parent, - timestamp: timestamp, - coinbase: c.coinbase, - random: c.random, - withdrawals: nil, - noTxs: false, - forceTime: true, - }) + r := w.getSealingBlock(c.parent, timestamp, c.coinbase, c.random, nil, false) if c.expectErr { if r.err == nil { t.Error("Expect error but get nil")