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:
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).
Hello there.
I looked around in the Multiformats-specs. I found the following protocols:
multiformat,multibase,multicodec,multiaddrandmultihash. In this case,multiformatseems to be the overall protocol. That is why the project is called Multiformats. Next ismultibase; it is a multiformat and has its own representation. Also, its code table is seperate from the other one,multicodec. Next ismulticodec, it is also a multiformat, but doesn't have its own representation, but it has a code table, seperate frommultibase. Next ismultiaddr; it is also a multiformat, and has a representation and it uses themulticodeccode table. At last ismultihash, likemultiaddrit is also multiformat, has its own representation and uses themulticodectable.If I think about above, I have a feeling there is some hierarchy here. In my opinion it seems like this:
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).