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
5d5c9f99
Commit
5d5c9f99
authored
Mar 21, 2017
by
Jeromy
Browse files
don't use 'test' ID generation in tutorial
parent
2362b05a
Changes
2
Hide whitespace changes
Inline
Side-by-side
tutorial/001-the-host/README.md
View file @
5d5c9f99
...
...
@@ -4,16 +4,25 @@ started. This guide will show how to construct and use a simple host.
The host is an abstraction that manages services on top of a swarm. It provides
a clean interface to connect to a service on a given remote peer.
First, you'll need an ID, and a place to store that ID. To generate a
'test'
First, you'll need an ID, and a place to store that ID. To generate a
n
ID, you can do the following:
```
go
import
(
testutil
"github.com/libp2p/go-testutil"
"crypto/rand"
crypto
"github.com/libp2p/go-libp2p-crypto"
peer
"github.com/libp2p/go-libp2p-peer"
pstore
"github.com/libp2p/go-libp2p-peerstore"
)
// For toy applications, this is an easy way to get an identity
ident
,
err
:=
testutil
.
RandIdentity
()
// Generate an identity keypair using go's cryptographic randomness source
priv
,
pub
,
err
:=
crypto
.
GenerateEd25519Key
(
rand
.
Reader
)
if
err
!=
nil
{
panic
(
err
)
}
// A peers ID is the hash of its public key
pid
,
err
:=
peer
.
IDFromPublicKey
(
pub
)
if
err
!=
nil
{
panic
(
err
)
}
...
...
@@ -21,10 +30,8 @@ if err != nil {
// We've created the identity, now we need to store it.
// A peerstore holds information about peers, including your own
ps
:=
pstore
.
NewPeerstore
()
// An identity is essentially a public/private keypair
ps
.
AddPrivKey
(
ident
.
ID
(),
ident
.
PrivateKey
())
ps
.
AddPubKey
(
ident
.
ID
(),
ident
.
PublicKey
())
ps
.
AddPrivKey
(
pid
,
priv
)
ps
.
AddPubKey
(
pid
,
priv
)
```
Next, you'll need at least one address that you want to listen on. You can go
...
...
tutorial/001-the-host/host.go
View file @
5d5c9f99
...
...
@@ -2,18 +2,26 @@ package main
import
(
"context"
"crypto/rand"
"fmt"
crypto
"github.com/libp2p/go-libp2p-crypto"
peer
"github.com/libp2p/go-libp2p-peer"
pstore
"github.com/libp2p/go-libp2p-peerstore"
swarm
"github.com/libp2p/go-libp2p-swarm"
bhost
"github.com/libp2p/go-libp2p/p2p/host/basic"
testutil
"github.com/libp2p/go-testutil"
ma
"github.com/multiformats/go-multiaddr"
)
func
main
()
{
// For toy applications, this is an easy way to get an identity
ident
,
err
:=
testutil
.
RandIdentity
()
// Generate an identity keypair using go's cryptographic randomness source
priv
,
pub
,
err
:=
crypto
.
GenerateEd25519Key
(
rand
.
Reader
)
if
err
!=
nil
{
panic
(
err
)
}
// A peers ID is the hash of its public key
pid
,
err
:=
peer
.
IDFromPublicKey
(
pub
)
if
err
!=
nil
{
panic
(
err
)
}
...
...
@@ -21,10 +29,8 @@ func main() {
// We've created the identity, now we need to store it.
// A peerstore holds information about peers, including your own
ps
:=
pstore
.
NewPeerstore
()
// An identity is essentially a public/private keypair
ps
.
AddPrivKey
(
ident
.
ID
(),
ident
.
PrivateKey
())
ps
.
AddPubKey
(
ident
.
ID
(),
ident
.
PublicKey
())
ps
.
AddPrivKey
(
pid
,
priv
)
ps
.
AddPubKey
(
pid
,
pub
)
maddr
,
err
:=
ma
.
NewMultiaddr
(
"/ip4/0.0.0.0/tcp/9000"
)
if
err
!=
nil
{
...
...
@@ -35,7 +41,7 @@ func main() {
ctx
:=
context
.
Background
()
// Put all this together
netw
,
err
:=
swarm
.
NewNetwork
(
ctx
,
[]
ma
.
Multiaddr
{
maddr
},
id
ent
.
ID
()
,
ps
,
nil
)
netw
,
err
:=
swarm
.
NewNetwork
(
ctx
,
[]
ma
.
Multiaddr
{
maddr
},
p
id
,
ps
,
nil
)
if
err
!=
nil
{
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