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
6ca99709
Commit
6ca99709
authored
Apr 25, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
bbde892d
59a7b130
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
69 deletions
+67
-69
test.html
ethereal/assets/test.html
+0
-10
config.go
ethereum/config.go
+4
-2
ethereum.go
ethereum/ethereum.go
+63
-57
No files found.
ethereal/assets/test.html
View file @
6ca99709
...
...
@@ -14,13 +14,6 @@ function createTransaction() {
})
}
// Any test related actions here please
function
tests
()
{
eth
.
getKey
(
function
(
keys
)
{
debug
(
keys
)
})
}
function
init
()
{
eth
.
getKey
(
function
(
key
)
{
eth
.
getStorage
(
jefcoinAddr
,
key
,
function
(
storage
)
{
...
...
@@ -55,9 +48,6 @@ input[type="text"] {
<button
onclick=
"createTransaction();"
>
Send Tx
</button>
</div>
<div><button
onclick=
"tests();"
>
Tests
</button></div>
<div
id=
"debug"
style=
"border: 1px solid block"
></div>
</body>
...
...
ethereum/config.go
View file @
6ca99709
...
...
@@ -15,20 +15,22 @@ var GenAddr bool
var
UseSeed
bool
var
ImportKey
string
var
ExportKey
bool
//var UseGui bool
var
LogFile
string
var
DataDir
string
var
NonInteractive
bool
func
Init
()
{
flag
.
BoolVar
(
&
StartConsole
,
"c"
,
false
,
"debug and testing console"
)
flag
.
BoolVar
(
&
StartMining
,
"m"
,
false
,
"start dagger mining"
)
flag
.
BoolVar
(
&
ShowGenesis
,
"g"
,
false
,
"prints genesis header and exits"
)
//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
(
&
UseSeed
,
"seed"
,
true
,
"seed peers"
)
flag
.
BoolVar
(
&
GenAddr
,
"genaddr"
,
false
,
"create a new priv/pub key"
)
flag
.
BoolVar
(
&
ExportKey
,
"export"
,
false
,
"export private key"
)
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
(
&
ImportKey
,
"import"
,
""
,
"imports the given private key (hex)"
)
flag
.
IntVar
(
&
MaxPeer
,
"x"
,
5
,
"maximum desired peers"
)
...
...
ethereum/ethereum.go
View file @
6ca99709
...
...
@@ -17,7 +17,7 @@ import (
const
Debug
=
true
// Register interrupt handlers so we can stop the ethereum
func
RegisterInterupts
(
s
*
eth
.
Ethereum
)
{
func
RegisterInter
r
upts
(
s
*
eth
.
Ethereum
)
{
// Buffered chan of one is enough
c
:=
make
(
chan
os
.
Signal
,
1
)
// Notify about interrupts for now
...
...
@@ -25,19 +25,50 @@ func RegisterInterupts(s *eth.Ethereum) {
go
func
()
{
for
sig
:=
range
c
{
fmt
.
Printf
(
"Shutting down (%v) ...
\n
"
,
sig
)
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
()
{
Init
()
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
)
logger
:=
ethutil
.
Config
.
Log
logger
.
AddLogSystem
(
logSys
)
ethchain
.
InitFees
()
ethutil
.
Config
.
Seed
=
UseSeed
// Instantiated a eth stack
...
...
@@ -48,67 +79,42 @@ func main() {
}
ethereum
.
Port
=
OutboundPort
if
GenAddr
{
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"
{
// bookkeeping tasks
switch
{
case
GenAddr
:
if
NonInteractive
||
confirm
(
"This action overwrites your old private key."
)
{
utils
.
CreateKeyPair
(
true
)
}
os
.
Exit
(
0
)
}
else
{
if
len
(
ImportKey
)
>
0
{
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"
{
case
len
(
ImportKey
)
>
0
:
if
NonInteractive
||
confirm
(
"This action overwrites your old private key."
)
{
mnemonic
:=
strings
.
Split
(
ImportKey
,
" "
)
if
len
(
mnemonic
)
==
24
{
fmt
.
Println
(
"Got mnemonic key, importing."
)
logSys
.
Println
(
"Got mnemonic key, importing."
)
key
:=
ethutil
.
MnemonicDecode
(
mnemonic
)
utils
.
ImportPrivateKey
(
key
)
}
else
if
len
(
mnemonic
)
==
1
{
fmt
.
Println
(
"Got hex key, importing."
)
logSys
.
Println
(
"Got hex key, importing."
)
utils
.
ImportPrivateKey
(
ImportKey
)
}
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
)
}
}
if
ExportKey
{
fallthrough
case
ExportKey
:
key
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
fmt
.
Printf
(
"%x
\n
"
,
key
.
PrivateKey
)
logSys
.
Println
(
fmt
.
Sprintf
(
"prvk: %x
\n
"
,
key
.
PrivateKey
)
)
os
.
Exit
(
0
)
}
if
ShowGenesis
{
fmt
.
Println
(
ethereum
.
BlockChain
()
.
Genesis
())
case
ShowGenesis
:
logSys
.
Println
(
ethereum
.
BlockChain
()
.
Genesis
())
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
ethereum
.
MaxPeers
=
MaxPeer
...
...
@@ -124,17 +130,17 @@ func main() {
go
console
.
Start
()
}
RegisterInterupts
(
ethereum
)
RegisterInter
r
upts
(
ethereum
)
ethereum
.
Start
()
if
StartMining
{
log
.
Printf
(
"Miner started
\n
"
)
log
ger
.
Infoln
(
"Miner started
"
)
// Fake block mining. It broadcasts a new block every 5 seconds
go
func
()
{
if
StartMining
{
log
.
Printf
(
"Miner started
\n
"
)
log
ger
.
Infoln
(
"Miner started
"
)
go
func
()
{
data
,
_
:=
ethutil
.
Config
.
Db
.
Get
([]
byte
(
"KeyRing"
))
...
...
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