Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
1a53ad77
Commit
1a53ad77
authored
Oct 04, 2016
by
Jeromy
Browse files
extract host interface
parent
9910e6a7
Changes
17
Hide whitespace changes
Inline
Side-by-side
examples/hosts/main.go
View file @
1a53ad77
...
@@ -8,9 +8,9 @@ import (
...
@@ -8,9 +8,9 @@ import (
"log"
"log"
"strings"
"strings"
host
"github.com/libp2p/go-libp2p-host"
inet
"github.com/libp2p/go-libp2p-net"
inet
"github.com/libp2p/go-libp2p-net"
net
"github.com/libp2p/go-libp2p-net"
net
"github.com/libp2p/go-libp2p-net"
host
"github.com/libp2p/go-libp2p/p2p/host"
bhost
"github.com/libp2p/go-libp2p/p2p/host/basic"
bhost
"github.com/libp2p/go-libp2p/p2p/host/basic"
swarm
"github.com/libp2p/go-libp2p/p2p/net/swarm"
swarm
"github.com/libp2p/go-libp2p/p2p/net/swarm"
...
...
p2p/discovery/mdns.go
View file @
1a53ad77
...
@@ -15,7 +15,7 @@ import (
...
@@ -15,7 +15,7 @@ import (
logging
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
ma
"github.com/jbenet/go-multiaddr"
ma
"github.com/jbenet/go-multiaddr"
manet
"github.com/jbenet/go-multiaddr-net"
manet
"github.com/jbenet/go-multiaddr-net"
"github.com/libp2p/go-libp2p
/p2p/
host"
"github.com/libp2p/go-libp2p
-
host"
"github.com/whyrusleeping/mdns"
"github.com/whyrusleeping/mdns"
)
)
...
...
p2p/discovery/mdns_test.go
View file @
1a53ad77
...
@@ -5,7 +5,7 @@ import (
...
@@ -5,7 +5,7 @@ import (
"testing"
"testing"
"time"
"time"
host
"github.com/libp2p/go-libp2p
/p2p/
host"
host
"github.com/libp2p/go-libp2p
-
host"
netutil
"github.com/libp2p/go-libp2p/p2p/test/util"
netutil
"github.com/libp2p/go-libp2p/p2p/test/util"
pstore
"github.com/ipfs/go-libp2p-peerstore"
pstore
"github.com/ipfs/go-libp2p-peerstore"
...
...
p2p/host/basic/basic_host_test.go
View file @
1a53ad77
...
@@ -7,9 +7,9 @@ import (
...
@@ -7,9 +7,9 @@ import (
"testing"
"testing"
"time"
"time"
host
"github.com/libp2p/go-libp2p-host"
inet
"github.com/libp2p/go-libp2p-net"
inet
"github.com/libp2p/go-libp2p-net"
protocol
"github.com/libp2p/go-libp2p-protocol"
protocol
"github.com/libp2p/go-libp2p-protocol"
host
"github.com/libp2p/go-libp2p/p2p/host"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
)
)
...
...
p2p/host/host.go
deleted
100644 → 0
View file @
9910e6a7
package
host
import
(
"context"
peer
"github.com/ipfs/go-libp2p-peer"
pstore
"github.com/ipfs/go-libp2p-peerstore"
logging
"github.com/ipfs/go-log"
ma
"github.com/jbenet/go-multiaddr"
metrics
"github.com/libp2p/go-libp2p-metrics"
inet
"github.com/libp2p/go-libp2p-net"
protocol
"github.com/libp2p/go-libp2p-protocol"
msmux
"github.com/whyrusleeping/go-multistream"
)
var
log
=
logging
.
Logger
(
"github.com/libp2p/go-libp2p/p2p/host"
)
// Host is an object participating in a p2p network, which
// implements protocols or provides services. It handles
// requests like a Server, and issues requests like a Client.
// It is called Host because it is both Server and Client (and Peer
// may be confusing).
type
Host
interface
{
// ID returns the (local) peer.ID associated with this Host
ID
()
peer
.
ID
// Peerstore returns the Host's repository of Peer Addresses and Keys.
Peerstore
()
pstore
.
Peerstore
// Returns the listen addresses of the Host
Addrs
()
[]
ma
.
Multiaddr
// Networks returns the Network interface of the Host
Network
()
inet
.
Network
// Mux returns the Mux multiplexing incoming streams to protocol handlers
Mux
()
*
msmux
.
MultistreamMuxer
// Connect ensures there is a connection between this host and the peer with
// given peer.ID. Connect will absorb the addresses in pi into its internal
// peerstore. If there is not an active connection, Connect will issue a
// h.Network.Dial, and block until a connection is open, or an error is
// returned. // TODO: Relay + NAT.
Connect
(
ctx
context
.
Context
,
pi
pstore
.
PeerInfo
)
error
// SetStreamHandler sets the protocol handler on the Host's Mux.
// This is equivalent to:
// host.Mux().SetHandler(proto, handler)
// (Threadsafe)
SetStreamHandler
(
pid
protocol
.
ID
,
handler
inet
.
StreamHandler
)
// SetStreamHandlerMatch sets the protocol handler on the Host's Mux
// using a matching function for protocol selection.
SetStreamHandlerMatch
(
protocol
.
ID
,
func
(
string
)
bool
,
inet
.
StreamHandler
)
// RemoveStreamHandler removes a handler on the mux that was set by
// SetStreamHandler
RemoveStreamHandler
(
pid
protocol
.
ID
)
// NewStream opens a new stream to given peer p, and writes a p2p/protocol
// header with given protocol.ID. If there is no connection to p, attempts
// to create one. If ProtocolID is "", writes no header.
// (Threadsafe)
NewStream
(
ctx
context
.
Context
,
p
peer
.
ID
,
pids
...
protocol
.
ID
)
(
inet
.
Stream
,
error
)
// Close shuts down the host, its Network, and services.
Close
()
error
GetBandwidthReporter
()
metrics
.
Reporter
}
p2p/host/match.go
deleted
100644 → 0
View file @
9910e6a7
package
host
import
(
"github.com/libp2p/go-libp2p-protocol"
"strings"
semver
"github.com/coreos/go-semver/semver"
)
func
MultistreamSemverMatcher
(
base
protocol
.
ID
)
(
func
(
string
)
bool
,
error
)
{
parts
:=
strings
.
Split
(
string
(
base
),
"/"
)
vers
,
err
:=
semver
.
NewVersion
(
parts
[
len
(
parts
)
-
1
])
if
err
!=
nil
{
return
nil
,
err
}
return
func
(
check
string
)
bool
{
chparts
:=
strings
.
Split
(
check
,
"/"
)
if
len
(
chparts
)
!=
len
(
parts
)
{
return
false
}
for
i
,
v
:=
range
chparts
[
:
len
(
chparts
)
-
1
]
{
if
parts
[
i
]
!=
v
{
return
false
}
}
chvers
,
err
:=
semver
.
NewVersion
(
chparts
[
len
(
chparts
)
-
1
])
if
err
!=
nil
{
return
false
}
return
vers
.
Major
==
chvers
.
Major
&&
vers
.
Minor
>=
chvers
.
Minor
},
nil
}
p2p/host/match_test.go
deleted
100644 → 0
View file @
9910e6a7
package
host
import
(
"testing"
)
func
TestSemverMatching
(
t
*
testing
.
T
)
{
m
,
err
:=
MultistreamSemverMatcher
(
"/testing/4.3.5"
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
cases
:=
map
[
string
]
bool
{
"/testing/4.3.0"
:
true
,
"/testing/4.3.7"
:
true
,
"/testing/4.3.5"
:
true
,
"/testing/4.2.7"
:
true
,
"/testing/4.0.0"
:
true
,
"/testing/5.0.0"
:
false
,
"/cars/dogs/4.3.5"
:
false
,
"/foo/1.0.0"
:
false
,
""
:
false
,
"dogs"
:
false
,
"/foo"
:
false
,
"/foo/1.1.1.1"
:
false
,
}
for
p
,
ok
:=
range
cases
{
if
m
(
p
)
!=
ok
{
t
.
Fatalf
(
"expected %s to be %t"
,
p
,
ok
)
}
}
}
p2p/host/routed/routed.go
View file @
1a53ad77
...
@@ -5,7 +5,7 @@ import (
...
@@ -5,7 +5,7 @@ import (
"fmt"
"fmt"
"time"
"time"
host
"github.com/libp2p/go-libp2p
/p2p/
host"
host
"github.com/libp2p/go-libp2p
-
host"
lgbl
"github.com/ipfs/go-libp2p-loggables"
lgbl
"github.com/ipfs/go-libp2p-loggables"
peer
"github.com/ipfs/go-libp2p-peer"
peer
"github.com/ipfs/go-libp2p-peer"
...
...
p2p/net/mock/interface.go
View file @
1a53ad77
...
@@ -10,7 +10,7 @@ import (
...
@@ -10,7 +10,7 @@ import (
"io"
"io"
"time"
"time"
host
"github.com/libp2p/go-libp2p
/p2p/
host"
host
"github.com/libp2p/go-libp2p
-
host"
ic
"github.com/ipfs/go-libp2p-crypto"
ic
"github.com/ipfs/go-libp2p-crypto"
peer
"github.com/ipfs/go-libp2p-peer"
peer
"github.com/ipfs/go-libp2p-peer"
...
...
p2p/net/mock/mock_net.go
View file @
1a53ad77
...
@@ -6,7 +6,7 @@ import (
...
@@ -6,7 +6,7 @@ import (
"sort"
"sort"
"sync"
"sync"
host
"github.com/libp2p/go-libp2p
/p2p/
host"
host
"github.com/libp2p/go-libp2p
-
host"
bhost
"github.com/libp2p/go-libp2p/p2p/host/basic"
bhost
"github.com/libp2p/go-libp2p/p2p/host/basic"
p2putil
"github.com/libp2p/go-libp2p/p2p/test/util"
p2putil
"github.com/libp2p/go-libp2p/p2p/test/util"
...
...
p2p/protocol/identify/id.go
View file @
1a53ad77
...
@@ -5,7 +5,6 @@ import (
...
@@ -5,7 +5,6 @@ import (
"strings"
"strings"
"sync"
"sync"
host
"github.com/libp2p/go-libp2p/p2p/host"
pb
"github.com/libp2p/go-libp2p/p2p/protocol/identify/pb"
pb
"github.com/libp2p/go-libp2p/p2p/protocol/identify/pb"
semver
"github.com/coreos/go-semver/semver"
semver
"github.com/coreos/go-semver/semver"
...
@@ -16,6 +15,7 @@ import (
...
@@ -16,6 +15,7 @@ import (
pstore
"github.com/ipfs/go-libp2p-peerstore"
pstore
"github.com/ipfs/go-libp2p-peerstore"
logging
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
ma
"github.com/jbenet/go-multiaddr"
ma
"github.com/jbenet/go-multiaddr"
host
"github.com/libp2p/go-libp2p-host"
mstream
"github.com/libp2p/go-libp2p-metrics/stream"
mstream
"github.com/libp2p/go-libp2p-metrics/stream"
inet
"github.com/libp2p/go-libp2p-net"
inet
"github.com/libp2p/go-libp2p-net"
msmux
"github.com/whyrusleeping/go-multistream"
msmux
"github.com/whyrusleeping/go-multistream"
...
...
p2p/protocol/identify/id_test.go
View file @
1a53ad77
package
identify_test
package
identify_test
import
(
import
(
"context"
"testing"
"testing"
"time"
"time"
ic
"github.com/ipfs/go-libp2p-crypto"
ic
"github.com/ipfs/go-libp2p-crypto"
peer
"github.com/ipfs/go-libp2p-peer"
peer
"github.com/ipfs/go-libp2p-peer"
host
"github.com/libp2p/go-libp2p/p2p/host"
identify
"github.com/libp2p/go-libp2p/p2p/protocol/identify"
identify
"github.com/libp2p/go-libp2p/p2p/protocol/identify"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
"context"
ma
"github.com/jbenet/go-multiaddr"
ma
"github.com/jbenet/go-multiaddr"
host
"github.com/libp2p/go-libp2p-host"
)
)
func
subtestIDService
(
t
*
testing
.
T
,
postDialWait
time
.
Duration
)
{
func
subtestIDService
(
t
*
testing
.
T
,
postDialWait
time
.
Duration
)
{
...
...
p2p/protocol/ping/ping.go
View file @
1a53ad77
...
@@ -10,8 +10,8 @@ import (
...
@@ -10,8 +10,8 @@ import (
u
"github.com/ipfs/go-ipfs-util"
u
"github.com/ipfs/go-ipfs-util"
peer
"github.com/ipfs/go-libp2p-peer"
peer
"github.com/ipfs/go-libp2p-peer"
logging
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
host
"github.com/libp2p/go-libp2p-host"
inet
"github.com/libp2p/go-libp2p-net"
inet
"github.com/libp2p/go-libp2p-net"
host
"github.com/libp2p/go-libp2p/p2p/host"
)
)
var
log
=
logging
.
Logger
(
"ping"
)
var
log
=
logging
.
Logger
(
"ping"
)
...
...
p2p/protocol/relay/relay.go
View file @
1a53ad77
...
@@ -6,7 +6,7 @@ import (
...
@@ -6,7 +6,7 @@ import (
"io"
"io"
"time"
"time"
host
"github.com/libp2p/go-libp2p
/p2p/
host"
host
"github.com/libp2p/go-libp2p
-
host"
peer
"github.com/ipfs/go-libp2p-peer"
peer
"github.com/ipfs/go-libp2p-peer"
logging
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
...
...
p2p/test/backpressure/backpressure_test.go
View file @
1a53ad77
...
@@ -10,9 +10,9 @@ import (
...
@@ -10,9 +10,9 @@ import (
u
"github.com/ipfs/go-ipfs-util"
u
"github.com/ipfs/go-ipfs-util"
peer
"github.com/ipfs/go-libp2p-peer"
peer
"github.com/ipfs/go-libp2p-peer"
logging
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
host
"github.com/libp2p/go-libp2p-host"
inet
"github.com/libp2p/go-libp2p-net"
inet
"github.com/libp2p/go-libp2p-net"
protocol
"github.com/libp2p/go-libp2p-protocol"
protocol
"github.com/libp2p/go-libp2p-protocol"
host
"github.com/libp2p/go-libp2p/p2p/host"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
)
)
...
...
p2p/test/reconnects/reconnect_test.go
View file @
1a53ad77
...
@@ -11,9 +11,9 @@ import (
...
@@ -11,9 +11,9 @@ import (
u
"github.com/ipfs/go-ipfs-util"
u
"github.com/ipfs/go-ipfs-util"
logging
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
ps
"github.com/jbenet/go-peerstream"
ps
"github.com/jbenet/go-peerstream"
host
"github.com/libp2p/go-libp2p-host"
inet
"github.com/libp2p/go-libp2p-net"
inet
"github.com/libp2p/go-libp2p-net"
protocol
"github.com/libp2p/go-libp2p-protocol"
protocol
"github.com/libp2p/go-libp2p-protocol"
host
"github.com/libp2p/go-libp2p/p2p/host"
swarm
"github.com/libp2p/go-libp2p/p2p/net/swarm"
swarm
"github.com/libp2p/go-libp2p/p2p/net/swarm"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
testutil
"github.com/libp2p/go-libp2p/p2p/test/util"
)
)
...
...
package.json
View file @
1a53ad77
...
@@ -236,6 +236,12 @@
...
@@ -236,6 +236,12 @@
"hash"
:
"QmRxzoGdQaN6HYyqWnT82NnLLHBAZbTUvxPEfTBTjU7KCn"
,
"hash"
:
"QmRxzoGdQaN6HYyqWnT82NnLLHBAZbTUvxPEfTBTjU7KCn"
,
"name"
:
"go-libp2p-interface-conn"
,
"name"
:
"go-libp2p-interface-conn"
,
"version"
:
"0.1.0"
"version"
:
"0.1.0"
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"QmaAyA9QMVdzCYHv7QJnKu4Dzk4zfnFrHw9itzP9kEUKYW"
,
"name"
:
"go-libp2p-host"
,
"version"
:
"1.0.0"
}
}
],
],
"gxVersion"
:
"0.4.0"
,
"gxVersion"
:
"0.4.0"
,
...
...
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