incremental commit merge not complete

This commit is contained in:
philip-morlier 2023-07-12 18:15:05 -07:00
parent 6ed9390f9b
commit f22b6f3e8e
3 changed files with 20 additions and 32 deletions

View File

@ -123,6 +123,10 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg
} }
// Finalize the block, applying any consensus engine specific extras (e.g. block rewards) // Finalize the block, applying any consensus engine specific extras (e.g. block rewards)
p.engine.Finalize(p.bc, header, statedb, block.Transactions(), block.Uncles(), withdrawals) p.engine.Finalize(p.bc, header, statedb, block.Transactions(), block.Uncles(), withdrawals)
//begin PluGeth code injection
pluginPostProcessBlock(block)
blockTracer.PostProcessBlock(block)
// end PluGeth code injection
return receipts, allLogs, *usedGas, nil return receipts, allLogs, *usedGas, nil
} }

View File

@ -33,6 +33,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/miner" "github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/log"
) )
// FullNodeGPO contains default gasprice oracle settings for full node. // FullNodeGPO contains default gasprice oracle settings for full node.
@ -170,9 +171,9 @@ type Config struct {
func CreateConsensusEngine(config *params.ChainConfig, db ethdb.Database) (consensus.Engine, error) { func CreateConsensusEngine(config *params.ChainConfig, db ethdb.Database) (consensus.Engine, error) {
// If proof-of-authority is requested, set it up // If proof-of-authority is requested, set it up
//begin PluGeth code injection //begin PluGeth code injection
if engine := pluginGetEngine(stack, notify, noverify, db); engine != nil { if engine := pluginGetEngine(); engine != nil {
log.Debug("returning plugin consensus engine") log.Error("returning plugin consensus engine")
return engine return engine, nil
} }
//end PluGeth code injection //end PluGeth code injection
if config.Clique != nil { if config.Clique != nil {
@ -186,20 +187,3 @@ func CreateConsensusEngine(config *params.ChainConfig, db ethdb.Database) (conse
} }
return beacon.New(ethash.NewFaker()), nil return beacon.New(ethash.NewFaker()), nil
} }
// CreateConsensusEngine creates a consensus engine for the given chain config.
// Clique is allowed for now to live standalone, but ethash is forbidden and can
// only exist on already merged networks.
func CreateConsensusEngine(config *params.ChainConfig, db ethdb.Database) (consensus.Engine, error) {
// If proof-of-authority is requested, set it up
if config.Clique != nil {
return beacon.New(clique.New(config.Clique, db)), nil
}
// If defaulting to proof-of-work, enforce an already merged network since
// we cannot run PoW algorithms and more, so we cannot even follow a chain
// not coordinated by a beacon node.
if !config.TerminalTotalDifficultyPassed {
return nil, errors.New("ethash is only supported as a historical component of already merged networks")
}
return beacon.New(ethash.NewFaker()), nil
}

View File

@ -3,29 +3,29 @@ package ethconfig
import ( import (
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/plugins" "github.com/ethereum/go-ethereum/plugins"
"github.com/ethereum/go-ethereum/plugins/wrappers" // "github.com/ethereum/go-ethereum/plugins/wrappers"
wengine "github.com/ethereum/go-ethereum/plugins/wrappers/engine" wengine "github.com/ethereum/go-ethereum/plugins/wrappers/engine"
"github.com/ethereum/go-ethereum/plugins/wrappers/backendwrapper" // "github.com/ethereum/go-ethereum/plugins/wrappers/backendwrapper"
"github.com/openrelayxyz/plugeth-utils/core" // "github.com/openrelayxyz/plugeth-utils/core"
"github.com/openrelayxyz/plugeth-utils/restricted" // "github.com/openrelayxyz/plugeth-utils/restricted"
"github.com/ethereum/go-ethereum/consensus" "github.com/ethereum/go-ethereum/consensus"
"github.com/ethereum/go-ethereum/ethdb" // "github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/node" // "github.com/ethereum/go-ethereum/node"
pconsensus "github.com/openrelayxyz/plugeth-utils/restricted/consensus" pconsensus "github.com/openrelayxyz/plugeth-utils/restricted/consensus"
) )
func PluginGetEngine(pl *plugins.PluginLoader, stack *node.Node, notify []string, noverify bool, db ethdb.Database) consensus.Engine { func PluginGetEngine(pl *plugins.PluginLoader) consensus.Engine {
fnList := pl.Lookup("CreateEngine", func(item interface{}) bool { fnList := pl.Lookup("CreateEngine", func(item interface{}) bool {
_, ok := item.(func(core.Node, []string, bool, restricted.Database) pconsensus.Engine) _, ok := item.(func() pconsensus.Engine)
return ok return ok
}) })
for _, fni := range fnList { for _, fni := range fnList {
if fn, ok := fni.(func(core.Node, []string, bool, restricted.Database) pconsensus.Engine); ok { if fn, ok := fni.(func() pconsensus.Engine); ok {
if engine := fn(wrappers.NewNode(stack), notify, noverify, backendwrapper.NewDB(db)); engine != nil { if engine := fn(); engine != nil {
wrappedEngine := wengine.NewWrappedEngine(engine) wrappedEngine := wengine.NewWrappedEngine(engine)
return wrappedEngine return wrappedEngine
} }
@ -35,10 +35,10 @@ func PluginGetEngine(pl *plugins.PluginLoader, stack *node.Node, notify []string
return nil return nil
} }
func pluginGetEngine(stack *node.Node, notify []string, noverify bool, db ethdb.Database) consensus.Engine { func pluginGetEngine() consensus.Engine {
if plugins.DefaultPluginLoader == nil { if plugins.DefaultPluginLoader == nil {
log.Warn("Attempting GetEngine, but default PluginLoader has not been initialized") log.Warn("Attempting GetEngine, but default PluginLoader has not been initialized")
return nil return nil
} }
return PluginGetEngine(plugins.DefaultPluginLoader, stack, notify, noverify, db) return PluginGetEngine(plugins.DefaultPluginLoader)
} }