multiformats / multiformats/multiaddr
Consolidate multiaddr transformations
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 482
- Forks
- 87
- PR merge metrics
- No merged PRs in 30d
Description
We already support a number of map/filter like operations on multiaddrs, which take as input a list of multiaddrs and sometimes certain conditions, and return as output a list of multiaddrs.
- fmt (a.k.a. mafmt)
- lets us define protocol schemata and filter addresses that match
- e.g. the schema
/ip6/udpmatches/ip6/::1/udp/4002 - implementations: go-multiaddr-fmt, js-mafmt
- filter
- lets us filter addresses based on membership of an IP CIDR block
- e.g.
/ip4/192.168.0.0/ipcidr/16matches/ip4/192.168.1.42 - implementations: libp2p/go-maddr-filter
- addr-util
- filters certain classes of IP addresses (link-local, transports that can't dial out, etc.)
- implementations: libp2p/go-addr-util, go-multiaddr-net
- dns
- resolves
/dnsaddr,/dns4, and/dns6addresses - implementations: go-multiaddr-dns, js-multiaddr
- resolves
The first three should probably be collapsed into a single package.
A minimal generalized API for these transformations should be part of the multiaddr spec.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the existing go-multiaddr-fmt, js-mafmt, libp2p/go-maddr-filter, libp2p/go-addr-util, go-multiaddr-net, go-multiaddr-dns, and js-multiaddr implementations named in the issue. Done means the first three transformations have a consolidated package and a minimal generalized API is defined in the multiaddr specification.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, javascript
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100