good morning!!!!

Skip to content
Snippets Groups Projects
Commit 6ca99709 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Merge

parents bbde892d 59a7b130
No related branches found
No related tags found
No related merge requests found
...@@ -14,13 +14,6 @@ function createTransaction() { ...@@ -14,13 +14,6 @@ function createTransaction() {
}) })
} }
// Any test related actions here please
function tests() {
eth.getKey(function(keys) {
debug(keys)
})
}
function init() { function init() {
eth.getKey(function(key) { eth.getKey(function(key) {
eth.getStorage(jefcoinAddr, key, function(storage) { eth.getStorage(jefcoinAddr, key, function(storage) {
...@@ -55,9 +48,6 @@ input[type="text"] { ...@@ -55,9 +48,6 @@ input[type="text"] {
<button onclick="createTransaction();">Send Tx</button> <button onclick="createTransaction();">Send Tx</button>
</div> </div>
<div><button onclick="tests();">Tests</button></div>
<div id="debug" style="border: 1px solid block"></div> <div id="debug" style="border: 1px solid block"></div>
</body> </body>
......
...@@ -15,20 +15,22 @@ var GenAddr bool ...@@ -15,20 +15,22 @@ var GenAddr bool
var UseSeed bool var UseSeed bool
var ImportKey string var ImportKey string
var ExportKey bool var ExportKey bool
var LogFile string
//var UseGui bool
var DataDir string var DataDir string
var NonInteractive bool
func Init() { func Init() {
flag.BoolVar(&StartConsole, "c", false, "debug and testing console") flag.BoolVar(&StartConsole, "c", false, "debug and testing console")
flag.BoolVar(&StartMining, "m", false, "start dagger mining") flag.BoolVar(&StartMining, "m", false, "start dagger mining")
flag.BoolVar(&ShowGenesis, "g", false, "prints genesis header and exits") flag.BoolVar(&ShowGenesis, "g", false, "prints genesis header and exits")
//flag.BoolVar(&UseGui, "gui", true, "use the gui") //flag.BoolVar(&UseGui, "gui", true, "use the gui")
flag.BoolVar(&NonInteractive, "y", false, "non-interactive mode (say yes to confirmations)")
flag.BoolVar(&UseUPnP, "upnp", false, "enable UPnP support") flag.BoolVar(&UseUPnP, "upnp", false, "enable UPnP support")
flag.BoolVar(&UseSeed, "seed", true, "seed peers") flag.BoolVar(&UseSeed, "seed", true, "seed peers")
flag.BoolVar(&GenAddr, "genaddr", false, "create a new priv/pub key") flag.BoolVar(&GenAddr, "genaddr", false, "create a new priv/pub key")
flag.BoolVar(&ExportKey, "export", false, "export private key") flag.BoolVar(&ExportKey, "export", false, "export private key")
flag.StringVar(&OutboundPort, "p", "30303", "listening port") flag.StringVar(&OutboundPort, "p", "30303", "listening port")
flag.StringVar(&LogFile, "logfile", "", "log file (defaults to standard output)")
flag.StringVar(&DataDir, "dir", ".ethereum", "ethereum data directory") flag.StringVar(&DataDir, "dir", ".ethereum", "ethereum data directory")
flag.StringVar(&ImportKey, "import", "", "imports the given private key (hex)") flag.StringVar(&ImportKey, "import", "", "imports the given private key (hex)")
flag.IntVar(&MaxPeer, "x", 5, "maximum desired peers") flag.IntVar(&MaxPeer, "x", 5, "maximum desired peers")
......
...@@ -17,7 +17,7 @@ import ( ...@@ -17,7 +17,7 @@ import (
const Debug = true const Debug = true
// Register interrupt handlers so we can stop the ethereum // Register interrupt handlers so we can stop the ethereum
func RegisterInterupts(s *eth.Ethereum) { func RegisterInterrupts(s *eth.Ethereum) {
// Buffered chan of one is enough // Buffered chan of one is enough
c := make(chan os.Signal, 1) c := make(chan os.Signal, 1)
// Notify about interrupts for now // Notify about interrupts for now
...@@ -25,19 +25,50 @@ func RegisterInterupts(s *eth.Ethereum) { ...@@ -25,19 +25,50 @@ func RegisterInterupts(s *eth.Ethereum) {
go func() { go func() {
for sig := range c { for sig := range c {
fmt.Printf("Shutting down (%v) ... \n", sig) fmt.Printf("Shutting down (%v) ... \n", sig)
s.Stop() s.Stop()
} }
}() }()
} }
func confirm(message string) bool {
fmt.Println(message, "Are you sure? (y/n)")
var r string
fmt.Scanln(&r)
for ; ; fmt.Scanln(&r) {
if r == "n" || r == "y" {
break
} else {
fmt.Printf("Yes or no?", r)
}
}
return r == "y"
}
func main() { func main() {
Init() Init()
runtime.GOMAXPROCS(runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU())
ethchain.InitFees() // set logger
var logSys *log.Logger
flags := log.LstdFlags
if LogFile != "" {
logfile, err := os.OpenFile(LogFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
panic(fmt.Sprintf("error opening log file '%s': %v", LogFile, err))
}
defer logfile.Close()
log.SetOutput(logfile)
logSys = log.New(logfile, "", flags)
} else {
logSys = log.New(os.Stdout, "", flags)
}
ethutil.ReadConfig(DataDir) ethutil.ReadConfig(DataDir)
logger := ethutil.Config.Log
logger.AddLogSystem(logSys)
ethchain.InitFees()
ethutil.Config.Seed = UseSeed ethutil.Config.Seed = UseSeed
// Instantiated a eth stack // Instantiated a eth stack
...@@ -48,67 +79,42 @@ func main() { ...@@ -48,67 +79,42 @@ func main() {
} }
ethereum.Port = OutboundPort ethereum.Port = OutboundPort
if GenAddr { // bookkeeping tasks
fmt.Println("This action overwrites your old private key. Are you sure? (y/n)") switch {
case GenAddr:
var r string if NonInteractive || confirm("This action overwrites your old private key.") {
fmt.Scanln(&r)
for ; ; fmt.Scanln(&r) {
if r == "n" || r == "y" {
break
} else {
fmt.Printf("Yes or no?", r)
}
}
if r == "y" {
utils.CreateKeyPair(true) utils.CreateKeyPair(true)
} }
os.Exit(0) os.Exit(0)
} else { case len(ImportKey) > 0:
if len(ImportKey) > 0 { if NonInteractive || confirm("This action overwrites your old private key.") {
fmt.Println("This action overwrites your old private key. Are you sure? (y/n)")
var r string
fmt.Scanln(&r)
for ; ; fmt.Scanln(&r) {
if r == "n" || r == "y" {
break
} else {
fmt.Printf("Yes or no?", r)
}
}
if r == "y" {
mnemonic := strings.Split(ImportKey, " ") mnemonic := strings.Split(ImportKey, " ")
if len(mnemonic) == 24 { if len(mnemonic) == 24 {
fmt.Println("Got mnemonic key, importing.") logSys.Println("Got mnemonic key, importing.")
key := ethutil.MnemonicDecode(mnemonic) key := ethutil.MnemonicDecode(mnemonic)
utils.ImportPrivateKey(key) utils.ImportPrivateKey(key)
} else if len(mnemonic) == 1 { } else if len(mnemonic) == 1 {
fmt.Println("Got hex key, importing.") logSys.Println("Got hex key, importing.")
utils.ImportPrivateKey(ImportKey) utils.ImportPrivateKey(ImportKey)
} else { } else {
fmt.Println("Did not recognise format, exiting.") logSys.Println("Did not recognise format, exiting.")
} }
os.Exit(0)
} }
} else { os.Exit(0)
case len(ImportKey) == 0:
utils.CreateKeyPair(false) utils.CreateKeyPair(false)
} fallthrough
} case ExportKey:
if ExportKey {
key := ethutil.Config.Db.GetKeys()[0] key := ethutil.Config.Db.GetKeys()[0]
fmt.Printf("%x\n", key.PrivateKey) logSys.Println(fmt.Sprintf("prvk: %x\n", key.PrivateKey))
os.Exit(0) os.Exit(0)
} case ShowGenesis:
logSys.Println(ethereum.BlockChain().Genesis())
if ShowGenesis {
fmt.Println(ethereum.BlockChain().Genesis())
os.Exit(0) os.Exit(0)
} }
log.Printf("Starting Ethereum v%s\n", ethutil.Config.Ver) // client
logger.Infoln(fmt.Sprintf("Starting Ethereum v%s", ethutil.Config.Ver))
// Set the max peers // Set the max peers
ethereum.MaxPeers = MaxPeer ethereum.MaxPeers = MaxPeer
...@@ -124,17 +130,17 @@ func main() { ...@@ -124,17 +130,17 @@ func main() {
go console.Start() go console.Start()
} }
RegisterInterupts(ethereum) RegisterInterrupts(ethereum)
ethereum.Start() ethereum.Start()
if StartMining { if StartMining {
log.Printf("Miner started\n") logger.Infoln("Miner started")
// Fake block mining. It broadcasts a new block every 5 seconds // Fake block mining. It broadcasts a new block every 5 seconds
go func() { go func() {
if StartMining { if StartMining {
log.Printf("Miner started\n") logger.Infoln("Miner started")
go func() { go func() {
data, _ := ethutil.Config.Db.Get([]byte("KeyRing")) data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment