Un hash, múltiples versiones de CID
Puedes pegar cualquier CID de IPFS en el útil Inspector de CID para visualizar todos sus prefijos y lo que representan.
En esta lección final echaremos un vistazo a algunos resultados de esta herramienta usando tanto formatos CIDv0 como CIDv1.
Ejemplo 1: CIDv1
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
Este primer ejemplo es un CID versión 1.
Resultados de la herramienta Inspector de CID para el primer ejemplo
Mirando los resultados de la herramienta Inspector de CID podemos ver varias partes que la herramienta fue capaz de analizar para nosotros:
CID Legible por Humanos: desglosa cada parte del CID para ser fácilmente legible por nosotros los humanos
Multibase: el código es el identificador de la base, en este caso b para base32.
Multicodec: el código es el identificador del códec, en este caso 0x70 para dag-pb, un formato IPLD
Multihash: desglose del multihash en el algoritmo de hashing utilizado (18 es el código para sha2-256), la longitud del hash (256 bits, que equivale a 32 bytes), y el hash de contenido en sí (digesto hexadecimal). Del desglose de "CID Legible por Humanos", podemos ver que el hash original del contenido, antes de que se agreguen los prefijos apropiados de CIDv1, es C3C4733EC8AFFD06CF9E9FF50FFC6BCD2EC85A6170004BB709669C31DE94391A.
Ejemplo 2: CIDv0
QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
Este CID de Versión 0 muestra algunos resultados diferentes: tanto el multibase como el multicodec se enumeran como "implícitos". Dado que los CIDs de Versión 0 no tenían esos prefijos, siempre se asume que son base58btc y dag-pb respectivamente.
Bajo la etiqueta Base32 CIDV1 vemos bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi, ¡que es el mismo CID del primer ejemplo! El Inspector de CID nos ha ofrecido una conversión de CIDv0 a CIDv1.
Nota también cómo el final del "CID Legible por Humanos" (la porción después de los prefijos) es exactamente el mismo en este ejemplo de CIDv0 que en el ejemplo de CIDv1: C3C4733EC8AFFD06CF9E9FF50FFC6BCD2EC85A6170004BB709669C31DE94391A.
¿Por qué? Estos dos CIDs apuntan al mismo contenido. Básicamente, es el mismo hash (C3C4733EC8AFFD06CF9E9FF50FFC6BCD2EC85A6170004BB709669C31DE94391A) representado en las dos diferentes versiones de la especificación de CID.
Convirtiendo versiones de CID
Puedes convertir cualquier CIDv0 a CIDv1, porque los prefijos implícitos de v0 se vuelven explícitos en v1. Sin embargo, debido a que CIDv1 admite múltiples códecs y múltiples bases y CIDv0 no, no todos los CIDv1 se pueden convertir a CIDv0. De hecho, solo los CIDv1 que tienen las siguientes propiedades se pueden convertir a CIDv0:
algoritmo-multihash = sha2-256
longitud-multihash = 32 (32 bytes, equivalente a 256 bits)
Para probar esta teoría, puedes consultar nuestra querida imagen del cerdo hormiguero aquí, alojada en la red IPFS: https://ipfs.io/ipfs/QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF
Abre el enlace en tu navegador y copia el CID del final de la URL (QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
En una nueva ventana del navegador, pégalo en la herramienta Inspector de CID y encuentra el valor equivalente de CIDv1 mostrado en la parte inferior de la pantalla
De vuelta en tu pestaña del cerdo hormiguero, reemplaza el CID v0 con el CID v1 convertido en la URL original y actualiza la página
Deberías ver la misma imagen de nuestro cerdo hormiguero.