Commit c937b88e authored by Jeromy's avatar Jeromy
Browse files

review feedback

parent f34163e3
...@@ -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)
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment