Implement command line argument to set the amount of agents created by the miner
Defaults to the amount of cores available on the CPU
This commit is contained in:
parent
ee9df32dba
commit
5aff8bfb59
|
@ -63,6 +63,7 @@ var (
|
|||
DebugFile string
|
||||
LogLevel int
|
||||
VmType int
|
||||
MinerThreads int
|
||||
)
|
||||
|
||||
// flags specific to gui client
|
||||
|
@ -137,6 +138,8 @@ func Init() {
|
|||
flag.StringVar(&BootNodes, "bootnodes", "", "space-separated node URLs for discovery bootstrap")
|
||||
flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
|
||||
|
||||
flag.IntVar(&MinerThreads, "minerthreads", runtime.NumCPU(), "number of miner threads")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
var err error
|
||||
|
|
|
@ -52,19 +52,20 @@ func run() error {
|
|||
config := utils.InitConfig(VmType, ConfigFile, Datadir, "ETH")
|
||||
|
||||
ethereum, err := eth.New(ð.Config{
|
||||
Name: p2p.MakeName(ClientIdentifier, Version),
|
||||
KeyStore: KeyStore,
|
||||
DataDir: Datadir,
|
||||
LogFile: LogFile,
|
||||
LogLevel: LogLevel,
|
||||
MaxPeers: MaxPeer,
|
||||
Port: OutboundPort,
|
||||
NAT: NAT,
|
||||
Shh: true,
|
||||
BootNodes: BootNodes,
|
||||
NodeKey: NodeKey,
|
||||
KeyRing: KeyRing,
|
||||
Dial: true,
|
||||
Name: p2p.MakeName(ClientIdentifier, Version),
|
||||
KeyStore: KeyStore,
|
||||
DataDir: Datadir,
|
||||
LogFile: LogFile,
|
||||
LogLevel: LogLevel,
|
||||
MaxPeers: MaxPeer,
|
||||
Port: OutboundPort,
|
||||
NAT: NAT,
|
||||
Shh: true,
|
||||
BootNodes: BootNodes,
|
||||
NodeKey: NodeKey,
|
||||
KeyRing: KeyRing,
|
||||
Dial: true,
|
||||
MinerThreads: MinerThreads,
|
||||
})
|
||||
if err != nil {
|
||||
mainlogger.Fatalln(err)
|
||||
|
|
|
@ -225,7 +225,7 @@ func StartMining(ethereum *eth.Ethereum) bool {
|
|||
go func() {
|
||||
clilogger.Infoln("Start mining")
|
||||
if gminer == nil {
|
||||
gminer = miner.New(addr, ethereum)
|
||||
gminer = miner.New(addr, ethereum, 4)
|
||||
}
|
||||
gminer.Start()
|
||||
}()
|
||||
|
|
|
@ -53,6 +53,8 @@ type Config struct {
|
|||
Shh bool
|
||||
Dial bool
|
||||
|
||||
MinerThreads int
|
||||
|
||||
KeyManager *crypto.KeyManager
|
||||
}
|
||||
|
||||
|
@ -153,7 +155,7 @@ func New(config *Config) (*Ethereum, error) {
|
|||
eth.blockProcessor = core.NewBlockProcessor(db, eth.txPool, eth.chainManager, eth.EventMux())
|
||||
eth.chainManager.SetProcessor(eth.blockProcessor)
|
||||
eth.whisper = whisper.New()
|
||||
eth.miner = miner.New(keyManager.Address(), eth)
|
||||
eth.miner = miner.New(keyManager.Address(), eth, config.MinerThreads)
|
||||
|
||||
hasBlock := eth.chainManager.HasBlock
|
||||
insertChain := eth.chainManager.InsertChain
|
||||
|
|
|
@ -20,13 +20,13 @@ type Miner struct {
|
|||
mining bool
|
||||
}
|
||||
|
||||
func New(coinbase []byte, eth core.Backend) *Miner {
|
||||
func New(coinbase []byte, eth core.Backend, minerThreads int) *Miner {
|
||||
miner := &Miner{
|
||||
Coinbase: coinbase,
|
||||
worker: newWorker(coinbase, eth),
|
||||
}
|
||||
|
||||
for i := 0; i < 4; i++ {
|
||||
for i := 0; i < minerThreads; i++ {
|
||||
miner.worker.register(NewCpuMiner(i, ezp.New()))
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue