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
c937b88e
Commit
c937b88e
authored
Nov 05, 2017
by
Jeromy
Browse files
review feedback
parent
f34163e3
Changes
1
Hide whitespace changes
Inline
Side-by-side
libp2p.go
View file @
c937b88e
...
@@ -20,6 +20,7 @@ import (
...
@@ -20,6 +20,7 @@ import (
yamux
"github.com/whyrusleeping/go-smux-yamux"
yamux
"github.com/whyrusleeping/go-smux-yamux"
)
)
// Config describes a set of settings for a libp2p node
type
Config
struct
{
type
Config
struct
{
Transports
[]
transport
.
Transport
Transports
[]
transport
.
Transport
Muxer
mux
.
Transport
Muxer
mux
.
Transport
...
@@ -30,11 +31,18 @@ type Config struct {
...
@@ -30,11 +31,18 @@ type Config struct {
Reporter
metrics
.
Reporter
Reporter
metrics
.
Reporter
}
}
func
Construct
(
ctx
context
.
Context
,
cfg
*
Config
)
(
host
.
Host
,
error
)
{
func
New
(
ctx
context
.
Context
)
(
host
.
Host
,
error
)
{
return
NewWithCfg
(
ctx
,
DefaultConfig
())
}
// Construct instantiates a libp2p host using information from the given
// config. `nil` may be passed to use default options.
func
NewWithCfg
(
ctx
context
.
Context
,
cfg
*
Config
)
(
host
.
Host
,
error
)
{
if
cfg
==
nil
{
if
cfg
==
nil
{
cfg
=
DefaultConfig
()
cfg
=
DefaultConfig
()
}
}
// If no key was given, generate a random 2048 bit RSA key
if
cfg
.
PeerKey
==
nil
{
if
cfg
.
PeerKey
==
nil
{
priv
,
_
,
err
:=
crypto
.
GenerateKeyPairWithReader
(
crypto
.
RSA
,
2048
,
rand
.
Reader
)
priv
,
_
,
err
:=
crypto
.
GenerateKeyPairWithReader
(
crypto
.
RSA
,
2048
,
rand
.
Reader
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -49,6 +57,7 @@ func Construct(ctx context.Context, cfg *Config) (host.Host, error) {
...
@@ -49,6 +57,7 @@ func Construct(ctx context.Context, cfg *Config) (host.Host, error) {
return
nil
,
err
return
nil
,
err
}
}
// Create a new blank peerstore if none was passed in
ps
:=
cfg
.
Peerstore
ps
:=
cfg
.
Peerstore
if
ps
==
nil
{
if
ps
==
nil
{
ps
=
pstore
.
NewPeerstore
()
ps
=
pstore
.
NewPeerstore
()
...
@@ -70,14 +79,17 @@ func Construct(ctx context.Context, cfg *Config) (host.Host, error) {
...
@@ -70,14 +79,17 @@ func Construct(ctx context.Context, cfg *Config) (host.Host, error) {
func
DefaultMuxer
()
mux
.
Transport
{
func
DefaultMuxer
()
mux
.
Transport
{
// Set up stream multiplexer
// Set up stream multiplexer
tpt
:=
msmux
.
NewBlankTransport
()
tpt
:=
msmux
.
NewBlankTransport
()
// By default, support yamux and multiplex
tpt
.
AddTransport
(
"/yamux/1.0.0"
,
yamux
.
DefaultTransport
)
tpt
.
AddTransport
(
"/yamux/1.0.0"
,
yamux
.
DefaultTransport
)
tpt
.
AddTransport
(
"/mplex/6.3.0"
,
mplex
.
DefaultTransport
)
tpt
.
AddTransport
(
"/mplex/6.3.0"
,
mplex
.
DefaultTransport
)
return
tpt
return
tpt
}
}
func
DefaultConfig
()
*
Config
{
func
DefaultConfig
()
*
Config
{
// Create a multiaddress
// Create a multiaddress
that listens on a random port on all interfaces
addr
,
err
:=
ma
.
NewMultiaddr
(
"/ip4/
127
.0.0.
1
/tcp/0"
)
addr
,
err
:=
ma
.
NewMultiaddr
(
"/ip4/
0
.0.0.
0
/tcp/0"
)
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
...
...
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