Ethereum Name Services

Implementações para registradores e resolvedores locais para o serviço de nomes Ethereum.

Link para Github:

ENS

Status da compilação

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 ENSe FIFSRegistrarpara 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.