Namespaces
Namespaces
Sección titulada «Namespaces»Para evitar que dos o más Hooks instalados en la misma cuenta sobrescriban accidentalmente el estado del Hook entre sí, se debe proporcionar un namespace de 32 bytes al crear o instalar cada Hook.
El namespace puede ser cualquier valor arbitrario de 32 bytes elegido por el desarrollador. Siempre que el namespace sea único dentro de la cadena de Hooks, no se producirá sobrescritura de estado.
Recomendamos encarecidamente usar SHA256 sobre el nombre de trabajo del Hook definido por el desarrollador. SHA256 es uno de los dos algoritmos de hash utilizados en la generación de direcciones en Xahau (a partir de la clave maestra de una cuenta), por lo que suele estar fácilmente disponible para el desarrollador.
El campo HookNamespace se proporciona como un blob hexadecimal de 32 bytes dentro de cada objeto Hook en el array Hooks al ejecutar una transacción SetHook.
El namespace configurado bajo el que opera un Hook modifica los Keylets bajo los que se almacena su estado. Por lo tanto, dos Hooks bajo diferentes namespaces instalados en la misma cuenta de Xahau pueden usar la misma clave de estado para referirse a diferentes objetos de estado. Por el contrario, dos Hooks distintos que utilicen el mismo namespace en la misma cuenta pueden acceder y modificar los objetos de estado del otro utilizando las mismas claves.
Ejemplo
Sección titulada «Ejemplo»En JavaScript, al importar ripple-address-codec se obtiene acceso a SHA256.
(También es posible usar crypto.subtle en navegador o crypto.createHash en Node para acceder a este algoritmo de hash.)
HookNamespace: addr.codec.sha256('carbon').toString('hex')Namespace por defecto
Sección titulada «Namespace por defecto»El primer usuario que establece un Hook nuevo define un HookNamespace que se convierte en el namespace por defecto para ese Hook. Esto significa que cualquier usuario posterior que referencie la misma HookDefinition recibirá este namespace por defecto.
El usuario posterior puede especificar su propio namespace, sobrescribiendo el namespace por defecto solo para su instalación.
APIs de Hook afectadas
Sección titulada «APIs de Hook afectadas»La elección del HookNamespace afecta al comportamiento de las siguientes APIs de Hook:
Helper de API para namespaces
Sección titulada «Helper de API para namespaces»Consulta account_info y account_namespace para obtener información sobre cómo consultar el ledger respecto a namespaces.