Skip to content

Freenet

Oleh Shklyar edited this page Apr 6, 2021 · 43 revisions

Tunnels

Pisces and X-Vine: Tunnels and better routing on darknet?, X-Vine: Secure and Pseudonymous Routing Using Social Networks

main directions of development

  • Скорость загрузки
    • Проверить есть ли расброс по скорости на разніх блоках
  • Минимизировать віпадание и обеспечить восстановление блоков
  • Использование памяти при работе с большими файлами
  • Рассмотреть варианті атак
  • Мелкие улучшения, багфикс, рефакторинг

TODO

  • Дока - wiki статьи
  • Не доделали:
    • Freemail: missing id in wot
  • Когда решали проблему загрузки большого файла, помимо свободного места на диске всплыл вопрос большого использования оперативной памяти - вероятно, метаданные блоков записываются в память - разобраться и лимитировать использование памяти, записывать на диск
  • https://github.com/mgrube/Phage
  • Roadmap:
    • Fix Library (and Spider - FMS threadid=552):
      • Scalability At the beginning, the Spider plugin was spending most of it's time on crawling new freesites. But now the index contains nearly 34k indexed pages, and the Spider plugin is spending nearly 99% of time on the "stalled" status.
      • Keywords the plural words are treated as completely different words, searching for one form cannot find the other form.
      • Pagination 15MB HTML page.
      • index , we simply need somebody to run the spider on a fast machine to rebuild such an index.
    • Connect to FOAFs: This could dramatically improve performance on darknet plus Option to see friends of a friend большая хорошая задача
    • Keepalive related stuff: я собираюсь закончить хранение топ блока в Keepalive в текущей итерации, но этот плагин один из очень важных, там еще много задач можно найти
  • Видео установки Freenet и FMS. win/linux
  • Node store size and location: По идее locations должны быть равномерно распределены. Routing key блока получается из хеш функции, которая также должна иметь равномерное распределение. Routing key может быть трансформирован в location и на больших количествах блоков также должно быть равномерное распределение по нодам. Но, ноды могут иметь разный размер хранилища и как следствие, ноды с маленьким хранилищем будут получать аналогичную нагрузку, как и ноды с большим хранилищем > будут более быстро терять блоки (LRU). Второй вопрос: для привлечения пользователей стоит задуматься о возможности существования нод вовсе без хранилища, которые будут подключатся к сети время от времени.

Install Freenet

wget 'https://github.com/freenet/fred/releases/download/build01484/new_installer_offline_1484.jar' -O freenet_installer.jar
java -jar freenet_installer.jar -console
Q: Select target path. Type: Freenet

sudo apt install lynx

First notes

  • ./bin/remove_cronjob.sh убрать автозапуск
  • ./run.sh запуск, остановка, запуск с удержанием консоли

Open Freenet for local net

vi freenet.ini

fproxy.allowedHosts=*
fproxy.bindTo=0.0.0.0
fproxy.allowedHostsFullAccess=*

FMS

dpkg --print-architecture
> amd64
cd ../fms-linux-amd64-bin-0.3.82/
./fms
> ./fms: error while loading shared libraries: libfreeimage.so.3: cannot open shared object file: No such file or directory
apt-cache search libfreeimage
> libfreeimage3 - Support library for graphics image formats (library)
sudo apt-get install libfreeimage3
./fms
> FMS has been started.

FMS from sources

sudo apt-get install cmake
sudo apt-get install libpoco-dev
sudo apt-get install build-essential
cmake -D I_HAVE_READ_THE_README=ON .
make
./fms

Open FMS for local net

Options > switch to Advanced mode > HTTP Server > HTTPAccessControl and HTTPAllowedHostHeader fields

Когда вносишь изменения в настройки есть вероятность потерять доступ к программке. Тут может быть полезным знание как поменять настройки без запуска fms. Так, настройки хранятся в БД. БД - SQLite, это файл fms.db3, нужен sqlite browser с помощью которого можно открыть базу данных, найти и поменять настройки (табличка tblOption).

