Java'o'Fido: продолжение


    Больше года прошло с того момента, как я начал писать проект jNode, и вот пришла пора первого релиза. Это вовсе не значит, что все это время проект был неиспользуемым, вовсе нет — только в российском регионе как минимум 5 узлов используют jNode. Но все это время проект был в стадии unstable. Хочешь использовать — скачай исходники, собери их, настрой конфигурационный файл и заполни базу данных начальными значениями. И никак иначе.

    Но теперь ( наконец-то! ) пришла пора восстановить справедливость и дать возможность всем желающим поднять свой узел в Фидо просто и без проблем с минимальным приложением усилий. Кстати, я знаю, что Фидо мертво, все полимеры давно закончились, а мы — кучка старых ( и молодых ) маразматиков.

    Техпроцесс


    Фидонет мне интересен тем, что в нем отсутствует очень много простых и привычных вещей, которые присутствуют в интернете. Это как оказаться в джунглях с ножом и одной спичкой. Хочешь постить из RSS — напиши софт! Хочешь сделать чтение почты через веб — напиши софт! Хочешь $feature — напиши софт! Ну или уговори кого-то другого его написать.

    Собственно, именно по этой причине jNode, которая изначально возникла «от нечего делать», стала полноценной платформой для разработки FTN-системы любой сложности. Даже базовая («core») часть системы уже покрывает 100% потребностей обычного узла — умеет принимать, отправлять и хранить почту, поддерживает роботов, скрипты, запуск по таймеру и другие полезные вещи.

    А для того, чтоб сделать все совсем удобным, был введен механизм модулей, позволяющий реализовать любую фичу, используя предоставляемые ядром API. Так, для удобства использования мой тиммейт General_Manjago сделал модуль управления через XMLRPC, а я для себя написал Jabber-бота. Разумеется, по мере развития модулей, развивалось и API — нужные и полезные фичи из модулей попадали в ядро. Так, недавно внезапно и полностью была переписана одна из основных частей программы — реализация протокола Binkp. Наконец-то разобрался с java.nio.*

    При этом всем в jNode нет ни капли «энтерпрайзенького». Она спокойно запускается на роутере с линуксом на борту, а мои 30+ линков и 44 потока в пуле используют всего 12 мегабайт оперативной памяти. Чистая Java SE и никаких вам фабрик.

    Возможности


    • Работа везде, где есть 15 мегабайт памяти и jre 1.7
    • Поддержка всех базовых функций FTN-системы: мейлер, тоссер, трекер
    • Поддержка модулей: как своих, так и сторонних
    • Встроенные скрипты на JavaScript, встроенный шедулер
    • Поддержка большинства реляционных СУБД, для которых есть jdbc-драйвера
    • WEB-UI для управления узлом
    • При удачно сложившихся звездах разворачивание полноценного узла занимает около 3-5 минут


    Релиз


    И вот те звезды, что из прошлого пункта, так удачно сложились, что сегодня мы выпустили первый stable релиз, доступный для скачивания. На самом деле для меня это первый публичный достаточно крупного opensource-проекта. Большинство таких проектов валялись в виде исходников по разным углам до тех пор, пока очередная смерть винчестера не отправляла их в рай для программ. Так что можете поздравить, спасибо.

    В общем — вот: github.com/kreon/jnode/releases/tag/1.0

    В данный пакет встроена СУБД H2, поэтому ничего кроме jre 1.7 для запуска не понадобится.
    Инструкция по установке есть в папке docs.
    Типичный сценарий использования предполагает установку jNode на VDS/VPS/другой сервер и удаленный контроль при помощи технического пойнта и веб-интерфейса.

    Кому нужно


    Если когда-то давно у вас был узел в Fido — это может помочь вернуться в сеть без запиливания хитрых конфигов в DOS'е.
    Если у вас есть пойнтовый aka — можно быстро установить узел и стать таки членом частью сети.
    А если ничего этого нету — можно написать комментарий «Фидо мертво», или попробовать получить пойнта

    UPD: Обновил основной релиз, выложил сборку под 1.6: github.com/kreon/jnode/releases/tag/1.0-jre6
    UPD#2: А еще пойнтов дают тут, на моем узле.
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 53
    • +2
      А через модем работает? А то чувствую, в какой-то момент народ начнёт возвращаться к истокам.
      • +1
        Модуль с протоколом EMSI написать достаточно легко. А транспорт в принципе не важен — хоть модем, хоть ip ( IFC собственно и есть EMSI over IP ).
      • +10
        С тем, как начинают закручивать гайки в интернете, есть вариант возвращения к «забытым» технологиям, вроде FTN.
        Автор молодец. Это, что ни говори, шикарный опыт и реальная, вполне интересная задача.
        • +1
          FTN по телефону удавить — как нефиг делать. Фамилии все есть, устройства стационарные, сорм есть, данные плейнтекстом передаются.
          • 0
            1. а? телефон? на телефоне я поинтом буду почту с эхами читать, неспешно в транспорте.
            2. Как мне кажется, прикрутить шифрование на передачу данных между хостами в случае «припекло» дело не такое уже и сложное.
            В принципе отследить то хосты, отправлявшего и принимавшего эху можно, а вот отследить шифрованную приватную почту в режиме ip2ip уже сложнее.
            • 0
              Вот только вчера мы обсуждали планы на внедрение вариации на PGP с проверкой подписей и обменом ключами по RSA и симметричным шифрованием по AES :-)
              • 0
                а openssl чем не угодил? ведь тут важно больше шифрование именно передачи данных
                а вообще — выкладывтаь свои открытые pgp ключи, обмениваться ими, а на своей стороне уже расшифровывать.полученный пакет с письмами, ну и да, шифровать почтовую базу чтобы уже.
                • 0
                  В конкретной реализации проблем-то нету. Но эту реализацию надо как-то прикрутить к сотням разных типов софта, который стоит у сисопов :-)
                  • 0
                    Я думаю что те, кто захочет озаботиться шифрованием, подумают об этом. начиная от запихивания базы в крипоконтейнеры и туннелями шифрования для того софта, который шифровать не умеет.
                    а ьак — понимать вопрос о шифровании и стандартизации на уровне комитетов по стандартов ftn в глобальных конференциях, если там еще хоть кто-то живой :)

                    Уже молчу про пиар старой технологии как раз для тех, кому текущие ограничения вроде Белоруссии или ливии/Египта не нравятся, это так, мысли вслух
              • +1
                Вот fnt over i2p я одобряю и поддерживаю. Правда, не совсем понятно, каким образом будет происходить социальная часть (в фидо был явный запрет на анонимность для нод, и все вопросы комплейнов и т.д. вполне решались с пониманием «человека»).

                В принципе, можно представить себе схему с распределёнными инвайтами. Но это же громадный и громоздкий процесс — особенно всякие выборы класса nc/rc, который будет сильно осложняться тем, что потенциальному кандидату порог будет не «надо преодолеть», а «нафига сдалось».

                Вообще, мне кажется, большая часть фидошных технологий не выживет не в ip, ни в i2p, просто потому, что ожидания от сети сильно вырастают (то есть в отличие от ситуации в 90ых конкуренция есть и очень сильная).
                • 0
                  Не, я имел в виду не анонимные технологии, я имел в виду вполне сейчас нормально работающий FTN over IP, который разве что пошифровать на сессию, как и шифрование базы на нодах/поинтах. а общаться и набирать нод и поинтов так же, как и раньше, после совместного распития пива, что, в общем немного выведёдт народ на улицы, а то совсем по форумам разбрелись и сидят за консолями.

                  Вот только это, правда мало помешает всяким тихарям внедриться. но всё равно, самое интересное всегда отправляется netmail'ом или приватками, вплоть до прямой связи host-host, мимо ноды, если уже приспичит передавать что-то, что не должно пойти по всея сети
                  • +1
                    Шифрование не обеспечивает анонимности, только защиту от прослушки/подделки (в случем случае).

                    Главное — я не понимаю, какие такие «супертехнологии фидо» надо внедрять. Какая из них — «супертехнология»? Пакетная передача данных? Реализуется smtp. Докачка? Не актуально в условиях постоянных каналов (медленно, но докачает). Эхи? У них нет ничего такого «супер», что делало бы их лучше news'ов.

                    Ощущение «настоящего лампового» всё равно не придёт. Мониторы уже не 14" ЭЛТ, и возраст уже не тот.

                    Имело бы смысл подумать о некоторой самоорганизующейся социальной надстройке поверх i2p, которая бы позволила сформировать анонимное комьюнити — и для этого фидо, как трейдмарк/франшиза было бы неплохо.

                    Но упирать на техническую часть… Нет там технической части, особенно за пределами модемных протоколов.
                    • 0
                      Ну я не про анонимность, я больше про возможность альтернативной децентрализованной коммуникации «точка — точка». smtp требует как минимум сервера, а FTN достаточно двух узлов, играющих роль как сервера так и клиента, — подключились, передали, отключились.
                      Всякие гугли/фейсбуки/твиттеры перекрыть можно, а с теми же торентами, как показала практика, бороться тоже можно, но сложно, особенно когда это шифрованное соединение
                      • 0
                        smtp — идеальная схема децентрализованной коммуникации. Один сервер захотел другому отправить — подключился к нему, отправил. Более того, принимающий сервер может указать приоритеты доставки через альтернативные узлы.

                        Считать слово «сервер» чем-то масштабным и громадным — это ошибка. Любой фидошный мейлер, кстати, будет ровно таким же сервером.

                        А узявима почта в одной точке — в DNS, над которым очень и очень суровый контроль. У фидо (если оно на dns полагаться будет) проблема будет ровно такая же. Если не будет — опять же, вопрос не о фидо, а о замене dns на что-то распределённое.

                        В i2p, кстати, подобная почта уже вполне работает.
                        • 0
                          про i2p не знаю, ничего говорить не могу.
                          а теперь внимание вопрос — а что, dns для работы так уж сильно нужен?
                          опять же, мне не лениво прописать в конфиге десяток ipv4 и ipv6 и положить рядом пачку сертификатов для шифрования на них.
                          • 0
                            У dns есть важная роль: она позволяет менять адрес узла, и все кому надо, про это узнают.

                            Прописывать вручную десяток ип — пожалуйста. А прописать пол-миллиарда ИП, при обновлении примерно миллиона записей в день?

                            DNS изобрели в тот момент, когда hosts стал отжирать слишком много ресурсов на обновлении.
                            • 0
                              я не спорю, но что-то мне кажется, при таком общении, я не помню чтобы общался активно больше, чем с десятком респондентов, б) поменять конфиг минутное дело — врядли там надо прописывать полмиллиарда записей всея-фидо
                              • 0
                                Откуда будет известно про смену адреса респондента? От респондента, который поменял адрес?

                                Чую я, у нас сейчас начнётся очередная попытка изобрести децентрализованную систему а-ля i2p/darknet.
                                • 0
                                  Ну, обычно при смене IP провайдером в случае статики клиенту обычно высылается письмо для согласования. ведь уже понятно, что статический IP зачем-то нужен клиенту, раз он за него платит.
                                  Если в таких случаях меняется конфиг vpn, то явно и конфиг ftn будет изменён.
                                  да нет, не будем уходить, я просто к тому что если я захочу коммуникации точка-точка минуя ноду, значит мне не лениво будет и полезть в конфиги роутинга
                                  • 0
                                    Дело не в том, что лениво вам. Если у ваших знакомых это будет происходить? Кто будет следить за актуальностью распределённой системы?

                                    Если честно, в условиях уже пройденного пути с pre-routing'ом (uucp, pre-ip сети, да тот же фидошный роутинг почты), пытаться снова его возродить — глупость.

                                    Есть системы автоматического построения маршрута. Есть DHT, есть попытки сделать ddns. Про них можно говорить. «Мне не лениво ручками поправить» — это не технический аргумент. Сеть должна работать без «ручками поправить» по каждому чиху.
                                    • 0
                                      Ну если я захочу очень приватных p2p коммуникаций, я их сделаю и ручками, а так — стандартный роутинг сети вполне ок, даже с таймаутами, хотя мой рекорд диалапа — 5 минут, даже без костылей
                                      • 0
                                        Тогда я не понимаю, какую задачу вы хотите решать (кроме фетишизма вокруг слова «фидо»). Поднимите почтовый сервер для своего домена — вот вам готовая распределённая система.
                      • 0
                        Я всегда считал, что фидо прежде всего в policy. Именно правила администрирования сети сделали ее такой какая она была. Не анонимность, а независимость.
                        Проблема в анонимных сетях в том, что они неуправляемы обществом этой сети.
                        Хорошая сеть мне видится в виде распределенной mesh сети на основе DHT с авторизацией по сертификатам, которые будут подписываться по цепочке координаторов. Потихоньку я над этой идеей работаю.
                        • +1
                          Полиси довольно сумбурная была, кстати.

                          Я думаю, причина популярности фидо в начале была по причине отсутствия альтернатив и наличию сетевого доступа, а на хвосте своей популярности (когда интернет был в режиме 3.2) — в социальности. Да-да, фидо была первой компьютерной социальной сетью. Это и объясняло её успех.

                          А дальше оказалось, что технологическое бремя перевесило преимущества социальных связей (и фидо повторило судьбу myspace).
            • +4
              Фидо, спасибо, что живой.
              Диал-ап умер, но синтез надёжности FTN с быстротой mesh networks, в свете последних событий, хм, это должно выстрелить.
              Да и с развитием GUI за последние два десятка лет, можно будет увидеть более свежие решения, нежели интерфейсы в текстовом режиме. Хотя что может быть лучше тёплового лампового Голдеда? :)
              • 0
                Не забываем, что одно из основных правил фидо — отсутствие рекламы. Сейчас народ без рекламы затоскует :)
              • 0
                Векторный, не?
                • +4
                  Есть ли документация о том, в какой форме сочинять джаваскрипты под jNode и каков API для них?
                  • 0
                    Как и на обычном JS, используя то API, которое предоставляют ScriptHelper'ы.
                  • +1
                    А в планах есть поддержка одного из «ортодоксальных» форматов баз сообщений (jam, squish, etc)? Интересует прежде всего с точки зрения совместимости с GoldEd'ом :)
                    • 0
                      Проблема в том, что jNode-то хранит в базе ВСЕ. И если даже выгружать это в jam/squish/msg, то читать тоже придется всё.
                      Именно поэтому было изобретено понятие «технический пойнт».
                      Но в принципе конечно можно написать модуль, который будет виртуальным транспортом из базы в jam/squish, заполняя её по мере получения интересующей почты.
                    • +6
                      INSTALL.ru.koi8.txt
                      искренне прослезился…
                      • 0
                        Отлично, что дотянул до релиза! Прямо респект!

                        Я поправил ссылки на картинки в «Истории одного поинта», чтобы позорно не смотрелось.
                        • 0
                          Интересно, а на jre 1.6 (у нас в OS/2 более свежей, пока, нет) запустится?
                          • +1
                            Вообще проект писался под 1.7, но могу пересобрать для 1.6 если нужно.
                        • 0
                          Когда-то была нода 2:5074/33 и, какое-то время даже хаб 2:5074/11, но сейчас переехал в другой регион, и, если даже вспомнить былое, то нужно заново все продумывать. Раньше у меня на работе был халявный межгород, и был какой-то смысл раздавать пакеты людям, а сейчас сеть фидо совершенно децентрализована, и может работать по ip без всякого роутинга. Т.е. никому не нужны хабы и ноды. И, если вдруг закрутят гайки инету, то навернется и фидо. Хотя где-то еще лежит старый рабочий модем IDC с дягилевской прошивкой. На случай атомной войны может и пригодиться. Но врядли. Аналоговых телефонов больше почти ни у кого нет.
                          • 0
                            Гайки закручивают не «интернету» вообще, а вебу в частности.
                            Хабы нужны как узлы высокой надежности, у которых нет ночей с пятницы на понедельник :-)

                            Тем более, что при нынешних объемах почты относительно мощности компьютера нода вообще ни разу не требует присмотра.
                            • 0
                              Ну да. Практически у всех девелоперов есть свои выделенные серверы. Можно настроить на них софт, и запустить фидо. Иногда не хватает той старой атмосферы эхоконференций, когда люди были добрее, и называли друг друга на ты.
                              • 0
                                Атмосфера, атмосфера. Её люди создают. На Хабре тоже атмосфера :-)
                                Просто в Фидо люди концентрировались в одном месте, а в Интернете они растекаются — по персональным блогам, аккаунтам соцсетей и каналам ютуба.
                                • 0
                                  фидо бы не выдержало такого количества поинтов :)
                                  • 0
                                    У меня в периоды хабраэффекта по прошлым статьям приходило по 300 заявок. Ничего, выдерживало :-)
                                    • 0
                                      Я имею в виду, что все старое фидо можно уместить в один нынешний форум. Но ни один форум не выдержит всех людей, которые сейчас пользуются интернетом.
                          • +1
                            Fido мертв. RIP. 2:5030/758.14
                            • 0
                              Спасибо, я ждал этого комментария!
                              • –1
                                Быть может, скоро, из-за законодателей, воскреснет. ;)
                            • –2
                              Нажал ctrl+f, ввел «Mith...». Все в порядке, я спокоен.
                              • –1
                                А он тут при чем?
                                • 0
                                  Кстати, я знаю, что Фидо мертво, все полимеры давно закончились

                                  Подобный сарказм суммонит нечистого.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.