Conceptos clave
Namespaces
Los espacios de nombres son los dominios de nivel superior en BNS (por ejemplo, .btc, .id). Tienen el siguiente ciclo de vida:
Preorder: Se envía un hash salado del espacio de nombres junto con un pago quemado
Reveal: Se revela el espacio de nombres real, junto con la información de precios y todas las propiedades del espacio de nombres
¿Qué ocurre durante el reveal?
Durante el reveal, el creador establece: lifetime (cuánto tiempo duran los nombres antes de necesitar renovación, 0 significa sin renovación), namespace-import principal, y la completa price-function (16 cubetas, base, coeficiente, descuento-por-no-alfabético, descuento-por-sin-vocales). Estos son parámetros críticos que definen el comportamiento del espacio de nombres para siempre.
El precio del espacio de nombres puede actualizarse (vía namespace-update-price) y puede congelarse de forma permanente (vía namespace-freeze-price). Una vez congelada, la función de precios no puede cambiarse nunca. Estas son decisiones importantes de gobernanza.
Además, los nombres pueden importarse antes del lanzamiento vía name-import. Esto permite a los creadores de espacios de nombres pre-poblar nombres (por ejemplo, para migración o nombres reservados) antes de abrir el registro al público.
Launch: El espacio de nombres se vuelve activo, permitiendo el registro de nombres
Namespaces no gestionados vs gestionados
BNS-V2 admite dos tipos de espacios de nombres: No gestionados y Gestionados.
Los espacios de nombres no gestionados están abiertos para que cualquiera registre nombres dentro de ellos, sujetos a las reglas de precios del espacio de nombres. Estos espacios de nombres operan de forma totalmente descentralizada, con restricciones mínimas sobre el registro y la gestión de nombres.
Los espacios de nombres gestionados, por otro lado, introducen una capa adicional de control y personalización. Estos espacios de nombres están supervisados por un gestor designado que tiene privilegios y responsabilidades especiales. Los espacios de nombres gestionados pueden implementar reglas personalizadas para el registro de nombres, precios, transferencias y renovaciones. Esto permite casos de uso como crear espacios de nombres para comunidades específicas, implementar procesos de verificación adicionales o hacer cumplir convenciones de denominación particulares.
Las diferencias clave entre los espacios de nombres no gestionados y los gestionados radican en su gobernanza y flexibilidad. Mientras que los espacios no gestionados ofrecen un entorno más abierto y sin restricciones, los gestionados brindan mayor control y la capacidad de adaptar el espacio de nombres a requisitos o casos de uso específicos.
Creación de un espacio de nombres gestionado
Los espacios de nombres gestionados son una de las mayores actualizaciones en esta versión de BNSv2. Diseñados para permitir un control y flexibilidad significativamente mayores sobre un espacio de nombres, un espacio de nombres “gestionado” es controlado por un único principal (casi siempre un contrato principal). Para el comportamiento esperado, debes tener mucho cuidado al configurar este principal de contrato: si no se configura correctamente, es posible perder el control del espacio de nombres de forma permanente.
Algunas decisiones importantes al crear un espacio de nombres gestionado son:
¿El contrato gestor alguna vez necesitará
¿Cómo funcionará tu proceso de mint?
¿Pueden los gestores transferir cualquier nombre?
¿Serán comerciables tus nombres?
¿Tu espacio de nombres requiere metadatos?
Estas son decisiones críticas que se deben considerar para preparar a futuro un espacio de nombres gestionado. Para la primera pregunta, casi es seguro que sí será necesario actualizar o eliminar el contrato gestor, por lo tanto, es imperativo que el contrato gestor incluya acceso a la función 'mng-manager-transfer'. Si el contrato gestor inicial no incluye esta función, será imposible actualizar o transferir el espacio de nombres a un nuevo contrato gestor.
Los espacios de nombres gestionados no requieren quemas de STX para el registro de nombres. La mng-name-register función establece stx-burned: u0 en la preorder. Los precios los gestiona completamente el contrato gestor (podría ser gratis, con acceso mediante token, basado en STX según la lógica del gestor, etc.). Esta es una diferencia fundamental con los espacios de nombres no gestionados.
A continuación, el proceso de mint es ampliamente más personalizable en un espacio de nombres gestionado. A alto nivel, los espacios de nombres gestionados tienen acceso a las mismas dos vías para el registro de nombres: 2 pasos / mng-name-preorder + mng-name-register, o un solo paso / fast-claim. Los contratos gestionados deben tener acceso a una o ambas de estas funciones para acuñar nombres con éxito en un espacio de nombres; además, el proceso de mint puede personalizarse en gran medida para permitir: acuñaciones gratuitas, acuñaciones con acceso por token, precios variables, soporte de tokens sip-10, etc...
Una vez acuñados, debes tomar especial cuidado para implementar las tres funciones estándar del mercado sip-09: listar, deslistar y comprar. Los espacios de nombres gestionados no son comerciables por defecto, ellos deben incluyen llamadas envueltas a las funciones list, unlist y buy en BNSv2 ya que esas funciones verifican específicamente contra 'contract-caller' (es decir, el contrato gestionado).
Por último, la capacidad de permitir que el contrato del espacio de nombres gestionado en sí transfiera cualquier nombre es una decisión crítica. Casi es seguro que tú no quieres permitir esto, ya que permitiría al contrato transferir cualquier nombre a cualquier principal; sin embargo, existen algunos casos de uso donde se requiere un control mucho más granular.
Los nombres en espacios de nombres gestionados no expiran. El mng-name-register función establece renewal-height: u0, lo que significa que no hay requisito de renovación automática. El gestor controla el ciclo de vida completo.
Nombres
Los nombres son los identificadores individuales dentro de un espacio de nombres (por ejemplo, alice.btc). Tienen las siguientes propiedades:
Únicos dentro de su espacio de nombres
Representados como NFTs
Pueden transferirse y renovarse
Asociados con un zonefile, que almacena información adicional relacionada con el nombre en un separado
zonefile-resolvercontrato
Un nombre BNS tiene dos componentes:
Ejemplo:
alice→ el nombreid→ el espacio de nombres
Los espacios de nombres definen reglas y precios para los registros de nombres.
Propiedad
Los nombres son propiedad de un principal de Stacks.
La propiedad permite al titular:
Actualizar registros
Establecer el nombre como el nombre principal
Listar el nombre para la venta en el mercado integrado
Transferir el nombre
Renovar el nombre
Configurar datos de resolución
La propiedad se hace cumplir completamente mediante la lógica de contratos inteligentes.
Zonefiles
Cada nombre puede almacenar registros estructurados. El JSON del zonefile admite: dirección del propietario, dirección BTC, biografía, sitio web, PFP, nombre, ubicación, enlaces sociales (X, Telegram, etc.), direcciones multichain (pago BTC, ordinal BTC, ETH, etc.), metadatos arbitrarios clave-valor y definiciones de subdominios.
Estos registros pueden incluir:
Mapeos de direcciones
Metadatos de texto
Datos específicos de la aplicación
Información de perfil
Debido a que BNSv2 está implementado en Clarity, otros contratos pueden leer los datos del nombre directamente on-chain.
Última actualización
¿Te fue útil?