Namespaces
Namespaces
Seção intitulada “Namespaces”Para evitar que dois ou mais Hooks instalados na mesma conta se sobreponham inadvertidamente ao Estado do Hook um do outro, um namespace de 32 bytes deve ser fornecido ao criar ou instalar cada Hook.
O namespace pode ser qualquer valor arbitrário de 32 bytes que o desenvolvedor escolher. Desde que o namespace seja único na cadeia de Hooks, nenhuma colisão de estado ocorrerá.
Recomendamos fortemente o uso de SHA256 sobre o nome de trabalho do desenvolvedor para o Hook. O SHA256 é um dos dois algoritmos de hash usados na derivação de endereços Xahau (a partir de uma chave mestre de conta) e, como tal, deve estar prontamente disponível para o desenvolvedor.
O campo HookNamespace é fornecido como um blob hex de 32 bytes dentro de cada objeto Hook em um array Hooks ao executar uma transação SetHook.
O Namespace configurado sob o qual um Hook opera altera os Keylets sob os quais seu Estado é armazenado. Portanto, dois Hooks sob dois Namespaces diferentes instalados na mesma conta Xahau podem usar a mesma chave de estado para se referir a objetos de estado diferentes. Por outro lado, dois Hooks diferentes usando o mesmo Namespace na mesma conta Xahau podem acessar e modificar os objetos de estado um do outro usando as mesmas chaves de estado.
Exemplo
Seção intitulada “Exemplo”Em javascript, importar o ripple-address-codec fornece acesso ao SHA256.
(Também é possível usar crypto.subtle no navegador, ou crypto.createHash no node para acessar este algoritmo de hash.)
HookNamespace: addr.codec.sha256('carbon').toString('hex')Namespace Padrão
Seção intitulada “Namespace Padrão”O primeiro usuário a definir um novo Hook define um HookNamespace que se torna o Namespace Padrão para aquele Hook. Isso significa que qualquer usuário subsequente que referenciar a mesma HookDefinition receberá este Namespace originalmente definido por padrão.
O usuário subsequente pode especificar seu próprio Namespace, substituindo o Namespace Padrão apenas para sua instalação.
APIs de Hook Afetadas
Seção intitulada “APIs de Hook Afetadas”A escolha do HookNamespace afeta o comportamento das seguintes APIs de Hook:
Auxiliar de API de Namespace
Seção intitulada “Auxiliar de API de Namespace”Veja account_info e account_namespace para informações sobre como consultar o ledger em relação a namespaces.