- clientIdentifier now set in main wrappers - version handled within wrapper - modify InitConfig now returning *ethutil.ConfigManager (passed to gui) - added NewClientIdentity returning *ethwire.SimpleClientIdentiy (passed to ethereum)
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/ethereum/eth-go/ethlog"
 | 
						|
	"github.com/ethereum/go-ethereum/utils"
 | 
						|
	"runtime"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	ClientIdentifier = "Ethereum(G)"
 | 
						|
	Version          = "0.5.16"
 | 
						|
)
 | 
						|
 | 
						|
var logger = ethlog.NewLogger("CLI")
 | 
						|
 | 
						|
func main() {
 | 
						|
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
						|
 | 
						|
	utils.HandleInterrupt()
 | 
						|
 | 
						|
	// precedence: code-internal flag default < config file < environment variables < command line
 | 
						|
	Init() // parsing command line
 | 
						|
	utils.InitConfig(ConfigFile, Datadir, "ETH")
 | 
						|
 | 
						|
	utils.InitDataDir(Datadir)
 | 
						|
 | 
						|
	utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
 | 
						|
 | 
						|
	db := utils.NewDatabase()
 | 
						|
 | 
						|
	keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
 | 
						|
 | 
						|
	// create, import, export keys
 | 
						|
	utils.KeyTasks(keyManager, KeyRing, GenAddr, SecretFile, ExportDir, NonInteractive)
 | 
						|
 | 
						|
	clientIdentity := utils.NewClientIdentity(ClientIdentifier, Version, Identifier)
 | 
						|
 | 
						|
	ethereum := utils.NewEthereum(db, clientIdentity, keyManager, UseUPnP, OutboundPort, MaxPeer)
 | 
						|
 | 
						|
	if ShowGenesis {
 | 
						|
		utils.ShowGenesis(ethereum)
 | 
						|
	}
 | 
						|
 | 
						|
	if StartMining {
 | 
						|
		utils.StartMining(ethereum)
 | 
						|
	}
 | 
						|
 | 
						|
	// better reworked as cases
 | 
						|
	if StartJsConsole {
 | 
						|
		InitJsConsole(ethereum)
 | 
						|
	} else if len(InputFile) > 0 {
 | 
						|
		ExecJsFile(ethereum, InputFile)
 | 
						|
	}
 | 
						|
 | 
						|
	if StartRpc {
 | 
						|
		utils.StartRpc(ethereum, RpcPort)
 | 
						|
	}
 | 
						|
 | 
						|
	utils.StartEthereum(ethereum, UseSeed)
 | 
						|
 | 
						|
	// this blocks the thread
 | 
						|
	ethereum.WaitForShutdown()
 | 
						|
	ethlog.Flush()
 | 
						|
}
 |