Skip to content

Commit 765740b

Browse files
committed
Merge pull request #345 from maran/feature/minerthreads
Implement command line argument to set the amount miner threads
2 parents 07c3475 + 5aff8bf commit 765740b

File tree

5 files changed

+23
-17
lines changed

5 files changed

+23
-17
lines changed

cmd/mist/flags.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ var (
6363
DebugFile string
6464
LogLevel int
6565
VmType int
66+
MinerThreads int
6667
)
6768

6869
// flags specific to gui client
@@ -137,6 +138,8 @@ func Init() {
137138
flag.StringVar(&BootNodes, "bootnodes", "", "space-separated node URLs for discovery bootstrap")
138139
flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
139140

141+
flag.IntVar(&MinerThreads, "minerthreads", runtime.NumCPU(), "number of miner threads")
142+
140143
flag.Parse()
141144

142145
var err error

cmd/mist/main.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,20 @@ func run() error {
5252
config := utils.InitConfig(VmType, ConfigFile, Datadir, "ETH")
5353

5454
ethereum, err := eth.New(&eth.Config{
55-
Name: p2p.MakeName(ClientIdentifier, Version),
56-
KeyStore: KeyStore,
57-
DataDir: Datadir,
58-
LogFile: LogFile,
59-
LogLevel: LogLevel,
60-
MaxPeers: MaxPeer,
61-
Port: OutboundPort,
62-
NAT: NAT,
63-
Shh: true,
64-
BootNodes: BootNodes,
65-
NodeKey: NodeKey,
66-
KeyRing: KeyRing,
67-
Dial: true,
55+
Name: p2p.MakeName(ClientIdentifier, Version),
56+
KeyStore: KeyStore,
57+
DataDir: Datadir,
58+
LogFile: LogFile,
59+
LogLevel: LogLevel,
60+
MaxPeers: MaxPeer,
61+
Port: OutboundPort,
62+
NAT: NAT,
63+
Shh: true,
64+
BootNodes: BootNodes,
65+
NodeKey: NodeKey,
66+
KeyRing: KeyRing,
67+
Dial: true,
68+
MinerThreads: MinerThreads,
6869
})
6970
if err != nil {
7071
mainlogger.Fatalln(err)

cmd/utils/cmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ func StartMining(ethereum *eth.Ethereum) bool {
225225
go func() {
226226
clilogger.Infoln("Start mining")
227227
if gminer == nil {
228-
gminer = miner.New(addr, ethereum)
228+
gminer = miner.New(addr, ethereum, 4)
229229
}
230230
gminer.Start()
231231
}()

eth/backend.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ type Config struct {
5353
Shh bool
5454
Dial bool
5555

56+
MinerThreads int
57+
5658
KeyManager *crypto.KeyManager
5759
}
5860

@@ -153,7 +155,7 @@ func New(config *Config) (*Ethereum, error) {
153155
eth.blockProcessor = core.NewBlockProcessor(db, eth.txPool, eth.chainManager, eth.EventMux())
154156
eth.chainManager.SetProcessor(eth.blockProcessor)
155157
eth.whisper = whisper.New()
156-
eth.miner = miner.New(keyManager.Address(), eth)
158+
eth.miner = miner.New(keyManager.Address(), eth, config.MinerThreads)
157159

158160
hasBlock := eth.chainManager.HasBlock
159161
insertChain := eth.chainManager.InsertChain

miner/miner.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ type Miner struct {
2020
mining bool
2121
}
2222

23-
func New(coinbase []byte, eth core.Backend) *Miner {
23+
func New(coinbase []byte, eth core.Backend, minerThreads int) *Miner {
2424
miner := &Miner{
2525
Coinbase: coinbase,
2626
worker: newWorker(coinbase, eth),
2727
}
2828

29-
for i := 0; i < 4; i++ {
29+
for i := 0; i < minerThreads; i++ {
3030
miner.worker.register(NewCpuMiner(i, ezp.New()))
3131
}
3232

0 commit comments

Comments
 (0)