mirror of
https://github.com/libp2p/go-libp2p.git
synced 2025-10-27 10:10:27 +08:00
examples: remove ipfs components from echo (#1672)
* examples: Remove the module dependency of ipfs to reduce the interference of novice learning * examples(echo): Recover the logging part
This commit is contained in:
@@ -89,7 +89,7 @@ func makeBasicHost(listenPort int, insecure bool, randseed int64) (host.Host, er
|
|||||||
|
|
||||||
func getHostAddress(ha host.Host) string {
|
func getHostAddress(ha host.Host) string {
|
||||||
// Build host multiaddress
|
// Build host multiaddress
|
||||||
hostAddr, _ := ma.NewMultiaddr(fmt.Sprintf("/ipfs/%s", ha.ID().Pretty()))
|
hostAddr, _ := ma.NewMultiaddr(fmt.Sprintf("/p2p/%s", ha.ID().Pretty()))
|
||||||
|
|
||||||
// Now we can build a full multiaddress to reach this host
|
// Now we can build a full multiaddress to reach this host
|
||||||
// by encapsulating both addresses:
|
// by encapsulating both addresses:
|
||||||
@@ -138,40 +138,29 @@ func runSender(ctx context.Context, ha host.Host, targetPeer string) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// The following code extracts target's the peer ID from the
|
// Turn the targetPeer into a multiaddr.
|
||||||
// given multiaddress
|
maddr, err := ma.NewMultiaddr(targetPeer)
|
||||||
ipfsaddr, err := ma.NewMultiaddr(targetPeer)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
pid, err := ipfsaddr.ValueForProtocol(ma.P_IPFS)
|
// Extract the peer ID from the multiaddr.
|
||||||
|
info, err := peer.AddrInfoFromP2pAddr(maddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
peerid, err := peer.Decode(pid)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Decapsulate the /ipfs/<peerID> part from the target
|
|
||||||
// /ip4/<a.b.c.d>/ipfs/<peer> becomes /ip4/<a.b.c.d>
|
|
||||||
targetPeerAddr, _ := ma.NewMultiaddr(fmt.Sprintf("/ipfs/%s", pid))
|
|
||||||
targetAddr := ipfsaddr.Decapsulate(targetPeerAddr)
|
|
||||||
|
|
||||||
// We have a peer ID and a targetAddr so we add it to the peerstore
|
// We have a peer ID and a targetAddr so we add it to the peerstore
|
||||||
// so LibP2P knows how to contact it
|
// so LibP2P knows how to contact it
|
||||||
ha.Peerstore().AddAddr(peerid, targetAddr, peerstore.PermanentAddrTTL)
|
ha.Peerstore().AddAddrs(info.ID, info.Addrs, peerstore.PermanentAddrTTL)
|
||||||
|
|
||||||
log.Println("sender opening stream")
|
log.Println("sender opening stream")
|
||||||
// make a new stream from host B to host A
|
// make a new stream from host B to host A
|
||||||
// it should be handled on host A by the handler we set above because
|
// it should be handled on host A by the handler we set above because
|
||||||
// we use the same /echo/1.0.0 protocol
|
// we use the same /echo/1.0.0 protocol
|
||||||
s, err := ha.NewStream(context.Background(), peerid, "/echo/1.0.0")
|
s, err := ha.NewStream(context.Background(), info.ID, "/echo/1.0.0")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user