mirror of https://github.com/poanetwork/quorum.git
raft: pass gas floor and gas ceil to calcGasLimit when minting block
This commit is contained in:
parent
2d22fd0044
commit
efd39f1b6a
|
@ -252,7 +252,7 @@ func RegisterRaftService(stack *node.Node, ctx *cli.Context, cfg gethConfig, eth
|
|||
|
||||
ethereum := <-ethChan
|
||||
|
||||
return raft.New(ctx, ethereum.ChainConfig(), myId, raftPort, joinExisting, blockTimeNanos, ethereum, peers, datadir)
|
||||
return raft.New(ctx, ethereum.ChainConfig(), myId, raftPort, joinExisting, blockTimeNanos, ethereum, peers, datadir, &cfg.Eth)
|
||||
}); err != nil {
|
||||
utils.Fatalf("Failed to register the Raft service: %v", err)
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ type RaftService struct {
|
|||
nodeKey *ecdsa.PrivateKey
|
||||
}
|
||||
|
||||
func New(ctx *node.ServiceContext, chainConfig *params.ChainConfig, raftId, raftPort uint16, joinExisting bool, blockTime time.Duration, e *eth.Ethereum, startPeers []*enode.Node, datadir string) (*RaftService, error) {
|
||||
func New(ctx *node.ServiceContext, chainConfig *params.ChainConfig, raftId, raftPort uint16, joinExisting bool, blockTime time.Duration, e *eth.Ethereum, startPeers []*enode.Node, datadir string, ethCfg *eth.Config) (*RaftService, error) {
|
||||
service := &RaftService{
|
||||
eventMux: ctx.EventMux,
|
||||
chainDb: e.ChainDb(),
|
||||
|
@ -48,7 +48,7 @@ func New(ctx *node.ServiceContext, chainConfig *params.ChainConfig, raftId, raft
|
|||
nodeKey: ctx.NodeKey(),
|
||||
}
|
||||
|
||||
service.minter = newMinter(chainConfig, service, blockTime)
|
||||
service.minter = newMinter(chainConfig, service, blockTime, ethCfg)
|
||||
|
||||
var err error
|
||||
if service.raftProtocolManager, err = NewProtocolManager(raftId, raftPort, service.blockchain, service.eventMux, startPeers, joinExisting, datadir, service.minter, service.downloader); err != nil {
|
||||
|
|
|
@ -18,6 +18,7 @@ package raft
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/ethereum/go-ethereum/eth"
|
||||
"math/big"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
|
@ -70,6 +71,7 @@ type minter struct {
|
|||
chainHeadSub event.Subscription
|
||||
txPreChan chan core.NewTxsEvent
|
||||
txPreSub event.Subscription
|
||||
ethCfg *eth.Config
|
||||
}
|
||||
|
||||
type extraSeal struct {
|
||||
|
@ -77,7 +79,7 @@ type extraSeal struct {
|
|||
Signature []byte // Signature of the block minter
|
||||
}
|
||||
|
||||
func newMinter(config *params.ChainConfig, eth *RaftService, blockTime time.Duration) *minter {
|
||||
func newMinter(config *params.ChainConfig, eth *RaftService, blockTime time.Duration, ethCfg *eth.Config) *minter {
|
||||
minter := &minter{
|
||||
config: config,
|
||||
eth: eth,
|
||||
|
@ -91,6 +93,7 @@ func newMinter(config *params.ChainConfig, eth *RaftService, blockTime time.Dura
|
|||
invalidRaftOrderingChan: make(chan InvalidRaftOrdering, 1),
|
||||
chainHeadChan: make(chan core.ChainHeadEvent, 1),
|
||||
txPreChan: make(chan core.NewTxsEvent, 4096),
|
||||
ethCfg: ethCfg,
|
||||
}
|
||||
|
||||
minter.chainHeadSub = eth.BlockChain().SubscribeChainHeadEvent(minter.chainHeadChan)
|
||||
|
@ -262,7 +265,7 @@ func (minter *minter) createWork() *work {
|
|||
ParentHash: parent.Hash(),
|
||||
Number: parentNumber.Add(parentNumber, common.Big1),
|
||||
Difficulty: ethash.CalcDifficulty(minter.config, uint64(tstamp), parent.Header()),
|
||||
GasLimit: core.CalcGasLimit(parent, parent.GasLimit(), parent.GasLimit()),
|
||||
GasLimit: core.CalcGasLimit(parent, minter.ethCfg.MinerGasFloor, minter.ethCfg.MinerGasCeil),
|
||||
GasUsed: 0,
|
||||
Coinbase: minter.coinbase,
|
||||
Time: big.NewInt(tstamp),
|
||||
|
|
Loading…
Reference in New Issue