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
56dac74f
Commit
56dac74f
authored
Dec 15, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
made mist in a compilable, workable state using the new refactored packages
parent
c7bc6849
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
63 additions
and
29 deletions
+63
-29
flags.go
cmd/mist/flags.go
+4
-0
gui.go
cmd/mist/gui.go
+17
-19
main.go
cmd/mist/main.go
+3
-3
ui_lib.go
cmd/mist/ui_lib.go
+11
-7
backend.go
eth/backend.go
+4
-0
peer_util.go
eth/peer_util.go
+23
-0
server.go
p2p/server.go
+1
-0
No files found.
cmd/mist/flags.go
View file @
56dac74f
...
@@ -36,10 +36,12 @@ var (
...
@@ -36,10 +36,12 @@ var (
Identifier
string
Identifier
string
KeyRing
string
KeyRing
string
KeyStore
string
KeyStore
string
PMPGateway
string
StartRpc
bool
StartRpc
bool
StartWebSockets
bool
StartWebSockets
bool
RpcPort
int
RpcPort
int
UseUPnP
bool
UseUPnP
bool
NatType
string
OutboundPort
string
OutboundPort
string
ShowGenesis
bool
ShowGenesis
bool
AddPeer
string
AddPeer
string
...
@@ -111,10 +113,12 @@ func Init() {
...
@@ -111,10 +113,12 @@ func Init() {
flag
.
BoolVar
(
&
NonInteractive
,
"y"
,
false
,
"non-interactive mode (say yes to confirmations)"
)
flag
.
BoolVar
(
&
NonInteractive
,
"y"
,
false
,
"non-interactive mode (say yes to confirmations)"
)
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
.
StringVar
(
&
NatType
,
"nat"
,
""
,
"NAT support (UPNP|PMP) (none)"
)
flag
.
StringVar
(
&
SecretFile
,
"import"
,
""
,
"imports the file given (hex or mnemonic formats)"
)
flag
.
StringVar
(
&
SecretFile
,
"import"
,
""
,
"imports the file given (hex or mnemonic formats)"
)
flag
.
StringVar
(
&
ExportDir
,
"export"
,
""
,
"exports the session keyring to files in the directory given"
)
flag
.
StringVar
(
&
ExportDir
,
"export"
,
""
,
"exports the session keyring to files in the directory given"
)
flag
.
StringVar
(
&
LogFile
,
"logfile"
,
""
,
"log file (defaults to standard output)"
)
flag
.
StringVar
(
&
LogFile
,
"logfile"
,
""
,
"log file (defaults to standard output)"
)
flag
.
StringVar
(
&
Datadir
,
"datadir"
,
defaultDataDir
(),
"specifies the datadir to use"
)
flag
.
StringVar
(
&
Datadir
,
"datadir"
,
defaultDataDir
(),
"specifies the datadir to use"
)
flag
.
StringVar
(
&
PMPGateway
,
"pmp"
,
""
,
"Gateway IP for PMP"
)
flag
.
StringVar
(
&
ConfigFile
,
"conf"
,
defaultConfigFile
,
"config file"
)
flag
.
StringVar
(
&
ConfigFile
,
"conf"
,
defaultConfigFile
,
"config file"
)
flag
.
StringVar
(
&
DebugFile
,
"debug"
,
""
,
"debug file (no debugging if not set)"
)
flag
.
StringVar
(
&
DebugFile
,
"debug"
,
""
,
"debug file (no debugging if not set)"
)
flag
.
IntVar
(
&
LogLevel
,
"loglevel"
,
int
(
logger
.
InfoLevel
),
"loglevel: 0-5: silent,error,warn,info,debug,debug detail)"
)
flag
.
IntVar
(
&
LogLevel
,
"loglevel"
,
int
(
logger
.
InfoLevel
),
"loglevel: 0-5: silent,error,warn,info,debug,debug detail)"
)
...
...
cmd/mist/gui.go
View file @
56dac74f
...
@@ -30,14 +30,14 @@ import (
...
@@ -30,14 +30,14 @@ import (
"strings"
"strings"
"time"
"time"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/
wire
"
"github.com/ethereum/go-ethereum/
p2p
"
"github.com/ethereum/go-ethereum/xeth"
"github.com/ethereum/go-ethereum/xeth"
"gopkg.in/qml.v1"
"gopkg.in/qml.v1"
)
)
...
@@ -97,7 +97,7 @@ type Gui struct {
...
@@ -97,7 +97,7 @@ type Gui struct {
pipe
*
xeth
.
JSXEth
pipe
*
xeth
.
JSXEth
Session
string
Session
string
clientIdentity
*
wire
.
SimpleClientIdentity
clientIdentity
*
p2p
.
SimpleClientIdentity
config
*
ethutil
.
ConfigManager
config
*
ethutil
.
ConfigManager
plugins
map
[
string
]
plugin
plugins
map
[
string
]
plugin
...
@@ -107,7 +107,7 @@ type Gui struct {
...
@@ -107,7 +107,7 @@ type Gui struct {
}
}
// Create GUI, but doesn't start it
// Create GUI, but doesn't start it
func
NewWindow
(
ethereum
*
eth
.
Ethereum
,
config
*
ethutil
.
ConfigManager
,
clientIdentity
*
wire
.
SimpleClientIdentity
,
session
string
,
logLevel
int
)
*
Gui
{
func
NewWindow
(
ethereum
*
eth
.
Ethereum
,
config
*
ethutil
.
ConfigManager
,
clientIdentity
*
p2p
.
SimpleClientIdentity
,
session
string
,
logLevel
int
)
*
Gui
{
db
,
err
:=
ethdb
.
NewLDBDatabase
(
"tx_database"
)
db
,
err
:=
ethdb
.
NewLDBDatabase
(
"tx_database"
)
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
...
@@ -409,8 +409,7 @@ func (gui *Gui) update() {
...
@@ -409,8 +409,7 @@ func (gui *Gui) update() {
miningLabel
:=
gui
.
getObjectByName
(
"miningLabel"
)
miningLabel
:=
gui
.
getObjectByName
(
"miningLabel"
)
events
:=
gui
.
eth
.
EventMux
()
.
Subscribe
(
events
:=
gui
.
eth
.
EventMux
()
.
Subscribe
(
eth
.
ChainSyncEvent
{},
//eth.PeerListEvent{},
eth
.
PeerListEvent
{},
core
.
NewBlockEvent
{},
core
.
NewBlockEvent
{},
core
.
TxPreEvent
{},
core
.
TxPreEvent
{},
core
.
TxPostEvent
{},
core
.
TxPostEvent
{},
...
@@ -460,9 +459,6 @@ func (gui *Gui) update() {
...
@@ -460,9 +459,6 @@ func (gui *Gui) update() {
gui
.
setWalletValue
(
object
.
Balance
(),
nil
)
gui
.
setWalletValue
(
object
.
Balance
(),
nil
)
state
.
UpdateStateObject
(
object
)
state
.
UpdateStateObject
(
object
)
case
eth
.
PeerListEvent
:
gui
.
setPeerInfo
()
}
}
case
<-
peerUpdateTicker
.
C
:
case
<-
peerUpdateTicker
.
C
:
...
@@ -472,6 +468,7 @@ func (gui *Gui) update() {
...
@@ -472,6 +468,7 @@ func (gui *Gui) update() {
lastBlockLabel
.
Set
(
"text"
,
statusText
)
lastBlockLabel
.
Set
(
"text"
,
statusText
)
miningLabel
.
Set
(
"text"
,
"Mining @ "
+
strconv
.
FormatInt
(
gui
.
uiLib
.
miner
.
GetPow
()
.
GetHashrate
(),
10
)
+
"Khash"
)
miningLabel
.
Set
(
"text"
,
"Mining @ "
+
strconv
.
FormatInt
(
gui
.
uiLib
.
miner
.
GetPow
()
.
GetHashrate
(),
10
)
+
"Khash"
)
/*
blockLength := gui.eth.BlockPool().BlocksProcessed
blockLength := gui.eth.BlockPool().BlocksProcessed
chainLength := gui.eth.BlockPool().ChainLength
chainLength := gui.eth.BlockPool().ChainLength
...
@@ -482,6 +479,7 @@ func (gui *Gui) update() {
...
@@ -482,6 +479,7 @@ func (gui *Gui) update() {
)
)
dlWidget.Set("value", pct)
dlWidget.Set("value", pct)
dlLabel.Set("text", fmt.Sprintf("%d / %d", blockLength, chainLength))
dlLabel.Set("text", fmt.Sprintf("%d / %d", blockLength, chainLength))
*/
case
<-
statsUpdateTicker
.
C
:
case
<-
statsUpdateTicker
.
C
:
gui
.
setStatsPane
()
gui
.
setStatsPane
()
...
@@ -509,7 +507,7 @@ Heap Alloc: %d
...
@@ -509,7 +507,7 @@ Heap Alloc: %d
CGNext: %x
CGNext: %x
NumGC: %d
NumGC: %d
`
,
Version
,
runtime
.
Version
(),
`
,
Version
,
runtime
.
Version
(),
eth
.
ProtocolVersion
,
eth
.
P2PVersion
,
eth
.
ProtocolVersion
,
2
,
runtime
.
NumCPU
,
runtime
.
NumGoroutine
(),
runtime
.
NumCgoCall
(),
runtime
.
NumCPU
,
runtime
.
NumGoroutine
(),
runtime
.
NumCgoCall
(),
memStats
.
Alloc
,
memStats
.
HeapAlloc
,
memStats
.
Alloc
,
memStats
.
HeapAlloc
,
memStats
.
NextGC
,
memStats
.
NumGC
,
memStats
.
NextGC
,
memStats
.
NumGC
,
...
...
cmd/mist/main.go
View file @
56dac74f
...
@@ -23,8 +23,8 @@ import (
...
@@ -23,8 +23,8 @@ import (
"runtime"
"runtime"
"time"
"time"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger"
"gopkg.in/qml.v1"
"gopkg.in/qml.v1"
)
)
...
@@ -58,8 +58,8 @@ func run() error {
...
@@ -58,8 +58,8 @@ func run() error {
// create, import, export keys
// create, import, export keys
utils
.
KeyTasks
(
keyManager
,
KeyRing
,
GenAddr
,
SecretFile
,
ExportDir
,
NonInteractive
)
utils
.
KeyTasks
(
keyManager
,
KeyRing
,
GenAddr
,
SecretFile
,
ExportDir
,
NonInteractive
)
clientIdentity
:=
utils
.
NewClientIdentity
(
ClientIdentifier
,
Version
,
Identifier
)
clientIdentity
:=
utils
.
NewClientIdentity
(
ClientIdentifier
,
Version
,
Identifier
,
string
(
keyManager
.
PublicKey
())
)
ethereum
=
utils
.
NewEthereum
(
db
,
clientIdentity
,
keyManager
,
UseUPnP
,
OutboundPort
,
MaxPeer
)
ethereum
:=
utils
.
NewEthereum
(
db
,
clientIdentity
,
keyManager
,
utils
.
NatType
(
NatType
,
PMPGateway
)
,
OutboundPort
,
MaxPeer
)
if
ShowGenesis
{
if
ShowGenesis
{
utils
.
ShowGenesis
(
ethereum
)
utils
.
ShowGenesis
(
ethereum
)
...
...
cmd/mist/ui_lib.go
View file @
56dac74f
...
@@ -27,7 +27,9 @@ import (
...
@@ -27,7 +27,9 @@ import (
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event/filter"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/state"
...
@@ -56,6 +58,7 @@ type UiLib struct {
...
@@ -56,6 +58,7 @@ type UiLib struct {
jsEngine
*
javascript
.
JSRE
jsEngine
*
javascript
.
JSRE
filterCallbacks
map
[
int
][]
int
filterCallbacks
map
[
int
][]
int
filterManager
*
filter
.
FilterManager
miner
*
miner
.
Miner
miner
*
miner
.
Miner
}
}
...
@@ -63,7 +66,7 @@ type UiLib struct {
...
@@ -63,7 +66,7 @@ type UiLib struct {
func
NewUiLib
(
engine
*
qml
.
Engine
,
eth
*
eth
.
Ethereum
,
assetPath
string
)
*
UiLib
{
func
NewUiLib
(
engine
*
qml
.
Engine
,
eth
*
eth
.
Ethereum
,
assetPath
string
)
*
UiLib
{
lib
:=
&
UiLib
{
JSXEth
:
xeth
.
NewJSXEth
(
eth
),
engine
:
engine
,
eth
:
eth
,
assetPath
:
assetPath
,
jsEngine
:
javascript
.
NewJSRE
(
eth
),
filterCallbacks
:
make
(
map
[
int
][]
int
)}
//, filters: make(map[int]*xeth.JSFilter)}
lib
:=
&
UiLib
{
JSXEth
:
xeth
.
NewJSXEth
(
eth
),
engine
:
engine
,
eth
:
eth
,
assetPath
:
assetPath
,
jsEngine
:
javascript
.
NewJSRE
(
eth
),
filterCallbacks
:
make
(
map
[
int
][]
int
)}
//, filters: make(map[int]*xeth.JSFilter)}
lib
.
miner
=
miner
.
New
(
eth
.
KeyManager
()
.
Address
(),
eth
)
lib
.
miner
=
miner
.
New
(
eth
.
KeyManager
()
.
Address
(),
eth
)
//eth
.filterManager = filter.NewFilterManager(eth.EventMux())
lib
.
filterManager
=
filter
.
NewFilterManager
(
eth
.
EventMux
())
return
lib
return
lib
}
}
...
@@ -123,7 +126,8 @@ func (self *UiLib) LookupAddress(name string) string {
...
@@ -123,7 +126,8 @@ func (self *UiLib) LookupAddress(name string) string {
}
}
func
(
self
*
UiLib
)
PastPeers
()
*
ethutil
.
List
{
func
(
self
*
UiLib
)
PastPeers
()
*
ethutil
.
List
{
return
ethutil
.
NewList
(
eth
.
PastPeers
())
return
ethutil
.
NewList
([]
string
{})
//return ethutil.NewList(eth.PastPeers())
}
}
func
(
self
*
UiLib
)
ImportTx
(
rlpTx
string
)
{
func
(
self
*
UiLib
)
ImportTx
(
rlpTx
string
)
{
...
@@ -191,7 +195,7 @@ func (ui *UiLib) Connect(button qml.Object) {
...
@@ -191,7 +195,7 @@ func (ui *UiLib) Connect(button qml.Object) {
}
}
func
(
ui
*
UiLib
)
ConnectToPeer
(
addr
string
)
{
func
(
ui
*
UiLib
)
ConnectToPeer
(
addr
string
)
{
ui
.
eth
.
ConnectTo
Peer
(
addr
)
ui
.
eth
.
Suggest
Peer
(
addr
)
}
}
func
(
ui
*
UiLib
)
AssetPath
(
p
string
)
string
{
func
(
ui
*
UiLib
)
AssetPath
(
p
string
)
string
{
...
@@ -226,7 +230,7 @@ func (self *UiLib) NewFilter(object map[string]interface{}) (id int) {
...
@@ -226,7 +230,7 @@ func (self *UiLib) NewFilter(object map[string]interface{}) (id int) {
filter
.
MessageCallback
=
func
(
messages
state
.
Messages
)
{
filter
.
MessageCallback
=
func
(
messages
state
.
Messages
)
{
self
.
win
.
Root
()
.
Call
(
"invokeFilterCallback"
,
xeth
.
ToJSMessages
(
messages
),
id
)
self
.
win
.
Root
()
.
Call
(
"invokeFilterCallback"
,
xeth
.
ToJSMessages
(
messages
),
id
)
}
}
id
=
self
.
eth
.
InstallFilter
(
filter
)
id
=
self
.
filterManager
.
InstallFilter
(
filter
)
return
id
return
id
}
}
...
@@ -239,12 +243,12 @@ func (self *UiLib) NewFilterString(typ string) (id int) {
...
@@ -239,12 +243,12 @@ func (self *UiLib) NewFilterString(typ string) (id int) {
fmt
.
Println
(
"QML is lagging"
)
fmt
.
Println
(
"QML is lagging"
)
}
}
}
}
id
=
self
.
eth
.
InstallFilter
(
filter
)
id
=
self
.
filterManager
.
InstallFilter
(
filter
)
return
id
return
id
}
}
func
(
self
*
UiLib
)
Messages
(
id
int
)
*
ethutil
.
List
{
func
(
self
*
UiLib
)
Messages
(
id
int
)
*
ethutil
.
List
{
filter
:=
self
.
eth
.
GetFilter
(
id
)
filter
:=
self
.
filterManager
.
GetFilter
(
id
)
if
filter
!=
nil
{
if
filter
!=
nil
{
messages
:=
xeth
.
ToJSMessages
(
filter
.
Find
())
messages
:=
xeth
.
ToJSMessages
(
filter
.
Find
())
...
@@ -255,7 +259,7 @@ func (self *UiLib) Messages(id int) *ethutil.List {
...
@@ -255,7 +259,7 @@ func (self *UiLib) Messages(id int) *ethutil.List {
}
}
func
(
self
*
UiLib
)
UninstallFilter
(
id
int
)
{
func
(
self
*
UiLib
)
UninstallFilter
(
id
int
)
{
self
.
eth
.
UninstallFilter
(
id
)
self
.
filterManager
.
UninstallFilter
(
id
)
}
}
func
mapToTxParams
(
object
map
[
string
]
interface
{})
map
[
string
]
string
{
func
mapToTxParams
(
object
map
[
string
]
interface
{})
map
[
string
]
string
{
...
...
eth/backend.go
View file @
56dac74f
...
@@ -147,6 +147,10 @@ func (s *Ethereum) Peers() []*p2p.Peer {
...
@@ -147,6 +147,10 @@ func (s *Ethereum) Peers() []*p2p.Peer {
return
s
.
server
.
Peers
()
return
s
.
server
.
Peers
()
}
}
func
(
s
*
Ethereum
)
MaxPeers
()
int
{
return
s
.
server
.
MaxPeers
}
// Start the ethereum
// Start the ethereum
func
(
s
*
Ethereum
)
Start
(
seed
bool
)
error
{
func
(
s
*
Ethereum
)
Start
(
seed
bool
)
error
{
err
:=
s
.
server
.
Start
()
err
:=
s
.
server
.
Start
()
...
...
eth/peer_util.go
0 → 100644
View file @
56dac74f
package
eth
import
(
"encoding/json"
"github.com/ethereum/go-ethereum/ethutil"
)
func
WritePeers
(
path
string
,
addresses
[]
string
)
{
if
len
(
addresses
)
>
0
{
data
,
_
:=
json
.
MarshalIndent
(
addresses
,
""
,
" "
)
ethutil
.
WriteFile
(
path
,
data
)
}
}
func
ReadPeers
(
path
string
)
(
ips
[]
string
,
err
error
)
{
var
data
string
data
,
err
=
ethutil
.
ReadAllFile
(
path
)
if
err
!=
nil
{
json
.
Unmarshal
([]
byte
(
data
),
&
ips
)
}
return
}
p2p/server.go
View file @
56dac74f
...
@@ -416,6 +416,7 @@ func (srv *Server) verifyPeer(addr *peerAddr) error {
...
@@ -416,6 +416,7 @@ func (srv *Server) verifyPeer(addr *peerAddr) error {
return
nil
return
nil
}
}
// TODO replace with "Set"
type
Blacklist
interface
{
type
Blacklist
interface
{
Get
([]
byte
)
(
bool
,
error
)
Get
([]
byte
)
(
bool
,
error
)
Put
([]
byte
)
error
Put
([]
byte
)
error
...
...
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