From 02d384f8c569add2ac7a3b34a15d59d789520d14 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Mon, 12 Nov 2018 16:58:33 -0800 Subject: [PATCH 01/35] add dns{4,6,addr} protocols fixes #87 --- table.csv | 3 +++ 1 file changed, 3 insertions(+) diff --git a/table.csv b/table.csv index 620cbeb..24ee85c 100644 --- a/table.csv +++ b/table.csv @@ -405,6 +405,9 @@ quic, , 0x01CC ws, , 0x01DD onion, , 0x01BC p2p-circuit, , 0x0122 +dns4, , 0x36 +dns6, , 0x37 +dnsaddr, , 0x38 archiving formats,, tar, , 0x From 3a5e3909ced35fbe43317f660a3647a48a6e7f71 Mon Sep 17 00:00:00 2001 From: Volker Mische Date: Mon, 3 Dec 2018 13:26:36 +0100 Subject: [PATCH 02/35] Remove questions that didn't make sense anymore Due to the removal of references to multicodec-packed in commit [888cc045de9ea668ec2b098c00173a5eb886b0f8] the first question doesn't make any sense anymore. [888cc045de9ea668ec2b098c00173a5eb886b0f8]: https://github.com/multiformats/multicodec/commit/888cc045de9ea668ec2b098c00173a5eb886b0f8 --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index dc6cfc4..0e13bf6 100644 --- a/README.md +++ b/README.md @@ -81,10 +81,6 @@ In order to enable self descriptive data formats or streams that can be dynamica ## FAQ -> **Q. I have questions on multicodec, not listed here.** - -That's not a question. But, have you checked the proper [multicodec FAQ](./README.md#faq)? Maybe your question is answered there. This FAQ is only specifically for multicodec. - > **Q. Why?** Because [multistream](https://github.com/multiformats/multistream) is too long for identifiers. We needed something shorter. From 111757fb79aa51648170fa28c48f71de46982037 Mon Sep 17 00:00:00 2001 From: Volker Mische Date: Mon, 3 Dec 2018 13:34:31 +0100 Subject: [PATCH 03/35] Remove implementation note There are already multicodec codes in the table which are > 127 (Blake and Stein hashes). Hence implementations need to implement varint. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e13bf6..fb8949b 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ Because [multistream](https://github.com/multiformats/multistream) is too long f > **Q. Why varints?** -So that we have no limitation on protocols. Implementation note: you do not need to implement varints until the standard multicodec table has more than 127 functions. +So that we have no limitation on protocols. > **Q. What kind of varints?** From 5ce1acfacbfaaa3182bad8e8a35e6c16af7b52a6 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Fri, 14 Dec 2018 10:42:09 -0800 Subject: [PATCH 04/35] add oinion3 and garlic64 protocol codes * onion3 is for v3 onion addresses * garlic64 is for *full* i2p addresses. We may later need a garlic32 for "short" garlic addresses. --- table.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/table.csv b/table.csv index 24ee85c..0c9608c 100644 --- a/table.csv +++ b/table.csv @@ -404,6 +404,8 @@ https, , 0x01BB quic, , 0x01CC ws, , 0x01DD onion, , 0x01BC +onion3, , 0x01BD +garlic64, , 0x01BE p2p-circuit, , 0x0122 dns4, , 0x36 dns6, , 0x37 From 0255d118f9cc2896da80f9e7cc75e67333230b10 Mon Sep 17 00:00:00 2001 From: Volker Mische Date: Tue, 18 Dec 2018 14:15:47 +0100 Subject: [PATCH 05/35] Add murmur3 32-bit Also rename the existing `murmur` to `murmur-128`. --- table.csv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 0c9608c..26305db 100644 --- a/table.csv +++ b/table.csv @@ -62,7 +62,8 @@ keccak-224,keccak has variable output length. The number specifies the core leng keccak-256, , 0x1B keccak-384, , 0x1C keccak-512, , 0x1D -murmur3, , 0x22 +murmur3-128, , 0x22 +murmur3-32, , 0x23 x11, , 0x1100 blake2b-8,Blake2b consists of 64 output lengths that give different hashes,0xb201 From 852f8909b761765f2ff84e081c1bc28e5dcb8a56 Mon Sep 17 00:00:00 2001 From: Volker Mische Date: Tue, 18 Dec 2018 17:08:49 +0100 Subject: [PATCH 06/35] Write dag-json codec as two bytes Make it clearer (and easier to convert) that dag-json is two bytes. --- table.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 0c9608c..042947d 100644 --- a/table.csv +++ b/table.csv @@ -426,7 +426,7 @@ mkv, , 0x IPLD formats,, dag-pb, MerkleDAG protobuf, 0x70 dag-cbor, MerkleDAG cbor, 0x71 -dag-json, MerkleDAG json, 0x129 +dag-json, MerkleDAG json, 0x0129 git-raw, Raw Git object, 0x78 From 156372fdc2f736be489f1f2619b0569527088528 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 6 Dec 2018 10:38:54 -0800 Subject: [PATCH 07/35] copy missing codecs from the multiaddr repo Also, rename ipfs to p2p as the *canonical* name. --- table.csv | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 0c9608c..ba91e46 100644 --- a/table.csv +++ b/table.csv @@ -398,18 +398,24 @@ dccp, , 0x21 sctp, , 0x84 udt, , 0x012D utp, , 0x012E -ipfs, , 0x01A5 +p2p, , 0x01A5 http, , 0x01E0 https, , 0x01BB quic, , 0x01CC ws, , 0x01DD +wss, , 0x01DE onion, , 0x01BC onion3, , 0x01BD garlic64, , 0x01BE p2p-circuit, , 0x0122 +dns, , 0x35 dns4, , 0x36 dns6, , 0x37 dnsaddr, , 0x38 +p2p-websocket-star, , 0x01DF +p2p-webrtc-star, , 0x0113 +p2p-webrtc-direct, , 0x0114 +unix, , 0x0190 archiving formats,, tar, , 0x From f4bb19a54a215a1009420705d2c87cf743d6272d Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Fri, 7 Dec 2018 09:36:26 -0800 Subject: [PATCH 08/35] specify both libp2p and ipfs --- table.csv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/table.csv b/table.csv index ba91e46..b0e9da2 100644 --- a/table.csv +++ b/table.csv @@ -398,7 +398,8 @@ dccp, , 0x21 sctp, , 0x84 udt, , 0x012D utp, , 0x012E -p2p, , 0x01A5 +p2p, libp2p, 0x01A5 +ipfs, libp2p (deprecated), 0x01A5 http, , 0x01E0 https, , 0x01BB quic, , 0x01CC From 37311595648be68f0b275b962c92b86eaa213e89 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Mon, 10 Dec 2018 13:16:40 -0800 Subject: [PATCH 09/35] README: remove out-of-date captain --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index fb8949b..699ab44 100644 --- a/README.md +++ b/README.md @@ -103,10 +103,6 @@ For completeness, we consider [multibase](https://github.com/multiformats/multibase) prefixes to be multicodecs. However multibase prefixes occur in *text*, and are therefore *symbols*. They may (or may not) have some underlying binary representation but that changes based on the text encoding used. -## Maintainers - -Captain: [@jbenet](https://github.com/jbenet). - ## Contribute Contributions welcome. Please check out [the issues](https://github.com/multiformats/multicodec/issues). From eedeadefdce3fe4f7cba6bc5f00ee5b569168870 Mon Sep 17 00:00:00 2001 From: nocursor <44674479+nocursor@users.noreply.github.com> Date: Fri, 16 Nov 2018 14:21:45 -0500 Subject: [PATCH 10/35] Added Elixir implementation link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 699ab44..e7bbc1c 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ This ["first come, first assign"](https://github.com/multiformats/multicodec/pul - [JavaScript](https://github.com/multiformats/js-multicodec) - [Python](https://github.com/multiformats/py-multicodec) - [Haskell](https://github.com/multiformats/haskell-multicodec) +- [Elixir](https://github.com/nocursor/ex-multicodec) - [Add yours today!](https://github.com/multiformats/multicodec/edit/master/table.csv) ## Multicodec Path, also known as [`multistream`](https://github.com/multiformats/multistream) From 2541973e9ed9c4951e8b53ed1bf2f04822362a3f Mon Sep 17 00:00:00 2001 From: Chang Liu Date: Thu, 15 Nov 2018 22:53:51 +0100 Subject: [PATCH 11/35] Add link to Scala implementation add fluency03/scala-multicodec --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e7bbc1c..f6d3d98 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ This ["first come, first assign"](https://github.com/multiformats/multicodec/pul - [Python](https://github.com/multiformats/py-multicodec) - [Haskell](https://github.com/multiformats/haskell-multicodec) - [Elixir](https://github.com/nocursor/ex-multicodec) +- [Scala](https://github.com/fluency03/scala-multicodec) - [Add yours today!](https://github.com/multiformats/multicodec/edit/master/table.csv) ## Multicodec Path, also known as [`multistream`](https://github.com/multiformats/multistream) From 1ec0e971d589d2fd5d5418b212846301909525bd Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 15 Nov 2018 11:23:21 -0800 Subject: [PATCH 12/35] move multibase prefixes out of this table Resolution from a discussion with Juan and the discussion on the following issues: fixes #89 fixes #76 --- README.md | 15 +++++++-------- table.csv | 23 ----------------------- 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index f6d3d98..71d71f7 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ ## Protocol Description - How does the protocol work? -`multicodec` is a _self-describing multiformat_, it wraps other formats with a tiny bit of self-description. A multicodec identifier may either be a varint (in a byte string) or a symbol (in a text string). +`multicodec` is a _self-describing multiformat_, it wraps other formats with a tiny bit of self-description. A multicodec identifier is a varint. A chunk of data identified by multicodec will look like this: @@ -48,12 +48,11 @@ It is worth noting that multicodec works very well in conjunction with [multihas ## MulticodecProtocol Tables -Multicodec uses "protocol tables" to agree upon the mapping from one multicodec code. These tables can be application specific, though -- like [with](https://github.com/multiformats/multihash) [other](https://github.com/multiformats/multibase) [multiformats](https://github.com/multiformats/multiaddr) -- we will keep a globally agreed upon table with common protocols and formats. +Multicodec uses "protocol tables" to agree upon the mapping from one multicodec code. These tables can be application specific, though -- like [with](https://github.com/multiformats/multihash) other [multiformats](https://github.com/multiformats/multiaddr) -- we will keep a globally agreed upon table with common protocols and formats. ## Multicodec table -The full table can be found at [table.csv](/table.csv) inside this repo. Codes -prefixed with `0x` are varint multicodecs and all others are symbolic. +The full table can be found at [table.csv](/table.csv) inside this repo. ### Adding new multicodecs to the table @@ -99,11 +98,11 @@ An Most Significant Bit unsigned varint, as defined by the [multiformats/unsigne Yes, but we already have to agree on what protocols themselves are, so this is not so hard. The table even leaves some room for custom protocol paths, or you can use your own tables. The standard table is only for common things. -> **Q. Why distinguish between bytes and text?** +> **Q. Where did multibase go?** -For completeness, we consider -[multibase](https://github.com/multiformats/multibase) prefixes to be -multicodecs. However multibase prefixes occur in *text*, and are therefore *symbols*. They may (or may not) have some underlying binary representation but that changes based on the text encoding used. +For a period of time, the multibase prefixes lived in this table. However, multibase prefixes are *symbols* that may map to *multiple* underlying byte representations (that may overlap with byte sequences used for other multicodecs). Including them in a table for binary/byte identifiers lead to more confusion than it solved. + +You can still find the table in [multibase.csv](https://github.com/multiformats/multibase/blob/master/multibase.csv). ## Contribute diff --git a/table.csv b/table.csv index b0e9da2..f72277e 100644 --- a/table.csv +++ b/table.csv @@ -3,29 +3,6 @@ codec, description, code miscellaneous,, raw, raw binary, 0x55 -bases encodings,, -identity, raw binary, NUL -base1, unary, "1" -base2, binary (0 and 1), "0" -base8, octal, "7" -base10, decimal, "9" -base16, hexadecimal, "f" -base16-upper, hexadecimal, "F" -base32, rfc4648, "b" -base32-upper, rfc4648, "B" -base32pad, rfc4648, "c" -base32pad-upper, rfc4648, "C" -base32hex, rfc4648, "v" -base32hex-upper, rfc4648, "V" -base32hexpad, rfc4648, "t" -base32hexpad-upper, rfc4648, "T" -base58flickr, base58 flicker, "Z" -base58btc, base58 bitcoin, "z" -base64, rfc4648, "m" -base64pad, rfc4648, "M" -base64url, rfc4648, "u" -base64urlpad, rfc4648, "U" - serialization formats,, cbor, CBOR, 0x51 bson, Binary JSON, 0x From 96458c5fdfc4e176329ae130a34f28c591373c6e Mon Sep 17 00:00:00 2001 From: Glenn Vandeuren Date: Mon, 19 Mar 2018 21:27:10 +0100 Subject: [PATCH 13/35] Add multicodecs for Leofcoin --- table.csv | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/table.csv b/table.csv index 695ba83..4985f2a 100644 --- a/table.csv +++ b/table.csv @@ -440,6 +440,10 @@ decred-tx, Decred Tx, 0xe1 dash-block, Dash Block, 0xf0 dash-tx, Dash Tx, 0xf1 +leofcoin-block, Leofcoin Block, 0x81 +leofcoin-tx, Leofcoin Transaction, 0x82 +leofcoin-pr, Leofcoin Peer Reputation, 0x83 + torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed From b6888b320eae3dc3c0a13d1f75cc5ffceca0b7ac Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Fri, 28 Dec 2018 09:04:59 +1300 Subject: [PATCH 14/35] Add CIDs for IPFS and Swarm --- table.csv | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/table.csv b/table.csv index 4985f2a..3fb7ea1 100644 --- a/table.csv +++ b/table.csv @@ -447,3 +447,7 @@ leofcoin-pr, Leofcoin Peer Reputation, 0x83 torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed + +CIDs,, +ipfs-cid, IPFS CID, 0xee +swarm-cid, Swarm CID, 0xef From 39d078abaf6283f43f649e404287e7e2e16b194a Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 3 Jan 2019 13:37:46 -0800 Subject: [PATCH 15/35] remove undefined codecs I've filed issues for adding these but defining these here makes this file hard to parse correctly. --- table.csv | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/table.csv b/table.csv index 4985f2a..4d65894 100644 --- a/table.csv +++ b/table.csv @@ -5,14 +5,8 @@ raw, raw binary, 0x55 serialization formats,, cbor, CBOR, 0x51 -bson, Binary JSON, 0x -ubjson, Universal Binary JSON, 0x protobuf, Protocol Buffers, 0x50 -capnp, Cap-n-Proto, 0x -flatbuf, FlatBuffers, 0x rlp, recursive length prefix, 0x60 -msgpack, MessagePack, 0x -binc, Binc, 0x bencode, bencode, 0x63 multiformats,, @@ -396,18 +390,6 @@ p2p-webrtc-star, , 0x0113 p2p-webrtc-direct, , 0x0114 unix, , 0x0190 -archiving formats,, -tar, , 0x -zip, , 0x - -image formats,, -png, , 0x -jpg, , 0x - -video formats,, -mp4, , 0x -mkv, , 0x - IPLD formats,, dag-pb, MerkleDAG protobuf, 0x70 dag-cbor, MerkleDAG cbor, 0x71 From d10cdae02a970be6003305e3a12d54f2a00165b4 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Mon, 7 Jan 2019 11:01:24 +1300 Subject: [PATCH 16/35] Update table.csv --- table.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 3fb7ea1..035737e 100644 --- a/table.csv +++ b/table.csv @@ -448,6 +448,6 @@ torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed -CIDs,, +Content Namespaces,, ipfs-cid, IPFS CID, 0xee swarm-cid, Swarm CID, 0xef From 595492b37f5e30379cbdca56216769e7bc71357a Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 8 Jan 2019 09:24:33 +1300 Subject: [PATCH 17/35] Update table.csv --- table.csv | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/table.csv b/table.csv index 035737e..597fdde 100644 --- a/table.csv +++ b/table.csv @@ -449,5 +449,6 @@ torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed Content Namespaces,, -ipfs-cid, IPFS CID, 0xee -swarm-cid, Swarm CID, 0xef +ipld-ns, IPLD CID and optional path, 0xee +ipfs-ns, IPFS CID and optional path, 0xef +swarm-ns, Swarm CID and optional path, 0xf0 From 33b7b78654cb02fd803e318c2cbe9bbb2b2d3200 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Thu, 10 Jan 2019 18:56:39 +1300 Subject: [PATCH 18/35] Update table.csv --- table.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/table.csv b/table.csv index 597fdde..6d9b822 100644 --- a/table.csv +++ b/table.csv @@ -449,6 +449,6 @@ torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed Content Namespaces,, -ipld-ns, IPLD CID and optional path, 0xee -ipfs-ns, IPFS CID and optional path, 0xef -swarm-ns, Swarm CID and optional path, 0xf0 +ipld-ns, IPLD path, 0xee +ipfs-ns, IPFS path, 0xef +swarm-ns, Swarm path, 0xf0 From cea6e182cd8eb71db293ed3e979ce354293fdf27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Sat, 12 Jan 2019 11:00:41 +0100 Subject: [PATCH 19/35] feat: Add /p2p-stardust This is part of the endeavor to replace ws-star with the newly created stardust protocol. See libp2p/js-libp2p-websocket-star#70 for a reference Relates to https://github.com/multiformats/multiaddr/pull/84#pullrequestreview-191887582 --- table.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/table.csv b/table.csv index ab4aacb..b8a5518 100644 --- a/table.csv +++ b/table.csv @@ -386,6 +386,7 @@ dns4, , 0x36 dns6, , 0x37 dnsaddr, , 0x38 p2p-websocket-star, , 0x01DF +p2p-stardust, , 0x0115 p2p-webrtc-star, , 0x0113 p2p-webrtc-direct, , 0x0114 unix, , 0x0190 From e6e56f5f276fa36a995be1da7ba89efe00c7d9e9 Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Wed, 16 Jan 2019 12:35:57 -0800 Subject: [PATCH 20/35] Add the 0x1e prefix code for Holochain Addresses --- table.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/table.csv b/table.csv index b8a5518..5067683 100644 --- a/table.csv +++ b/table.csv @@ -427,6 +427,8 @@ leofcoin-block, Leofcoin Block, 0x81 leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 +holochain-address, Holochain Address, 0x1e + torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed From 0b67cd454f478486f082609ccc008136823e932e Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Wed, 16 Jan 2019 13:04:48 -0800 Subject: [PATCH 21/35] Improve description of Holochain 0x1E prefix to detail its contents. --- table.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 5067683..757f005 100644 --- a/table.csv +++ b/table.csv @@ -427,7 +427,7 @@ leofcoin-block, Leofcoin Block, 0x81 leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 -holochain-address, Holochain Address, 0x1e +holochain-keys, Holochain address public keys + parity, 0x1e torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c From f16a0937b215e8ee6400d87866d21076384c7671 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Fri, 18 Jan 2019 13:02:48 +0000 Subject: [PATCH 22/35] fix codec conflicts See: https://github.com/multiformats/multicodec/pull/104#issuecomment-455499679 --- table.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/table.csv b/table.csv index b8a5518..c105dab 100644 --- a/table.csv +++ b/table.csv @@ -432,6 +432,6 @@ torrent-file, Torrent file (bencoded), 0x7c ed25519-pub, Ed25519 public key, 0xed Content Namespaces,, -ipld-ns, IPLD path, 0xee -ipfs-ns, IPFS path, 0xef -swarm-ns, Swarm path, 0xf0 +ipld-ns, IPLD path, 0xe2 +ipfs-ns, IPFS path, 0xe3 +swarm-ns, Swarm path, 0xe4 From c0d65537c991ac6c7447181348ac634a6a0df2a4 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Fri, 18 Jan 2019 13:47:49 +0000 Subject: [PATCH 23/35] ci: add validator script --- .travis.yml | 9 ++++++ validate.py | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 .travis.yml create mode 100755 validate.py diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..50c2cb4 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +sudo: false + +language: python + +python: + - "3.6" + +script: + - python validate.py diff --git a/validate.py b/validate.py new file mode 100755 index 0000000..da5a755 --- /dev/null +++ b/validate.py @@ -0,0 +1,84 @@ +#!/usr/bin/python3 + +import csv +import sys + +# We have some duplicates +ALIAS_TABLE = [ + {"ipfs", "p2p"}, +] + +def check(fname='table.csv'): + class CheckError(Exception): + pass + + aliases = {} + for nameset in ALIAS_TABLE: + for name in nameset: + aliases[name] = nameset + + success = True + with open(fname) as table: + tablereader = csv.reader(table, skipinitialspace=True) + codes = {} + names = {} + for line, row in enumerate(tablereader): + # Skip the header + if line == 0: + continue + + try: + # Skip empty rows + if not row: + continue + + # Check for invalid rows + if len(row) != 3: + raise CheckError(f"expected 3 items, got {len(row)}") + + # Skip section headers + if not row[1] and not row[2]: + continue + + # Check code format + if not row[2].startswith("0x"): + raise CheckError(f"code '{row[2]}' doesn't start with 0x") + + name = row[0] + if not name: + raise CheckError(f"empty protocol name") + + # Parse the code + try: + code = int(row[2], 16) + except Exception as e: + raise CheckError(f"failed to parse number '{row[2]}': {e}") + + # Finally, check for duplicates + + if name in names: + raise CheckError(f"found duplicate {name}: {code} and {names[name]}") + else: + names[name] = code + + if code in codes: + dup = codes[code] + if name in aliases: + if dup in aliases[name]: + # Skip aliased names + continue + raise CheckError( + f"found duplicate for code {hex(code)} " + f"for '{codes[code]}' and '{name}'" + ) + else: + codes[code] = name + except CheckError as e: + success = False + print(f"row {line}: {e}", file=sys.stderr) + + return success + +if __name__ == "__main__": + if not check(): + sys.exit(1) From a3fe78f352e2a5d660692696e6abb02e46e62ece Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Thu, 24 Jan 2019 13:02:28 -0800 Subject: [PATCH 24/35] Use '#!/usr/bin/env python3' vs. fixed path '/usr/bin/python3' o Many installations have python3 installed elsewhere, such as /usr/local/bin/, etc. Use the environment PATH variable to locate. --- validate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validate.py b/validate.py index da5a755..8ab5e73 100755 --- a/validate.py +++ b/validate.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 import csv import sys From 0ff4dee4f402c98a8aa5afec0d5f6d1918e353a0 Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Fri, 25 Jan 2019 05:21:48 -0800 Subject: [PATCH 25/35] Change holochain-keys designator to 0x86; yields encoded key prefix of "hkZ..." --- table.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/table.csv b/table.csv index d36fc0a..a36a7bf 100644 --- a/table.csv +++ b/table.csv @@ -427,7 +427,7 @@ leofcoin-block, Leofcoin Block, 0x81 leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 -holochain-keys, Holochain address public keys + parity, 0x1e +holochain-keys, Holochain address public keys + parity, 0x86 torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c From 9c00842b97cb477bd4153ccbfbc0becb358c3e54 Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Mon, 28 Jan 2019 06:30:24 -0800 Subject: [PATCH 26/35] Added holochain-keys encoding, re-ordered some table entries by code --- table.csv | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/table.csv b/table.csv index a36a7bf..c0f08db 100644 --- a/table.csv +++ b/table.csv @@ -398,6 +398,15 @@ dag-json, MerkleDAG json, 0x0129 git-raw, Raw Git object, 0x78 +torrent-info, Torrent file info field (bencoded), 0x7b +torrent-file, Torrent file (bencoded), 0x7c + +leofcoin-block, Leofcoin Block, 0x81 +leofcoin-tx, Leofcoin Transaction, 0x82 +leofcoin-pr, Leofcoin Peer Reputation, 0x83 + +holochain-keys, Holochain address public keys + parity (base64), 0x86 + eth-block, Ethereum Block (RLP), 0x90 eth-block-list, Ethereum Block List (RLP), 0x91 eth-tx-trie, Ethereum Transaction Trie (Eth-Trie), 0x92 @@ -420,19 +429,11 @@ stellar-tx, Stellar Tx, 0xd1 decred-block, Decred Block, 0xe0 decred-tx, Decred Tx, 0xe1 +ed25519-pub, Ed25519 public key, 0xed + dash-block, Dash Block, 0xf0 dash-tx, Dash Tx, 0xf1 -leofcoin-block, Leofcoin Block, 0x81 -leofcoin-tx, Leofcoin Transaction, 0x82 -leofcoin-pr, Leofcoin Peer Reputation, 0x83 - -holochain-keys, Holochain address public keys + parity, 0x86 - -torrent-info, Torrent file info field (bencoded), 0x7b -torrent-file, Torrent file (bencoded), 0x7c -ed25519-pub, Ed25519 public key, 0xed - Content Namespaces,, ipld-ns, IPLD path, 0xe2 ipfs-ns, IPFS path, 0xe3 From 04a895ad8a0feaf290d3f6430f82ad7298331c45 Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Mon, 4 Feb 2019 09:03:37 -0700 Subject: [PATCH 27/35] Allocate several prefixes for various Holochain IDs -> Base58 encoding --- table.csv | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/table.csv b/table.csv index c0f08db..2bfc522 100644 --- a/table.csv +++ b/table.csv @@ -398,15 +398,6 @@ dag-json, MerkleDAG json, 0x0129 git-raw, Raw Git object, 0x78 -torrent-info, Torrent file info field (bencoded), 0x7b -torrent-file, Torrent file (bencoded), 0x7c - -leofcoin-block, Leofcoin Block, 0x81 -leofcoin-tx, Leofcoin Transaction, 0x82 -leofcoin-pr, Leofcoin Peer Reputation, 0x83 - -holochain-keys, Holochain address public keys + parity (base64), 0x86 - eth-block, Ethereum Block (RLP), 0x90 eth-block-list, Ethereum Block List (RLP), 0x91 eth-tx-trie, Ethereum Transaction Trie (Eth-Trie), 0x92 @@ -429,11 +420,21 @@ stellar-tx, Stellar Tx, 0xd1 decred-block, Decred Block, 0xe0 decred-tx, Decred Tx, 0xe1 -ed25519-pub, Ed25519 public key, 0xed - dash-block, Dash Block, 0xf0 dash-tx, Dash Tx, 0xf1 +leofcoin-block, Leofcoin Block, 0x81 +leofcoin-tx, Leofcoin Transaction, 0x82 +leofcoin-pr, Leofcoin Peer Reputation, 0x83 + +holochain-keys, Holochain public keys + 8 R-S parity (Base58), 0x8be63448 +holochain-id, Holochain ID + 8 R-S parity (Base58), 0xf1ae3448 +holochain-holo, Holochain Holo ID + 8 R-S parity (Base58), 0xe3f83448 + +torrent-info, Torrent file info field (bencoded), 0x7b +torrent-file, Torrent file (bencoded), 0x7c +ed25519-pub, Ed25519 public key, 0xed + Content Namespaces,, ipld-ns, IPLD path, 0xe2 ipfs-ns, IPFS path, 0xe3 From 940266dea7467bfb48c0b555932143d83b13e142 Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Mon, 4 Feb 2019 13:09:42 -0700 Subject: [PATCH 28/35] Confirmed Base58 "Hkey..." prefix w/ 71-octet payload; ready to merge --- table.csv | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/table.csv b/table.csv index 2bfc522..6311083 100644 --- a/table.csv +++ b/table.csv @@ -427,9 +427,7 @@ leofcoin-block, Leofcoin Block, 0x81 leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 -holochain-keys, Holochain public keys + 8 R-S parity (Base58), 0x8be63448 -holochain-id, Holochain ID + 8 R-S parity (Base58), 0xf1ae3448 -holochain-holo, Holochain Holo ID + 8 R-S parity (Base58), 0xe3f83448 +holochain-keys, Holochain public keys + 7 R-S parity (Base58), 0x8be63447 torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c From 8d958411748185dca43db2412c07edbe5909905a Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Thu, 7 Feb 2019 14:52:17 -0700 Subject: [PATCH 29/35] Update desired Holochain Varint prefixes --- table.csv | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 6311083..255db61 100644 --- a/table.csv +++ b/table.csv @@ -427,7 +427,12 @@ leofcoin-block, Leofcoin Block, 0x81 leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 -holochain-keys, Holochain public keys + 7 R-S parity (Base58), 0x8be63447 +holochain-key-v0, Holochain v0 public key + 8 R-S (63 x Base-32), 0x947124 +holochain-key-v1 Holochain v1 public key + 8 R-S (63 x Base-32), 0x957124 +holochain-adr-v0, Holochain v0 address + 8 R-S (63 x Base-32), 0x807124 +holochain-adr-v1, Holochain v1 address + 8 R-S (63 x Base-32), 0x817124 +holochain-sig-v0, Holochain v0 signature + 8 R-S (63 x Base-32), 0xa27124 +holochain-sig-v1, Holochain v1 signature + 8 R-S (63 x Base-32), 0xa37124 torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c From f01b5ea7da293c9f1251cf6bde116189a23f3fbd Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Thu, 7 Feb 2019 15:13:28 -0700 Subject: [PATCH 30/35] Correct indetation --- table.csv | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/table.csv b/table.csv index 255db61..88a3cf1 100644 --- a/table.csv +++ b/table.csv @@ -427,12 +427,12 @@ leofcoin-block, Leofcoin Block, 0x81 leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 -holochain-key-v0, Holochain v0 public key + 8 R-S (63 x Base-32), 0x947124 -holochain-key-v1 Holochain v1 public key + 8 R-S (63 x Base-32), 0x957124 -holochain-adr-v0, Holochain v0 address + 8 R-S (63 x Base-32), 0x807124 -holochain-adr-v1, Holochain v1 address + 8 R-S (63 x Base-32), 0x817124 -holochain-sig-v0, Holochain v0 signature + 8 R-S (63 x Base-32), 0xa27124 -holochain-sig-v1, Holochain v1 signature + 8 R-S (63 x Base-32), 0xa37124 +holochain-key-v0, Holochain v0 public key + 8 R-S (63 x Base-32), 0x947124 +holochain-key-v1 Holochain v1 public key + 8 R-S (63 x Base-32), 0x957124 +holochain-adr-v0, Holochain v0 address + 8 R-S (63 x Base-32), 0x807124 +holochain-adr-v1, Holochain v1 address + 8 R-S (63 x Base-32), 0x817124 +holochain-sig-v0, Holochain v0 signature + 8 R-S (63 x Base-32), 0xa27124 +holochain-sig-v1, Holochain v1 signature + 8 R-S (63 x Base-32), 0xa37124 torrent-info, Torrent file info field (bencoded), 0x7b torrent-file, Torrent file (bencoded), 0x7c From 644328bd48ff3f45f2fb32f6ad5b9ad89461c1ac Mon Sep 17 00:00:00 2001 From: Perry Kundert Date: Thu, 7 Feb 2019 15:23:00 -0700 Subject: [PATCH 31/35] Corrected CSV --- table.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/table.csv b/table.csv index 88a3cf1..d2ffd93 100644 --- a/table.csv +++ b/table.csv @@ -428,7 +428,7 @@ leofcoin-tx, Leofcoin Transaction, 0x82 leofcoin-pr, Leofcoin Peer Reputation, 0x83 holochain-key-v0, Holochain v0 public key + 8 R-S (63 x Base-32), 0x947124 -holochain-key-v1 Holochain v1 public key + 8 R-S (63 x Base-32), 0x957124 +holochain-key-v1, Holochain v1 public key + 8 R-S (63 x Base-32), 0x957124 holochain-adr-v0, Holochain v0 address + 8 R-S (63 x Base-32), 0x807124 holochain-adr-v1, Holochain v1 address + 8 R-S (63 x Base-32), 0x817124 holochain-sig-v0, Holochain v0 signature + 8 R-S (63 x Base-32), 0xa27124 From 942b8875da24b2c60ecb0eb87c9b81e92d8f595c Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 13 Feb 2019 07:34:21 -0800 Subject: [PATCH 32/35] chore: reformat table (#119) * reformat table Sort the table by code and replace the sections with tags. Inspired by https://github.com/multiformats/multicodec/pull/116 but rebased on master. This version also puts the description last as it's optional. * align table --- README.md | 2 +- table.csv | 861 +++++++++++++++++++++++++--------------------------- validate.py | 28 +- 3 files changed, 429 insertions(+), 462 deletions(-) diff --git a/README.md b/README.md index 71d71f7..595b050 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Multicodec uses "protocol tables" to agree upon the mapping from one multicodec ## Multicodec table -The full table can be found at [table.csv](/table.csv) inside this repo. +The full table can be found at [table.csv](/table.csv) inside this repo. There's also a sortable [viewer](https://ipfs.io/ipfs/QmXec1jjwzxWJoNbxQF5KffL8q6hFXm9QwUGaa3wKGk6dT/#title=Multicodecs&src=https://raw.githubusercontent.com/multiformats/multicodec/master/table.csv). ### Adding new multicodecs to the table diff --git a/table.csv b/table.csv index d2ffd93..b6fab35 100644 --- a/table.csv +++ b/table.csv @@ -1,444 +1,417 @@ -codec, description, code - -miscellaneous,, -raw, raw binary, 0x55 - -serialization formats,, -cbor, CBOR, 0x51 -protobuf, Protocol Buffers, 0x50 -rlp, recursive length prefix, 0x60 -bencode, bencode, 0x63 - -multiformats,, -multicodec, , 0x30 -multihash, , 0x31 -multiaddr, , 0x32 -multibase, , 0x33 - -multihashes,, -identity, raw binary, 0x0 -md4, , 0xd4 -md5, , 0xd5 -sha1, , 0x11 -sha2-256, , 0x12 -sha2-512, , 0x13 -dbl-sha2-256, , 0x56 -sha3-224, , 0x17 -sha3-256, , 0x16 -sha3-384, , 0x15 -sha3-512, , 0x14 -shake-128, , 0x18 -shake-256, , 0x19 -keccak-224,keccak has variable output length. The number specifies the core length,0x1A -keccak-256, , 0x1B -keccak-384, , 0x1C -keccak-512, , 0x1D -murmur3-128, , 0x22 -murmur3-32, , 0x23 -x11, , 0x1100 - -blake2b-8,Blake2b consists of 64 output lengths that give different hashes,0xb201 -blake2b-16,,0xb202 -blake2b-24,,0xb203 -blake2b-32,,0xb204 -blake2b-40,,0xb205 -blake2b-48,,0xb206 -blake2b-56,,0xb207 -blake2b-64,,0xb208 -blake2b-72,,0xb209 -blake2b-80,,0xb20a -blake2b-88,,0xb20b -blake2b-96,,0xb20c -blake2b-104,,0xb20d -blake2b-112,,0xb20e -blake2b-120,,0xb20f -blake2b-128,,0xb210 -blake2b-136,,0xb211 -blake2b-144,,0xb212 -blake2b-152,,0xb213 -blake2b-160,,0xb214 -blake2b-168,,0xb215 -blake2b-176,,0xb216 -blake2b-184,,0xb217 -blake2b-192,,0xb218 -blake2b-200,,0xb219 -blake2b-208,,0xb21a -blake2b-216,,0xb21b -blake2b-224,,0xb21c -blake2b-232,,0xb21d -blake2b-240,,0xb21e -blake2b-248,,0xb21f -blake2b-256,,0xb220 -blake2b-264,,0xb221 -blake2b-272,,0xb222 -blake2b-280,,0xb223 -blake2b-288,,0xb224 -blake2b-296,,0xb225 -blake2b-304,,0xb226 -blake2b-312,,0xb227 -blake2b-320,,0xb228 -blake2b-328,,0xb229 -blake2b-336,,0xb22a -blake2b-344,,0xb22b -blake2b-352,,0xb22c -blake2b-360,,0xb22d -blake2b-368,,0xb22e -blake2b-376,,0xb22f -blake2b-384,,0xb230 -blake2b-392,,0xb231 -blake2b-400,,0xb232 -blake2b-408,,0xb233 -blake2b-416,,0xb234 -blake2b-424,,0xb235 -blake2b-432,,0xb236 -blake2b-440,,0xb237 -blake2b-448,,0xb238 -blake2b-456,,0xb239 -blake2b-464,,0xb23a -blake2b-472,,0xb23b -blake2b-480,,0xb23c -blake2b-488,,0xb23d -blake2b-496,,0xb23e -blake2b-504,,0xb23f -blake2b-512,,0xb240 -blake2s-8,Blake2s consists of 32 output lengths that give different hashes,0xb241 -blake2s-16,,0xb242 -blake2s-24,,0xb243 -blake2s-32,,0xb244 -blake2s-40,,0xb245 -blake2s-48,,0xb246 -blake2s-56,,0xb247 -blake2s-64,,0xb248 -blake2s-72,,0xb249 -blake2s-80,,0xb24a -blake2s-88,,0xb24b -blake2s-96,,0xb24c -blake2s-104,,0xb24d -blake2s-112,,0xb24e -blake2s-120,,0xb24f -blake2s-128,,0xb250 -blake2s-136,,0xb251 -blake2s-144,,0xb252 -blake2s-152,,0xb253 -blake2s-160,,0xb254 -blake2s-168,,0xb255 -blake2s-176,,0xb256 -blake2s-184,,0xb257 -blake2s-192,,0xb258 -blake2s-200,,0xb259 -blake2s-208,,0xb25a -blake2s-216,,0xb25b -blake2s-224,,0xb25c -blake2s-232,,0xb25d -blake2s-240,,0xb25e -blake2s-248,,0xb25f -blake2s-256,,0xb260 - -skein256-8,Skein256 consists of 32 output lengths that give different hashes,0xb301 -skein256-16,,0xb302 -skein256-24,,0xb303 -skein256-32,,0xb304 -skein256-40,,0xb305 -skein256-48,,0xb306 -skein256-56,,0xb307 -skein256-64,,0xb308 -skein256-72,,0xb309 -skein256-80,,0xb30a -skein256-88,,0xb30b -skein256-96,,0xb30c -skein256-104,,0xb30d -skein256-112,,0xb30e -skein256-120,,0xb30f -skein256-128,,0xb310 -skein256-136,,0xb311 -skein256-144,,0xb312 -skein256-152,,0xb313 -skein256-160,,0xb314 -skein256-168,,0xb315 -skein256-176,,0xb316 -skein256-184,,0xb317 -skein256-192,,0xb318 -skein256-200,,0xb319 -skein256-208,,0xb31a -skein256-216,,0xb31b -skein256-224,,0xb31c -skein256-232,,0xb31d -skein256-240,,0xb31e -skein256-248,,0xb31f -skein256-256,,0xb320 -skein512-8,Skein512 consists of 64 output lengths that give different hashes,0xb321 -skein512-16,,0xb322 -skein512-24,,0xb323 -skein512-32,,0xb324 -skein512-40,,0xb325 -skein512-48,,0xb326 -skein512-56,,0xb327 -skein512-64,,0xb328 -skein512-72,,0xb329 -skein512-80,,0xb32a -skein512-88,,0xb32b -skein512-96,,0xb32c -skein512-104,,0xb32d -skein512-112,,0xb32e -skein512-120,,0xb32f -skein512-128,,0xb330 -skein512-136,,0xb331 -skein512-144,,0xb332 -skein512-152,,0xb333 -skein512-160,,0xb334 -skein512-168,,0xb335 -skein512-176,,0xb336 -skein512-184,,0xb337 -skein512-192,,0xb338 -skein512-200,,0xb339 -skein512-208,,0xb33a -skein512-216,,0xb33b -skein512-224,,0xb33c -skein512-232,,0xb33d -skein512-240,,0xb33e -skein512-248,,0xb33f -skein512-256,,0xb340 -skein512-264,,0xb341 -skein512-272,,0xb342 -skein512-280,,0xb343 -skein512-288,,0xb344 -skein512-296,,0xb345 -skein512-304,,0xb346 -skein512-312,,0xb347 -skein512-320,,0xb348 -skein512-328,,0xb349 -skein512-336,,0xb34a -skein512-344,,0xb34b -skein512-352,,0xb34c -skein512-360,,0xb34d -skein512-368,,0xb34e -skein512-376,,0xb34f -skein512-384,,0xb350 -skein512-392,,0xb351 -skein512-400,,0xb352 -skein512-408,,0xb353 -skein512-416,,0xb354 -skein512-424,,0xb355 -skein512-432,,0xb356 -skein512-440,,0xb357 -skein512-448,,0xb358 -skein512-456,,0xb359 -skein512-464,,0xb35a -skein512-472,,0xb35b -skein512-480,,0xb35c -skein512-488,,0xb35d -skein512-496,,0xb35e -skein512-504,,0xb35f -skein512-512,,0xb360 -skein1024-8,Skein1024 consists of 128 output lengths that give different hashes,0xb361 -skein1024-16,,0xb362 -skein1024-24,,0xb363 -skein1024-32,,0xb364 -skein1024-40,,0xb365 -skein1024-48,,0xb366 -skein1024-56,,0xb367 -skein1024-64,,0xb368 -skein1024-72,,0xb369 -skein1024-80,,0xb36a -skein1024-88,,0xb36b -skein1024-96,,0xb36c -skein1024-104,,0xb36d -skein1024-112,,0xb36e -skein1024-120,,0xb36f -skein1024-128,,0xb370 -skein1024-136,,0xb371 -skein1024-144,,0xb372 -skein1024-152,,0xb373 -skein1024-160,,0xb374 -skein1024-168,,0xb375 -skein1024-176,,0xb376 -skein1024-184,,0xb377 -skein1024-192,,0xb378 -skein1024-200,,0xb379 -skein1024-208,,0xb37a -skein1024-216,,0xb37b -skein1024-224,,0xb37c -skein1024-232,,0xb37d -skein1024-240,,0xb37e -skein1024-248,,0xb37f -skein1024-256,,0xb380 -skein1024-264,,0xb381 -skein1024-272,,0xb382 -skein1024-280,,0xb383 -skein1024-288,,0xb384 -skein1024-296,,0xb385 -skein1024-304,,0xb386 -skein1024-312,,0xb387 -skein1024-320,,0xb388 -skein1024-328,,0xb389 -skein1024-336,,0xb38a -skein1024-344,,0xb38b -skein1024-352,,0xb38c -skein1024-360,,0xb38d -skein1024-368,,0xb38e -skein1024-376,,0xb38f -skein1024-384,,0xb390 -skein1024-392,,0xb391 -skein1024-400,,0xb392 -skein1024-408,,0xb393 -skein1024-416,,0xb394 -skein1024-424,,0xb395 -skein1024-432,,0xb396 -skein1024-440,,0xb397 -skein1024-448,,0xb398 -skein1024-456,,0xb399 -skein1024-464,,0xb39a -skein1024-472,,0xb39b -skein1024-480,,0xb39c -skein1024-488,,0xb39d -skein1024-496,,0xb39e -skein1024-504,,0xb39f -skein1024-512,,0xb3a0 -skein1024-520,,0xb3a1 -skein1024-528,,0xb3a2 -skein1024-536,,0xb3a3 -skein1024-544,,0xb3a4 -skein1024-552,,0xb3a5 -skein1024-560,,0xb3a6 -skein1024-568,,0xb3a7 -skein1024-576,,0xb3a8 -skein1024-584,,0xb3a9 -skein1024-592,,0xb3aa -skein1024-600,,0xb3ab -skein1024-608,,0xb3ac -skein1024-616,,0xb3ad -skein1024-624,,0xb3ae -skein1024-632,,0xb3af -skein1024-640,,0xb3b0 -skein1024-648,,0xb3b1 -skein1024-656,,0xb3b2 -skein1024-664,,0xb3b3 -skein1024-672,,0xb3b4 -skein1024-680,,0xb3b5 -skein1024-688,,0xb3b6 -skein1024-696,,0xb3b7 -skein1024-704,,0xb3b8 -skein1024-712,,0xb3b9 -skein1024-720,,0xb3ba -skein1024-728,,0xb3bb -skein1024-736,,0xb3bc -skein1024-744,,0xb3bd -skein1024-752,,0xb3be -skein1024-760,,0xb3bf -skein1024-768,,0xb3c0 -skein1024-776,,0xb3c1 -skein1024-784,,0xb3c2 -skein1024-792,,0xb3c3 -skein1024-800,,0xb3c4 -skein1024-808,,0xb3c5 -skein1024-816,,0xb3c6 -skein1024-824,,0xb3c7 -skein1024-832,,0xb3c8 -skein1024-840,,0xb3c9 -skein1024-848,,0xb3ca -skein1024-856,,0xb3cb -skein1024-864,,0xb3cc -skein1024-872,,0xb3cd -skein1024-880,,0xb3ce -skein1024-888,,0xb3cf -skein1024-896,,0xb3d0 -skein1024-904,,0xb3d1 -skein1024-912,,0xb3d2 -skein1024-920,,0xb3d3 -skein1024-928,,0xb3d4 -skein1024-936,,0xb3d5 -skein1024-944,,0xb3d6 -skein1024-952,,0xb3d7 -skein1024-960,,0xb3d8 -skein1024-968,,0xb3d9 -skein1024-976,,0xb3da -skein1024-984,,0xb3db -skein1024-992,,0xb3dc -skein1024-1000,,0xb3dd -skein1024-1008,,0xb3de -skein1024-1016,,0xb3df -skein1024-1024,,0xb3e0 - - -multiaddrs,, -ip4, , 0x04 -ip6, , 0x29 -ip6zone, , 0x2A -tcp, , 0x06 -udp, , 0x0111 -dccp, , 0x21 -sctp, , 0x84 -udt, , 0x012D -utp, , 0x012E -p2p, libp2p, 0x01A5 -ipfs, libp2p (deprecated), 0x01A5 -http, , 0x01E0 -https, , 0x01BB -quic, , 0x01CC -ws, , 0x01DD -wss, , 0x01DE -onion, , 0x01BC -onion3, , 0x01BD -garlic64, , 0x01BE -p2p-circuit, , 0x0122 -dns, , 0x35 -dns4, , 0x36 -dns6, , 0x37 -dnsaddr, , 0x38 -p2p-websocket-star, , 0x01DF -p2p-stardust, , 0x0115 -p2p-webrtc-star, , 0x0113 -p2p-webrtc-direct, , 0x0114 -unix, , 0x0190 - -IPLD formats,, -dag-pb, MerkleDAG protobuf, 0x70 -dag-cbor, MerkleDAG cbor, 0x71 -dag-json, MerkleDAG json, 0x0129 - -git-raw, Raw Git object, 0x78 - -eth-block, Ethereum Block (RLP), 0x90 -eth-block-list, Ethereum Block List (RLP), 0x91 -eth-tx-trie, Ethereum Transaction Trie (Eth-Trie), 0x92 -eth-tx, Ethereum Transaction (RLP), 0x93 -eth-tx-receipt-trie, Ethereum Transaction Receipt Trie (Eth-Trie), 0x94 -eth-tx-receipt, Ethereum Transaction Receipt (RLP), 0x95 -eth-state-trie, Ethereum State Trie (Eth-Secure-Trie), 0x96 -eth-account-snapshot, Ethereum Account Snapshot (RLP), 0x97 -eth-storage-trie, Ethereum Contract Storage Trie (Eth-Secure-Trie), 0x98 - -bitcoin-block, Bitcoin Block, 0xb0 -bitcoin-tx, Bitcoin Tx, 0xb1 - -zcash-block, Zcash Block, 0xc0 -zcash-tx, Zcash Tx, 0xc1 - -stellar-block, Stellar Block, 0xd0 -stellar-tx, Stellar Tx, 0xd1 - -decred-block, Decred Block, 0xe0 -decred-tx, Decred Tx, 0xe1 - -dash-block, Dash Block, 0xf0 -dash-tx, Dash Tx, 0xf1 - -leofcoin-block, Leofcoin Block, 0x81 -leofcoin-tx, Leofcoin Transaction, 0x82 -leofcoin-pr, Leofcoin Peer Reputation, 0x83 - -holochain-key-v0, Holochain v0 public key + 8 R-S (63 x Base-32), 0x947124 -holochain-key-v1, Holochain v1 public key + 8 R-S (63 x Base-32), 0x957124 -holochain-adr-v0, Holochain v0 address + 8 R-S (63 x Base-32), 0x807124 -holochain-adr-v1, Holochain v1 address + 8 R-S (63 x Base-32), 0x817124 -holochain-sig-v0, Holochain v0 signature + 8 R-S (63 x Base-32), 0xa27124 -holochain-sig-v1, Holochain v1 signature + 8 R-S (63 x Base-32), 0xa37124 - -torrent-info, Torrent file info field (bencoded), 0x7b -torrent-file, Torrent file (bencoded), 0x7c -ed25519-pub, Ed25519 public key, 0xed - -Content Namespaces,, -ipld-ns, IPLD path, 0xe2 -ipfs-ns, IPFS path, 0xe3 -swarm-ns, Swarm path, 0xe4 +name, tag, code, description +identity, multihash, 0x0, raw binary +ip4, multiaddr, 0x04, +tcp, multiaddr, 0x06, +sha1, multihash, 0x11, +sha2-256, multihash, 0x12, +sha2-512, multihash, 0x13, +sha3-512, multihash, 0x14, +sha3-384, multihash, 0x15, +sha3-256, multihash, 0x16, +sha3-224, multihash, 0x17, +shake-128, multihash, 0x18, +shake-256, multihash, 0x19, +keccak-224, multihash, 0x1A, keccak has variable output length. The number specifies the core length +keccak-256, multihash, 0x1B, +keccak-384, multihash, 0x1C, +keccak-512, multihash, 0x1D, +dccp, multiaddr, 0x21, +murmur3-128, multihash, 0x22, +murmur3-32, multihash, 0x23, +ip6, multiaddr, 0x29, +ip6zone, multiaddr, 0x2A, +multicodec, multiformat, 0x30, +multihash, multiformat, 0x31, +multiaddr, multiformat, 0x32, +multibase, multiformat, 0x33, +dns, multiaddr, 0x35, +dns4, multiaddr, 0x36, +dns6, multiaddr, 0x37, +dnsaddr, multiaddr, 0x38, +protobuf, serialization, 0x50, Protocol Buffers +cbor, serialization, 0x51, CBOR +raw, ipld, 0x55, raw binary +dbl-sha2-256, multihash, 0x56, +rlp, serialization, 0x60, recursive length prefix +bencode, serialization, 0x63, bencode +dag-pb, ipld, 0x70, MerkleDAG protobuf +dag-cbor, ipld, 0x71, MerkleDAG cbor +git-raw, ipld, 0x78, Raw Git object +torrent-info, ipld, 0x7b, Torrent file info field (bencoded) +torrent-file, ipld, 0x7c, Torrent file (bencoded) +leofcoin-block, ipld, 0x81, Leofcoin Block +leofcoin-tx, ipld, 0x82, Leofcoin Transaction +leofcoin-pr, ipld, 0x83, Leofcoin Peer Reputation +sctp, multiaddr, 0x84, +eth-block, ipld, 0x90, Ethereum Block (RLP) +eth-block-list, ipld, 0x91, Ethereum Block List (RLP) +eth-tx-trie, ipld, 0x92, Ethereum Transaction Trie (Eth-Trie) +eth-tx, ipld, 0x93, Ethereum Transaction (RLP) +eth-tx-receipt-trie, ipld, 0x94, Ethereum Transaction Receipt Trie (Eth-Trie) +eth-tx-receipt, ipld, 0x95, Ethereum Transaction Receipt (RLP) +eth-state-trie, ipld, 0x96, Ethereum State Trie (Eth-Secure-Trie) +eth-account-snapshot, ipld, 0x97, Ethereum Account Snapshot (RLP) +eth-storage-trie, ipld, 0x98, Ethereum Contract Storage Trie (Eth-Secure-Trie) +bitcoin-block, ipld, 0xb0, Bitcoin Block +bitcoin-tx, ipld, 0xb1, Bitcoin Tx +zcash-block, ipld, 0xc0, Zcash Block +zcash-tx, ipld, 0xc1, Zcash Tx +stellar-block, ipld, 0xd0, Stellar Block +stellar-tx, ipld, 0xd1, Stellar Tx +md4, multihash, 0xd4, +md5, multihash, 0xd5, +decred-block, ipld, 0xe0, Decred Block +decred-tx, ipld, 0xe1, Decred Tx +ipld-ns, namespace, 0xe2, IPLD path +ipfs-ns, namespace, 0xe3, IPFS path +swarm-ns, namespace, 0xe4, Swarm path +ed25519-pub, key, 0xed, Ed25519 public key +dash-block, ipld, 0xf0, Dash Block +dash-tx, ipld, 0xf1, Dash Tx +udp, multiaddr, 0x0111, +p2p-webrtc-star, multiaddr, 0x0113, +p2p-webrtc-direct, multiaddr, 0x0114, +p2p-stardust, multiaddr, 0x0115, +p2p-circuit, multiaddr, 0x0122, +dag-json, ipld, 0x0129, MerkleDAG json +udt, multiaddr, 0x012D, +utp, multiaddr, 0x012E, +unix, multiaddr, 0x0190, +p2p, multiaddr, 0x01A5, libp2p +ipfs, multiaddr, 0x01A5, libp2p (deprecated) +https, multiaddr, 0x01BB, +onion, multiaddr, 0x01BC, +onion3, multiaddr, 0x01BD, +garlic64, multiaddr, 0x01BE, +quic, multiaddr, 0x01CC, +ws, multiaddr, 0x01DD, +wss, multiaddr, 0x01DE, +p2p-websocket-star, multiaddr, 0x01DF, +http, multiaddr, 0x01E0, +x11, multihash, 0x1100, +blake2b-8, multihash, 0xb201, Blake2b consists of 64 output lengths that give different hashes +blake2b-16, multihash, 0xb202, +blake2b-24, multihash, 0xb203, +blake2b-32, multihash, 0xb204, +blake2b-40, multihash, 0xb205, +blake2b-48, multihash, 0xb206, +blake2b-56, multihash, 0xb207, +blake2b-64, multihash, 0xb208, +blake2b-72, multihash, 0xb209, +blake2b-80, multihash, 0xb20a, +blake2b-88, multihash, 0xb20b, +blake2b-96, multihash, 0xb20c, +blake2b-104, multihash, 0xb20d, +blake2b-112, multihash, 0xb20e, +blake2b-120, multihash, 0xb20f, +blake2b-128, multihash, 0xb210, +blake2b-136, multihash, 0xb211, +blake2b-144, multihash, 0xb212, +blake2b-152, multihash, 0xb213, +blake2b-160, multihash, 0xb214, +blake2b-168, multihash, 0xb215, +blake2b-176, multihash, 0xb216, +blake2b-184, multihash, 0xb217, +blake2b-192, multihash, 0xb218, +blake2b-200, multihash, 0xb219, +blake2b-208, multihash, 0xb21a, +blake2b-216, multihash, 0xb21b, +blake2b-224, multihash, 0xb21c, +blake2b-232, multihash, 0xb21d, +blake2b-240, multihash, 0xb21e, +blake2b-248, multihash, 0xb21f, +blake2b-256, multihash, 0xb220, +blake2b-264, multihash, 0xb221, +blake2b-272, multihash, 0xb222, +blake2b-280, multihash, 0xb223, +blake2b-288, multihash, 0xb224, +blake2b-296, multihash, 0xb225, +blake2b-304, multihash, 0xb226, +blake2b-312, multihash, 0xb227, +blake2b-320, multihash, 0xb228, +blake2b-328, multihash, 0xb229, +blake2b-336, multihash, 0xb22a, +blake2b-344, multihash, 0xb22b, +blake2b-352, multihash, 0xb22c, +blake2b-360, multihash, 0xb22d, +blake2b-368, multihash, 0xb22e, +blake2b-376, multihash, 0xb22f, +blake2b-384, multihash, 0xb230, +blake2b-392, multihash, 0xb231, +blake2b-400, multihash, 0xb232, +blake2b-408, multihash, 0xb233, +blake2b-416, multihash, 0xb234, +blake2b-424, multihash, 0xb235, +blake2b-432, multihash, 0xb236, +blake2b-440, multihash, 0xb237, +blake2b-448, multihash, 0xb238, +blake2b-456, multihash, 0xb239, +blake2b-464, multihash, 0xb23a, +blake2b-472, multihash, 0xb23b, +blake2b-480, multihash, 0xb23c, +blake2b-488, multihash, 0xb23d, +blake2b-496, multihash, 0xb23e, +blake2b-504, multihash, 0xb23f, +blake2b-512, multihash, 0xb240, +blake2s-8, multihash, 0xb241, Blake2s consists of 32 output lengths that give different hashes +blake2s-16, multihash, 0xb242, +blake2s-24, multihash, 0xb243, +blake2s-32, multihash, 0xb244, +blake2s-40, multihash, 0xb245, +blake2s-48, multihash, 0xb246, +blake2s-56, multihash, 0xb247, +blake2s-64, multihash, 0xb248, +blake2s-72, multihash, 0xb249, +blake2s-80, multihash, 0xb24a, +blake2s-88, multihash, 0xb24b, +blake2s-96, multihash, 0xb24c, +blake2s-104, multihash, 0xb24d, +blake2s-112, multihash, 0xb24e, +blake2s-120, multihash, 0xb24f, +blake2s-128, multihash, 0xb250, +blake2s-136, multihash, 0xb251, +blake2s-144, multihash, 0xb252, +blake2s-152, multihash, 0xb253, +blake2s-160, multihash, 0xb254, +blake2s-168, multihash, 0xb255, +blake2s-176, multihash, 0xb256, +blake2s-184, multihash, 0xb257, +blake2s-192, multihash, 0xb258, +blake2s-200, multihash, 0xb259, +blake2s-208, multihash, 0xb25a, +blake2s-216, multihash, 0xb25b, +blake2s-224, multihash, 0xb25c, +blake2s-232, multihash, 0xb25d, +blake2s-240, multihash, 0xb25e, +blake2s-248, multihash, 0xb25f, +blake2s-256, multihash, 0xb260, +skein256-8, multihash, 0xb301, Skein256 consists of 32 output lengths that give different hashes +skein256-16, multihash, 0xb302, +skein256-24, multihash, 0xb303, +skein256-32, multihash, 0xb304, +skein256-40, multihash, 0xb305, +skein256-48, multihash, 0xb306, +skein256-56, multihash, 0xb307, +skein256-64, multihash, 0xb308, +skein256-72, multihash, 0xb309, +skein256-80, multihash, 0xb30a, +skein256-88, multihash, 0xb30b, +skein256-96, multihash, 0xb30c, +skein256-104, multihash, 0xb30d, +skein256-112, multihash, 0xb30e, +skein256-120, multihash, 0xb30f, +skein256-128, multihash, 0xb310, +skein256-136, multihash, 0xb311, +skein256-144, multihash, 0xb312, +skein256-152, multihash, 0xb313, +skein256-160, multihash, 0xb314, +skein256-168, multihash, 0xb315, +skein256-176, multihash, 0xb316, +skein256-184, multihash, 0xb317, +skein256-192, multihash, 0xb318, +skein256-200, multihash, 0xb319, +skein256-208, multihash, 0xb31a, +skein256-216, multihash, 0xb31b, +skein256-224, multihash, 0xb31c, +skein256-232, multihash, 0xb31d, +skein256-240, multihash, 0xb31e, +skein256-248, multihash, 0xb31f, +skein256-256, multihash, 0xb320, +skein512-8, multihash, 0xb321, Skein512 consists of 64 output lengths that give different hashes +skein512-16, multihash, 0xb322, +skein512-24, multihash, 0xb323, +skein512-32, multihash, 0xb324, +skein512-40, multihash, 0xb325, +skein512-48, multihash, 0xb326, +skein512-56, multihash, 0xb327, +skein512-64, multihash, 0xb328, +skein512-72, multihash, 0xb329, +skein512-80, multihash, 0xb32a, +skein512-88, multihash, 0xb32b, +skein512-96, multihash, 0xb32c, +skein512-104, multihash, 0xb32d, +skein512-112, multihash, 0xb32e, +skein512-120, multihash, 0xb32f, +skein512-128, multihash, 0xb330, +skein512-136, multihash, 0xb331, +skein512-144, multihash, 0xb332, +skein512-152, multihash, 0xb333, +skein512-160, multihash, 0xb334, +skein512-168, multihash, 0xb335, +skein512-176, multihash, 0xb336, +skein512-184, multihash, 0xb337, +skein512-192, multihash, 0xb338, +skein512-200, multihash, 0xb339, +skein512-208, multihash, 0xb33a, +skein512-216, multihash, 0xb33b, +skein512-224, multihash, 0xb33c, +skein512-232, multihash, 0xb33d, +skein512-240, multihash, 0xb33e, +skein512-248, multihash, 0xb33f, +skein512-256, multihash, 0xb340, +skein512-264, multihash, 0xb341, +skein512-272, multihash, 0xb342, +skein512-280, multihash, 0xb343, +skein512-288, multihash, 0xb344, +skein512-296, multihash, 0xb345, +skein512-304, multihash, 0xb346, +skein512-312, multihash, 0xb347, +skein512-320, multihash, 0xb348, +skein512-328, multihash, 0xb349, +skein512-336, multihash, 0xb34a, +skein512-344, multihash, 0xb34b, +skein512-352, multihash, 0xb34c, +skein512-360, multihash, 0xb34d, +skein512-368, multihash, 0xb34e, +skein512-376, multihash, 0xb34f, +skein512-384, multihash, 0xb350, +skein512-392, multihash, 0xb351, +skein512-400, multihash, 0xb352, +skein512-408, multihash, 0xb353, +skein512-416, multihash, 0xb354, +skein512-424, multihash, 0xb355, +skein512-432, multihash, 0xb356, +skein512-440, multihash, 0xb357, +skein512-448, multihash, 0xb358, +skein512-456, multihash, 0xb359, +skein512-464, multihash, 0xb35a, +skein512-472, multihash, 0xb35b, +skein512-480, multihash, 0xb35c, +skein512-488, multihash, 0xb35d, +skein512-496, multihash, 0xb35e, +skein512-504, multihash, 0xb35f, +skein512-512, multihash, 0xb360, +skein1024-8, multihash, 0xb361, Skein1024 consists of 128 output lengths that give different hashes +skein1024-16, multihash, 0xb362, +skein1024-24, multihash, 0xb363, +skein1024-32, multihash, 0xb364, +skein1024-40, multihash, 0xb365, +skein1024-48, multihash, 0xb366, +skein1024-56, multihash, 0xb367, +skein1024-64, multihash, 0xb368, +skein1024-72, multihash, 0xb369, +skein1024-80, multihash, 0xb36a, +skein1024-88, multihash, 0xb36b, +skein1024-96, multihash, 0xb36c, +skein1024-104, multihash, 0xb36d, +skein1024-112, multihash, 0xb36e, +skein1024-120, multihash, 0xb36f, +skein1024-128, multihash, 0xb370, +skein1024-136, multihash, 0xb371, +skein1024-144, multihash, 0xb372, +skein1024-152, multihash, 0xb373, +skein1024-160, multihash, 0xb374, +skein1024-168, multihash, 0xb375, +skein1024-176, multihash, 0xb376, +skein1024-184, multihash, 0xb377, +skein1024-192, multihash, 0xb378, +skein1024-200, multihash, 0xb379, +skein1024-208, multihash, 0xb37a, +skein1024-216, multihash, 0xb37b, +skein1024-224, multihash, 0xb37c, +skein1024-232, multihash, 0xb37d, +skein1024-240, multihash, 0xb37e, +skein1024-248, multihash, 0xb37f, +skein1024-256, multihash, 0xb380, +skein1024-264, multihash, 0xb381, +skein1024-272, multihash, 0xb382, +skein1024-280, multihash, 0xb383, +skein1024-288, multihash, 0xb384, +skein1024-296, multihash, 0xb385, +skein1024-304, multihash, 0xb386, +skein1024-312, multihash, 0xb387, +skein1024-320, multihash, 0xb388, +skein1024-328, multihash, 0xb389, +skein1024-336, multihash, 0xb38a, +skein1024-344, multihash, 0xb38b, +skein1024-352, multihash, 0xb38c, +skein1024-360, multihash, 0xb38d, +skein1024-368, multihash, 0xb38e, +skein1024-376, multihash, 0xb38f, +skein1024-384, multihash, 0xb390, +skein1024-392, multihash, 0xb391, +skein1024-400, multihash, 0xb392, +skein1024-408, multihash, 0xb393, +skein1024-416, multihash, 0xb394, +skein1024-424, multihash, 0xb395, +skein1024-432, multihash, 0xb396, +skein1024-440, multihash, 0xb397, +skein1024-448, multihash, 0xb398, +skein1024-456, multihash, 0xb399, +skein1024-464, multihash, 0xb39a, +skein1024-472, multihash, 0xb39b, +skein1024-480, multihash, 0xb39c, +skein1024-488, multihash, 0xb39d, +skein1024-496, multihash, 0xb39e, +skein1024-504, multihash, 0xb39f, +skein1024-512, multihash, 0xb3a0, +skein1024-520, multihash, 0xb3a1, +skein1024-528, multihash, 0xb3a2, +skein1024-536, multihash, 0xb3a3, +skein1024-544, multihash, 0xb3a4, +skein1024-552, multihash, 0xb3a5, +skein1024-560, multihash, 0xb3a6, +skein1024-568, multihash, 0xb3a7, +skein1024-576, multihash, 0xb3a8, +skein1024-584, multihash, 0xb3a9, +skein1024-592, multihash, 0xb3aa, +skein1024-600, multihash, 0xb3ab, +skein1024-608, multihash, 0xb3ac, +skein1024-616, multihash, 0xb3ad, +skein1024-624, multihash, 0xb3ae, +skein1024-632, multihash, 0xb3af, +skein1024-640, multihash, 0xb3b0, +skein1024-648, multihash, 0xb3b1, +skein1024-656, multihash, 0xb3b2, +skein1024-664, multihash, 0xb3b3, +skein1024-672, multihash, 0xb3b4, +skein1024-680, multihash, 0xb3b5, +skein1024-688, multihash, 0xb3b6, +skein1024-696, multihash, 0xb3b7, +skein1024-704, multihash, 0xb3b8, +skein1024-712, multihash, 0xb3b9, +skein1024-720, multihash, 0xb3ba, +skein1024-728, multihash, 0xb3bb, +skein1024-736, multihash, 0xb3bc, +skein1024-744, multihash, 0xb3bd, +skein1024-752, multihash, 0xb3be, +skein1024-760, multihash, 0xb3bf, +skein1024-768, multihash, 0xb3c0, +skein1024-776, multihash, 0xb3c1, +skein1024-784, multihash, 0xb3c2, +skein1024-792, multihash, 0xb3c3, +skein1024-800, multihash, 0xb3c4, +skein1024-808, multihash, 0xb3c5, +skein1024-816, multihash, 0xb3c6, +skein1024-824, multihash, 0xb3c7, +skein1024-832, multihash, 0xb3c8, +skein1024-840, multihash, 0xb3c9, +skein1024-848, multihash, 0xb3ca, +skein1024-856, multihash, 0xb3cb, +skein1024-864, multihash, 0xb3cc, +skein1024-872, multihash, 0xb3cd, +skein1024-880, multihash, 0xb3ce, +skein1024-888, multihash, 0xb3cf, +skein1024-896, multihash, 0xb3d0, +skein1024-904, multihash, 0xb3d1, +skein1024-912, multihash, 0xb3d2, +skein1024-920, multihash, 0xb3d3, +skein1024-928, multihash, 0xb3d4, +skein1024-936, multihash, 0xb3d5, +skein1024-944, multihash, 0xb3d6, +skein1024-952, multihash, 0xb3d7, +skein1024-960, multihash, 0xb3d8, +skein1024-968, multihash, 0xb3d9, +skein1024-976, multihash, 0xb3da, +skein1024-984, multihash, 0xb3db, +skein1024-992, multihash, 0xb3dc, +skein1024-1000, multihash, 0xb3dd, +skein1024-1008, multihash, 0xb3de, +skein1024-1016, multihash, 0xb3df, +skein1024-1024, multihash, 0xb3e0, +holochain-adr-v0, holochain, 0x807124, Holochain v0 address + 8 R-S (63 x Base-32) +holochain-adr-v1, holochain, 0x817124, Holochain v1 address + 8 R-S (63 x Base-32) +holochain-key-v0, holochain, 0x947124, Holochain v0 public key + 8 R-S (63 x Base-32) +holochain-key-v1, holochain, 0x957124, Holochain v1 public key + 8 R-S (63 x Base-32) +holochain-sig-v0, holochain, 0xa27124, Holochain v0 signature + 8 R-S (63 x Base-32) +holochain-sig-v1, holochain, 0xa37124, Holochain v1 signature + 8 R-S (63 x Base-32) diff --git a/validate.py b/validate.py index 8ab5e73..06752f1 100755 --- a/validate.py +++ b/validate.py @@ -28,31 +28,25 @@ def check(fname='table.csv'): continue try: - # Skip empty rows - if not row: - continue - # Check for invalid rows - if len(row) != 3: - raise CheckError(f"expected 3 items, got {len(row)}") + if len(row) != 4: + raise CheckError(f"expected 4 items, got {len(row)}") - # Skip section headers - if not row[1] and not row[2]: - continue + [name, _, code, _] = row + + # Check for a name + if not name: + raise CheckError(f"empty protocol name for code '{code}'") # Check code format - if not row[2].startswith("0x"): - raise CheckError(f"code '{row[2]}' doesn't start with 0x") - - name = row[0] - if not name: - raise CheckError(f"empty protocol name") + if not code.startswith("0x"): + raise CheckError(f"code for '{name}' doesn't start with 0x: '{code}'") # Parse the code try: - code = int(row[2], 16) + code = int(code, 16) except Exception as e: - raise CheckError(f"failed to parse number '{row[2]}': {e}") + raise CheckError(f"failed to parse code '{code}' for '{name}': {e}") # Finally, check for duplicates From 84c09441922d8ddcd654ec760904ee962d26a14a Mon Sep 17 00:00:00 2001 From: Elad Nachmias Date: Wed, 20 Feb 2019 21:11:48 +0700 Subject: [PATCH 33/35] add swarm manifests and feeds --- table.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/table.csv b/table.csv index b6fab35..12a7ce9 100644 --- a/table.csv +++ b/table.csv @@ -68,6 +68,8 @@ swarm-ns, namespace, 0xe4, Swarm path ed25519-pub, key, 0xed, Ed25519 public key dash-block, ipld, 0xf0, Dash Block dash-tx, ipld, 0xf1, Dash Tx +swarm-manifest, swarm, 0xfa, Swarm Manifest +swarm-feed, swarm, 0xfb, Swarm Feed udp, multiaddr, 0x0111, p2p-webrtc-star, multiaddr, 0x0113, p2p-webrtc-direct, multiaddr, 0x0114, From 35cfe5843232e062ffcd04d99238609c6783fb55 Mon Sep 17 00:00:00 2001 From: Elad Date: Wed, 6 Mar 2019 13:22:08 +0700 Subject: [PATCH 34/35] change swarm multicodecs to ipld, add bmt --- table.csv | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/table.csv b/table.csv index 12a7ce9..fcb291c 100644 --- a/table.csv +++ b/table.csv @@ -60,6 +60,7 @@ stellar-block, ipld, 0xd0, Stellar Block stellar-tx, ipld, 0xd1, Stellar Tx md4, multihash, 0xd4, md5, multihash, 0xd5, +bmt, multihash, 0xd6, Binary Merkle Tree Hash decred-block, ipld, 0xe0, Decred Block decred-tx, ipld, 0xe1, Decred Tx ipld-ns, namespace, 0xe2, IPLD path @@ -68,8 +69,8 @@ swarm-ns, namespace, 0xe4, Swarm path ed25519-pub, key, 0xed, Ed25519 public key dash-block, ipld, 0xf0, Dash Block dash-tx, ipld, 0xf1, Dash Tx -swarm-manifest, swarm, 0xfa, Swarm Manifest -swarm-feed, swarm, 0xfb, Swarm Feed +swarm-manifest, ipld, 0xfa, Swarm Manifest +swarm-feed, ipld, 0xfb, Swarm Feed udp, multiaddr, 0x0111, p2p-webrtc-star, multiaddr, 0x0113, p2p-webrtc-direct, multiaddr, 0x0114, From 56b1f8ff5562563005b50e7f053ad81cbcd9b537 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Mon, 18 Mar 2019 09:47:06 -0700 Subject: [PATCH 35/35] reserve 0x2f (ASCII /) as the *path* multicodec That way, we can always tell if something is a path or something else. We may also be able to take advantage of this later to combine a few concepts and get rid of the "multiaddrs look like paths but are totally not" problem. However, we can think about that later. This PR just reserves the code so we don't run into problems later. * Remove the distinction between string/binary multiaddrs. Instead, the "string" will *also* be a valid binary multiaddr. * Define a new multipath spec to combine multiaddrs and other paths. Related to: https://github.com/multiformats/multiaddr/issues/70 --- table.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/table.csv b/table.csv index fcb291c..762ab83 100644 --- a/table.csv +++ b/table.csv @@ -20,6 +20,7 @@ murmur3-128, multihash, 0x22, murmur3-32, multihash, 0x23, ip6, multiaddr, 0x29, ip6zone, multiaddr, 0x2A, +path, namespace, 0x2F, Namespace for string paths. Corresponds to `/` in ASCII. multicodec, multiformat, 0x30, multihash, multiformat, 0x31, multiaddr, multiformat, 0x32,