💾 Archived View for betahowto.duckdns.org › yggdrasil:dns:ALFIS captured on 2024-03-21 at 16:09:17. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
+-----------------------------------------------------------------------------------------------------+ | :!: Важно! | +-----------------------------------------------------------------------------------------------------+ | У ALFIS обнаружены фундаментальные проблемы в дизайне https://github.com/Revertron/Alfis/issues/364 | +-----------------------------------------------------------------------------------------------------+
ALFIS (Alternative Free Identity System - альтернативная свободная система идентификации) - распределенная система доменных имен.
Преимущества ALFIS перед Wyrd ( gemini://betahowto.duckdns.org/archive:yggdrasil:dns:wyrd ) и другими системами DNS:
К недостаткам можно отнести относительно долгий процесс "регистрации" доменного имени, передачи доменного имени другому пользователю, внесения изменений в записи доменных имен. Всё это связано с особенностями технологии блокчейн на принципе PoW ( https://ru.wikipedia.org/wiki/Доказательство выполнения работы ) и необходимостью майнинга ( https://ru.wikipedia.org/wiki/майнинг ) для внесения изменений в блокчейн, который, собственно, содержит записи доменных имен. Кроме того, особенностью ALFIS является то, что, на данный момент, с одним персональным ключом блок с новым доменом можно майнить не чаще, чем раз в сутки.
С версии 0.4.34 в ALFIS добавлено ограничение на максимальное количество зон - 10 шт. (ввод ограничений связан с тем, что некоторые пользователи начали злоупотреблять возможностью майнить зоны и намайнили несколько бессмысленных зон).
Эта версия подойдет тем, кто хочет установить ALFIS только в качестве DNS-резолвера.
Скачиваем ключ репозитория и добавляем его в APT ( https://ru.wikipedia.org/wiki/Advanced_Packaging_Tool ):
wget -O - https://deb.revertron.com/key.txt | sudo apt-key add -
Добавляем репозиторий в список источников APT:
echo 'deb http://deb.revertron.com/ debian alfis' | sudo tee /etc/apt/sources.list.d/alfis.list
Обновляем информацию о доступных пакетах и устанавливаем ALFIS:
sudo apt update && sudo apt install alfis
Конфигурационный файл ALFIS будет располагаться в /etc/alfis.conf, блокчейн будет сохранен в директорию /var/lib/alfis.
Если у вас запущен другой DNS-сервер, работающий на TCP-порту 53, ALFIS не сможет корректно запуститься. Либо измените в конфигурационном файле порт ALFIS, либо измените порт ранее установленного DNS-cервера и укажите его в качестве upstream-сервера для ALFIS.
Пропишите ALFIS в качестве резолвера в /etc/resolv.conf или другим способом, используемым в вашей ОС.
Для регистрации новых и управления уже зарегистрированными доменными именами вам потребуется версия ALFIS с GUI.
Скачать готовые бинарные сборки под распространенные ОС и архитектуры можно со страницы релизов ( https://github.com/Revertron/Alfis/releases ) репозитория проекта на GitHub (нужна версия без nogui в наименовании архива).
Скачайте архив с нужной сборкой и распакуйте его в любую удобную вам директорию.
После распаковки в Linux сделайте файл исполняемым командой:
chmod +x alfis
В Windows для запуска ALFIS необходимо наличие установленного Microsoft VC Redistributable (набор динамических библиотек Microsoft Visual C++). Скачать установщик можно по этой ссылке: Microsoft Visual C++ 2015 Update 3 RC ( https://www.microsoft.com/ru-RU/download/details.aspx?id=52685 ). Установка выполняется довольно просто, проблем вызвать не должно.
Для запуска ALFIS под Windows версии ниже 8.1 требуется наличие библиотеки api-ms-win-shcore-scaling-l1-1-1.dll. Скачать библиотеку можно по этой ссылке ( https://www.dll.ru/files/api-ms-win-shcore-scaling-l1-1-1-dll ). Библиотеку необходимо разместить в том же каталоге, где находится alfis.exe.
Далее просто запустите исполняемый файл.
В Linux: ./alfis
В Windows: alfis.exe
По-умолчанию, ALFIS ищет конфигурационный файл в директории, где находится исполняемый файл, в этой же директории создаётся база данных с блокчейном blockchain.db.
Чтобы указать ALFIS другой путь к конфигурационному файлу, можно запустить его с параметром -с:
alfis -c /etc/alfis.conf
Для того, чтобы указать путь к рабочей директории (куда будет сохранен блокчейн) можно использовать параметр -w:
alfis -w /home/elf/alfis/
Для "регистрации" доменного имени в системе, необходимо добавить блок с DNS-записями в блокчейн. Делается это путем майнинга блока.
Но перед майнингом самого блока с доменными именами необходимо, так сказать, "зарегистрироваться" в системе - намайнить персональный ключ, который будет использоваться для управления своими DNS-записями.
GUI ALFIS прост и интуитивно понятен.
/yggdrasil:dns:alfis_article.pic0.png
Для майнинга ключа в разделе Credentials просто нажимаем Mine new key. Этот процесс может занять от нескольких часов до нескольких дней в зависимости от мощности процессора.
После того как ключ будет готов, рекомендую сохранить его в файл для дальнейшего использования (Save key).
Для добавления DNS записей, в разделе Credentials выбираем свой ключ (Load key), в разделе Domains нажимаем "New Domain", далее вводим желаемое доменное имя, выбираем зону (например, .ygg (в зонах, помеченных звездочкой, возможен майнинг доменных имен, связанных только с адресами ( gemini://betahowto.duckdns.org/Yggdrasil:Yggdrasil ))), жмем Add record.
В открывшейся формочке необходимо будет указать параметры DNS-записи.
Для простоты можно указать имя @, тип AAAA (соответствует IPv6) и ваш IP-адрес. @ означает root (корень). Этого будет достаточно для того, чтобы поставить в соответствие IP-адрес и выбранное доменное имя. Если планируется использовать домены третьего уровня (например, www.dname.ygg), то нужно будет их сразу прописать, чтобы не майнить каждую запись отдельно. Чтобы не прописывать каждый домен третьего уровня отдельно, в поле name можно указать *.
Должно получиться так, как на картинке ниже.
/yggdrasil:dns:alfis_article.pic.png
По кнопке с подменю "Advanced" можно указать дополнительную информацию по домену: Set owner contacts - контактные данные владельца, Set domain info - дополнительная информация, связанная с доменом; Change domain owner - используется для передачи домена другому пользователю.
После того, как всё заполнено, нажимаем Mine domain и ждем, когда процесс майнинга завершится. Процесс может занять продолжительное время.
Если, вдруг, после нажатия Mine domain вы увидите сообщение "You have cooldown, just xxx more minutes!", это означает, что вы пытаетесь запустить майнинг блока чаще, чем раз в сутки. Придется подождать указанное количество минут.
/yggdrasil:dns:cooldown_alfis.png
Остановить майнинг можно нажав на красный мерцающий индикатор майнинга в левом нижнем углу окна ALFIS.
Блокчейн локально хранится в базе SQLite (файл blockchain.db). Просмотреть содержимое базы можно, например, с помощью DB Browser for SQLite ( https://sqlitebrowser.org/ ). Домены не содержатся в базе в открытом виде, только их хэши.
Кроме того, ( gemini://betahowto.duckdns.org/user:cofob ) разработал красивый web-blockchain-viewer: https://viewer.alfis.name/. Исходный код: https://git.sr.ht/~cofob/AlfisViewer
Запущенный ALFIS с графическим интерфейсом может корректно резолвить доменные имена.
Для использования ALFIS исключительно, как резолвера, без отрисовки графического интерфейса, нужно запустить его с параметром -n.
Резолвер начнет работать на адресе и порте, указанными в конфигурационном файле alfis.toml.
Кроме того, можно скачать специальную версию ALFIS без графического интерфейса. На странице релизов такие версии имеют имена с добавлением nogui.
Адреса вышестоящих DNS-серверов указываются в конфигурационном файле - параметр forwarders.
Если вы запускаете ALFIS на Linux имейте ввиду: в большинстве современных дистрибутивов для того, чтобы использовать для прослушивания TCP-порты от 0 до 1024 необходимо обладать правами суперпользователя, т.к. эти номера портов зарезервированы для нужд системы и используются различными системными службами/демонами. DNS, по-умолчанию работающая на порту 53, относится к таким системным службам, поэтому, запуская ALFIS в качестве системного резолвера DNS на порту 53, вы должны запускать его с правами супервользователя (либо с соответствующими Capability в systemd-юните), иначе этот порт вами зарезервирован не будет. Так же, учитывайте то, что на этом же порту уже могут работать другие системные службы (systemd-resolved, dnsmasq, BIND, etc.). Убедитесь, что запускаете ALFIS, резервируя порт на таком IP-адресе, на котором он еще не занят. Скорее всего, ваш IPv6-адрес Yggdrasil будет не занят, и его можно указать в конфигурационном файле alfis.toml так:
[dns] # Your DNS resolver will be listening on this address and port (Usual port is 53) listen = "[2xx:xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:53"
Также можно использовать для сервиса ALFIS http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:subnet_setting#практическая_часть | адрес подсети
Ниже указан пример для запуска на 53 порту (по-умолчанию) где постфикс ::53 в адресе - выделенный для службы адрес из свободного диапазона.
Далее, ознакомьтесь с тем, как прописать этот адрес в качестве системного резолвера: ( gemini://betahowto.duckdns.org/yggdrasil:dns:dns_sys_configure ).
Примеры:
dig AAAA @127.0.0.1 -p 5300 gostcoin.ygg
dig AAAA @127.0.0.1 -p 5300 nnmclub.ygg +short
Здесь 127.0.0.1 - адрес, на котором работает резолвер, 5300 - порт резолвера (см. alfis.toml).
Если резолвер ALFIS уже прописан в качестве системного резолвера и если он прослушивает порт 53 (DNS), то команда может быть такой:
dig AAAA rutor.ygg
dig AAAA nnmclub.ygg +short
В результате выполнения команд вы должны будете увидеть IP-адреса указанных доменов.
# Хэш первого блока в цепи, чтобы знать с какими узлами работать origin = "0000001D2A77D63477172678502E51DE7F346061FF7EB188A2445ECA3FC0780E" # Пути к файлам ваших ключей для их автоматической загрузки key_files = ["key1.toml", "key2.toml", "key3.toml", "key4.toml", "key5.toml"] # Какое количество блоков проверять при старте check_blocks = 8 # Сетевые настройки [net] # Бутстрап-узлы (узлы, к которым вы подключитесь в первую очередь, чтобы получить информацию о других узлах) peers = ["peer-v4.alfis.name:4244", "peer-v6.alfis.name:4244", "peer-ygg.alfis.name:4244"] # Адрес и порт, на которых ваш узел будет ожидать подключения от других узлов listen = "[::]:4244" # Если вы хотите участвовать в обмене пирами, установить здесь true, false - если не хотите public = true # Разрешить подключения только внутри сети Yggdrasil (входящие и исходящие) (https://yggdrasil-network.github.io) yggdrasil_only = false # Настройки DNS-резолвера [dns] # DNS-резолвер будет ожидать подключения на этом адресе и TCP-порте (обычно это порт 53) listen = "127.0.0.1:53" # Сколько потоков породит DNS-сервер threads = 20 # DNS-серверы AdGuard (для фильтрации рекламы и отслеживающих трэкеров) forwarders = ["https://dns.adguard.com/dns-query"] #forwarders = ["94.140.14.14:53", "94.140.15.15:53"] # Серверы Cloudflare #forwarders = ["https://cloudflare-dns.com/dns-query"] #forwarders = ["1.1.1.1:53", "1.0.0.1:53"] # DNS-серверы для резолва доменов провайдеров DoH bootstraps = ["9.9.9.9:53", "94.140.14.140:53"] # Поддержка файла hosts (/etc/hosts) (для разрешения локальных имен или блокировки рекламы) #hosts = ["system", "adblock.txt"] #Настройки майнинга [mining] # Количество потоков CPU для майнинга, ноль = количество ядер CPU threads = 0 # Установить низкий приоритет для потоков майнинга lower = true
Опции: -h, --help Вывод этой подсказки -n, --nogui Запуск без графического интерфейса (используется по-умолчанию для сборок без GUI) -v, --version Вывод версии и выход -d, --debug Выводить еще больше отладочной информации -b, --blocks Показать содержимое блоков в базе данных и завершить работу -g, --generate Генерировать новый конфигурационный файл (будет выведен в консоль) -k, --gen-key FILE Генерирование (майнинг) новых ключей и сохранение их в файл -l, --log FILE Записывать лог в файл -s, --status FILE Записывать статус в файл (информация о количестве узлов, блоков, ключей, доменов) -c, --config FILE Путь к конфигурационному файлу -w, --work-dir DIRECTORY Путь к рабочей директории -u, --upgrade FILE Путь к конфигурационному файлу, который вы хотите обновить. Обновлённый файл будет выведен в консоль.
ALFIS предназначен для локального разворачивания с использованием сервиса DNS на адресе 127.0.0.1:53. Однако существуют общедоступные серверы, использование которых избавляет от запуска ALFIS на своем устройстве. Такие серверы собраны на странице: ( gemini://betahowto.duckdns.org/yggdrasil:dns:internal_dns ).
Благодаря ( gemini://betahowto.duckdns.org/user:ufm ) все Yggdrasil-адреса, для которых есть доменное имя ALFIS (оканчивающееся на .ygg), доступны [без дополнительных настроек] через домен .at. Т.е., ресурс с доменным именем ALFIS, вида domain.ygg будет доступен и по доменному имени domain.ygg.at. При этом, нет необходимости менять свои настройки DNS, прописывать DNS-сервера ALFIS и т.п.
Для примера:
.ygg.at резолвится в Yggdrasil-IPv6-адрес.
По-умолчанию, браузеры интерпретируют неизвестные доменные зоны как поисковую фразу.
Чтобы добавить поддержку новых доменных зон, необходимо добавить соответствующие настройки для Chrome ( gemini://betahowto.duckdns.org/yggdrasil:web-browsers:chrome_with_yggdrasil ) и Firefox ( gemini://betahowto.duckdns.org/yggdrasil:web-browsers:firefox_with_yggdrasil ).
Репозиторий ALFIS на Github: https://github.com/Revertron/alfis
Описание ALFIS от разработчика (RU): https://github.com/Revertron/Alfis/tree/master/docs
Канал поддержки пользователей ALFIS в telegram: https://t.me/ALFIS_RU
Сообщение Сообщение в matrix ( gemini://betahowto.duckdns.org/user:ufm]] о домене .at: [[https://matrix.to/#/!lAbIGDMfTUNreAuBOl:matrix.org/$lIglLUwoRAhU88fZpQ8ISElHR7xTOwijlJ4U0Zp-SyQ?via=matrix.org&via=t2bot.io&via=twinkle.lol )
https://github.com/Revertron/Alfis/issues/364
gemini://betahowto.duckdns.org/archive:yggdrasil:dns:wyrd
https://ru.wikipedia.org/wiki/блокчейн
https://ru.wikipedia.org/wiki/Доказательство
https://ru.wikipedia.org/wiki/майнинг
https://ru.wikipedia.org/wiki/Advanced_Packaging_Tool
https://deb.revertron.com/key.txt
https://github.com/Revertron/Alfis/releases
https://www.microsoft.com/ru-RU/download/details.aspx?id=52685
https://www.dll.ru/files/api-ms-win-shcore-scaling-l1-1-1-dll
gemini://betahowto.duckdns.org/Yggdrasil:Yggdrasil
gemini://betahowto.duckdns.org/user:cofob
https://git.sr.ht/~cofob/AlfisViewer
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:subnet_setting#практическая_часть
gemini://betahowto.duckdns.org/yggdrasil:dns:dns_sys_configure
https://yggdrasil-network.github.io)
https://dns.adguard.com/dns-query"]
https://cloudflare-dns.com/dns-query"]
gemini://betahowto.duckdns.org/yggdrasil:dns:internal_dns
gemini://betahowto.duckdns.org/user:ufm
gemini://betahowto.duckdns.org/yggdrasil:web-browsers:chrome_with_yggdrasil
gemini://betahowto.duckdns.org/yggdrasil:web-browsers:firefox_with_yggdrasil
https://github.com/Revertron/alfis
https://github.com/Revertron/Alfis/tree/master/docs
gemini://betahowto.duckdns.org/user:ufm]]