This spec defines byte prefixes for principals which seem to be non-conforming to the IPLD spec, because they use lowercase characters. From the IPLD docs:
They are represented as properly formed hexadecimal strings, using upper-case characters only.
On the other hand, there seems to be some confusion around numeric and varint representation of the multicodec values.
For example, this spec defines the byte prefix 0xed for Ed25519 public key, which in this case is a numeric value for the corresponding multicodec, i.e. it's a decimal number 237. But multicodecs are normally encoded as varints (e.g. in CIDs and in DID key format), and in this case the number 0xed has byte representation of 0xED01 (i.e. it uses 2 bytes). And apparently this byte prefix in IPLD schema would have to be defined as ED01 - uppercase and without 0x according to the examples.
I got this understanding after reading the spec and the corresponding docs, but I might be wrong, so please correct me if I missed something.
This spec defines byte prefixes for principals which seem to be non-conforming to the IPLD spec, because they use lowercase characters. From the IPLD docs:
On the other hand, there seems to be some confusion around numeric and varint representation of the multicodec values.
For example, this spec defines the byte prefix
0xedfor Ed25519 public key, which in this case is a numeric value for the corresponding multicodec, i.e. it's a decimal number237. But multicodecs are normally encoded as varints (e.g. in CIDs and in DID key format), and in this case the number0xedhas byte representation of0xED01(i.e. it uses 2 bytes). And apparently this byte prefix in IPLD schema would have to be defined asED01- uppercase and without0xaccording to the examples.I got this understanding after reading the spec and the corresponding docs, but I might be wrong, so please correct me if I missed something.