альтернативный DNS Alfis

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 13:25

Olej писал(а):
22 май 2023, 13:11
Как видно по меткам времени: 1-й ключ намайнился за чуть меньше 1 часа, а 2-й - ещё через пол-часа.
После чего (а лучше сразу) не забыть сохранить найденный ключ (ключи) по кнопке "Save key" на GUI:

Код: Выделить всё

olej@R420:~/2023/Alfis/Alfis$ ls -l key*.toml 
-rw-r--r-- 1 root root 346 мая 22 12:58 key1.toml
-rw-r--r-- 1 root root 346 мая 22 12:58 key2.toml
(файлы ключей различаются по содержимомму, хотя и похожи по размеру!)

P.S. Прошлый раз я не успел сохранить найденный ключ - по неосторожности закрыл не ту вкладку терминала - и 7-часовая работа компьютера ушла на смарку! :-( :-o Восстановить не созранённое, похоже, нельзя :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 14:16

Olej писал(а):
20 май 2023, 00:36
Систем названа в своей аббревиатуре как «Free», что означает, в том числе, и бесплатная. Но бесплатная в денежном смысле. Сделать такую систему бесплатной в абсолютном смысле нельзя: её тут же всю «загадят» хакеры-мерзавцы или просто непонимающие недоумки из Интернет. Но плата здесь имеет смысл в том, что ключ для записи DNS здесь нужно майнить, на манер как это делается в криптовалютах, хотя этот блокчейн не имеет вообще никакого отношения к крипто-деньгам и финансовым операция. Плата здесь производится машинным временем!
Важно ... хоть и не очень внятно изложено ... и, кроме того, 2 года назад - ALFIS DNS: перемещение точки доверия
Как это всё работает?

В угоду главным задачам было принято решение, что каждый блок будет содержать только одну транзакцию. Каждая транзакция регистрирует новый домен, либо изменяет все записи этого домена. В блокчейне нет никакой валюты.

Самая важная проблема в таких системах это киберсквоттинг - регистрация всех красивых доменов, чтобы впоследствии их перепродать, или просто подгадить. Эту проблему я решил с помощью PoW - для регистрации домена надо намайнить блок, удовлетворяющий определённой сложности. Майнит тот, кто хочет получить домен. Чтобы изменить записи для домена надо намайнить похожий блок, со сложностью меньше на один бит.

Данная стратегия позволяет удерживать блокчейн от бесконечного роста. Но это не единственное, что помогает такой задаче. Для того, чтобы блокчейн не рос постоянно, был придуман механизм подписей - пустых блоков, без транзакции, от участников сети, выбранных специальным образом. Исходя из подписи нового полного блока, по специальному простому алгоритму, выбирается 7 ключей из всего блокчейна. В этом выборе участвуют только те ключи, блоков которых в блокчейне больше либо равно текущая высота блокчейна / 100, таким образом, только постоянные пользователи могут подписывать блоки. Своеобразный PoS, если хотите. И уже из этих семи требуется 4 подписывающих блока. Таким образом формируется одна цепочка, без форков. Никакие ноды не могут откатить свой блокчейн дальше, чем на 4 блока назад, так что блокчейн не должен постоянно расти, чтобы быть впереди какого-нибудь злоумышленника. Текущий блокчейн запущен в мае 2021 года, и функционирует без проблем.

В процессе выбора алгоритма для PoW я перелопатил несколько вайтпейперов описывающих алгоритмы, устойчивые к майнингу на ASIC и GPU. В итоге, исходя из представленных решений, я скомпоновал свой алгоритм и назвал его Blakeout. Он требует довольно много RAM для подсчёта хэшей.
Какие домены поддерживаются?

Для начала скажу, что в ALFIS поддерживается 10 собственных зон:

.anon, .btn, .conf, .index, .merch, .mirror, .mob, .screen, .srv, .ygg

А зоны .anon и .ygg обладают суперспособностью - они могут содержать только записи AAAA из диапазона 200::/7, то есть созданы только для использования в сети Yggdrasil. И любой пользователь, заходя на такой сайт, может быть уверенным, что он туда попадёт именно через Yggdrasil.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 14:23

Olej писал(а):
22 май 2023, 13:11
Как видно по меткам времени: 1-й ключ намайнился за чуть меньше 1 часа, а 2-й - ещё через пол-часа.
После этого майниг остановился :-o - это мне непонятно: в предыдущей как-то попытке он останавливался после нахождения 1-го ключа, и так, по идее, и должно быть.
Дальше, после всех действий по тщательному сохранению, этот майнинг можно продолжить с точки останова...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

децентрализованный альтернативный DNS

Непрочитанное сообщение Olej » 22 май 2023, 15:00

Olej писал(а):
23 фев 2023, 20:13
Но сначала надо создать своё доменное имя чтобы его использовать.
К вопросу использования альтернативных DNS резолверов ... и альтернативных доменных зон - вот, в Telegram проскаиквало:
photo_2023-05-22_14-53-43.jpg
photo_2023-05-22_14-53-43.jpg (55.88 КБ) 707 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 19:04

Olej писал(а):
22 май 2023, 14:23
Дальше, после всех действий по тщательному сохранению, этот майнинг можно продолжить с точки останова...

Код: Выделить всё

olej@R420:~/2023/Alfis/Alfis$ sudo ./target/release/alfis -c /etc/alfis.conf
11:32:37.054 [INFO ] (1) alfis::Main: Starting ALFIS 0.8.4
11:32:37.057 [INFO ] (1) alfis: Blocks count: 8730, domains count: 767, users count: 340
11:32:37.057 [WARN ] (1) alfis: Error loading keyfile from key1.toml
11:32:37.057 [WARN ] (1) alfis: Error loading keyfile from key2.toml
11:32:37.057 [WARN ] (1) alfis: Error loading keyfile from key3.toml
11:32:37.057 [WARN ] (1) alfis: Error loading keyfile from key4.toml
11:32:37.057 [WARN ] (1) alfis: Error loading keyfile from key5.toml
11:32:37.057 [INFO ] (1) alfis::blockchain::chain: Checking last 8 blocks...
11:32:38.429 [INFO ] (1) alfis::web_ui: Interface loaded
11:32:38.488 [INFO ] (1) alfis::web_ui: Loaded zones: [ZoneData { name: "anon", yggdrasil: true }, ZoneData { name: "btn", yggdrasil: false }, ZoneData { name: "conf", yggdrasil: false }, ZoneData { name: "index", yggdrasil: false }, ZoneData { name: "merch", yggdrasil: false }, ZoneData { name: "mirror", yggdrasil: false }, ZoneData { name: "mob", yggdrasil: false }, ZoneData { name: "screen", yggdrasil: false }, ZoneData { name: "srv", yggdrasil: false }, ZoneData { name: "ygg", yggdrasil: true }]
11:32:38.537 [INFO ] (28) alfis::p2p::peers: Resolving address peer-v4.alfis.name:4244
11:32:38.537 [INFO ] (28) alfis::p2p::peers: Got addresses: [185.193.159.245:4244, 46.229.214.81:4244, 193.107.20.230:4244, 77.247.225.234:4244, 193.111.114.28:4244, 195.123.245.146:4244]
11:32:38.537 [INFO ] (28) alfis::p2p::peers: Resolving address peer-v6.alfis.name:4244
11:32:38.537 [INFO ] (28) alfis::p2p::peers: Got addresses: [[2a03:6f00:5:1::2ee5:d651]:4244, [2a02:e00:ffec:734::1]:4244]
11:32:38.537 [INFO ] (28) alfis::p2p::peers: Resolving address peer-ygg.alfis.name:4244
11:32:38.537 [INFO ] (28) alfis::p2p::peers: Got addresses: [[202:db60::9ce0:a73d:7498:d7ae]:4244, [202:7991::880a:d4b2:de3b:2da1]:4244, [203:63fc:667d:b16c:8e78:a899:8d54:a5e4]:4244, [202:a2a5:dead:ded:9a54:4ab5:6aa7:1645]:4244, [225:ca89:40a8:611e:78b8:ab81:999a:d4d7]:4244, [324:71e:281a:9ed3::53]:4244, [325:5a4:d1c9:db96::53]:4244]
11:32:39.185 [INFO ] (28) alfis::p2p::network: Active nodes: 3, banned: 0, blocks: 8730, domains: 767, keys: 340
12:26:15.051 [INFO ] (41) alfis::keystore: Key mined successfully! Public key: DCB66AC894E38EFE2CE9A4437721F01E6EFB7439D0700F9184D1A983706711DA, hash: 00000139762ACAB280B0DFED3B5DC31242E701BA8814391FCFFA4AD684CA0C62
12:51:56.832 [INFO ] (67) alfis::keystore: Key mined successfully! Public key: 966327DE4872CE2C474B13B5B557E69638444E4613273A6D3DD345D4F55D71CB, hash: 00000135864B2C126BAFC4BB64C7455128FBA05760791F3403C3E20490FE93B3
12:58:19.936 [INFO ] (1) alfis::web_ui: Key file saved to /home/olej/2023/Alfis/Alfis/key1.toml
12:58:44.084 [INFO ] (1) alfis::web_ui: Key file saved to /home/olej/2023/Alfis/Alfis/key2.toml
15:49:04.552 [INFO ] (156) alfis::keystore: Key mined successfully! Public key: 074E5DA555970D476389F3F8CF9282FB73A544DBE2A2F36262B5107D38A52436, hash: 00000086771BAFFA02D38A02D3A2951ACAEC5A40CC88E78ADFCE8E7BB58FBD12
16:20:59.551 [INFO ] (1) alfis::web_ui: Key file saved to /home/olej/2023/Alfis/Alfis/key3.toml
...

Код: Выделить всё

olej@R420:~/2023/Alfis/Alfis$ ls -l key*.toml 
-rw-r--r-- 1 root root 346 мая 22 12:58 key1.toml
-rw-r--r-- 1 root root 346 мая 22 12:58 key2.toml
-rw-r--r-- 1 root root 346 мая 22 16:20 key3.toml

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 19:10

Olej писал(а):
20 май 2023, 00:36
Но такой майнинг здесь возможен только в варианте приложения с GUI интерфейсом, в консольном интерфейсе CLI, как мы его запускали раньше, это невозможно.
Регистрация нового доменного имени...
Описания Alfis - отвратительные по качеству + безумно устаревшие...
Хот какую-то ясность вносит ALFIS - распределенная система доменных имен:
Как "зарегистрировать" доменное имя в ALFIS

Для «регистрации» доменного имени в системе, необходимо добавить блок с DNS-записями в блокчейн. Делается это путем майнинга блока.

Но перед майнингом самого блока с доменными именами необходимо, так сказать, «зарегистрироваться» в системе - намайнить персональный ключ, который будет использоваться для управления своими DNS-записями.
Регистрация доменного имени

Для добавления DNS записей, в разделе Credentials выбираем свой ключ (Load key), в разделе Domains нажимаем «New Domain», далее вводим желаемое доменное имя, выбираем зону (например, .ygg (в зонах, помеченных звездочкой, возможен майнинг доменных имен, связанных только с адресами Yggdrasil)), жмем Add record.

В открывшейся формочке необходимо будет указать параметры DNS-записи. Для простоты можно указать имя @, тип AAAA (соответствует IPv6) и ваш IP-адрес. @ означает root (корень). Этого будет достаточно для того, чтобы поставить в соответствие IP-адрес и выбранное доменное имя. Если планируется использовать домены третьего уровня (например, www.dname.ygg), то нужно будет их сразу прописать, чтобы не майнить каждую запись отдельно. Чтобы не прописывать каждый домен третьего уровня отдельно, в поле name можно указать *.

Должно получиться так, как на картинке ниже.
А вот на картинку не нужно засматриваться :-( ... потому что всё это относится к версии 2-летней давности:
ALFIS v0.5.1

Код: Выделить всё

olej@R420:~/2023/Alfis/Alfis/target/release$ ./alfis -v
ALFIS v0.8.4

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 19:18

Olej писал(а):
22 май 2023, 19:10
Описания Alfis - отвратительные по качеству + безумно устаревшие...
Olej писал(а):
22 май 2023, 19:10
А вот на картинку не нужно засматриваться
Но всё-таки как-то, с Божьей помощью, начинаем...
- выбрали ключ:
Снимок экрана от 2023-05-22 18-47-14.png
Снимок экрана от 2023-05-22 18-47-14.png (83.52 КБ) 697 просмотров
- выбрали альтернативную зону и вписали корневое имя домена:
Снимок экрана от 2023-05-22 17-43-13.png
Снимок экрана от 2023-05-22 17-43-13.png (63.55 КБ) 697 просмотров
- параметры доменного имени (картинка промежуточная, и на ней ошибка: тип записи, конечно, не A, а AAAA):
Снимок экрана от 2023-05-22 17-36-12.png
Снимок экрана от 2023-05-22 17-36-12.png (47.07 КБ) 697 просмотров
- начинаем майнить доменное имя (добавлять блок в блокчейн?) ...

P.S. Почему нужно сначала "майнить ключ" а потом повторно "майнить доменное имя" - для меня это загадка великая есть :-o ... логика этого приложения понятна только его автору. :oops:

Код: Выделить всё

...
18:37:56.385 [INFO ] (1) alfis::web_ui: Parsed domain data:
DomainData {
    encrypted: ,
    zone: "ygg",
    info: "",
    records: [
        AAAA {
            domain: "linux-ru.ygg",
            addr: 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771,
            ttl: TransientTtl(
                3600,
            ),
        },
    ],
    contacts: [],
}
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 19:45

Olej писал(а):
22 май 2023, 19:18
- начинаем майнить доменное имя (добавлять блок в блокчейн?) ...
И в итоге... чуть больше часа времени:

Код: Выделить всё

...
18:37:56.385 [INFO ] (1) alfis::web_ui: Parsed domain data:
DomainData {
    encrypted: ,
    zone: "ygg",
    info: "",
    records: [
        AAAA {
            domain: "linux-ru.ygg",
            addr: 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771,
            ttl: TransientTtl(
                3600,
            ),
        },
    ],
    contacts: [],
}
19:38:37.337 [INFO ] (249) alfis::miner: Mined good block!
19:38:37.362 [INFO ] (28) alfis::p2p::network: Active nodes: 15, banned: 0, blocks: 8731, domains: 768, keys: 341
19:38:58.407 [INFO ] (27) alfis::blockchain::chain: Waiting for other blocks before signing.
19:39:28.407 [INFO ] (27) alfis::blockchain::chain: Waiting for other blocks before signing.
19:39:58.427 [INFO ] (27) alfis::blockchain::chain: Signing block must be mined by other nodes
19:40:27.885 [INFO ] (28) alfis::p2p::network: Peer is higher, requesting block 8732 from 225:ca89:40a8:611e:78b8:ab81:999a:d4d7
19:40:28.341 [INFO ] (28) alfis::p2p::network: Active nodes: 16, banned: 0, blocks: 8732, domains: 768, keys: 341
19:40:28.428 [INFO ] (27) alfis::blockchain::chain: Waiting for other blocks before signing.
19:40:58.428 [INFO ] (27) alfis::blockchain::chain: Waiting for other blocks before signing.
19:41:28.428 [INFO ] (27) alfis::blockchain::chain: Signing block must be mined by other nodes
19:41:58.428 [INFO ] (27) alfis::blockchain::chain: Signing block must be mined by other nodes
19:42:00.319 [INFO ] (28) alfis::p2p::network: Peer is higher, requesting block 8733 from 200:c2e:92b0:a0d9:2314:30fa:2efb:2e18
19:42:00.864 [INFO ] (28) alfis::p2p::network: Active nodes: 16, banned: 0, blocks: 8733, domains: 768, keys: 341
...
Снимок экрана от 2023-05-22 19-39-10.png
Снимок экрана от 2023-05-22 19-39-10.png (132.55 КБ) 696 просмотров
Снимок экрана от 2023-05-22 19-39-34.png
Снимок экрана от 2023-05-22 19-39-34.png (53.14 КБ) 696 просмотров
И как работает разрешение DNS:

Код: Выделить всё

olej@R420:~/2023/Alfis$ host linux-ru.ygg 127.0.0.4
Using domain server:
Name: 127.0.0.4
Address: 127.0.0.4#53
Aliases: 

linux-ru.ygg has IPv6 address 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 22 май 2023, 21:30

Olej писал(а):
22 май 2023, 19:45
в итоге...
Как легко видеть (сравним с картинкой в начале этой страницы форума) изменился: размер блокчейна, число доменов, и др.
Снимок экрана от 2023-05-22 21-26-31.png
Снимок экрана от 2023-05-22 21-26-31.png (73.14 КБ) 696 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

альтернативный DNS Alfis

Непрочитанное сообщение Olej » 23 май 2023, 20:42

Olej писал(а):
22 май 2023, 19:45
И как работает разрешение DNS:

Код: Выделить всё

root@R420:/etc# grep forwarders /etc/alfis.conf | grep -v ^#
forwarders = ["94.16.114.254:53", "94.247.43.254:53", "194.36.144.87:53", "1.1.1.1:53", "1.0.0.1:53"]
Но в таком раскладе разрешаются имена только а). либо прописанные в блокчейне Alfis, б). либо, через forwarders, у стандартных регистраторов DNS Интернет.

Код: Выделить всё

olej@R420:~$ sudo netstat -anp | grep 127.0.0 | grep 53
[sudo] пароль для olej:
tcp        0      0 127.0.0.3:53            0.0.0.0:*               LISTEN      17463/./target/rele
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      1104/systemd-resolv
udp        0      0 127.0.0.3:53            0.0.0.0:*                           17463/./target/rele
udp        0      0 127.0.0.53:53           0.0.0.0:*                           1104/systemd-resolv
udp        0      0 127.0.0.1:5353          0.0.0.0:*                           1313/python3

Код: Выделить всё

olej@R420:/var/lib$ host -p53 linux-ru.ru 127.0.0.3
Using domain server:
Name: 127.0.0.3
Address: 127.0.0.3#53
Aliases:

linux-ru.ru has address 90.156.230.27
linux-ru.ru mail is handled by 10 mx1.timeweb.ru.
linux-ru.ru mail is handled by 10 mx2.timeweb.ru.
Но не могут разрешаться имена определённые в блокчейне EmerDNS :!: :-(

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость