incremental commit merge not complete
This commit is contained in:
parent
6ed9390f9b
commit
f22b6f3e8e
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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
|
|
||||||
}
|
|
||||||
|
@ -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)
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user