ENS
Para obter a documentação do sistema ENS, consulte docs.ens.domains .
Para executar testes de unidade, clone este repositório e execute:
$ npm install $ npm test
pacote npm
Este repo funciona como um pacote npm com os contratos JSON compilados
import { Deed , DeedImplementation , ENS , ENSRegistry , FIFSRegistrar , Migrations , Registrar , ReverseRegistrar , TestRegistrar } de '@ ensdomains / ens'
ENSRegistry.sol
Implementação do Registro ENS, o contrato central usado para procurar resolvedores e proprietários de domínios.
FIFSRegistrar.sol
Implementação de um registrador simples, o primeiro a entrar primeiro a ser atendido, que emite (sub) domínios para a primeira conta a solicitá-los.
Interface de registro ENS
O registro ENS é um único contrato central que fornece um mapeamento de nomes de domínio para proprietários e resolvedores, conforme descrito no EIP 137 .
O ENS opera em 'nós' em vez de nomes legíveis por humanos; um nome legível por humanos é convertido em um nó usando o algoritmo namehash, que é o seguinte:
def namehash(name): if name == '': return '\0' * 32 else: label, _, remainder = name.partition('.') return sha3(namehash(remainder) + sha3(label))
A interface do registro é a seguinte:
devoluções constantes do proprietário (nó bytes32) (endereço)
Retorna o proprietário do nó especificado.
devoluções constantes do resolvedor (nó bytes32) (endereço)
Retorna o resolvedor para o nó especificado.
setOwner (nó bytes32, proprietário do endereço)
Atualiza o proprietário de um nó. Apenas o proprietário atual pode chamar esta função.
setSubnodeOwner (nó bytes32, rótulo bytes32, proprietário do endereço)
Atualiza o proprietário de um subnó. Por exemplo, o proprietário de "foo.com" pode mudar o proprietário de "bar.foo.com" ligando para setSubnodeOwner(namehash("foo.com"), sha3("bar"), newowner)
. Só pode ser chamado pelo proprietário de node
.
setResolver (nó bytes32, resolvedor de endereço)
Define o endereço do resolvedor para o nó especificado.
Resolvers
Os resolvedores podem ser encontrados no repositório específico do resolvedor .
Gerando LLL ABI e dados binários
ENS.lll.bin foi gerado com o seguinte comando, usando o lllc empacotado com Solidity 0.4.4:
$ lllc ENS.lll > ENS.lll.bin
Os arquivos no diretório abi foram gerados com o seguinte comando:
$ solc --abi -o abi AbstractENS.sol FIFSRegistrar.sol HashRegistrarSimplified.sol
Começando
Instale Truffle
$ npm install -g truffle
Inicie o cliente RPC, por exemplo TestRPC:
$ testrpc
Implante ENS
e FIFSRegistrar
para a rede privada, o processo de implantação é definido aqui :
$ truffle migrate --network dev.fifs
Verifique a documentação da trufa para obter mais informações.