Rogalik пишет:Почему не управление по ControlPort, как это предусмотрено искаропки и как это делают всякие Vidalia браузер?
Через ControlPort нельзя подключать авторизованные HS, это меня основательно так выбесило. Но можно вместо системного тора запускать процесс скриптом, конфиг генерировать тоже скриптом и только в памяти, запускать так целую серию процессов, применять разные патченные бинарники тора для разных задач. Если штатно не шаманится как надо, можно повыдирать из системы детали и самому как надо переделать. Вот для этого и приходится лезть не только в доки, а ещё в код и алгоритмы.
В распределенную сеть даже можно впихнуть то что по стандарту и по коду нельз. Это не баг программистов, каждый тор демон работает как положено. А невозможные свойства - возникают из суммы алгоритмов работающих распределенно. Простой пример: randevouz point'ов в HS2 по докам и по коду впихивается не больше 10ти, лимит на размер. Реально 30 впихивается простым мозговым усилием, но этого было мало. В одном тесте работало 500 тор инстансов одновременно, в порядке эксперимента. Секрет прост - можно применить дизеринг к передаваемым в сеть дескрипторам, т.к. hsdir протокол не делает атомарной синхронизации. Впихиваем 500 виртуальных инстансов в 10 стандартных ячеек и всё влазит. Влезет и 1000 если пихать сильнее, только сеть жалко, её ноды не резновые. Сеть у тора по абсолютному масштабу совсем маленькая, перегружать её без необходимости - большое свинство.
Однако таких фокусов в коде тора вообще не предусмотрено. И интерфейсов для их добавления - тоже. Считаем всё вручную и вкрячиваем в сеть, посылая байтики на порт. Пишем на пыхе. От тора берётся только движок HS протокола (в любом количестве, какое влезет в серверные железки), а управление внешнее. Это такая внешняя фича. из 500 горбатых запорожцев клеим соплями карьерный самосвал. И блеять, оно тянет, хоть и это всё криво. КПД его движка весьма паршивый. Переписать бы, чтобы сразу получился самосвал. Но запорожцы уже есть беспатно, аппаратных ресурсов не жалко (они используются пиздец как неоптимально), потому проще поклеить. Я такое называю техношаманством....
И блеять, в программировании такое везде и всюду. Ресурсы машины стали больше и дешевле, задачи на них решают те-же что десятилетия назад. И по прежнему - их не хватает. Программирование - отрасль с уникальным путём развития. Дурацким.
Редактировался ЕУ (2018-10-16 18 ч.)