Comprensi贸n de IPFS en profundidad(3/6): 驴Qu茅 es el Sistema de Nombres InterPlanetarios (IPNS)?

Por qu茅 necesita IPNS, c贸mo usarlo y su comparaci贸n con DNS

Foto por chuttersnap en UnsplashEste post es una continuaci贸n (parte 3) en una nueva serie ” Understanding IPFS in Depth ” que ayudar谩 a cualquiera a entender los conceptos subyacentes de IPFS. Si desea una visi贸n general de lo que es IPFS y c贸mo funciona, entonces deber铆a echar un vistazo a la primera parte tambi茅n Understanding IPFS in Depth(1/6): Gu铆a de principiante a avanzado

Una gu铆a completa que incluye IPLD, Libp2p, MultiFormats & Filecoin En la parte 2, discutimos la importancia de IPLD (InterPlanetary Linked Data), c贸mo funciona y sus especificaciones t茅cnicas. Tambi茅n pasamos por un tutorial en el que creamos un medio como el sistema de publicaci贸n, utilizando 煤nicamente IPLD. Puedes comprobarlo aqu铆: Entendiendo IPFS en Profundidad(2/6): 驴Qu茅 es InterPlanetary Linked Data (IPLD)?

Una gu铆a completa de IPLD: Su significado, c贸mo funciona y ejemplos pr谩cticos Si te gustan los conceptos Web3 de alta tecnolog铆a como IPFS, Libp2p, Multiformats, IPLD, etc., explicados en palabras sencillas con tutoriales interactivos, entonces ve aqu铆. Inicio – SimpleAsWater

SimpleAsWater, una plataforma comunitaria para aprender, construir, colaborar y descubrir Dapps e historias de la Web 3.0. En esta parte, nos zambullimos en el Sistema de Nombramiento de IPFS, Sistema de Nombramiento InterPlanetario (IPNS). Vamos a explorar:

  • 驴Cu谩l es la necesidad de IPNS ? 驴C贸mo es comparable al DNS (Sistema de Nombres de Dominio) actual y en qu茅 se diferencia de 茅l?
  • Exploraremos c贸mo funciona el enrutamiento en IPFS y c贸mo funciona IPNS ?
  • Y por 煤ltimo, vamos a jugar con IPNS . Vamos a alojar y configurar el enrutamiento de mi sitio web totalmente utilizando la pila IPFS .

Espero que aprenda mucho sobre IPFS de esta serie. Para entender por qu茅 necesitamos IPNS, veamos c贸mo accedemos actualmente a nuestras fotos, videos y memes usando IPFS.BTW, si quieres seguirme, puedes descargar mi sitio web de la siguiente manera:

wget --mirror--convert-links--adjust-extension--page-requisites--no-parent "https://vaibhavsaini.com">https://vaibhavsaini.com

Cuando a帽ado mi sitio web a IPFS, obtengo la siguiente salida: a帽adiendo la carpeta de mi sitio web a IPFSNow, puedo acceder a mi sitio web en

https://gateway.pinata.cloud/ipfs/QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB/

Pero este enlace tiene algunos problemas: En primer lugar, es dif铆cil de leer, y mucho menos de recordar. Lo que quiero decir con un enlace inmutable es que este enlace es permanente (debido a la naturaleza de contenido-direcci贸n ). Si yo a帽adiera una coma en cualquier parte de mi sitio web, el CID de la carpeta ra铆z cambiar铆a, cambiando as铆 el enlace a mi sitio web. Por lo tanto, cada vez que cambio algo en mi sitio web, tengo que dar el nuevo enlace a todos los que quieran acceder a mi 煤ltimo sitio web… No est谩 bien… Aqu铆 es donde entra en juego el IPNS.Mediante el uso de IPNS se puede generar un enlace mutable, que: ser谩 legible por el ser humano y f谩cil de recordar.points a la 煤ltima versi贸n de su sitio web, foto de perfil, v铆deo, etc Un nombre en IPNS (el hash sigue a /ipns / en un enlace) es el hash de una clave p煤blica. Se asocia a un registro que contiene informaci贸n sobre el hash al que enlaza y que est谩 firmado por la clave privada correspondiente. En otras palabras, IPNS es un espacio de nombres global basado en la Infraestructura de Clave P煤blica (o PKI) que nos permite construir cadenas de confianza (para que pueda seguir una clave p煤blica a su par de ruta), lo que nos da encriptaci贸n y autenticaci贸n, y sigue siendo compatible con otros servicios de nombres. As铆 que por ejemplo, podemos incluso mapear cosas como entradas DNS, cebolla, o direcciones de bits, etc. a direcciones IPNS.IPNS no es la 煤nica manera de crear direcciones mutables en IPFS. Tambi茅n puede utilizar DNSLink (que actualmente es mucho m谩s r谩pido que IPNS y tambi茅n utiliza nombres m谩s legibles. M谩s adelante aprenderemos m谩s sobre el tema). Otros miembros de la comunidad est谩n explorando formas de utilizar las cadenas de bloques para almacenar registros de nombres comunes. He aqu铆 una gran comparaci贸n de diferentes proyectos que trabajan en un sistema de nomenclatura para la web distribuida.IPNS y DNS comparten algunas similitudes. Ambos resuelven problemas similares en sus respectivos sistemas, el primero en un sistema con direcci贸n de contenido y el segundo en un sistema con direcci贸n de ubicaci贸n En un sistema con direcci贸n de ubicaci贸n (la antigua escuela de Internet de hoy en d铆a), utilizamos la combinaci贸n IP:PORT para acceder a nuestros datos. Por lo tanto, en un sistema con direcci贸n de localizaci贸n, la direcci贸n de mi sitio web ser谩:

http://18.205.129.69:80

que no es ni legible ni f谩cil de recordar, pero siempre apunta al 煤ltimo contenido alojado en esta direcci贸n, utilizando DNS, asociamos esta IP con un nombre de dominio, para que pueda acceder al sitio web en vaibhavsaini.com Ok, pero como funciona… IPNS puede ser implementado de muchas maneras, pero su implementaci贸n actual utiliza Distributed Hash Table (DHT). Como consecuencia, s贸lo el mapeo m谩s reciente de cada URI a su correspondiente hash est谩 disponible para su resoluci贸n, olvidando cualquier mapeo hist贸rico. Esto no es bueno desde la perspectiva del archivo ya que las versiones anteriores de un archivo pueden existir en el almac茅n IPFS, pero sus correspondientes mapeos URI se pierden. usemos el m贸dulo de nodos ipns para entender c贸mo se publica un registro IPNS. el c贸digo anterior se comenta lo suficiente como para que sea autodescriptivo… Tambi茅n puede ver el proyecto completo aqu铆. si desea profundizar para saber c贸mo funciona el enrutamiento en IPFS, puede leer este hilo … Quer铆a explicar esto en el post, pero hay muchas otras cosas interesantes que explorar, as铆 que me lo he saltado 馃槈 Jugando con IPNSLet, publique nuestro sitio web a trav茅s de IPNS.

ipfs name publish QmYVd8qstdXtXtTd1quwvvv4nJen6XprykxQRLo67Jy7WyiLMB

Esto puede tomar hasta unos minutos. Obtendr谩 una salida como esta:

Publicada en Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy: ipfs/QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB

Ahora puede obtener el 煤ltimo sitio web aqu铆:

https://gateway.pinata.cloud/ipns/Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy

Note: IPNS olvida (Time to Live System) los nombres publicados despu茅s de unas 12 horas . Es posible que desee ejecutar un trabajo cron para volver a publicar en un plazo de 12 horas.Si quiero a帽adir un CID actualizado, usar茅 el mismo comando:

ipfs name publish <my_new_CID>

You can also check the current CID linked to your peerID:

ipfs name resolve Qmb1VVr5xjpXHCTcVm3KF3i88GLFXi88GLFXSetjcxL7PQJJRviXSy

Este comando te devolver谩 el 煤ltimo CID.Para mayor flexibilidad, tambi茅n puede utilizar diferentes claves para diferentes contenidos
ipfs name publish –key=vasa_blog <cid_to_my_blog>Esto resuelve uno de los problemas que hemos mencionado anteriormente (problema con enlaces inmutables )). Pero los enlaces siguen siendo feos. Para hacer los enlaces todav铆a necesitamos usar DNS. Existen otros sistemas que se adaptan mejor a los sistemas dirigidos por contenido, como CCN / NDN , XIA . Pero estos requieren actualizar el propio Internet, lo cual es realmente dif铆cil de garantizar sin una demanda masiva. Incluso con una gran demanda, el IPv6 a煤n no se ha desplegado completamente 馃檨 – lo que no me da ninguna esperanza de ver a NDN/CCN desplegado masivamente en el n煤cleo, sin que FIRST establezca el uso de redes con direcci贸n de contenido. Esto significa que los desarrolladores finales (desarrolladores web) deben ser capaces de utilizar redes con direcci贸n de contenido para mover muchos datos (v铆deo, etc.) de forma extremadamente efectiva mucho antes de que se materialice una demanda sustancial para mejorar la red subyacente. De todos modos, por ahora, usemos DNS para crear enlaces legibles.DNSLinkDNSLink usa registros DNS TXT para mapear un nombre de dominio (como vaibhavsaini.com) a una direcci贸n IPFS. Debido a que puede editar sus registros DNS, puede usarlos siempre para apuntar a la 煤ltima versi贸n de un objeto en IPFS (recuerde que la direcci贸n de un objeto IPFS cambia si modifica el objeto). Pero no queremos cambiar los registros TXT cada vez que actualizamos nuestro sitio web. As铆 que a帽adiremos un enlace ipns en lugar de un enlace ipfs. Una direcci贸n DNSLink se parece a una direcci贸n IPNS, pero utiliza un nombre de dominio en lugar de una clave p煤blica hashhed:

