Навеяно Skype окончательно RIP
непригодно для хомячков, которые упорно воротят нос от жаббера и дрочат на всевозможные зонды.
Для меня как для хомячка регестрировать и продлевать домен, поддерживать его настройки в актуальном состоянии есть мучение, не говоря уж о том, что нужное мне доменное имя может быть просто занято.
Думаю что эта трудность является одной из причин отказа обычных пользователей от использования Жаббера.
Для решения этой трудности предлагаю сделать альтернативную систему DNS, при чём это упростит не только регистрацию имён для жабера, но и для других создаваемых хомячком сервисов, например персональной вебстранички или почтового сервера, при чём необходимости менять используемый софт не будет.
Альтернативная система DNS мне видится так:
Доменное имя будет трёхуровневым, корнем будет публичный ключ которым можно будет проверить записи для доменов второго уровня, домен третьего уровня будет удостоверяться публичным ключём домена второго уровня.
Выглядеть полное доменное имя будет так:
http://www.anime.49AEA4F7AB7C4A856EDEDFF67CDDA6EDE12AF857B234B1F60BB369256CC5...
для чего нужно делать чтобы корнем был именно публичный ключ?
Понятно что много людей захотят домен с одним и тем же говорящим названием и различаться эти домены будут своими публичными ключами,
но при этом путаться не будут, так как ключ будет частью URL, а генерация одного и того же публичного ключа разными людьми маловероятна.
Почему домен третьего уровня надо удостоверять подписью домена второго уровня, а не используемым как домен первого уровня публичным ключём?
Причина состоит в том что наряду с доменом anime.49AEA... может быть сделан ещё домен
jabber.victor.49AEA4F7AB7C4A856EDEDFF67CDDA6EDE12AF857B234B1F60BB369256CC5A7A885C76DFAE503H35D30E5A
который используется для связи и чтобы не отдавать над ним контроль для каждого домена второго уровня будет делаться отдельные ключи цифровой подписи.
Таким образом можно будет отдать контроль над доменом anime.49AEA... не отдавая контроль над доменом victor.49AEA...
Для такой системы нужны следующие записи:
Запись первого типа: Заверенная приватной частью публичного ключа сообщение о том, что домен первого уровня 49AEA..., он же публичный ключь создан идентичностью такой то, идентичностью является произвольная строка содержащая способствующий опознанию текст, например «Тима» или «Я люблю жизнь», запись создаётся один раз и срока жизни не имеет.
Запись второго типа: Заверенная приватной частью публичного ключа сообщение номер такой-то о том, что домен первого уровня 49AEA..., он же публичный ключ, имеет домен второго уровня anime, записи для которого удостоверяются публичным ключём таким то и срок жизни домена, в течении которого запись считается действительной.
Запись третьего типа: Заверенная приватным ключём для домена второго уровня anime.49AEA... запись номер такой-то о том, что домен второго уровня имеет такой то домен www третьего уровня и срок его жизни, в течении которого запись считается действительной.
При этом для обоих записей будет действительна запись с актуальным сроком жизни и имеющая наибольший порядковый номер, при этом если запись имеющая наибольший порядковый номер просрочена то генерируется ошибка.
Процесс разрешения URL будет таким:
NS сервер путём проверки длинны строки и имеющихся в строке символов проверяет может ли быть строка ключём.
Если удовлетворяет требованиям и признаётся ключём то NS сервер запрашивает у найденных по DHT других NS серверов запись первого типа и спрашивает у пользователя, та ли эта запись о домене, если таких записей несколько то предоставляет выбор.
После чего ищет запись второго типа и производит её проверку.
Если проверка не удачная то оповещает пользователя о ошибке, если проверка удачная то запрашивает соответствующею запись третьего типа и после её проверки разрешает URL в IP.
Если проверка на то, что в URL домен первого уровня является ключём оканчивается неудачей то производится проверка не является ли домен первого уровня специальным словом, таким как onion, p2p или другие виртуальные домены.
В случае если эта проверка удачна то IP адрес либо если он не изменен берётся из настроек, либо если он меняется то для разрешения адреса в IP используется соответствующий плугин.
При не удаче создаётся окно с сообщением о ошибке.
Если обе предыдущие проверки домена первого уровня на соответствие ключу или специальному слову оказываются не удачны то производится сверка домена первого уровня из URL со списком top-level доменов интернета.
При совпадении URL разрешается обычным способом через DNS провайдера, при отсутствии совпадения или неудаче разрешения создаётся соответствующее окно с сообщением о ошибке.
Предложения по улучшению идеи принимаются сюда: https://github.com/torvn77/the-concept-of-a-public-chat-messenger-TOX/blob/ma...