ENS ожил! Со своими особенностями старта, о которых ниже, но он ожил. Ethereum Name Service — прямая альтернатива привычным Domain Name System и путь к действительно децентрализованной сети Интернет. Немного подробностей запуска и полезных ссылок под катом.
О самом главном
Для того, чтобы зарегистрировать имя в ENS, проще всего воспользоваться DApp по следующей ссылке: https://registrar.ens.domains/
Приложение будет работать в parity, mist или с расширение для Google Chrome Metamask.
Зарегистрировать имена можно длинной более 7 символов.
Регистрация происходит в формате аукциона.
Хоть ENS уже работает, зарегистрировать разные имена можно будет, начиная с разных дат. Это сделано, чтобы избежать чрезмерного количества транзакций на регистрацию в первые дни работы сервиса.
Поэтому не удивляйтесь, что одно имя будет доступно для регистрации через, к примеру, 10 дней, а другое через 11 дней.
Алгоритм выбора даты начала аукциона по любому имени условно случаен, так что теории заговора нет. Алгоритм времени начала регистрации такой:
- Берем хеш от имени.
- Берем левую половину хеша (128 бит).
- Умножаем на константу launchLength = 8 week.
- Берем левую половину результата (128 бит).
- Добавляем время старта.
Посмотреть в коде контракта можно тут: https://etherscan.io/address/0x6090a6e47849629b7245dfa1ca21d94cd15878ef#code
/**
* @dev Returns available date for hash
*
* @param _hash The hash to start an auction on
*/
function getAllowedTime(bytes32 _hash) constant returns (uint timestamp) {
return registryStarted + (launchLength*(uint(_hash)>>128)>>128);
// right shift operator: a >> b == a / 2**b
}
/**
* @dev Assign the owner in ENS, if we’re still the registrar
* @param _hash hash to change owner
* @param _newOwner new owner to transfer to
*/
Зачем нужен ENS?
Затем же, зачем и были придуманы доменные имена и вся система DNS — для организации удобной человеку адресации. ENS имеет двоякую роль.
Помогает заменить сложную адресацию адресов контрактов и аккаунтов пользователей внутри сети. Например, для удобных переводов. Вместо указания адреса получателя можно будет указать в транзакции ассоциированное имя. Легче запомнить ник друга формата`lonshakov.eth`, чем hex его адреса `0x6EFBA8fb2AC5b6730…` в сети Ethereum.
Вместе со Swarm создаст полностью децентрализованный хостинг web приложений. Все имена, зарегистрированные в Ethereum Blockchain mainnet, будут иметь адрес `xxxx.eth` и со временем, благодаря Ehereum, ENS и Swarm можно будет забыть про привычный хостинг.