/ipns/vaibhavsaini.com

Al igual que las direcciones IPFS normales, pueden incluir enlaces a otros archivos:

/ipns/vaibhavsaini.com/ assets/images

Cuando un cliente o nodo IPFS intenta resolver esa direcci贸n, busca un registro TXT para vaibhavsaini.com con contenido como:

>dnslink=/ipfs/<CID para su contenido aqu铆>code>

<

>dnslink="/ipns/&lt;hash of public key&gt;>dnslink=/ipns/&lt;hash of public key&gt;code>

Por ejemplo, si usted busca vaibhavsaini.com, ver谩 su entrada DNSLink:

$ dig +noall +answer TXT vaibhavsaini.com
vaibhavsaini.com. 1 IN TXT "dnslink=/ipns/Qmb1Vr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy"

Basado en esto, esta direcci贸n:

/ipns/vaibhavsaini.com/assets/images

Will get you this block:

>/ipns/code>Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy>/assets/images

Super Cool!Hasta ahora hemos reducido nuestra direcci贸n de un hash complejo a un nombre legible, pero podemos hacerlo mejor, esto (el enlace anterior) sigue siendo bastante complicado, y francamente, si queremos que el usuario medio de Web2 de hoy acceda a mi contenido Web3 descentralizado con el m铆nimo esfuerzo, no queremos que tengan que lidiar con puertas de enlace y prefijos de ipns/ipfs si no tienen que hacerlo. Un sentimiento importante de la comunidad web descentralizada es que la experiencia del usuario no deber铆a cambiar mucho – la transici贸n deber铆a ser transparente pero f谩cil – as铆 es como ganar谩 la web descentralizada. Idealmente, nos gustar铆a llegar a algo como esto: https://profile.vaibhavsaini.com…Publishing…Publicando a trav茅s de un SubdomainSo para hacer nuestra direcci贸n m谩s legible, podemos crear un registro A apuntando nuestro subdominio a la direcci贸n IP de un par IPFS escuchando en el puerto 80 para peticiones HTTP (como cualquiera de los gateways IPFS p煤blicos, o el suyo propio si lo desea).Pero espera, podemos hacerlo incluso mejor que esto! porque no queremos depender de que las direcciones IP sean est谩ticas, podemos usar un registro CNAME para apuntar a los registros DNS de la puerta de enlace. De esta forma, si la direcci贸n IP cambia, seguiremos apuntando al lugar correcto. Desafortunadamente, los registros CNAME no permiten otros registros (como TXT), pero la buena gente de IPFS nos permite crear un registro DNS TXT para _dnslink.your.domain, que IPFS buscar谩.Esto tambi茅n es 煤til cuando desea mejorar la seguridad de una configuraci贸n automatizada o delegar el control de sus registros DNSLink a un tercero sin renunciar al control total de la zona DNS original. estoy utilizando AWS Route53 para mi configuraci贸n de DNS; puede utilizar cualquier proveedor. configuraci贸n de registro CNAME Configuraci贸n de registro _dnslink TXT: As铆 es como finalmente se ve:Y Voila! Tenemos nuestro contenido alojado y resuelto utilizando una pila IPFS, con una direcci贸n que puede ser utilizada por cualquier usuario de Web2 con facilidad, como puede verse en el aviso “No seguro” de la barra de direcciones, que se debe a que no he instalado un certificado Wildcard ;;) Puede que note que los sitios web tardan en resolverse. Esto se debe a que el contenido de su sitio web se encuentra en un solo nodo. Si anclas tu sitio web en varios nodos u otros nodos, intenta acceder a tu sitio web (lo que significa que tienes que

Una lista completa/comparaci贸n de todos los algoritmos de consenso. digitalagerevival.com Profundizando en Ethereum: 驴C贸mo se almacenan los datos en Ethereum?

En este post, veremos c贸mo se almacenan los estados y transacciones en Ethereum y en qu茅 se diferencia de Bitcoin. digitalagerevival.com ContractPedia: Una enciclopedia de m谩s de 40 plataformas de contratos inteligentes

Una comparaci贸n completa de todas las plataformas Blockchain/DLT digitalagerevival.com Una gu铆a definitiva para principiantes de DAGs

驴Qu茅 son los DAG y c贸mo funcionan? digitalagerevival.com Aplaude 50 veces y s铆gueme en Twitter: @vasa_develop

Etiquetas

IpfsIpnDnsBlockchainCryptocurrency