Skip to content

Instantly share code, notes, and snippets.

@marten-seemann
Last active May 9, 2023 07:36
Show Gist options
  • Save marten-seemann/c221eed357fc14e15f26d066380c5c44 to your computer and use it in GitHub Desktop.
Save marten-seemann/c221eed357fc14e15f26d066380c5c44 to your computer and use it in GitHub Desktop.
quic reuse test
package main
import (
"context"
"fmt"
"log"
"time"
ma "github.com/multiformats/go-multiaddr"
"github.com/libp2p/go-libp2p"
"github.com/libp2p/go-libp2p/core/peer"
)
func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}
func run() error {
h, err := libp2p.New(libp2p.NoListenAddrs)
if err != nil {
return err
}
ai1, err := peer.AddrInfoFromP2pAddr(ma.StringCast("<node 1 quic-v1 p2p address>"))
if err != nil {
return err
}
if err := h.Connect(context.Background(), *ai1); err != nil {
return err
}
fmt.Println("connected 1st from", h.Network().ConnsToPeer(ai1.ID)[0].LocalMultiaddr())
fmt.Println("starting QUIC listener")
if err := h.Network().Listen(ma.StringCast("/ip4/0.0.0.0/udp/12345/quic-v1")); err != nil {
return err
}
time.Sleep(time.Second)
ai2, err := peer.AddrInfoFromP2pAddr(ma.StringCast("<node 2 quic-v1 p2p address>"))
if err != nil {
return err
}
if err := h.Connect(context.Background(), *ai2); err != nil {
return err
}
fmt.Println("connected 2nd from", h.Network().ConnsToPeer(ai2.ID)[0].LocalMultiaddr())
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment