Roadmap - redwerk/fred GitHub Wiki

Table of Contents

0.8

Функции, без которых мы не можем выпустить релиз

Исправить установщики
Установщик Windows часто ломается, и в настоящее время нам нужна 32-битная Java для оболочки. Исправлено но еще полностью не зарелизино

Функционал, который, вероятно, войдет в релиз

Улучшения Darknet
Смотрите 0.8.5. Легкие части из этого были бы очень полезны, учитывая наше желание увеличения аудитории Freenet в режиме даркнет. Надеемся, что это поможет с маркетингом в целом, тем более, что мы должны показать довольно сильные предостережения для режима opennet в мастере первоначальной настройки. В частности, мы хотим реализовать большинство вещей, связанных с FOAF соединениями и приглашениями.

Уже реализовано

✔ Исправлен wininstaller
Windows installer должен работать надежно. Альфа была развернута. Основная трудность заключается в том, что текущий код не может надежно завершить работу установщика, поэтому его необходимо выполнить вручную при обновлении, а удаление иногда не работает мгновенно. Мы должны исправить это до выхода версии 0.8.0. Тем не менее мы избавились от служебного кода, поэтому установка в основном работает. Есть также проблемы с проверкой на вирусы; у некоторых из них есть программы белого списка.
✔ Больше нод для более высокой скорости opennet
Максимальное количество соединений варьируется от 10 до 140 в зависимости от пропускной способности.
✔ Обновление Plugin через Freenet
✔ Bulk запросы вместо запросов в режиме реального времени
Bulk запросы оптимизированы для пропускной способности, запросы в реальном времени оптимизированы для задержки. Fproxy использует запросы в реальном времени, большие загрузки обычно используют bulk запросы.
✔ Сокращение ввода-вывода в базу данных
Специализированная структура, заменяющая фильтры Блума для магазина: хранит карту первых нескольких битов ключа. Это реализовано в ветке store-io, которая еще не задеплоена.
✔ Freemail
Zidel улучшил Freetalk для интеграции с Web of Trust, с более короткими адресами, используя CAPTCHA для предотвращения спама, лучшая производительность и надежность, а также веб-интерфейс, для его Google Summer of Code проекта.
✔ Удаление db4o
Летом 2014 года toad удалил db4o. Это было сделано как purge-db4o в релизе 1468, с срочным исправлением бага в релизе 1469. Это должно быть обязательным, и все еще могут быть недоработки, которые необходимо проверить.
✔ Многоконтейнерные бесплатные сайты
Thanks saces. Наконец-то объединены для постоянных запросов в purge-db4o.
✔ Сделать wrapper.jar обновляемым
Это реализовано и, очевидно, работает в большинстве случаев (очень старые установки могут иметь проблемы). Следовательно, мы исправили некоторые неприятные ошибки, обновив упаковщик. В конечном итоге планируется более полно разделить freenet-ext.jar.
✔ Исправлен MP3-фильтр + аудио тег
✔ Оптимизация под CPU, дисковый ввод/вывод
✔ Улучшения автообновления
Облегчите изменение ключей автообновления, если это будет необходимо. Также внесены небольшие изменения в обновление плагинов, чтобы мы могли обновить важные плагины, и избегать форсирования ненужных обновлений. То есть используйте старый и скачайте новый, разверните его после запроса пользователя или после перезагрузки.
✔ Простой способ вставить большие бесплатные сайты
Предоставляется jSite и freesitemgr (от pyFreenet) для сайтов до нескольких сотен файлов и нескольких гигабайт данных.
✔ Ogg Vorbis, Ogg Theora
Ветки Sajack-а оддерживают фильтрацию этих распространенных открытых аудио/видео форматов. Они были объединены в next.

Функционал, который мы могли бы замержить

Исправить или удалить плагин Library
Индексы нового формата легко обновляются и являются актуальными, но поиск обычно не работает. Код был обновлен для хранения метаданных для каждого узла btree в указанной выше ноде. Нам просто нужен кто-то, чтобы запустить spider на быстрой машине, чтобы перестроить такой индекс. Надеемся, тогда производительность будет лучше. В качестве альтернативы просто удалите поиск на данный момент и полагайтесь на индекса сайтов и закладок. В релизе 1474 были заменены устаревшие индексы, по умолчанию не активируя Library.
Фильтры RSS, ATOM и SVG
Требуется новый файл freenet-ext.jar с библиотекой JDOM, но код уже существует. Хотя возможно будет необходимо тестирование. Фильтр CSS того же автора потребовал много работы, чтобы отшлифовать, протестировать и заставить правильно работать.
Sone
Популярное приложение для микроблогов и социальных чатов стоит сделать официальным. Тем не менее, у него все еще есть проблемы с масштабируемостью.
Jfniki
Jfniki, вероятно, стоит сделать официальным, если оно в нужном виде (используя toadlet-ы).

Функции, которые будут полезны и не слишком сложны

0.8.5

Предлагаемый точечный релиз с акцентом на даркнет: безопасность, удобство использования, функциональность. Без сомнения, многие мелкие не связанные вещи выскакивают.

Возможный функционал: DARKNET!

https://bugs.freenetproject.org/view.php?id=4621

Исправить Pitch Black атаку
Это очень важно в случае серьезного использования даркнета. У Оскара есть предложение, но его еще никто не смоделировал.
Посмотрите баг 3919. Возможно, стоит попытаться опубликовать что-нибудь, как только с этим разберутся.
Подключение к FOAFs (друзьям друзей)
Это может значительно улучшить производительность в даркнете, особенно для новичков, так что стоит войти в freenet через одного друга.
Правильные приглашения
Возможно, включая установщик, разовые токены, которые можно использовать для подключения. Вероятно, будет несколько друзей, чтобы попытаться избежать проблем с NAT и временем безотказной работы.
Возможность видеть друзей друга и повышать их до уровня друзей, если вы их знаете
Очевидно, что все эти вещи будут необязательными (общий отказ и уровень видимости для каждого друга). Но именно так растут «обычные» социальные сети. Это могло бы очень помочь. Мы также хотели бы сообщить пользователю, когда его друзья добавляют новых друзей - при условии, что эта информация общедоступна. Изминение друга друга в друга, вероятно, потребует внешней проверки пароля для безопасности.
Постоянно делитесь загрузками и закладками, а также хорошим пользовательским интерфейсом для друзей, друзей друзей, файлами, закладками и так далее
Может, больше нравится интерфейс социальной сети. Показать имя, статус подключения, недавние сообщения, закладки, файлы и так далее. Какая-то сводка на странице друзей, подробная информация обо всех файлах и так далее на одной или нескольких отдельных страницах. Отметьте каждую из наших загрузок, загрузок и закладок уровнем доверия, чтобы мы могли поделиться ими, если захотим. Предоставьте возможность поиска в общедоступных загрузках наших друзей.
Быстрые загрузки от друзей
Как только мы найдем файл в загрузках друга, мы сможем загрузить его как из Freenet, так и у этого друга, а также у других друзей. Это будет на другом уровне, чем совместное использование фильтров Bloom, поскольку его, вероятно, не будет в их хранилищах данных.
Совместное использование фильтра Bloom (только в даркнете)
Это очень вероятно приведет к серьезным эксплойтам в opennet, но вполне жизнеспособно в даркнете. Конечно, осталось еще несколько вопросов о том, как именно это реализовать. Совместное использование фильтров слотов нового формата может позволить, например, атаковать цензуру, поэтому нам может потребоваться сохранять или регулярно создавать разделенные фильтры Bloom.
Гораздо лучший чат для друзей
Довольно важно ИМХО. Может быть, социальная сеть - личные сообщения плюс публичный форум/стена и так далее.

Перенесенные функции из версии 0.8

Почистить freenet-ext.jar
Это следует разделить более полно. infinity0 проделал некоторую работу над этим. У нас уже есть инфраструктура для развертывания и обновления отдельных файлов jar для разных компонентов.
Полноценное использование этого позволит нам развернуть код в зависимости от более свежих jar-файлов, таких как некоторые фильтры, которые еще не были объединены. Чтобы решить эту проблему правильно, потребуется найти универсальное решение для безопасной сборки кода, использующего Maven.

0.9

Возможный функционал

Новый пользовательский интерфейс
Ян очень увлечен этим. Для этого нужно будет широко использовать Javascript и это все еще обсуждается. Вероятно, это достаточно большой проект, и это будет функция 0.9, а не 0.8.
Совместное использование фильтра Bloom
Должен значительно улучшить производительность в даркнете, а также обеспечить способ поглощения дополнительной пропускной способности при быстрых соединениях, уменьшая возможности для анализа трафика. Пока не ясно, будет ли это важным в opennet: можно обмениваться фильтрами Bloom с долгосрочными одноранговыми узлами opennet, но это бессмысленно, если они не долгосрочные ...
Улучшения для Web
Проект Sashee's Summer of Code, который включает динамическое обновление некоторых частей пользовательского интерфейса, загружает все встроенные изображения сразу и показывает прогресс для каждого (таким образом решается проблема ограничения подключения браузера), мержится, но по умолчанию отключено из-за проблемы в дизайне, приводящей к потере событий и, как следствие, зависанию (особенно в медленных браузерах). Было бы хорошо исправить это и включить по умолчанию. Это останется необязательным.
Материалы, связанные с Keepalive
Плагин Keepalive поддерживает мониторинг доступности файлов и их повторную вставку. Нам необходима более хорошая интеграция с ним. В частности, мы должны сохранить верхний блок в виде двоичного двоичного объекта, чтобы файлы разделения на основе SSK можно было легко повторно вставить. Кроме того, должна быть возможность запускать Keepalive или аналогичные (повторные вставки и так далее) со страницы загрузки или выгрузки. Кроме того, нам, вероятно, понадобится какой-то пробный запрос, чтобы разрешить проверку доступности при обходе ближайших кешей.
Защита по времени
Относительно небольшая вставка может быть отправлена ​​с флагом, указывающим не направлять запрос на какой-либо узел, добавленный после определенного времени (ограничивающим фактором будет то, как давно был этот момент). Это будет лучше, чем отслеживание источника мобильного злоумышленника для повторных вставок (хотя, конечно, это остается возможным между вставками). Реальное решение, либо туннели рандеву, либо безопасная пакетная передача (транслировать все запросы сразу, а затем передавать данные в потоковом режиме, требует управления нагрузкой на основе емкости, вероятно, работает только в даркнете), будет реализовано в 0.10.
Больше работы над плагином Library
Плагин поиска Library должен быть надежным и очень быстрым. Ему также необходимо эффективно обрабатывать стоп-слова (и, например, в китайском языке, стоп-символы). На баг-трекере есть различные варианты. В частности, предварительная выборка верхнего уровня или двух, агрегирование стоп-слов / символов со смежными словами и структурирование формата on-freenet так, чтобы нам нужно было получить только весь узел, если выборка единственного блока, который нам нужен, не удалась (хотя мы все равно выберем некоторые другие блоки для резерва), что должно означать, что мы можем выполнять поиск примерно в одном блоке на слой.
Интегрируйте Freemail
Нам нужна улучшенная интегрированная Freemail, чтобы вы могли отправлять личные ответы на общедоступные сообщения.
Починить Pitch Black атаку
Это уже должно было быть исправлено.
Инструменты для обмена файлами
Когда библиотека заработает хорошо, базовый распределенный поиск файлов на основе WoT не будет таким сложным. Об этом стоит серьезно подумать.
Ключи с несколькими хешами
Резервирование в верхнем блоке.
Разделенные файлы (любой файл, который не помещается в сжатый 32 КБ) имеют 100% избыточность - мы вставляем N блоков данных, а затем еще N проверочных блоков, и в пределах сегмента (128 блоков) мы можем восстановить все блоки из любых 128. Но над всем этим обычно есть один блок CHK.Хотя это, вероятно, более популярно, чем нижние блоки. Все еще существует вполне реальная вероятность того, что он застрянет в черной дыре или его будет трудно извлечь через некоторое время: мы изначально отправляем данные в кеш 24 узлов, но они будут сохраняться в хранилище только на 3 узлах, и они могут быть отключены. Тем не менее, есть данные, позволяющие предположить, что улучшения вставок могут дать тот же эффект, но без использования нового типа ключа, который не мешает работе.
Режим паузы
И значок на панели задач, чтобы вызвать его. Это популярно среди пользователей, но, учитывая быструю загрузку, которую мы сейчас наблюдаем в opennet, вероятно, в этом нет необходимости.
Больше изменений в программе обновления и более безопасное развертывание
Различные идеи для этого в системе отслеживания ошибок, например: отделите ключи, необходимые для активации выпуска, от фактического SSK, чтобы вставить его.
Freetalk
Freetalk теперь является официальным плагином, который можно легко загрузить. В конечном итоге он будет объединен, и пользователю будет предложено создать удостоверение во время или вскоре после установки. Freetalk требует значительной работы по оптимизации, а также некоторой работы над удобством использования. В основном это остальное связано с использованием процессора, базы данных и диска Freetalk, в частности, WoT и Freetalk должны взаимодействовать на основе событий. (в настоящее время он делает много ненужного доступа к базе данных и может потерять идентификационные данные, а затем вернуть их, что очень плохо для удобства использования).
IMHO (Toad), необходимо будет буферизовать записи таким образом, чтобы транзакции можно было агрегировать, сохраняя при этом согласованность и возможность отката через настраиваемый IoAdapter. Что может быть гораздо более серьезным, так это влияние на более широкий Freenet многих пользователей WebOfTrust / Freetalk (значительно большая база пользователей, чем FMS, чего мы можем разумно ожидать, если объединим Freetalk). Были реализованы подавление запросов RecentlyFailed и новый формат пакета, которые должны помочь снизить расходы на полинг. Надеюсь, нам пока не понадобятся полные пассивные запросы.

Дополнительные фильтры контента

Больше аудио / видео фильтров
Нам нужно больше фильтров контента. Matroska / VP8 будет хорошим началом. К сожалению, получение документации для H.264 - это довольно дорого, поэтому мы, вероятно, пока будем придерживаться открытых форматов, но VP8 - это огромное улучшение по сравнению с Theora. Многие организации, вставляющие видео, могут перекодировать его без особых проблем. Кроме того, работа sajack включает в себя основы пользовательского интерфейса воспроизведения, изначально способного к потоковой передаче и который может быть расширен для воспроизведения только тех частей, которые мы загрузили, то есть пропускать сегменты, которые не были загружены. Еще нам нужен фильтр для FLAC.
Другие фильтры
Файлы PDF действительно важны, например, для документов, получаемых в результате утечки. Они также потенциально компрометируют на многих различных уровнях. Базовый фильтр PDF достаточный для большинства целей, вероятно, можно было бы относительно легко реализовать, хотя полная поддержка была бы довольно большим проектом (спецификация чудовищна!). Файлы OpenOffice и так далее могут стать реальностью, но для этого необходима большая работа.Фильтрация Javascript теоретически возможна, см. Страницу вакансий, но это огромная задача, и она сопряжена с остаточным риском.

0.10

Возможный функционал

Пассивные запросы
В долгосрочной перспективе необходим для масштабируемых чат-приложений, но и сам по себе является большим улучшением.
Долгосрочные запросы
Расширение пассивных запросов, позволяющее перемещать данные, пока отправитель в режиме офлайн. Сильно зависит от управления нагрузкой на основе емкости. Большой шаг к HardStego, то есть к транспортировке не в режиме реального времени.
Управление нагрузкой на основе емкости
Новое управление нагрузкой в билде ​​0.8 в некоторой степени способствует этому. Но для того, чтобы он действительно сиял и позволял выполнять долгосрочные запросы, нам необходимо иметь очень большую емкость для подключений через даркнет для долгосрочных запросов.
Безопасная пакетная передача данных
Отправляйте все запросы (или вставки) сразу, и они немедленно маршрутизируются (и передаются эффективно, часто в одном сообщении). Затем данные передаются за более длительный период. Тайм-ауты происходят во всей структуре, а не в отдельных запросах. Следовательно, мы опережаем отслеживание исходных кодов мобильных злоумышленников, даже если выполняем большие предсказуемые (повторные) вставки.
Рандеву туннели
Зашифрованные туннели, довольно дорогие, но с маршрутизацией не строго от источника, но обеспечивающие анонимность, сравнимую со всей сетью, используется параноидальными пользователями, не доверяющими своим пирам, и для "верхних блоков", то есть предсказуемой части вставки.
Плагины транспортировкии
Стоит серьезно задуматься, очень популярен по uservoice. Никакого реального повышения безопасности, за исключением даркнета, и, вероятно, довольно много работы.

1.0

Важная работа

Много дебаггинга!
Рассмотреть правильный, отдельный, чистый, стабильный API плагинов.
Много работы над пользовательским интерфейсом.
Если возможно, больше фильтров контента.

Post-1.0

Возможный функционал

Plugin sandboxing
Вероятно, это будет в версиях после 1.0.
Фильтрация Javascript
Вероятно, это будет после 1.0 - или никогда (учитывая, что защита Javascript - открытый вопрос исследования).
Долгосрочные запросы с офлайн-поддержкой
Это вероятно будет после версии 1.0. Он может быть основан на плагине shoeshop.

Смотрите также

  • Roadmap на баг-трекере.
⚠️ **GitHub.com Fallback** ⚠️