FMS notes

Private forum

FMS can run be set to use an alternate message base allowing for an entire forum system that no one has to know even exists.

Options→Advanced→MessageBase
If you want to be able to use normal FMS along with it then at least one will need to be standalone and in a separate directory and you'll have to change the NNTPListenPort and HTTPListenPort so they don't conflict.
You'll also need to manually add other peoples' IDs as the seed IDs that come with FMS won't exist.

Is it easy to find such a private forum?
Unless someone blabs about it in public it should be impossible to find.

-- adilson_lanpo

Instead of modifying the FMS messagebase with all the connected problems like having to run multiple FMS to still use the normal one, you could just use Frost and make a private (keyed) board. Without the proper keys, nobody will ever find out it even exists and Frost is a lot more user-friendly than FMS.

-- naejadu

One could also change the base from "news" (Frost) or "fms" to a different one. Cheap and no security, though.

-- dsicr

Dev

  • Email news
  • Запуск в debug mode:
    • fred - указать в ide work dir ту где установлен Freenet и пуститься с freenet/node/NodeStarter.java#main(String[])
    • plugin - собрать плагин в jar, скопировать в папку src плагина папку fred/src и пуститься с NodeStarter. После этого установить плагин из собранного jar и тогда станут доступны брейкпоинты в плагине

Papers

2017 Statistical Detection of Downloaders in Freenet

2013 Black Ice: The Law Enforcement Freenet

Links

Projects

  • FreenetKnowledge git Spring, Apache Lucene, H2. "... crawl the freesites and FMS to retrieve all the possible urls"

WWW Site

  • у меня не сработали сабмодули - просто скопировал папку в проект, заработало
  • для запуска нужно перейти в virtualenv
E: Unable to locate package python-pip
E: Package 'python-virtualenv' has no installation candidate

sudo apt-get install python3-pip python3-virtualenv

Stats

sudo docker run -d --name frn0 ubuntu
sudo docker ps
sudo docker exec -it frn0 /bin/bash

apt-get install elinks
useradd -ms /bin/bash me
su - me

docker stop frn0
docker commit frn0 frn
sudo docker run -p 8887:8888 -td frn
sudo docker ps
sudo docker system prune -a
sudo docker stop hopeful_thompson
sudo docker commit hopeful_thompson frn3
sudo docker run -td frn3
sudo docker exec -it angry_gauss /bin/bash

File not in archive: can't find file

Re-inserting will never fix an error of "File not in archive" in my experience. The problem is not a dead key. If the key is dead, the error will be something like "Data not found".
Anytime you see "file not in archive", the way you troubleshoot that is to install the "Key Utility Suite" if you don't have it already, it's a standard freenet plug-in. Then paste the key into file explorer, and note the file name.
Nine times out of ten, what I see comparing the file name of the key with the file name shown in key explorer is a mismatch of file names, and in fact that's what I see in this case. (I haven't figured out the other 1 in 10 completely but I think it's got something to do with unicode characters).
Indeed this is one of the 9 of 10 where the file name in the key doesn't match the file name shown in key explorer, so to fix the problem, you have to make them match somehow. The easiest way without doing any inserting is to paste the key into a text editor, change the file name so it matches the file name in key explorer, then copy and paste the edited key, and it should work.
What I haven't figured out is how these mismatches occur in the first place, or how to prevent them, because it's never happened to me. People must be doing something very strange to get a key with a different file name than the one they inserted, but I have no idea what.
The file name in the key has a space in it: The.Pruitt-Igoe.Myth preview.jpg
The actual file name that was inserted, doesn't have a space in it, how does the underscore in this file that was inserted, get changed to a space in the key you posted? I don't understand it. This is the file name as inserted, according to key explorer.
The.Pruitt-Igoe.Myth_preview.jpg
If you use that file name at the end of your key, it should work.
FMS post

Clone this wiki locally