Document MultiAddr codecs implemented by py-multiaddr#101
Document MultiAddr codecs implemented by py-multiaddr#101ntninja wants to merge 4 commits intomultiformats:masterfrom
Conversation
|
@Stebalien @lgierth: Bump. What trick would I have to use to realistically get some discussion/feedback on this with everybody being so busy? 🙃 |
|
Bump, I believe this is a useful addition to the repo. |
|
|
||
| Encodes a libp2p node address. | ||
|
|
||
| TBD: Is this really always a base58btc encoded string of at least 5 characters in length!? |
There was a problem hiding this comment.
It's anything that parses as a peer ID (the canonical encoding is now actually a libp2p key CID): https://github.com/libp2p/specs/blob/master/peer-ids/peer-ids.md.
There was a problem hiding this comment.
At least the go implementation does not follow that spec at all but just expects everything to be base58btc: https://github.com/multiformats/go-multiaddr/blob/master/transcoders.go#L293-L315
If your saying that is just a bug to be fixed, I'll be happy to update this text and py-multiaddr accordingly. 🙂
There was a problem hiding this comment.
That spec also fails to mention that some IDs are still encoded with 1 as first character, which is also CIDv0
There was a problem hiding this comment.
@Alexander255 correct (well, not a bug so much as something we need to implement).
@ShadowJonathan also correct. I'll take a stab at fixing the spec.
There was a problem hiding this comment.
@Stebalien: I just tried to implement that spec in Python and there is no guidance in there what to do with binary CIDv0 IDs. I assume they are detected (similar to their string format) using len(buf) == 34 and buf.startswith(b"\x12\x20")?
…ecified and add wording about path delimiter conversion for Windows
|
@Stebalien: I've updated the description of |
Inspired by the Python code I wrote with lots of references to relevant specs.