Cómo funciona BNSv2
Descripción general de la arquitectura
BNSv2 está implementado entre dos contratos de Clarity: .BNS-V2 y .zonefile-resolver . Estos dos contratos de Clarity gestionan colectivamente:
Registro y gestión de namespaces
Registro de nombres (preorder/reveal y fast-claim)
Almacenamiento de registros (a través de zonefile-resolver)
Transferencias de propiedad
Renovaciones
Mercado (listar, retirar de la lista, comprar)
Designación del nombre principal
Todo el estado vive en la cadena y puede verificarse públicamente.
BNSv2
SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF.BNS-V2
ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M.BNS-V2
Resolutor de zonefile
SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF.zonefile-resolver
ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M.zonefile-resolver
Resolución de nombres
La resolución funciona de la siguiente manera:
Un usuario consulta el contrato zonefile-resolver con un nombre y un namespace
El resolutor comprueba que el nombre sea válido, no esté revocado y esté dentro de su período de renovación (llamada entre contratos a BNS-V2)
Devuelve los datos del zonefile (propietario, búfer del zonefile, estado revocado)
Las aplicaciones analizan el JSON del zonefile para extraer direcciones, perfiles, etc.
Para la propiedad/propiedades del nombre (sin datos de zonefile), se consulta directamente el contrato BNS-V2. No se requieren servidores DNS centralizados ni dependencias fuera de la cadena para la corrección.
Zonefiles
Los zonefiles también lucen significativamente diferentes en esta actualización.
Anteriormente, los zonefiles de BNS se construían sobre la red “atlas”. Atlas es un protocolo integrado en el software del nodo de Stacks para la replicación y distribución de zonefiles. En BNSv1, las apps y APIs de BNS solo reconocían los zonefiles que formaban parte de la red Atlas.
El zonefile-resolver el contrato almacena un (opcional (buff 8192)). El contrato en sí no tiene lógica específica de IPFS. Almacena bytes sin procesar, que a nivel de aplicación podrían ser un zonefile JSON completo o un CID/URL que apunte a almacenamiento externo.
En conjunto, esta arquitectura ofrece una solución flexible y escalable, combinando la seguridad y la inmediatez del almacenamiento en la cadena con la extensibilidad y eficiencia del almacenamiento descentralizado fuera de la cadena.
Estos cambios pueden resumirse de dos maneras:
Los zonefiles, o enlaces a zonefiles, ahora viven en la cadena
Los zonefiles ahora están desacoplados del contrato BNS-V2. Los zonefiles ahora viven en la cadena y en su propio contrato:
.zonefile-resolver. Este contrato es bastante limitado, con un solo mapa y solo tres funciones:resolve-name,update-zonefile&revoke-name.
Bajo este diseño, un contrato inteligente dedicado es responsable de gestionar toda la funcionalidad relacionada con los zonefiles. El contrato permite almacenar zonefiles de hasta 8.192 bytes (8 KB) directamente en la cadena, asociando el zonefile de forma determinista con su nombre y namespace correspondientes. Esto garantiza que los zonefiles más pequeños estén disponibles de inmediato, sean resistentes a manipulaciones y estén protegidos por las garantías subyacentes de la blockchain.
Los zonefiles se almacenan técnicamente como JSON UTF-8 codificado en hexadecimal. La longitud máxima, si se define en el contrato, es de 8.192 bytes (8 KB). El siguiente esquema JSON es el formato estándar utilizado por las aplicaciones BNSv2 y la API oficial. El contrato en sí almacena bytes sin procesar y no impone esta estructura.
La capa de API abstrae la lógica de resolución, determinando automáticamente si debe recuperar los datos del zonefile directamente del contrato o a través de IPFS usando el CID almacenado. Como resultado, los clientes pueden resolver la información del zonefile para cualquier nombre y namespace mediante una interfaz consistente sin necesidad de gestionar manualmente las distinciones de almacenamiento.
Consulta el SDK de BNSv2 para más información sobre los zonefiles.
Última actualización
¿Te fue útil?