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
Hide 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 (
Identifier
string
KeyRing
string
KeyStore
string
PMPGateway
string
StartRpc
bool
StartWebSockets
bool
RpcPort
int
UseUPnP
bool
NatType
string
OutboundPort
string
ShowGenesis
bool
AddPeer
string
...
...
@@ -111,10 +113,12 @@ func Init() {
flag
.
BoolVar
(
&
NonInteractive
,
"y"
,
false
,
"non-interactive mode (say yes to confirmations)"
)
flag
.
BoolVar
(
&
UseSeed
,
"seed"
,
true
,
"seed peers"
)
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
(
&
ExportDir
,
"export"
,
""
,
"exports the session keyring to files in the directory given"
)
flag
.
StringVar
(
&
LogFile
,
"logfile"
,
""
,
"log file (defaults to standard output)"
)
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
(
&
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)"
)
...
...
cmd/mist/gui.go
View file @
56dac74f
...
...
@@ -30,14 +30,14 @@ import (
"strings"
"time"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/
wire
"
"github.com/ethereum/go-ethereum/
p2p
"
"github.com/ethereum/go-ethereum/xeth"
"gopkg.in/qml.v1"
)
...
...
@@ -97,7 +97,7 @@ type Gui struct {
pipe
*
xeth
.
JSXEth
Session
string
clientIdentity
*
wire
.
SimpleClientIdentity
clientIdentity
*
p2p
.
SimpleClientIdentity
config
*
ethutil
.
ConfigManager
plugins
map
[
string
]
plugin
...
...
@@ -107,7 +107,7 @@ type Gui struct {
}
// 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"
)
if
err
!=
nil
{
panic
(
err
)
...
...
@@ -409,8 +409,7 @@ func (gui *Gui) update() {
miningLabel
:=
gui
.
getObjectByName
(
"miningLabel"
)
events
:=
gui
.
eth
.
EventMux
()
.
Subscribe
(
eth
.
ChainSyncEvent
{},
eth
.
PeerListEvent
{},
//eth.PeerListEvent{},
core
.
NewBlockEvent
{},
core
.
TxPreEvent
{},
core
.
TxPostEvent
{},
...
...
@@ -460,9 +459,6 @@ func (gui *Gui) update() {
gui
.
setWalletValue
(
object
.
Balance
(),
nil
)
state
.
UpdateStateObject
(
object
)
case
eth
.
PeerListEvent
:
gui
.
setPeerInfo
()
}
case
<-
peerUpdateTicker
.
C
:
...
...
@@ -472,16 +468,18 @@ func (gui *Gui) update() {
lastBlockLabel
.
Set
(
"text"
,
statusText
)
miningLabel
.
Set
(
"text"
,
"Mining @ "
+
strconv
.
FormatInt
(
gui
.
uiLib
.
miner
.
GetPow
()
.
GetHashrate
(),
10
)
+
"Khash"
)
blockLength
:=
gui
.
eth
.
BlockPool
()
.
BlocksProcessed
chainLength
:=
gui
.
eth
.
BlockPool
()
.
ChainLength
/*
blockLength := gui.eth.BlockPool().BlocksProcessed
chainLength := gui.eth.BlockPool().ChainLength
var
(
pct
float64
=
1.0
/
float64
(
chainLength
)
*
float64
(
blockLength
)
dlWidget
=
gui
.
win
.
Root
()
.
ObjectByName
(
"downloadIndicator"
)
dlLabel
=
gui
.
win
.
Root
()
.
ObjectByName
(
"downloadLabel"
)
)
dlWidget
.
Set
(
"value"
,
pct
)
dlLabel
.
Set
(
"text"
,
fmt
.
Sprintf
(
"%d / %d"
,
blockLength
,
chainLength
))
var (
pct float64 = 1.0 / float64(chainLength) * float64(blockLength)
dlWidget = gui.win.Root().ObjectByName("downloadIndicator")
dlLabel = gui.win.Root().ObjectByName("downloadLabel")
)
dlWidget.Set("value", pct)
dlLabel.Set("text", fmt.Sprintf("%d / %d", blockLength, chainLength))
*/
case
<-
statsUpdateTicker
.
C
:
gui
.
setStatsPane
()
...
...
@@ -509,7 +507,7 @@ Heap Alloc: %d
CGNext: %x
NumGC: %d
`
,
Version
,
runtime
.
Version
(),
eth
.
ProtocolVersion
,
eth
.
P2PVersion
,
eth
.
ProtocolVersion
,
2
,
runtime
.
NumCPU
,
runtime
.
NumGoroutine
(),
runtime
.
NumCgoCall
(),
memStats
.
Alloc
,
memStats
.
HeapAlloc
,
memStats
.
NextGC
,
memStats
.
NumGC
,
...
...
cmd/mist/main.go
View file @
56dac74f
...
...
@@ -23,8 +23,8 @@ import (
"runtime"
"time"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/logger"
"gopkg.in/qml.v1"
)
...
...
@@ -58,8 +58,8 @@ func run() error {
// create, import, export keys
utils
.
KeyTasks
(
keyManager
,
KeyRing
,
GenAddr
,
SecretFile
,
ExportDir
,
NonInteractive
)
clientIdentity
:=
utils
.
NewClientIdentity
(
ClientIdentifier
,
Version
,
Identifier
)
ethereum
=
utils
.
NewEthereum
(
db
,
clientIdentity
,
keyManager
,
UseUPnP
,
OutboundPort
,
MaxPeer
)
clientIdentity
:=
utils
.
NewClientIdentity
(
ClientIdentifier
,
Version
,
Identifier
,
string
(
keyManager
.
PublicKey
())
)
ethereum
:=
utils
.
NewEthereum
(
db
,
clientIdentity
,
keyManager
,
utils
.
NatType
(
NatType
,
PMPGateway
)
,
OutboundPort
,
MaxPeer
)
if
ShowGenesis
{
utils
.
ShowGenesis
(
ethereum
)
...
...
cmd/mist/ui_lib.go
View file @
56dac74f
...
...
@@ -27,7 +27,9 @@ import (
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event/filter"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/state"
...
...
@@ -56,6 +58,7 @@ type UiLib struct {
jsEngine
*
javascript
.
JSRE
filterCallbacks
map
[
int
][]
int
filterManager
*
filter
.
FilterManager
miner
*
miner
.
Miner
}
...
...
@@ -63,7 +66,7 @@ type UiLib struct {
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
.
miner
=
miner
.
New
(
eth
.
KeyManager
()
.
Address
(),
eth
)
//eth
.filterManager = filter.NewFilterManager(eth.EventMux())
lib
.
filterManager
=
filter
.
NewFilterManager
(
eth
.
EventMux
())
return
lib
}
...
...
@@ -123,7 +126,8 @@ func (self *UiLib) LookupAddress(name string) string {
}
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
)
{
...
...
@@ -191,7 +195,7 @@ func (ui *UiLib) Connect(button qml.Object) {
}
func
(
ui
*
UiLib
)
ConnectToPeer
(
addr
string
)
{
ui
.
eth
.
ConnectTo
Peer
(
addr
)
ui
.
eth
.
Suggest
Peer
(
addr
)
}
func
(
ui
*
UiLib
)
AssetPath
(
p
string
)
string
{
...
...
@@ -226,7 +230,7 @@ func (self *UiLib) NewFilter(object map[string]interface{}) (id int) {
filter
.
MessageCallback
=
func
(
messages
state
.
Messages
)
{
self
.
win
.
Root
()
.
Call
(
"invokeFilterCallback"
,
xeth
.
ToJSMessages
(
messages
),
id
)
}
id
=
self
.
eth
.
InstallFilter
(
filter
)
id
=
self
.
filterManager
.
InstallFilter
(
filter
)
return
id
}
...
...
@@ -239,12 +243,12 @@ func (self *UiLib) NewFilterString(typ string) (id int) {
fmt
.
Println
(
"QML is lagging"
)
}
}
id
=
self
.
eth
.
InstallFilter
(
filter
)
id
=
self
.
filterManager
.
InstallFilter
(
filter
)
return
id
}
func
(
self
*
UiLib
)
Messages
(
id
int
)
*
ethutil
.
List
{
filter
:=
self
.
eth
.
GetFilter
(
id
)
filter
:=
self
.
filterManager
.
GetFilter
(
id
)
if
filter
!=
nil
{
messages
:=
xeth
.
ToJSMessages
(
filter
.
Find
())
...
...
@@ -255,7 +259,7 @@ func (self *UiLib) Messages(id int) *ethutil.List {
}
func
(
self
*
UiLib
)
UninstallFilter
(
id
int
)
{
self
.
eth
.
UninstallFilter
(
id
)
self
.
filterManager
.
UninstallFilter
(
id
)
}
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 {
return
s
.
server
.
Peers
()
}
func
(
s
*
Ethereum
)
MaxPeers
()
int
{
return
s
.
server
.
MaxPeers
}
// Start the ethereum
func
(
s
*
Ethereum
)
Start
(
seed
bool
)
error
{
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 {
return
nil
}
// TODO replace with "Set"
type
Blacklist
interface
{
Get
([]
byte
)
(
bool
,
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