Make sure you have support to RSA and ED25519 in libp2p-identity RSA is the old standard that is being fazed out. Once you have that create a ED25519 keypair to give to the swarm.
- kademlia (the dht)
- identify (for sharing supported protocals)
- autonat-v2* (for what ip addrs are reachable and can be shared on animo)
- relay (for ipv4)
- dcutr (unkown if needed)
*Autonat-v1 is being deprecated by kubo; despite this, rust-libp2ps default behavour is still using v1 and so you must explicitly use v2.
- Create the swarm with the ED25519 key and wanted transports (which should just be dns, tcp, and quic-v1*)
- Listen on ipv6 and ipv4
*Do not support quic draft 29
graph LR;
A[TBD]
/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN
/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa
/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb
/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt
We add these to the DHT using kademlias add_address() and its important to know that you need to have the [peerID in the multiaddr](rust-libp2p github issue).
Now you can call bootstrap() and you should be connected to Amino as a [client](link that explains what a client can do)
While you might be connected to Animo, being a client isn't that useful and limits you a lot in what you can do. In order to use the network to its fullest we need to become a server.
In order to become a server there are a couple requirments we must meet.