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.
|
||||
|
||||
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).
|
||||
|
||||
|
|
|
|||
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
|
||||
|
||||
miner *ethminer.Miner
|
||||
miner *ethminer.Miner
|
||||
stdLog ethlog.LogSystem
|
||||
}
|
||||
|
||||
// Create GUI, but doesn't start it
|
||||
|
|
@ -559,6 +560,7 @@ func (gui *Gui) ToggleTurboMining() {
|
|||
// functions that allow Gui to implement interface ethlog.LogSystem
|
||||
func (gui *Gui) SetLogLevel(level ethlog.LogLevel) {
|
||||
gui.logLevel = level
|
||||
gui.stdLog.SetLogLevel(level)
|
||||
gui.config.Save("loglevel", level)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
|
||||
const (
|
||||
ClientIdentifier = "Ethereal"
|
||||
Version = "0.6.4"
|
||||
Version = "0.6.5"
|
||||
)
|
||||
|
||||
var ethereum *eth.Ethereum
|
||||
|
|
@ -25,9 +25,15 @@ func run() error {
|
|||
|
||||
utils.InitDataDir(Datadir)
|
||||
|
||||
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
||||
stdLog := utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
||||
|
||||
db := utils.NewDatabase()
|
||||
err := utils.DBSanityCheck(db)
|
||||
if err != nil {
|
||||
ErrorWindow(err)
|
||||
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
|
||||
|
||||
|
|
@ -47,6 +53,7 @@ func run() error {
|
|||
}
|
||||
|
||||
gui := NewWindow(ethereum, config, clientIdentity, KeyRing, LogLevel)
|
||||
gui.stdLog = stdLog
|
||||
|
||||
utils.RegisterInterrupt(func(os.Signal) {
|
||||
gui.Stop()
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
const (
|
||||
ClientIdentifier = "Ethereum(G)"
|
||||
Version = "0.6.4"
|
||||
Version = "0.6.5"
|
||||
)
|
||||
|
||||
var logger = ethlog.NewLogger("CLI")
|
||||
|
|
@ -40,6 +40,12 @@ func main() {
|
|||
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
|
||||
|
||||
db := utils.NewDatabase()
|
||||
err := utils.DBSanityCheck(db)
|
||||
if err != nil {
|
||||
logger.Errorln(err)
|
||||
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
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) {
|
||||
_, err := os.Stat(Datadir)
|
||||
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
|
||||
if LogFile == "" {
|
||||
writer = os.Stdout
|
||||
} else {
|
||||
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 != "" {
|
||||
writer = openLogFile(Datadir, DebugFile)
|
||||
ethlog.AddLogSystem(ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.DebugLevel))
|
||||
}
|
||||
|
||||
return sys
|
||||
}
|
||||
|
||||
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) {
|
||||
status := 0
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
logger.Errorln("Fatal: ", err)
|
||||
status = 1
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue