Reading through the specs, I realized that most of them assume that you're familiar with multiaddr. The multiaddr README doesn't go into much detail on how it's used in libp2p, and I think the specs would benefit from an overview of how addresses work in libp2p.
Main points to cover:
libp2p uses multiaddr to encode transport addresses
briefly describe string and binary formats
multiaddrs are composable (describe encapsulation / decapsulation)
show examples of e.g. websockets over TCP/IP
examples of addresses for all currently supported transports
note about extending multiaddr to support new protocols (e.g. p2p-circuit)
should mention that it's rarely needed, but possible if you have the right use case
Reading through the specs, I realized that most of them assume that you're familiar with multiaddr. The multiaddr README doesn't go into much detail on how it's used in libp2p, and I think the specs would benefit from an overview of how addresses work in libp2p.
Main points to cover: