From 75e9a0c91a2b09029968ec096bf6ae481a798a65 Mon Sep 17 00:00:00 2001 From: Lars Gierth Date: Sat, 11 Mar 2017 22:50:40 +0100 Subject: [PATCH] WIP --- p2p/p2p.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 p2p/p2p.go diff --git a/p2p/p2p.go b/p2p/p2p.go new file mode 100644 index 0000000..e518c2c --- /dev/null +++ b/p2p/p2p.go @@ -0,0 +1,44 @@ +package p2p + +import ( + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +var P2PProtocol = ma.Protocol{ + Code: 420, + Name: "p2p", + VCode: ma.CodeToVarint(420), +} +var IpfsProtocol = ma.Protocol{ + Code: 421, + Name: "ipfs", + VCode: ma.CodeToVarint(421), +} + +var P2PCodec = &manet.NetCodec{ + NetAddrNetworks: []string{"libp2p"}, + ProtocolName: "p2p", + ConvertMultiaddr: ConvertP2PMultiaddr, + ParseNetAddr: ParseP2PNetAddr, +} +var IpfsCodec = &manet.NetCodec{ + NetAddrNetworks: []string{"libp2p+ipfs"}, + ProtocolName: "ipfs", + ConvertMultiaddr: ConvertIpfsMultiaddr, + ParseNetAddr: ParseIpfsNetAddr, +} + +func init() { + err := ma.AddProtocol(P2PProtocol) + if err != nil { + panic(fmt.Errorf("error registering libp2p protocol: %s", err)) + } + err = ma.AddProtocol(IpfsProtocol) + if err != nil { + panic(fmt.Errorf("error registering libp2p+ipfs protocol: %s", err)) + } + + manet.RegisterNetCodec(P2PCodec) + manet.RegisterNetCodec(IpfsCodec) +} -- GitLab