mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-19 11:20:45 +00:00
commit
43bcb2d88b
6 changed files with 72 additions and 8 deletions
|
|
@ -7,7 +7,7 @@ Status](http://cpt-obvious.ethercasts.com:8010/buildstatusimage?builder=go-ether
|
||||||
|
|
||||||
Ethereum Go Client © 2014 Jeffrey Wilcke.
|
Ethereum Go Client © 2014 Jeffrey Wilcke.
|
||||||
|
|
||||||
Current state: Proof of Concept 0.6.4.
|
Current state: Proof of Concept 0.6.5.
|
||||||
|
|
||||||
For the development package please see the [eth-go package](https://github.com/ethereum/eth-go).
|
For the development package please see the [eth-go package](https://github.com/ethereum/eth-go).
|
||||||
|
|
||||||
|
|
|
||||||
36
ethereal/errors.go
Normal file
36
ethereal/errors.go
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"gopkg.in/qml.v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ErrorWindow(err error) {
|
||||||
|
engine := qml.NewEngine()
|
||||||
|
component, e := engine.LoadString("local", qmlErr)
|
||||||
|
if e != nil {
|
||||||
|
fmt.Println("err:", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
win := component.CreateWindow(nil)
|
||||||
|
win.Root().ObjectByName("label").Set("text", err.Error())
|
||||||
|
win.Show()
|
||||||
|
win.Wait()
|
||||||
|
}
|
||||||
|
|
||||||
|
const qmlErr = `
|
||||||
|
import QtQuick 2.0; import QtQuick.Controls 1.0;
|
||||||
|
ApplicationWindow {
|
||||||
|
width: 600; height: 150;
|
||||||
|
flags: Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
|
||||||
|
title: "Error"
|
||||||
|
Text {
|
||||||
|
x: parent.width / 2 - this.width / 2;
|
||||||
|
y: parent.height / 2 - this.height / 2;
|
||||||
|
objectName: "label";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
@ -56,7 +56,8 @@ type Gui struct {
|
||||||
|
|
||||||
plugins map[string]plugin
|
plugins map[string]plugin
|
||||||
|
|
||||||
miner *ethminer.Miner
|
miner *ethminer.Miner
|
||||||
|
stdLog ethlog.LogSystem
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create GUI, but doesn't start it
|
// Create GUI, but doesn't start it
|
||||||
|
|
@ -559,6 +560,7 @@ func (gui *Gui) ToggleTurboMining() {
|
||||||
// functions that allow Gui to implement interface ethlog.LogSystem
|
// functions that allow Gui to implement interface ethlog.LogSystem
|
||||||
func (gui *Gui) SetLogLevel(level ethlog.LogLevel) {
|
func (gui *Gui) SetLogLevel(level ethlog.LogLevel) {
|
||||||
gui.logLevel = level
|
gui.logLevel = level
|
||||||
|
gui.stdLog.SetLogLevel(level)
|
||||||
gui.config.Save("loglevel", level)
|
gui.config.Save("loglevel", level)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ClientIdentifier = "Ethereal"
|
ClientIdentifier = "Ethereal"
|
||||||
Version = "0.6.4"
|
Version = "0.6.5"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ethereum *eth.Ethereum
|
var ethereum *eth.Ethereum
|
||||||
|
|
@ -25,9 +25,15 @@ func run() error {
|
||||||
|
|
||||||
utils.InitDataDir(Datadir)
|
utils.InitDataDir(Datadir)
|
||||||
|
|
||||||
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
stdLog := utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
||||||
|
|
||||||
db := utils.NewDatabase()
|
db := utils.NewDatabase()
|
||||||
|
err := utils.DBSanityCheck(db)
|
||||||
|
if err != nil {
|
||||||
|
ErrorWindow(err)
|
||||||
|
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
|
keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
|
||||||
|
|
||||||
|
|
@ -47,6 +53,7 @@ func run() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
gui := NewWindow(ethereum, config, clientIdentity, KeyRing, LogLevel)
|
gui := NewWindow(ethereum, config, clientIdentity, KeyRing, LogLevel)
|
||||||
|
gui.stdLog = stdLog
|
||||||
|
|
||||||
utils.RegisterInterrupt(func(os.Signal) {
|
utils.RegisterInterrupt(func(os.Signal) {
|
||||||
gui.Stop()
|
gui.Stop()
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ClientIdentifier = "Ethereum(G)"
|
ClientIdentifier = "Ethereum(G)"
|
||||||
Version = "0.6.4"
|
Version = "0.6.5"
|
||||||
)
|
)
|
||||||
|
|
||||||
var logger = ethlog.NewLogger("CLI")
|
var logger = ethlog.NewLogger("CLI")
|
||||||
|
|
@ -40,6 +40,12 @@ func main() {
|
||||||
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
||||||
|
|
||||||
db := utils.NewDatabase()
|
db := utils.NewDatabase()
|
||||||
|
err := utils.DBSanityCheck(db)
|
||||||
|
if err != nil {
|
||||||
|
logger.Errorln(err)
|
||||||
|
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
|
keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
|
||||||
|
|
||||||
|
|
|
||||||
19
utils/cmd.go
19
utils/cmd.go
|
|
@ -80,6 +80,16 @@ func confirm(message string) bool {
|
||||||
return r == "y"
|
return r == "y"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DBSanityCheck(db ethutil.Database) error {
|
||||||
|
d, _ := db.Get([]byte("ProtocolVersion"))
|
||||||
|
protov := ethutil.NewValue(d).Uint()
|
||||||
|
if protov != eth.ProtocolVersion && protov != 0 {
|
||||||
|
return fmt.Errorf("Database version mismatch. Protocol(%d / %d). `rm -rf %s`", protov, eth.ProtocolVersion, ethutil.Config.ExecPath+"/database")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func InitDataDir(Datadir string) {
|
func InitDataDir(Datadir string) {
|
||||||
_, err := os.Stat(Datadir)
|
_, err := os.Stat(Datadir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -90,18 +100,22 @@ func InitDataDir(Datadir string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitLogging(Datadir string, LogFile string, LogLevel int, DebugFile string) {
|
func InitLogging(Datadir string, LogFile string, LogLevel int, DebugFile string) ethlog.LogSystem {
|
||||||
var writer io.Writer
|
var writer io.Writer
|
||||||
if LogFile == "" {
|
if LogFile == "" {
|
||||||
writer = os.Stdout
|
writer = os.Stdout
|
||||||
} else {
|
} else {
|
||||||
writer = openLogFile(Datadir, LogFile)
|
writer = openLogFile(Datadir, LogFile)
|
||||||
}
|
}
|
||||||
ethlog.AddLogSystem(ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.LogLevel(LogLevel)))
|
|
||||||
|
sys := ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.LogLevel(LogLevel))
|
||||||
|
ethlog.AddLogSystem(sys)
|
||||||
if DebugFile != "" {
|
if DebugFile != "" {
|
||||||
writer = openLogFile(Datadir, DebugFile)
|
writer = openLogFile(Datadir, DebugFile)
|
||||||
ethlog.AddLogSystem(ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.DebugLevel))
|
ethlog.AddLogSystem(ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.DebugLevel))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return sys
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitConfig(ConfigFile string, Datadir string, EnvPrefix string) *ethutil.ConfigManager {
|
func InitConfig(ConfigFile string, Datadir string, EnvPrefix string) *ethutil.ConfigManager {
|
||||||
|
|
@ -112,7 +126,6 @@ func InitConfig(ConfigFile string, Datadir string, EnvPrefix string) *ethutil.Co
|
||||||
func exit(err error) {
|
func exit(err error) {
|
||||||
status := 0
|
status := 0
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
|
||||||
logger.Errorln("Fatal: ", err)
|
logger.Errorln("Fatal: ", err)
|
||||||
status = 1
|
status = 1
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue