Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
ae5ace16
Commit
ae5ace16
authored
Jun 26, 2014
by
zelig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
go fmt
parent
648c418f
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
226 additions
and
226 deletions
+226
-226
flags.go
ethereal/flags.go
+7
-7
main.go
ethereal/main.go
+16
-16
gui.go
ethereal/ui/gui.go
+3
-3
cmd.go
ethereum/cmd.go
+23
-23
flags.go
ethereum/flags.go
+5
-5
javascript_runtime.go
ethereum/javascript_runtime.go
+2
-2
main.go
ethereum/main.go
+7
-7
cmd.go
utils/cmd.go
+163
-163
No files found.
ethereal/flags.go
View file @
ae5ace16
package
main
package
main
import
(
import
(
"bitbucket.org/kardianos/osext"
"flag"
"fmt"
"fmt"
"github.com/ethereum/eth-go/ethlog"
"os"
"os"
"os/user"
"os/user"
"path"
"path"
"github.com/ethereum/eth-go/ethlog"
"flag"
"bitbucket.org/kardianos/osext"
"path/filepath"
"path/filepath"
"runtime"
"runtime"
)
)
...
@@ -60,8 +60,8 @@ func defaultAssetPath() string {
...
@@ -60,8 +60,8 @@ func defaultAssetPath() string {
}
}
func
defaultDataDir
()
string
{
func
defaultDataDir
()
string
{
usr
,
_
:=
user
.
Current
()
usr
,
_
:=
user
.
Current
()
return
path
.
Join
(
usr
.
HomeDir
,
".ethereal"
)
return
path
.
Join
(
usr
.
HomeDir
,
".ethereal"
)
}
}
var
defaultConfigFile
=
path
.
Join
(
defaultDataDir
(),
"conf.ini"
)
var
defaultConfigFile
=
path
.
Join
(
defaultDataDir
(),
"conf.ini"
)
...
...
ethereal/main.go
View file @
ae5ace16
package
main
package
main
import
(
import
(
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/go-ethereum/ethereal/ui"
"github.com/ethereum/go-ethereum/ethereal/ui"
"github.com/ethereum/go-ethereum/utils"
"github.com/ethereum/go-ethereum/utils"
"github.com/ethereum/eth-go/ethlog"
"github.com/go-qml/qml"
"github.com/go-qml/qml"
"runtime"
"os"
"os"
"runtime"
)
)
func
main
()
{
func
main
()
{
...
@@ -32,11 +32,11 @@ func main() {
...
@@ -32,11 +32,11 @@ func main() {
ethereum
:=
utils
.
NewEthereum
(
UseUPnP
,
OutboundPort
,
MaxPeer
)
ethereum
:=
utils
.
NewEthereum
(
UseUPnP
,
OutboundPort
,
MaxPeer
)
// create, import, export keys
// create, import, export keys
utils
.
KeyTasks
(
GenAddr
,
ImportKey
,
ExportKey
,
NonInteractive
)
utils
.
KeyTasks
(
GenAddr
,
ImportKey
,
ExportKey
,
NonInteractive
)
if
ShowGenesis
{
if
ShowGenesis
{
utils
.
ShowGenesis
(
ethereum
)
utils
.
ShowGenesis
(
ethereum
)
}
}
if
StartRpc
{
if
StartRpc
{
utils
.
StartRpc
(
ethereum
,
RpcPort
)
utils
.
StartRpc
(
ethereum
,
RpcPort
)
...
@@ -45,17 +45,17 @@ func main() {
...
@@ -45,17 +45,17 @@ func main() {
gui
:=
ethui
.
New
(
ethereum
,
LogLevel
)
gui
:=
ethui
.
New
(
ethereum
,
LogLevel
)
utils
.
RegisterInterrupt
(
func
(
os
.
Signal
)
{
utils
.
RegisterInterrupt
(
func
(
os
.
Signal
)
{
gui
.
Stop
()
gui
.
Stop
()
})
})
utils
.
StartEthereum
(
ethereum
,
UseSeed
)
utils
.
StartEthereum
(
ethereum
,
UseSeed
)
// gui blocks the main thread
// gui blocks the main thread
gui
.
Start
(
AssetPath
)
gui
.
Start
(
AssetPath
)
// we need to run the interrupt callbacks in case gui is closed
// we need to run the interrupt callbacks in case gui is closed
// this skips if we got here by actual interrupt stopping the GUI
// this skips if we got here by actual interrupt stopping the GUI
if
!
interrupted
{
if
!
interrupted
{
utils
.
RunInterruptCallbacks
(
os
.
Interrupt
)
utils
.
RunInterruptCallbacks
(
os
.
Interrupt
)
}
}
// this blocks the thread
// this blocks the thread
ethereum
.
WaitForShutdown
()
ethereum
.
WaitForShutdown
()
ethlog
.
Flush
()
ethlog
.
Flush
()
}
}
ethereal/ui/gui.go
View file @
ae5ace16
...
@@ -6,9 +6,9 @@ import (
...
@@ -6,9 +6,9 @@ import (
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethdb"
"github.com/ethereum/eth-go/ethdb"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/go-ethereum/utils"
"github.com/ethereum/go-ethereum/utils"
"github.com/go-qml/qml"
"github.com/go-qml/qml"
"math/big"
"math/big"
...
@@ -35,9 +35,9 @@ type Gui struct {
...
@@ -35,9 +35,9 @@ type Gui struct {
addr
[]
byte
addr
[]
byte
pub
*
ethpub
.
PEthereum
pub
*
ethpub
.
PEthereum
logLevel
ethlog
.
LogLevel
logLevel
ethlog
.
LogLevel
open
bool
open
bool
}
}
// Create GUI, but doesn't start it
// Create GUI, but doesn't start it
...
...
ethereum/cmd.go
View file @
ae5ace16
package
main
package
main
import
(
import
(
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go"
"github.com/ethereum/go-ethereum/utils"
"github.com/ethereum/go-ethereum/utils"
"os
"
"io/ioutil
"
"io/ioutil
"
"os
"
)
)
func
InitJsConsole
(
ethereum
*
eth
.
Ethereum
)
{
func
InitJsConsole
(
ethereum
*
eth
.
Ethereum
)
{
repl
:=
NewJSRepl
(
ethereum
)
repl
:=
NewJSRepl
(
ethereum
)
go
repl
.
Start
()
go
repl
.
Start
()
utils
.
RegisterInterrupt
(
func
(
os
.
Signal
)
{
utils
.
RegisterInterrupt
(
func
(
os
.
Signal
)
{
repl
.
Stop
()
repl
.
Stop
()
})
})
}
}
func
ExecJsFile
(
ethereum
*
eth
.
Ethereum
,
InputFile
string
)
{
func
ExecJsFile
(
ethereum
*
eth
.
Ethereum
,
InputFile
string
)
{
file
,
err
:=
os
.
Open
(
InputFile
)
file
,
err
:=
os
.
Open
(
InputFile
)
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Fatalln
(
err
)
logger
.
Fatalln
(
err
)
}
}
content
,
err
:=
ioutil
.
ReadAll
(
file
)
content
,
err
:=
ioutil
.
ReadAll
(
file
)
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Fatalln
(
err
)
logger
.
Fatalln
(
err
)
}
}
re
:=
NewJSRE
(
ethereum
)
re
:=
NewJSRE
(
ethereum
)
utils
.
RegisterInterrupt
(
func
(
os
.
Signal
)
{
utils
.
RegisterInterrupt
(
func
(
os
.
Signal
)
{
re
.
Stop
()
re
.
Stop
()
})
})
re
.
Run
(
string
(
content
))
re
.
Run
(
string
(
content
))
}
}
ethereum/flags.go
View file @
ae5ace16
...
@@ -3,10 +3,10 @@ package main
...
@@ -3,10 +3,10 @@ package main
import
(
import
(
"flag"
"flag"
"fmt"
"fmt"
"github.com/ethereum/eth-go/ethlog"
"os"
"os"
"os/user"
"os/user"
"path"
"path"
"github.com/ethereum/eth-go/ethlog"
)
)
var
Identifier
string
var
Identifier
string
...
@@ -34,8 +34,8 @@ var StartJsConsole bool
...
@@ -34,8 +34,8 @@ var StartJsConsole bool
var
InputFile
string
var
InputFile
string
func
defaultDataDir
()
string
{
func
defaultDataDir
()
string
{
usr
,
_
:=
user
.
Current
()
usr
,
_
:=
user
.
Current
()
return
path
.
Join
(
usr
.
HomeDir
,
".ethereum"
)
return
path
.
Join
(
usr
.
HomeDir
,
".ethereum"
)
}
}
var
defaultConfigFile
=
path
.
Join
(
defaultDataDir
(),
"conf.ini"
)
var
defaultConfigFile
=
path
.
Join
(
defaultDataDir
(),
"conf.ini"
)
...
...
ethereum/javascript_runtime.go
View file @
ae5ace16
package
main
package
main
import
(
import
(
"fmt"
"fmt"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/go-ethereum/utils"
"github.com/ethereum/go-ethereum/utils"
"github.com/obscuren/otto"
"github.com/obscuren/otto"
"io/ioutil"
"io/ioutil"
...
...
ethereum/main.go
View file @
ae5ace16
package
main
package
main
import
(
import
(
"github.com/ethereum/go-ethereum/utils"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/go-ethereum/utils"
"runtime"
"runtime"
)
)
...
@@ -24,11 +24,11 @@ func main() {
...
@@ -24,11 +24,11 @@ func main() {
ethereum
:=
utils
.
NewEthereum
(
UseUPnP
,
OutboundPort
,
MaxPeer
)
ethereum
:=
utils
.
NewEthereum
(
UseUPnP
,
OutboundPort
,
MaxPeer
)
// create, import, export keys
// create, import, export keys
utils
.
KeyTasks
(
GenAddr
,
ImportKey
,
ExportKey
,
NonInteractive
)
utils
.
KeyTasks
(
GenAddr
,
ImportKey
,
ExportKey
,
NonInteractive
)
if
ShowGenesis
{
if
ShowGenesis
{
utils
.
ShowGenesis
(
ethereum
)
utils
.
ShowGenesis
(
ethereum
)
}
}
if
StartMining
{
if
StartMining
{
utils
.
StartMining
(
ethereum
)
utils
.
StartMining
(
ethereum
)
...
@@ -48,6 +48,6 @@ func main() {
...
@@ -48,6 +48,6 @@ func main() {
utils
.
StartEthereum
(
ethereum
,
UseSeed
)
utils
.
StartEthereum
(
ethereum
,
UseSeed
)
// this blocks the thread
// this blocks the thread
ethereum
.
WaitForShutdown
()
ethereum
.
WaitForShutdown
()
ethlog
.
Flush
()
ethlog
.
Flush
()
}
}
utils/cmd.go
View file @
ae5ace16
package
utils
package
utils
import
(
import
(
"github.com/ethereum/eth-go
"
"fmt
"
"github.com/ethereum/eth-go/ethminer
"
"github.com/ethereum/eth-go
"
"github.com/ethereum/eth-go/ethpub
"
"github.com/ethereum/eth-go/ethlog
"
"github.com/ethereum/eth-go/ethrpc
"
"github.com/ethereum/eth-go/ethminer
"
"github.com/ethereum/eth-go/ethutil
"
"github.com/ethereum/eth-go/ethpub
"
"github.com/ethereum/eth-go/ethlog
"
"github.com/ethereum/eth-go/ethrpc
"
"log
"
"github.com/ethereum/eth-go/ethutil
"
"io"
"io"
"path
"
"log
"
"os"
"os"
"os/signal"
"os/signal"
"fmt
"
"path
"
"time
"
"strings
"
"strings
"
"time
"
)
)
var
logger
=
ethlog
.
NewLogger
(
"CLI"
)
var
logger
=
ethlog
.
NewLogger
(
"CLI"
)
...
@@ -22,142 +22,142 @@ var interruptCallbacks = []func(os.Signal){}
...
@@ -22,142 +22,142 @@ var interruptCallbacks = []func(os.Signal){}
// Register interrupt handlers callbacks
// Register interrupt handlers callbacks
func
RegisterInterrupt
(
cb
func
(
os
.
Signal
))
{
func
RegisterInterrupt
(
cb
func
(
os
.
Signal
))
{
interruptCallbacks
=
append
(
interruptCallbacks
,
cb
)
interruptCallbacks
=
append
(
interruptCallbacks
,
cb
)
}
}
// go routine that call interrupt handlers in order of registering
// go routine that call interrupt handlers in order of registering
func
HandleInterrupt
()
{
func
HandleInterrupt
()
{
c
:=
make
(
chan
os
.
Signal
,
1
)
c
:=
make
(
chan
os
.
Signal
,
1
)
go
func
()
{
go
func
()
{
signal
.
Notify
(
c
,
os
.
Interrupt
)
signal
.
Notify
(
c
,
os
.
Interrupt
)
for
sig
:=
range
c
{
for
sig
:=
range
c
{
logger
.
Errorf
(
"Shutting down (%v) ...
\n
"
,
sig
)
logger
.
Errorf
(
"Shutting down (%v) ...
\n
"
,
sig
)
RunInterruptCallbacks
(
sig
)
RunInterruptCallbacks
(
sig
)
}
}
}()
}()
}
}
func
RunInterruptCallbacks
(
sig
os
.
Signal
)
{
func
RunInterruptCallbacks
(
sig
os
.
Signal
)
{
for
_
,
cb
:=
range
interruptCallbacks
{
for
_
,
cb
:=
range
interruptCallbacks
{
cb
(
sig
)
cb
(
sig
)
}
}
}
}
func
AbsolutePath
(
Datadir
string
,
filename
string
)
string
{
func
AbsolutePath
(
Datadir
string
,
filename
string
)
string
{
if
path
.
IsAbs
(
filename
)
{
if
path
.
IsAbs
(
filename
)
{
return
filename
return
filename
}
}
return
path
.
Join
(
Datadir
,
filename
)
return
path
.
Join
(
Datadir
,
filename
)
}
}
func
openLogFile
(
Datadir
string
,
filename
string
)
*
os
.
File
{
func
openLogFile
(
Datadir
string
,
filename
string
)
*
os
.
File
{
path
:=
AbsolutePath
(
Datadir
,
filename
)
path
:=
AbsolutePath
(
Datadir
,
filename
)
file
,
err
:=
os
.
OpenFile
(
path
,
os
.
O_RDWR
|
os
.
O_CREATE
|
os
.
O_APPEND
,
0666
)
file
,
err
:=
os
.
OpenFile
(
path
,
os
.
O_RDWR
|
os
.
O_CREATE
|
os
.
O_APPEND
,
0666
)
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"error opening log file '%s': %v"
,
filename
,
err
))
panic
(
fmt
.
Sprintf
(
"error opening log file '%s': %v"
,
filename
,
err
))
}
}
return
file
return
file
}
}
func
confirm
(
message
string
)
bool
{
func
confirm
(
message
string
)
bool
{
fmt
.
Println
(
message
,
"Are you sure? (y/n)"
)
fmt
.
Println
(
message
,
"Are you sure? (y/n)"
)
var
r
string
var
r
string
fmt
.
Scanln
(
&
r
)
fmt
.
Scanln
(
&
r
)
for
;
;
fmt
.
Scanln
(
&
r
)
{
for
;
;
fmt
.
Scanln
(
&
r
)
{
if
r
==
"n"
||
r
==
"y"
{
if
r
==
"n"
||
r
==
"y"
{
break
break
}
else
{
}
else
{
fmt
.
Printf
(
"Yes or no?"
,
r
)
fmt
.
Printf
(
"Yes or no?"
,
r
)
}
}
}
}
return
r
==
"y"
return
r
==
"y"
}
}
func
InitDataDir
(
Datadir
string
)
{
func
InitDataDir
(
Datadir
string
)
{
_
,
err
:=
os
.
Stat
(
Datadir
)
_
,
err
:=
os
.
Stat
(
Datadir
)
if
err
!=
nil
{
if
err
!=
nil
{
if
os
.
IsNotExist
(
err
)
{
if
os
.
IsNotExist
(
err
)
{
fmt
.
Printf
(
"Debug logging directory '%s' doesn't exist, creating it
\n
"
,
Datadir
)
fmt
.
Printf
(
"Debug logging directory '%s' doesn't exist, creating it
\n
"
,
Datadir
)
os
.
Mkdir
(
Datadir
,
0777
)
os
.
Mkdir
(
Datadir
,
0777
)
}
}
}
}
}
}
func
InitLogging
(
Datadir
string
,
LogFile
string
,
LogLevel
int
,
DebugFile
string
)
{
func
InitLogging
(
Datadir
string
,
LogFile
string
,
LogLevel
int
,
DebugFile
string
)
{
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
)))
ethlog
.
AddLogSystem
(
ethlog
.
NewStdLogSystem
(
writer
,
log
.
LstdFlags
,
ethlog
.
LogLevel
(
LogLevel
)))
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
))
}
}
}
}
func
InitConfig
(
ConfigFile
string
,
Datadir
string
,
Identifier
string
,
EnvPrefix
string
)
{
func
InitConfig
(
ConfigFile
string
,
Datadir
string
,
Identifier
string
,
EnvPrefix
string
)
{
InitDataDir
(
Datadir
)
InitDataDir
(
Datadir
)
ethutil
.
ReadConfig
(
ConfigFile
,
Datadir
,
Identifier
,
EnvPrefix
)
ethutil
.
ReadConfig
(
ConfigFile
,
Datadir
,
Identifier
,
EnvPrefix
)
ethutil
.
Config
.
Set
(
"rpcport"
,
"700"
)
ethutil
.
Config
.
Set
(
"rpcport"
,
"700"
)
}
}
func
exit
(
status
int
)
{
func
exit
(
status
int
)
{
ethlog
.
Flush
()
ethlog
.
Flush
()
os
.
Exit
(
status
)
os
.
Exit
(
status
)
}
}
func
NewEthereum
(
UseUPnP
bool
,
OutboundPort
string
,
MaxPeer
int
)
*
eth
.
Ethereum
{
func
NewEthereum
(
UseUPnP
bool
,
OutboundPort
string
,
MaxPeer
int
)
*
eth
.
Ethereum
{
ethereum
,
err
:=
eth
.
New
(
eth
.
CapDefault
,
UseUPnP
)
ethereum
,
err
:=
eth
.
New
(
eth
.
CapDefault
,
UseUPnP
)
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Fatalln
(
"eth start err:"
,
err
)
logger
.
Fatalln
(
"eth start err:"
,
err
)
}
}
ethereum
.
Port
=
OutboundPort
ethereum
.
Port
=
OutboundPort
ethereum
.
MaxPeers
=
MaxPeer
ethereum
.
MaxPeers
=
MaxPeer
return
ethereum
return
ethereum
}
}
func
StartEthereum
(
ethereum
*
eth
.
Ethereum
,
UseSeed
bool
)
{
func
StartEthereum
(
ethereum
*
eth
.
Ethereum
,
UseSeed
bool
)
{
logger
.
Infof
(
"Starting Ethereum v%s"
,
ethutil
.
Config
.
Ver
)
logger
.
Infof
(
"Starting Ethereum v%s"
,
ethutil
.
Config
.
Ver
)
ethereum
.
Start
(
UseSeed
)
ethereum
.
Start
(
UseSeed
)
RegisterInterrupt
(
func
(
sig
os
.
Signal
)
{
RegisterInterrupt
(
func
(
sig
os
.
Signal
)
{
ethereum
.
Stop
()
ethereum
.
Stop
()
ethlog
.
Flush
()
ethlog
.
Flush
()
})
})
}
}
func
ShowGenesis
(
ethereum
*
eth
.
Ethereum
)
{
func
ShowGenesis
(
ethereum
*
eth
.
Ethereum
)
{
logger
.
Infoln
(
ethereum
.
BlockChain
()
.
Genesis
())
logger
.
Infoln
(
ethereum
.
BlockChain
()
.
Genesis
())
exit
(
0
)
exit
(
0
)
}
}
func
KeyTasks
(
GenAddr
bool
,
ImportKey
string
,
ExportKey
bool
,
NonInteractive
bool
)
{
func
KeyTasks
(
GenAddr
bool
,
ImportKey
string
,
ExportKey
bool
,
NonInteractive
bool
)
{
switch
{
switch
{
case
GenAddr
:
case
GenAddr
:
if
NonInteractive
||
confirm
(
"This action overwrites your old private key."
)
{
if
NonInteractive
||
confirm
(
"This action overwrites your old private key."
)
{
CreateKeyPair
(
true
)
CreateKeyPair
(
true
)
}
}
exit
(
0
)
exit
(
0
)
case
len
(
ImportKey
)
>
0
:
case
len
(
ImportKey
)
>
0
:
if
NonInteractive
||
confirm
(
"This action overwrites your old private key."
)
{
if
NonInteractive
||
confirm
(
"This action overwrites your old private key."
)
{
// import should be from file
// import should be from file
mnemonic
:=
strings
.
Split
(
ImportKey
,
" "
)
mnemonic
:=
strings
.
Split
(
ImportKey
,
" "
)
if
len
(
mnemonic
)
==
24
{
if
len
(
mnemonic
)
==
24
{
logger
.
Infoln
(
"Got mnemonic key, importing."
)
logger
.
Infoln
(
"Got mnemonic key, importing."
)
key
:=
ethutil
.
MnemonicDecode
(
mnemonic
)
key
:=
ethutil
.
MnemonicDecode
(
mnemonic
)
ImportPrivateKey
(
key
)
ImportPrivateKey
(
key
)
}
else
if
len
(
mnemonic
)
==
1
{
}
else
if
len
(
mnemonic
)
==
1
{
logger
.
Infoln
(
"Got hex key, importing."
)
logger
.
Infoln
(
"Got hex key, importing."
)
ImportPrivateKey
(
ImportKey
)
ImportPrivateKey
(
ImportKey
)
}
else
{
}
else
{
logger
.
Errorln
(
"Did not recognise format, exiting."
)
logger
.
Errorln
(
"Did not recognise format, exiting."
)
}
}
}
}
exit
(
0
)
exit
(
0
)
case
ExportKey
:
// this should be exporting to a filename
case
ExportKey
:
// this should be exporting to a filename
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
fmt
.
Printf
(
`
fmt
.
Printf
(
`
Generating new address and keypair.
Generating new address and keypair.
Please keep your keys somewhere save.
Please keep your keys somewhere save.
...
@@ -169,61 +169,61 @@ pubk: %x
...
@@ -169,61 +169,61 @@ pubk: %x
save these words so you can restore your account later: %s
save these words so you can restore your account later: %s
`
,
keyPair
.
Address
(),
keyPair
.
PrivateKey
,
keyPair
.
PublicKey
)
`
,
keyPair
.
Address
(),
keyPair
.
PrivateKey
,
keyPair
.
PublicKey
)
exit
(
0
)
exit
(
0
)
default
:
default
:
// Creates a keypair if none exists
// Creates a keypair if none exists
CreateKeyPair
(
false
)
CreateKeyPair
(
false
)
}
}
}
}
func
StartRpc
(
ethereum
*
eth
.
Ethereum
,
RpcPort
int
)
{
func
StartRpc
(
ethereum
*
eth
.
Ethereum
,
RpcPort
int
)
{
var
err
error
var
err
error
ethereum
.
RpcServer
,
err
=
ethrpc
.
NewJsonRpcServer
(
ethpub
.
NewPEthereum
(
ethereum
),
RpcPort
)
ethereum
.
RpcServer
,
err
=
ethrpc
.
NewJsonRpcServer
(
ethpub
.
NewPEthereum
(
ethereum
),
RpcPort
)
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Errorf
(
"Could not start RPC interface (port %v): %v"
,
RpcPort
,
err
)
logger
.
Errorf
(
"Could not start RPC interface (port %v): %v"
,
RpcPort
,
err
)
}
else
{
}
else
{
go
ethereum
.
RpcServer
.
Start
()
go
ethereum
.
RpcServer
.
Start
()
}
}
}
}
var
miner
ethminer
.
Miner
var
miner
ethminer
.
Miner
func
StartMining
(
ethereum
*
eth
.
Ethereum
)
bool
{
func
StartMining
(
ethereum
*
eth
.
Ethereum
)
bool
{
if
!
ethereum
.
Mining
{
if
!
ethereum
.
Mining
{
ethereum
.
Mining
=
true
ethereum
.
Mining
=
true
if
ethutil
.
GetKeyRing
()
.
Len
()
==
0
{
if
ethutil
.
GetKeyRing
()
.
Len
()
==
0
{
logger
.
Errorln
(
"No address found, can't start mining"
)
logger
.
Errorln
(
"No address found, can't start mining"
)
ethereum
.
Mining
=
false
ethereum
.
Mining
=
false
return
true
//????
return
true
//????
}
}
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
addr
:=
keyPair
.
Address
()
addr
:=
keyPair
.
Address
()
go
func
()
{
go
func
()
{
miner
=
ethminer
.
NewDefaultMiner
(
addr
,
ethereum
)
miner
=
ethminer
.
NewDefaultMiner
(
addr
,
ethereum
)
// Give it some time to connect with peers
// Give it some time to connect with peers
time
.
Sleep
(
3
*
time
.
Second
)
time
.
Sleep
(
3
*
time
.
Second
)
logger
.
Infoln
(
"Miner started"
)
logger
.
Infoln
(
"Miner started"
)
miner
:=
ethminer
.
NewDefaultMiner
(
addr
,
ethereum
)
miner
:=
ethminer
.
NewDefaultMiner
(
addr
,
ethereum
)
miner
.
Start
()
miner
.
Start
()
}()
}()
RegisterInterrupt
(
func
(
os
.
Signal
)
{
RegisterInterrupt
(
func
(
os
.
Signal
)
{
StopMining
(
ethereum
)
StopMining
(
ethereum
)
})
})
return
true
return
true
}
}
return
false
return
false
}
}
func
StopMining
(
ethereum
*
eth
.
Ethereum
)
bool
{
func
StopMining
(
ethereum
*
eth
.
Ethereum
)
bool
{
if
ethereum
.
Mining
{
if
ethereum
.
Mining
{
miner
.
Stop
()
miner
.
Stop
()
logger
.
Infoln
(
"Miner stopped"
)
logger
.
Infoln
(
"Miner stopped"
)
ethereum
.
Mining
=
false
ethereum
.
Mining
=
false
return
true
return
true
}
}
return
false
return
false
}
}
// Replay block
// Replay block
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment