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
2cf4fed1
Commit
2cf4fed1
authored
Feb 06, 2015
by
Felix Lange
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/mist, eth, javascript, p2p: use Node URLs for peer suggestions
parent
e34d1341
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
21 additions
and
62 deletions
+21
-62
main.qml
cmd/mist/assets/qml/main.qml
+9
-35
ui_lib.go
cmd/mist/ui_lib.go
+3
-9
backend.go
eth/backend.go
+4
-6
javascript_runtime.go
javascript/javascript_runtime.go
+2
-9
server.go
p2p/server.go
+2
-2
server_test.go
p2p/server_test.go
+1
-1
No files found.
cmd/mist/assets/qml/main.qml
View file @
2cf4fed1
...
...
@@ -205,7 +205,7 @@ ApplicationWindow {
Menu
{
title
:
"Network"
MenuItem
{
text
:
"
Add Peer
"
text
:
"
Connect to Node
"
shortcut
:
"Ctrl+p"
onTriggered
:
{
addPeerWin
.
visible
=
true
...
...
@@ -838,60 +838,34 @@ ApplicationWindow {
Window
{
id
:
addPeerWin
visible
:
false
minimumWidth
:
3
00
maximumWidth
:
3
00
minimumWidth
:
4
00
maximumWidth
:
4
00
maximumHeight
:
50
minimumHeight
:
50
title
:
"Connect to
peer
"
title
:
"Connect to
Node
"
ComboBox
{
TextField
{
id
:
addrField
placeholderText
:
"enode://<hex node id>:<IP address>:<port>"
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.left
:
parent
.
left
anchors.right
:
addPeerButton
.
left
anchors.leftMargin
:
10
anchors.rightMargin
:
10
onAccepted
:
{
eth
.
connectToPeer
(
addrField
.
currentT
ext
)
eth
.
connectToPeer
(
addrField
.
t
ext
)
addPeerWin
.
visible
=
false
}
editable
:
true
model
:
ListModel
{
id
:
pastPeers
}
Component.onCompleted
:
{
pastPeers
.
insert
(
0
,
{
text
:
"poc-8.ethdev.com:30303"
})
/*
var ips = eth.pastPeers()
for(var i = 0; i < ips.length; i++) {
pastPeers.append({text: ips.get(i)})
}
pastPeers.insert(0, {text: "poc-7.ethdev.com:30303"})
*/
}
}
ComboBox
{
id
:
nodeidField
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.left
:
parent
.
left
anchors.right
:
addPeerButton
.
left
anchors.leftMargin
:
10
anchors.rightMargin
:
10
editable
:
true
}
Button
{
id
:
addPeerButton
anchors.right
:
parent
.
right
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.rightMargin
:
10
text
:
"
Add
"
text
:
"
Connect
"
onClicked
:
{
eth
.
connectToPeer
(
addrField
.
currentText
,
nodeidField
.
currentT
ext
)
eth
.
connectToPeer
(
addrField
.
t
ext
)
addPeerWin
.
visible
=
false
}
}
...
...
cmd/mist/ui_lib.go
View file @
2cf4fed1
...
...
@@ -31,7 +31,6 @@ import (
"github.com/ethereum/go-ethereum/event/filter"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/p2p/discover"
"github.com/ethereum/go-ethereum/xeth"
"github.com/obscuren/qml"
)
...
...
@@ -143,14 +142,9 @@ func (ui *UiLib) Connect(button qml.Object) {
}
}
func
(
ui
*
UiLib
)
ConnectToPeer
(
addr
string
,
hexid
string
)
{
id
,
err
:=
discover
.
HexID
(
hexid
)
if
err
!=
nil
{
guilogger
.
Errorf
(
"bad node ID: %v"
,
err
)
return
}
if
err
:=
ui
.
eth
.
SuggestPeer
(
addr
,
id
);
err
!=
nil
{
guilogger
.
Infoln
(
err
)
func
(
ui
*
UiLib
)
ConnectToPeer
(
nodeURL
string
)
{
if
err
:=
ui
.
eth
.
SuggestPeer
(
nodeURL
);
err
!=
nil
{
guilogger
.
Infoln
(
"SuggestPeer error: "
+
err
.
Error
())
}
}
...
...
eth/backend.go
View file @
2cf4fed1
...
...
@@ -2,7 +2,6 @@ package eth
import
(
"fmt"
"net"
"sync"
"github.com/ethereum/go-ethereum/core"
...
...
@@ -241,13 +240,12 @@ func (s *Ethereum) Start(seedNode string) error {
return
nil
}
func
(
self
*
Ethereum
)
SuggestPeer
(
addr
string
,
id
discover
.
NodeID
)
error
{
n
etaddr
,
err
:=
net
.
ResolveTCPAddr
(
"tcp"
,
addr
)
func
(
self
*
Ethereum
)
SuggestPeer
(
nodeURL
string
)
error
{
n
,
err
:=
discover
.
ParseNode
(
nodeURL
)
if
err
!=
nil
{
logger
.
Errorf
(
"couldn't resolve %s:"
,
addr
,
err
)
return
err
return
fmt
.
Errorf
(
"invalid node URL: %v"
,
err
)
}
self
.
net
.
SuggestPeer
(
n
etaddr
.
IP
,
netaddr
.
Port
,
id
)
self
.
net
.
SuggestPeer
(
n
)
return
nil
}
...
...
javascript/javascript_runtime.go
View file @
2cf4fed1
...
...
@@ -14,7 +14,6 @@ import (
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/p2p/discover"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/xeth"
"github.com/obscuren/otto"
...
...
@@ -198,19 +197,13 @@ func (self *JSRE) watch(call otto.FunctionCall) otto.Value {
}
func
(
self
*
JSRE
)
addPeer
(
call
otto
.
FunctionCall
)
otto
.
Value
{
host
,
err
:=
call
.
Argument
(
0
)
.
ToString
()
nodeURL
,
err
:=
call
.
Argument
(
0
)
.
ToString
()
if
err
!=
nil
{
return
otto
.
FalseValue
()
}
idstr
,
err
:=
call
.
Argument
(
0
)
.
ToString
()
if
err
!=
nil
{
return
otto
.
FalseValue
()
}
id
,
err
:=
discover
.
HexID
(
idstr
)
if
err
!=
nil
{
if
err
:=
self
.
ethereum
.
SuggestPeer
(
nodeURL
);
err
!=
nil
{
return
otto
.
FalseValue
()
}
self
.
ethereum
.
SuggestPeer
(
host
,
id
)
return
otto
.
TrueValue
()
}
...
...
p2p/server.go
View file @
2cf4fed1
...
...
@@ -135,8 +135,8 @@ func (srv *Server) PeerCount() int {
// SuggestPeer creates a connection to the given Node if it
// is not already connected.
func
(
srv
*
Server
)
SuggestPeer
(
ip
net
.
IP
,
port
int
,
id
discover
.
NodeID
)
{
srv
.
peerConnect
<-
&
discover
.
Node
{
ID
:
id
,
IP
:
ip
,
TCPPort
:
port
}
func
(
srv
*
Server
)
SuggestPeer
(
n
*
discover
.
Node
)
{
srv
.
peerConnect
<-
n
}
// Broadcast sends an RLP-encoded message to all connected peers.
...
...
p2p/server_test.go
View file @
2cf4fed1
...
...
@@ -91,7 +91,7 @@ func TestServerDial(t *testing.T) {
// tell the server to connect
tcpAddr
:=
listener
.
Addr
()
.
(
*
net
.
TCPAddr
)
srv
.
peerConnect
<-
&
discover
.
Node
{
IP
:
tcpAddr
.
IP
,
TCPPort
:
tcpAddr
.
Port
}
srv
.
SuggestPeer
(
&
discover
.
Node
{
IP
:
tcpAddr
.
IP
,
TCPPort
:
tcpAddr
.
Port
})
select
{
case
conn
:=
<-
accepted
:
...
...
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