-
Notifications
You must be signed in to change notification settings - Fork 66
Description
Hello there.
I looked around in the Multiformats-specs. I found the following protocols: multiformat, multibase, multicodec, multiaddr and multihash. In this case, multiformat seems to be the overall protocol. That is why the project is called Multiformats. Next is multibase; it is a multiformat and has its own representation. Also, its code table is seperate from the other one, multicodec. Next is multicodec, it is also a multiformat, but doesn't have its own representation, but it has a code table, seperate from multibase. Next is multiaddr; it is also a multiformat, and has a representation and it uses the multicodec code table. At last is multihash, like multiaddr it is also multiformat, has its own representation and uses the multicodec table.
If I think about above, I have a feeling there is some hierarchy here. In my opinion it seems like this:
- 📁 Multiformat
-
- 📄 Multibase
-
- 📁 Multicodec
-
-
- 📄 Multiaddr
-
-
-
- 📄 Multihash
-
In this case, level 1 (Multiformat) is the whole multi(format)-project, level 2 are protocols that have their own table; level 3 are protocols that use the codes of their level 2 parents. The 📁 don't have their own binary/human-representation, the 📄 do.
My question is: are my thoughts correct?
Also, if this is the case, isn't it useful to documentate it in some way? It gives more structure to the project and it also more clear how to add new protocols (adding a level 2 or a level 3 protocol).