settable etherbase
- etherbase flag for block reward destination - coinbase => etherbase - CLI- eth Config -> eth, xeth -> RPC / Miner - use primary instead of coinbase as the unlock magic wildcard - accounts: firstAddr/Coinbase -> Primary
This commit is contained in:
		| @@ -63,6 +63,7 @@ type Config struct { | ||||
| 	Shh  bool | ||||
| 	Dial bool | ||||
|  | ||||
| 	Etherbase      string | ||||
| 	MinerThreads   int | ||||
| 	AccountManager *accounts.Manager | ||||
|  | ||||
| @@ -140,6 +141,7 @@ type Ethereum struct { | ||||
|  | ||||
| 	Mining        bool | ||||
| 	DataDir       string | ||||
| 	etherbase     common.Address | ||||
| 	clientVersion string | ||||
| 	ethVersionId  int | ||||
| 	netVersionId  int | ||||
| @@ -185,6 +187,7 @@ func New(config *Config) (*Ethereum, error) { | ||||
| 		eventMux:       &event.TypeMux{}, | ||||
| 		accountManager: config.AccountManager, | ||||
| 		DataDir:        config.DataDir, | ||||
| 		etherbase:      common.HexToAddress(config.Etherbase), | ||||
| 		clientVersion:  config.Name, // TODO should separate from Name | ||||
| 		ethVersionId:   config.ProtocolVersion, | ||||
| 		netVersionId:   config.NetworkId, | ||||
| @@ -297,15 +300,31 @@ func (s *Ethereum) ResetWithGenesisBlock(gb *types.Block) { | ||||
| } | ||||
|  | ||||
| func (s *Ethereum) StartMining() error { | ||||
| 	cb, err := s.accountManager.Coinbase() | ||||
| 	eb, err := s.Etherbase() | ||||
| 	if err != nil { | ||||
| 		servlogger.Errorf("Cannot start mining without coinbase: %v\n", err) | ||||
| 		return fmt.Errorf("no coinbase: %v", err) | ||||
| 		err = fmt.Errorf("Cannot start mining without etherbase address: %v", err) | ||||
| 		servlogger.Errorln(err) | ||||
| 		return err | ||||
|  | ||||
| 	} | ||||
| 	s.miner.Start(common.BytesToAddress(cb)) | ||||
|  | ||||
| 	s.miner.Start(eb) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (s *Ethereum) Etherbase() (eb common.Address, err error) { | ||||
| 	eb = s.etherbase | ||||
| 	if (eb == common.Address{}) { | ||||
| 		var ebbytes []byte | ||||
| 		ebbytes, err = s.accountManager.Primary() | ||||
| 		eb = common.BytesToAddress(ebbytes) | ||||
| 		if (eb == common.Address{}) { | ||||
| 			err = fmt.Errorf("no accounts found") | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func (s *Ethereum) StopMining()         { s.miner.Stop() } | ||||
| func (s *Ethereum) IsMining() bool      { return s.miner.Mining() } | ||||
| func (s *Ethereum) Miner() *miner.Miner { return s.miner } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user