a35659cf89142573a752e7620ac169a1[1].png1,7 Мб, 1920x1024
Официальный Наноборды тред /stegano/ 45030 В конец треда | Веб
Предыдущий: https://2ch.hk/crypt/arch/2016-08-31/res/14463.html (М)
Суть: школьник, увлекающийся программированием запилил некоторое дерьмо (на самом деле ничо так) на основе относительно старой идеи о распределенной стеганографической АИБ, встраиваемой в обычные АИБ.
Скачать без смс - https://github.com/nanoboard/nanoboard/releases
2 45031
>>45030 (OP)
Когда уже на нормальный язык перепишете?
3 45033
>>45031
Чем C# не нормальный? А Scala? На каком языке хочешь?
4 45034
>>45033
Там сам сервер на C# а клиентская часть на HTML/JavaScript.
https://github.com/username1565/nanoboard
Тут есть некие обновления и коммиты, и даже открыты Issues!
Чел работает и с JavaScript и с C#. Можно с ним связаться через Issues предложить чё-нить.
5 45036
>>45030 (OP)
Тест lite-server'a в TOR'e: http://nboardn46ay6ycdi.onion/
У кого-нибудь открывается через TorBrowser?
Если да, то пишите баги и чо исправить/добавить.
6 45044
>>45043
Просто у тебя тор еле бздит.
7 45047
>>45043
Попробуй через tor2web gateway, .onion.pet https://nboardn46ay6ycdi.onion.pet/
прямо из веба, должно работать,
но оно очень медленное и часто отваливается.
8 45059
>>45036
Заебись, даже постинг через торбраузер работает.
9 45060
>>45033

>А чем же говноподелие мелкософта cumпилирующиеся в байткод не нормальный?


Действительно.
10 45061
>>45060
Да, а ты минифицированные JS-файлы карасика из .jar-архивов уже пробовал редактировать?
11 45067
скиньте скрин борды
какие там в основном посты
12 45068
Что это вообще и нахуя оно мне надо ?
13 45071
>>45067
Зайди и посмотри сам.
>>45068
Сам смотри надо оно тебе или нет. Борда - с открытым кодом это. Принципиально немочерируемая.
14 45075
>>45030 (OP)
Не видно постов. ЧЯДНТ?
15 45079
>>45075
Там говнокод, сам конпелируй. УМВР.
16 45080
>>45075
Хуёвое прокси, походу.
17 45081
>>45075
Я у себя бороду эту жутко шатаю. Иногда отключаю и забываю подключать. Как захожу, сражу вижу кто-то ломится, лол.
Как закончу - выложу свои сопли на гитхабе.
18 45089
>>45030 (OP)
Кстати, вот кулстори если чо, про разрабов -
Школьника и Каришу: https://ibaka.ru/u6mKBb0spMw
Как они пришли к идее наноборды и как её реализовали,
ну и как ебались, сосались там, няшились под пледиком без мочи вонючей.
19 45090
>>45089

>мочи


Подразумевается мочерация, модерациоаналистичная.
20 45091
>>45080
Там где файл proxy.txt, внутри - ссылки на списки свежих проксей.
21 45093
А разве слово "наноборда" не было в спамлисте харкача?
22 45095
>>45093
Он, видимо, настолько уже переполнен, что пришлось удалить этот сраный эксабайт мусора.
23 45096
>>45075
Возьми другие, живые proxy, там же есть список сервисов с проксями:
https://github.com/username1565/nanoboard/blob/master/proxy.txt
А ещё можешь удалить/переименовать файл proxy.txt и без прокси собрать контейнеры.
24 45115
>>45030 (OP)
Подскажите, как эту борду можно при помощи mono скомпилировать?
Nanoboard 3.3!.PNG82 Кб, 1165x766
25 45120
>>45030 (OP)
Репост с этого треда на тородваче: http://76dqlkbo4ffj475k.onion/s/res/771.html

Раз в 4 года можно увидеть не только 29 февраля,
но ОХУЕННОЕ ОБНОВЛЕНИЕ - НАНОБОРДЫ!

Встречайте Nanoboard 3.3,
с lite-server'ом для расшаривания
и возможностью включения постинга без каптчи!
https://github.com/username1565/nanoboard/releases/tag/3.3

>>45115
Лучше спроси у разрабов моно.
26 45121
>>45120
Картинок нет в принципе?
27 45123
>>45121
Почему же? Есть.
images.PNG189 Кб, 625x968
28 45124
>>45121
Ты хоть бы потыкал что-ли? Посты с картинками бы просто в скрин не полезли.
А так-то они есть. Что ж это за imageборда если она без images?
Вот, смотри какие замечательные фракталы, есть здесь: http://nboardn46ay6ycdi.onion.ly/download/
И даже collect их можно производить оттуда.
Здесь: http://nboardn46ay6ycdi.onion/download/ через TorBrowser, можно видеть все расшаренные файлы.
Среди них есть и исходники с обновлениями, лежащие здесь: http://nboardn46ay6ycdi.onion.ws/download/?zip_only
и каптча доступная здесь: http://nboardn46ay6ycdi.onion.pet/captcha.nbc
Через TOR, всё это добро, раздавать децентрализированно не просто анонимнее, но и проще, и безопаснее.

Ну и, наверное, самое главное... Теперь, ты тоже так можешь!
29 45126
>>45124
Спасибо, анон.
30 45130
>>45115

>xbuild is the Mono equivalent of MSBuild for linux:


>xbuild /p:Configuration=Release HelloWorld.csproj

31 45160
>>45030 (OP)
Я вам промисы принёс https://github.com/username1565/nanoboard-javascript-captcha/blob/master/index.html
- за квартиру, за Январь...
Чтоб каптчу локально ты - сам вводил, тупая тварь.
https://username1565.github.io/nanoboard-javascript-captcha/index.html
И не ддосил мой сервак, на вот этом имени: http://nboardn46ay6ycdi.onion/
чтоб нбордочка была - ещё неистребимее!
Как же долго каптча-пак, я препечатывал,
ебануться сколько букв, вручную обрабатывал...
Это всё лишь для того, чтобы ты не лез ко мне,
а локальненько каптчу ввёл, к своей же - простыне.
А потом на сервера, все посты сможешь залить,
JSON'ом, как всегда - хуле тут ещё мудрить?!!
И хоть пачкой их там пость - JSON'чиком посты,
там ведь даже API есть, для таких, спецом - как ты.
Если нравится проект - "заходи на огонёк": http://76dqlkbo4ffj475k.onion/s/res/771.html
Это лучше чем плевать - шмарклями на потолок.
Стегу нам бы заюзать - в видеотрансляциях,
так, отправим мочерню - на утилизацию.
32 45588
34 45730
>>45160
Ссылка, теперь - тут: https://github.com/username1565/nanoboard-javascript-captcha/blob/nanoboard-javascript-captcha/index.html

А тут: https://username1565.github.io/nanoboard-javascript-captcha/
немного модифицированный TweetNaCl.js
На вкладке Sign доступна цифровая подпись base64-encoded 32-байтными ключами Tox'a, ну и проверка её.
35 46566
>>45030 (OP)
Насрал в dev-бранче коммитами.

Чтобы запустить бороду на линупсах

>sudo apt install mono-runtime


>sudo apt-get install mono-complete


>cd /mnt/drive/папка-с-бордой/


>mono nanodb.exe



Вся хуйня здесь:
https://github.com/username1565/nanoboard/blob/dev/run.sh
36 46694
>>45030 (OP)
Как пришпандорить сюда SQLite, блядь?
Знаю, что СУБД open-source'ная, но на шарпе - это пиздец.
Столько пердолинга, что я уже заебался просто.
Нашёл, короче, вот здесь: https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
полный код sqlite-netFx-full-source-1.0.113.0.zip 57a4a873c839314d2adbf3e3c737fefa8fdff72e

Попытался скомпилировать всё это дело с помощью Microsoft Visual Studio 2010 , а оно какие-то ошибки бьёт, 600 ошибок, но файл вроде есть. System.Data.SQLite.dll в три мегабайта, содержит в себе всю хуйню, в том числе и System.Data.SQLite.Interop, походу - в одной длл-ке.
Гуя для сиквелайта, на шарпе, годного не нашёл, чтобы с этой либой работал, приходится ручками, через консоль.
Тестовый пример, вроде работает. Создал базу, и таблицу в ней, вписал данные, прочитал, вывел. Всё в консоли.
А как блядь в борду прихуярить - вообще не ебу.
Может кто знает, как впилить это дело? На mono оно должно будет тоже завестись, и главное чтобы сорец был полный, чтобы эти dll-ки бинарниками не прикладывать, а из сорца собрать.
37 46702
>>46694
Нашёл это https://github.com/donet5/SqliteSugar
вроде робит на .NET Framework 4.0
даже в mono робит на ubuntu 18.04
38 46810
>>46702
Хуйня. Вот под фреймворк 4.0 DLL-ка: https://github.com/username1565/System.Data.SQLite/releases
39 46982
>>45030 (OP)
Смарите. какая ёба на нанабороде!
https://github.com/username1565/nanoboard/commit/beb5bdbd8467e5a4ed48c15679169b3323a98e2b
Бирарные хендлеры!
Терь можно байты слать на сервер наноборды, а не только текст.
Алсо, сервер может отвечать байтами тож, ололо.

Это значительно расширяет возможность масштабирования наноборды, путём межсерверной синхронизации децентрализованной базы данных. Гы-гы.
40 46985
Онион сайт сдох? Алсо, борда говно, все борды, которые выбраны для постинга контейнеров запрещают постинг из-под тора.
41 46987
>>45036
Поддержка сайтов Onion версии 2 скоро будет прекращена.

Этот сайт скоро будет недоступен. Пожалуйста, свяжитесь с администратором сайта и попросите его обновить сайт.

Tor прекращает поддержку Onion-сервисов версии 2 с июля 2021 года, и этот Onion-сайт больше не будет доступен по этому адресу. Если вы являетесь администратором сайта, перейдите на Onion-сервис версии 3 в ближайшее время.
42 46998
>>46985

>Онион сайт сдох?


Я уже давно как вырубил серв. Ещё год назад где-то.
Но ключи остались на компе, от этого домена и этот вот onion-адрес.
Поднимать и хостить - впадла как-то, поэтому просто пилю код.

Тащемта, поднять не сложно.
Достаточно в torrc прописать две строчки:
https://2019.www.torproject.org/docs/tor-onion-service

>HiddenServiceDir /Path/To/FolderWithOnionPrivkeyAndDomain/


>HiddenServicePort 80 127.0.0.1:7347


чтобы прокинуть lite-server на (7347-м порту) на порт 80 торе,
а дальше, надо просто запустить TorBrowser,
и nanodb.exe, и подождать пока разрезолвится в торе вся эта хуйня.

> Алсо, борда говно,


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

>все борды, которые выбраны для постинга контейнеров запрещают постинг из-под тора.


То дефолтные борды, ещё с 2016-го года. Постинг с тора на них я никогда и не тестил.

Алсо, там, на lite-server, терь можно - прямо в /download/ постить,
как в тред контейнеров, прямо через тор (если lite-server поднят в торе),
Всё это, после этого коммита:
https://github.com/username1565/nanoboard/commit/ac32900e5460cfd27c401a919d223856cea5bd3d

Разработка идёт здесь: https://github.com/username1565/nanoboard/tree/dev
История коммитов - здесь:
https://github.com/username1565/nanoboard/commits/dev
ChangeLog - здесь: https://github.com/username1565/nanoboard/blob/master/Changes.txt

>>46987

>Поддержка сайтов Onion версии 2 скоро будет прекращена.


Похуй, когда-нить, наверное, перейдём и на onion v3. У меня просто на XP не пашет onion v3 в TorBrowser, так что я не могу тестить нихуя ну и писать говнокод под v3.

>Этот сайт скоро будет недоступен.


Какой сайт?

>Пожалуйста, свяжитесь с администратором сайта и попросите его обновить сайт.


Какой администратор, какое блядь обновление?
Я чисто для теста поднял lite-server в торе, чтобы показать, что наноборда может хоститься в торе,
и что на неё можно постить прямо как на борду, без различных изъёбств с контейнерами.
А так-то, lite-сервер не обязательно через тор хостить, можно на любом домене поднять борду,
и просто открыть порт.

>Tor прекращает поддержку Onion-сервисов версии 2 с июля 2021 года, и этот Onion-сайт больше не будет доступен по этому адресу.


Ну и кому нужна эта поддержка? Tor... Прекращает... Поддержку... Пиздец просто. Прям все уже сразу взяли и побежали обновляться.
Отсутствие "поддержки", не означает что v2-адреса и ключи, не будут работать.
А для перехода на v3, надо провести аудит, вдруг там дыры вшиты, в алгоритм генерации, позволяющие приватники взламывать. Откуда нам знать?
42 46998
>>46985

>Онион сайт сдох?


Я уже давно как вырубил серв. Ещё год назад где-то.
Но ключи остались на компе, от этого домена и этот вот onion-адрес.
Поднимать и хостить - впадла как-то, поэтому просто пилю код.

Тащемта, поднять не сложно.
Достаточно в torrc прописать две строчки:
https://2019.www.torproject.org/docs/tor-onion-service

>HiddenServiceDir /Path/To/FolderWithOnionPrivkeyAndDomain/


>HiddenServicePort 80 127.0.0.1:7347


чтобы прокинуть lite-server на (7347-м порту) на порт 80 торе,
а дальше, надо просто запустить TorBrowser,
и nanodb.exe, и подождать пока разрезолвится в торе вся эта хуйня.

> Алсо, борда говно,


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

>все борды, которые выбраны для постинга контейнеров запрещают постинг из-под тора.


То дефолтные борды, ещё с 2016-го года. Постинг с тора на них я никогда и не тестил.

Алсо, там, на lite-server, терь можно - прямо в /download/ постить,
как в тред контейнеров, прямо через тор (если lite-server поднят в торе),
Всё это, после этого коммита:
https://github.com/username1565/nanoboard/commit/ac32900e5460cfd27c401a919d223856cea5bd3d

Разработка идёт здесь: https://github.com/username1565/nanoboard/tree/dev
История коммитов - здесь:
https://github.com/username1565/nanoboard/commits/dev
ChangeLog - здесь: https://github.com/username1565/nanoboard/blob/master/Changes.txt

>>46987

>Поддержка сайтов Onion версии 2 скоро будет прекращена.


Похуй, когда-нить, наверное, перейдём и на onion v3. У меня просто на XP не пашет onion v3 в TorBrowser, так что я не могу тестить нихуя ну и писать говнокод под v3.

>Этот сайт скоро будет недоступен.


Какой сайт?

>Пожалуйста, свяжитесь с администратором сайта и попросите его обновить сайт.


Какой администратор, какое блядь обновление?
Я чисто для теста поднял lite-server в торе, чтобы показать, что наноборда может хоститься в торе,
и что на неё можно постить прямо как на борду, без различных изъёбств с контейнерами.
А так-то, lite-сервер не обязательно через тор хостить, можно на любом домене поднять борду,
и просто открыть порт.

>Tor прекращает поддержку Onion-сервисов версии 2 с июля 2021 года, и этот Onion-сайт больше не будет доступен по этому адресу.


Ну и кому нужна эта поддержка? Tor... Прекращает... Поддержку... Пиздец просто. Прям все уже сразу взяли и побежали обновляться.
Отсутствие "поддержки", не означает что v2-адреса и ключи, не будут работать.
А для перехода на v3, надо провести аудит, вдруг там дыры вшиты, в алгоритм генерации, позволяющие приватники взламывать. Откуда нам знать?
image.png57 Кб, 1024x562
43 46999
>>46998

>так-то, lite-сервер не обязательно через тор хостить, можно на любом домене поднять борду, и просто открыть порт


Даже на айпишнике можно хостить, в локалке.

И ваще я планирую скоро Diffie-Hellman+AES прихуярить туда, чтобы данные в открытом виде не передавать по открытым каналам,
а гонять шифр, между клиентом и сервером, в той же локалке.
Например чтобы посты смотреть по локалке, чтобы постить, или чтобы базу синхронить между двумя серверами в локалке.
Если по открытому каналу гнать всю инфу, она осядет на снифферах, а так там осядет шифр, потому что DH+AES.
DHKE (Diffie-Hellman-Key-Exchange protocol), на пикрил.
А чтоб его не MITM'али {g, p, A} сервера - должны быть прешарены.
С этим можно работать, через BigInteger, на шарпе.

Для всей хуйни, я запилил специальный отдельный хендлер,
перенаправляющий запросы уже на все другие хендлеры,
возвращающие HttpResponse, с последующим шифрованием ответа. Это на серверной стороне.
На клиентской стороне - СryptoJS + BigInteger, JavaScript'ом дешифруется и дальше уже,
по всяким коллбек-функциями байты дешифрованные пиздуют.

Вроде робит, тестово, но как почищу всё от говна - выкину код в /dev/ бранч, там уже сами посмотрите
44 47000
>>46985

>Онион сайт сдох?


Если хочь могу поднять снова, только скажи.
Посмотришь чё да как там.
Там можно постить - прямо туда, через тор.
45 47001
>>47000
Но мне нет резона хостить это в долгосроке, годами,
потому что там особо никого и нет,
только я сижу и тестю иногда, изредка производя Collect PNG.

Поэтому, постинг - по старинке, в режиме читалки постов:
1. Загружается nanoboard-restore.zip https://github.com/nanoboard/nanoboard/releases
2. Запускается борда.
3. Производится коллект из places, наполняется база.
4. Постится пост.
5. Генерируется контейнер.
6. Контейнер разносится на борды.
7. Кто-то качает контейнер в процессе коллекта, наполняет свою базу новыми постами, и видит твой пост.
46 47002
>>46987
Я чё-т не понял, они чё ваще выпилят onion v2, или просто прекратят поддерживать, и внедрять, но v2 будет работать как прежде?
Если выпилят, надо забекапить, наверное.
Вот, нашёл исходник генератора onion v2 адресов: https://github.com/wvvw/garlic
Но он чё-то не компилируется, наверное из-за EOL, которую похерил github.

Алсо, бинарник - в совсем другом репо, вот здесь: https://github.com/Artifact0/Garlic
И вроде даже работает, походу это оно и есть.
Если это и есть исходник этого бинарника, то по коду можно посмотреть как работает onion v2, и дальше уже впилить костыли, чтобы работало оно в новых версиях торбраузеров этих вот новых, где хотят выпилить v2 это ебучее.
47 47013
>>47002
EOL - End of Line ('\r', '\r\n', '\n' и вот это вот всё), а то гуглится End-Of-Life.
48 47072
>>45030 (OP)
Чуваки, я вам покушать принёс шифрохендлер с Diffie-Hellman-Key-Exchange и AES. Вот он, во всей своей красе, многострочной:
https://github.com/username1565/nanoboard/commit/b37d98bde5b675d53d21ab60082c0e820ea5e6cf
Тест тут: https://github.com/username1565/nanoboard/blob/dev/pages/DHAES_test.html
Скрипт - тут: https://github.com/username1565/nanoboard/blob/dev/scripts/DHAES.js
Серверная сторона - в DbApiHandler.cs
Можете наномизировать, весь этот код, кто знает CSharp и JavaScript.
49 47225
Хули вы полноценную p2p борду не запилите, ебаны?
Я бы запилил но время - деньги
50 47226
>>47225
Время есть, пилю. Нет времени не пилю. Да и денег нет никаких, всё что можно - спиздили уже крысы хуесосские.

О какой p2p-борде речь, блядь?
Наноборда, изначально придумывалась, как читалка,
не потому что впадло сервир пилить
(тащемта и это тоже, да)
а для того, чтобы быть бордой без серверов,
которые можно задудосить, и положить, нах.

Но впилив шифрохендлер, у меня чё-то мелькнуло такое, в голове, мол, а чё бы не сделать полноценную ноду клиент-сервер, и синхронить её, в пиринговой сети, децентрализированно.
Но это пиздец сколько пердолинга надо, шо яебу.
Да и где гарантия, что её не положат дудосам, эту ноду ебучую?
А так читалка, и сервер в торе. Заебало хостить, нет никого - взял и вырубил нах. Понадобилось - взял поднял.
Забыл как поднять? Похуй, как читалку юзаешь. Заебись, чо.
51 47230
>>47225
А шо надо для p2p-борды?
Как ты себе это представляешь?
p2p-сети состоят из пиров, насколько я знаю,
пир, это и клиент и сервер одновременно,
он может как подключаться к другим пирам под видом клиента,
так и принимать подключения от других пиров, как сервер.

Значит пир - это должна быть прога (возможно даже exe-шник)
которая запускается и вертится на сервере?

Дальше... А можно ли задеанонить по пиру?

Дальше... А что насчет подключений какие они должны быть?
Это должны бы быть HTTP-подключения работающие по принципу запрос-ответ, или же TCP подключения,
чтобы ещё и удерживать соединения и гонять трафик в обе стороны?

Дальше... В пиринговых сетях, происходит обмен пирами.
Каждый пир, имеет инфу о соседних пирах, и делится ею с новым подключившимся пиром, после чего этот новый пир может прямо подключиться к пирам этого вот пира.
Как эту шнягу заебенить - обмен пирами?

Дальше... p2p-борда, подразумевает децентрализованное хранение постов. А как хранить файлы?
И что если подсеть отвалится? Кусок борды пропадёт, вместе с постами на ней, и аттачами? Это хуёво, не?

Ну и наконец, в контексте вышеописанного,
чё-то взбрело в голову, вообще не юзать файлы-аттачи,
а встраивать в посты - короткие ссылки, вроде
magnet-ссылок, а хранение файлов-аттачей - вынести отдельно,
и организовать в виде торрент-трекера, в той же пиринговой сети.
Чтобы, как-бы, пиры, чтобы они были ещё и торрент-пирами,
и чтобы раздавали аттачи через эти ваши децентрализированные торренты пирингообразные.
Такая схема, позволила бы эффективно хранить однотипные файлы-аттачи. Например - пикчи с мемасами.
которые постят чисто чтоб потроллить.
1000 постов с одной и той же пикчей, будут содержать одну и ту же магнет-ссылку, которая внутри поста, будет просто как текст.
В итоге, вместо 1000 файлов, прицепленных к 1000 постам, будет будет сохранён лишь один, и надёжно диверсифицирован по торрент-пирам этим вот, децентрализованным.

Всё это, пока, на уровне идей, а как пилить - ваще не ебу, это ж целый проект ебать-копать.
51 47230
>>47225
А шо надо для p2p-борды?
Как ты себе это представляешь?
p2p-сети состоят из пиров, насколько я знаю,
пир, это и клиент и сервер одновременно,
он может как подключаться к другим пирам под видом клиента,
так и принимать подключения от других пиров, как сервер.

Значит пир - это должна быть прога (возможно даже exe-шник)
которая запускается и вертится на сервере?

Дальше... А можно ли задеанонить по пиру?

Дальше... А что насчет подключений какие они должны быть?
Это должны бы быть HTTP-подключения работающие по принципу запрос-ответ, или же TCP подключения,
чтобы ещё и удерживать соединения и гонять трафик в обе стороны?

Дальше... В пиринговых сетях, происходит обмен пирами.
Каждый пир, имеет инфу о соседних пирах, и делится ею с новым подключившимся пиром, после чего этот новый пир может прямо подключиться к пирам этого вот пира.
Как эту шнягу заебенить - обмен пирами?

Дальше... p2p-борда, подразумевает децентрализованное хранение постов. А как хранить файлы?
И что если подсеть отвалится? Кусок борды пропадёт, вместе с постами на ней, и аттачами? Это хуёво, не?

Ну и наконец, в контексте вышеописанного,
чё-то взбрело в голову, вообще не юзать файлы-аттачи,
а встраивать в посты - короткие ссылки, вроде
magnet-ссылок, а хранение файлов-аттачей - вынести отдельно,
и организовать в виде торрент-трекера, в той же пиринговой сети.
Чтобы, как-бы, пиры, чтобы они были ещё и торрент-пирами,
и чтобы раздавали аттачи через эти ваши децентрализированные торренты пирингообразные.
Такая схема, позволила бы эффективно хранить однотипные файлы-аттачи. Например - пикчи с мемасами.
которые постят чисто чтоб потроллить.
1000 постов с одной и той же пикчей, будут содержать одну и ту же магнет-ссылку, которая внутри поста, будет просто как текст.
В итоге, вместо 1000 файлов, прицепленных к 1000 постам, будет будет сохранён лишь один, и надёжно диверсифицирован по торрент-пирам этим вот, децентрализованным.

Всё это, пока, на уровне идей, а как пилить - ваще не ебу, это ж целый проект ебать-копать.
image.png84 Кб, 779x560
52 47231
>>47230

>В итоге, вместо 1000 файлов, прицепленных к 1000 постам, будет будет сохранён лишь один, и надёжно диверсифицирован по торрент-пирам этим вот, децентрализованным.



Добавлю, что я уже предложил использовать "жесткие ссылки", на двощах, в /d/ и анон, в ответе, предложил юзнуть ipfs. Пикрелейтед. Что это такое, и с чем его едят - в душѣ нѣ ѣбу, но просто оставлю это здесь, для потомков, чтобы на века.
53 47232
>>47231
Но, прикол в том, что магнет-ссылка содержит в себе хэш. А хэши, могут иметь коллизии. Так, файл размером в килобайт, может иметь тот же хеш что и гигабайтный образ какого-нибудь DVD. Поэтому, из-за коллизий, могут путаться файлы.
Если имеются коллизии, тогда, нужно указать более четкий идентификатор файла, включающий в себя, также, и номер коллизии.
Например, льётся файл2 с хэшем H1 другой файл1 с таким же хешем H1 уже есть, а возможно ещё и файл3, файл4, и т. д.
Тогда, идентификатором файла2 будет нечто вроде:

>2+H1


где 2 - номер коллизии, H1 - хэш файла, имеющего коллизию.
Также, можно было бы, наверное, исключить коллизии хэшей вообще,
вместо хэшей, используя нечто вроде UnixTimestampMilliseconds+Hash
но UnixTimestampMilliseconds можно подменить и поставить рандомный, в том числе и соответствующий какой-либо другой коллизии.
В любом случае, это делалось бы в тексте ссылки на файл, на этапе создания поста, содержащего вполне конкретные аттачи.
54 47257
>>47230
Сделать так как сделано в большинстве крипты. Только в крипте пиры обмениваются транзакциями, а в п2п-борде должны обмениваться постами/инфой о новых тредах/файлами-аттачами.
Чтоб база не разрасталась до бесконечности можно сделать чтоб пост жил не более N-времени.
Чтоб отправить пост нужно помайнить, т.е. подбирать nonce, пока хеш не получится меньше определённого таргета. Таргет либо задаётся автором треда либо вычисляется автоматически, чтоб в среднем было не более N-постов в минуту. Точно так же можно и файлы аттачить, только чтоб праттачить файл нужно майнить гораздо больше. И вообще сложность майнинга должна зависеть от размера инфы, которая загоняется в п2п сеть.
Единственный подводный камень который я вижу - в p2p пир может получать посты не в том порядке, в каком они создавались, т.е. теоретически возможна ситуация, когда для пира полученный пост ссылается на типа не существующий пост, который просто не успел догнаться. Как это хендлить - хз, проще всего просто игнорить.
У меня есть опыт разработки п2п приложений и я могу даже спецификацию протокола высрать, но пилить код времени пока нету. Там нихуя сложного на самом деле если знаешь что писать.
55 47258
>>47232

>А хэши, могут иметь коллизии


Суть криптографических хешей именно в том, что у них на практике не бывает коллизий
56 47263
>>47257

>Чтоб база не разрасталась до бесконечности можно сделать чтоб пост жил не более N-времени.


Тут, ты, отчасти, изобрёл BitMessage, не?
https://ru.wikipedia.org/wiki/Bitmessage

>Зашифрованные сообщения хранятся в сети два дня[7], после чего удаляются участниками сети.



>Точно так же можно и файлы аттачить, только чтоб праттачить файл нужно майнить гораздо больше.


А где гарантия, что не придёт какой-то жирный хуй из-за бугра, со своей макулатурой, и не скупит вычислительные мощности, просто для лулзов, чтоб завайпать сеть терабайтами говнеца?
"Сложность майнинга" для таких не помеха, ведь они вертят всю эту POW-защиту, целыми кластерами, тщательно монополизируемыми.
Вообще, майнить, чтобы отправить пост или прицепить файл, это, мягко-сказать, неэнергоэффективно. Проще уж папку в торренте раздать, дешевле выйдет, согласись.
Майнинг нужен для поддержки блокчейна.
Блокчейн нужен, для предотвращения двойных трат, так как в одном и едином общем блокчейне - путь прохождения монет один и только один.
Транзакции, занимают мало места. Если заменить транзакции постами, то это могут быть целые стены текста, плюс ещё и аттачи.
Число транзакций ограничено эмиссией монет, число постов - нет, и если посещаемость будет 100к чел в сутки, они могут высрать лям постов сегодня, а завтра ещё два ляма, или три.
Всю эту хуйню сохранять, и уж тем более увековечивать в бЛОХчейне - мягко-сказать, нецелесообразно для синхронизации нод. Кто захочет вкатиться и просинхронить ноду с нуля, если блохчейн будет весить ебический йобибайт?
Поэтому, блохчейн и не нужон. Нужно что-то наподобие битмесседжа, где посты гуляют по децентрализованной сети, по мере их актуальности, потом архивируются, и складываются в децентрализованный дата-центр, являющий собой хранилища, разнесённое на нодах.
Хотя,
глядя на это:

>Единственный подводный камень который я вижу - в p2p пир может получать посты не в том порядке, в каком они создавались, т.е. теоретически возможна ситуация, когда для пира полученный пост ссылается на типа не существующий пост, который просто не успел догнаться. Как это хендлить - хз, проще всего просто игнорить.



даже с блокчейном, можно было бы сделать нечто вроде синхронизации заголовков блокчейна, вроде упрощенной синхры в криптовалютах.
Что-то вроде
block, timestamp -> ХэшПоста1+ХэшАттача1Поста1+ХэшАттача2Поста1;
ХэшПоста2+ХэшАттача2Поста2+ХэшАттача2Поста2;
и так далее. Тупо хэши хранить в блокчейне, и включать их в блоки, чисто для обеспечения хронологии постинга, а саму инфу заливать на ноды, в хранилище, и по хэшам этим - вытягивать её.
При этом, синхронить не пришлось бы сами данные, а только хэши, и блокчейн любой длины можно было бы быстро разнести на хуеву кучу нод.

>У меня есть опыт разработки п2п приложений и я могу даже спецификацию протокола высрать,


>но пилить код времени пока нету. Там нихуя сложного на самом деле если знаешь что писать.


Надо просто ноду полноценную написать, чтобы с тором и айтупи работала, а это страх и ужас для любого виндузятника, выгугливающего и высматривающего средь 80-ти открываемых вкладок в день, весь этот неведомый синтаксис шарпа.
56 47263
>>47257

>Чтоб база не разрасталась до бесконечности можно сделать чтоб пост жил не более N-времени.


Тут, ты, отчасти, изобрёл BitMessage, не?
https://ru.wikipedia.org/wiki/Bitmessage

>Зашифрованные сообщения хранятся в сети два дня[7], после чего удаляются участниками сети.



>Точно так же можно и файлы аттачить, только чтоб праттачить файл нужно майнить гораздо больше.


А где гарантия, что не придёт какой-то жирный хуй из-за бугра, со своей макулатурой, и не скупит вычислительные мощности, просто для лулзов, чтоб завайпать сеть терабайтами говнеца?
"Сложность майнинга" для таких не помеха, ведь они вертят всю эту POW-защиту, целыми кластерами, тщательно монополизируемыми.
Вообще, майнить, чтобы отправить пост или прицепить файл, это, мягко-сказать, неэнергоэффективно. Проще уж папку в торренте раздать, дешевле выйдет, согласись.
Майнинг нужен для поддержки блокчейна.
Блокчейн нужен, для предотвращения двойных трат, так как в одном и едином общем блокчейне - путь прохождения монет один и только один.
Транзакции, занимают мало места. Если заменить транзакции постами, то это могут быть целые стены текста, плюс ещё и аттачи.
Число транзакций ограничено эмиссией монет, число постов - нет, и если посещаемость будет 100к чел в сутки, они могут высрать лям постов сегодня, а завтра ещё два ляма, или три.
Всю эту хуйню сохранять, и уж тем более увековечивать в бЛОХчейне - мягко-сказать, нецелесообразно для синхронизации нод. Кто захочет вкатиться и просинхронить ноду с нуля, если блохчейн будет весить ебический йобибайт?
Поэтому, блохчейн и не нужон. Нужно что-то наподобие битмесседжа, где посты гуляют по децентрализованной сети, по мере их актуальности, потом архивируются, и складываются в децентрализованный дата-центр, являющий собой хранилища, разнесённое на нодах.
Хотя,
глядя на это:

>Единственный подводный камень который я вижу - в p2p пир может получать посты не в том порядке, в каком они создавались, т.е. теоретически возможна ситуация, когда для пира полученный пост ссылается на типа не существующий пост, который просто не успел догнаться. Как это хендлить - хз, проще всего просто игнорить.



даже с блокчейном, можно было бы сделать нечто вроде синхронизации заголовков блокчейна, вроде упрощенной синхры в криптовалютах.
Что-то вроде
block, timestamp -> ХэшПоста1+ХэшАттача1Поста1+ХэшАттача2Поста1;
ХэшПоста2+ХэшАттача2Поста2+ХэшАттача2Поста2;
и так далее. Тупо хэши хранить в блокчейне, и включать их в блоки, чисто для обеспечения хронологии постинга, а саму инфу заливать на ноды, в хранилище, и по хэшам этим - вытягивать её.
При этом, синхронить не пришлось бы сами данные, а только хэши, и блокчейн любой длины можно было бы быстро разнести на хуеву кучу нод.

>У меня есть опыт разработки п2п приложений и я могу даже спецификацию протокола высрать,


>но пилить код времени пока нету. Там нихуя сложного на самом деле если знаешь что писать.


Надо просто ноду полноценную написать, чтобы с тором и айтупи работала, а это страх и ужас для любого виндузятника, выгугливающего и высматривающего средь 80-ти открываемых вкладок в день, весь этот неведомый синтаксис шарпа.
57 47265
>>47263

>Тут, ты, отчасти, изобрёл BitMessage, не?


>https://ru.wikipedia.org/wiki/Bitmessage


Нихуя себе. Ну судя по описанию chan'ов в вики - да.
Только я не понял, есть там Pow на отправку мессаг или нет.
Если нет, то что мешает просто нахуй заспамить любой чан.
И я даже не представляю, как в p2p контрить безлимитный флуд кроме схемы с PoW
58 47267
>>47265
Ну а как же без POW? Вот как это робит: https://wiki.bitmessage.org/index.php/Proof_of_work
59 47268
>>47267
Ну значит всё уже написано до нас, расходимся.
60 47271
>>47268
В наноборду нихуя не вписано. Мне штоле вписывать? Сходимся, быстраблять.
61 47334
>>45030 (OP)
Пытаюсь в разрешение коллизий, которые возможны при дефолтной адресации: https://github.com/username1565/nanoboard/issues/14

Есть идеи попижже, у кого-нить?

Думаю приебенить также адресацию и для аттачей,
а также прицепить отельный хендлер,
чтобы отдавать аттачи по идентификаторам-хэшам.
62 47335
>>47334

>в наноборде используется половина sha256 хэша


Так это же всё равно дохуя, вероятность коллизий КРАЙНЕ МАЛА.
Всего уникальных хэшей может быть 2^128 = 340282366920938463463374607431768211456
Допустим, что борда имеет в базе миллиард постов, тогда вероятность коллизии для нового поста будет 10^9/2^128 = 2.9e-30, то есть поймать её практически невозможно.
63 47337
>>47335

> практически невозможно


Однако теоретически - вполне возможно.
Если делать борду на века, то надо бы заблаговременно исключить подобную хуйню, чтобы не вносить исправления в основополагающие принципы функционирования общепризнанного протокола, принятого всеми нанонами - за стандарт.
C учётом того, что возможны (теоретически), коллизии хэша нанопоста, появляется потенциальная возможность неоднозначного указывания на отвечаемый нанопост, при помощи replyTo, внутри сообщения.
И вроде как, я уже нашёл решение, но я не уверен что оно самое пиздатое.

Я вообще думаю заебенить всё это дело внутри базы данных sqlite. Чтобы всё было реляционным, заебатым и главное - опенсорцным. Но как это всё организовать там хз.
Походу надо констрейнт какой-то сделать, или да.

И файлы-аттачи тоже можно было бы возвращать по хэшам, причём по таким же, как и нанопосты в JSON, только бинарными данными с application/octet-stream.
Но опять же, ебучие коллизии всё херят, в теории.
И подумалось мне, что IPFS тоже не идеальна, из-за этих ебучих коллизий.
64 47338
>>47337
Хотя да, с такой миллипиздрической вероятностью, >>47335
вместо того, чтобы нагромождать код нечитаемой хуйнёй,
проще уж вхардкодить пару исключений, когда коллизия будет найдена хоть одна коллизия,
или впроглить автоматическое создание исключений,
что-то вроде

>if(hash.length>16){CollisionNumber=hash.substring(16, hash.length); hash=hash.substring(0,16);}


и ебись оно конём, дальше уже само.

К тому же, вроде как, новый пост не добавляется в базу, если пост с таким хэшем уже есть,
вместо этого, запрашивается новая каптча, а тогда перегенерируется POW и меняется хэш,
так что на уровне отправки нанопостов, коллизии уже исключаются, как-бы.
image.png23 Кб, 480x248
65 47339
>>46694

>Как пришпандорить сюда SQLite, блядь?



Базоданоны, хочу приебенить sqlite3 в наноборду.
Как думаете, норм идея, или лучше оставить прежнюю, костыльную базу данных, на файлах?
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L36
Я не очень силён в проектировании баз данных, только вкатываюсь во всё это дело,
в общем, пока вот:

(Таблица NanoPosts)
id (Primary Key, autoincrement),
, PostHash (text)
, replyTo (text)
, deleted (bool)
, PostMessage (text)
, DateTime (DateTime)
, Pow (text)
, Sign (text)
, NumberOfAttachments (INT)

(Таблица Attachments)
id (Primary Key, autoincrement)
, PostHash (text)
, NumberOfAttachment (int)
, AttachmentHash (text)
, AttachmentFileName (text)
, AttachmentContent(BLOB)

(NanoPosts).(PostHash) < - > (Attachments).(PostHash) - связь 1 ко многим.

Можно ли эту хуйню сделать более заебенчатой, или и так сойдёт?
image.png23 Кб, 480x248
65 47339
>>46694

>Как пришпандорить сюда SQLite, блядь?



Базоданоны, хочу приебенить sqlite3 в наноборду.
Как думаете, норм идея, или лучше оставить прежнюю, костыльную базу данных, на файлах?
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Database/PostDb.cs#L36
Я не очень силён в проектировании баз данных, только вкатываюсь во всё это дело,
в общем, пока вот:

(Таблица NanoPosts)
id (Primary Key, autoincrement),
, PostHash (text)
, replyTo (text)
, deleted (bool)
, PostMessage (text)
, DateTime (DateTime)
, Pow (text)
, Sign (text)
, NumberOfAttachments (INT)

(Таблица Attachments)
id (Primary Key, autoincrement)
, PostHash (text)
, NumberOfAttachment (int)
, AttachmentHash (text)
, AttachmentFileName (text)
, AttachmentContent(BLOB)

(NanoPosts).(PostHash) < - > (Attachments).(PostHash) - связь 1 ко многим.

Можно ли эту хуйню сделать более заебенчатой, или и так сойдёт?
66 47340
А вы не думали запилить нану как образ на докере. С пробросом портов.
67 47346
>>47225
А даже запилил, как раз после того как первая волна использования наноборды спала, а битмесседж-адаптер оказался не очень функциональным. Для передачи данных и хранения постов использовал ipfs, все норм работало, не успел только капчу прикрутить. Дальше долго не мог взяться из-за учебы, а потом проебал исходники. На выходных поищу, может, где-то остались бекапы. Но мне казалось, что это никому нахуй не интересно.
68 47347
>>47346

>А даже


Фикс

>А я даже

69 47350
>>47346
А как ты реализовал обновление тредов и досок? Какая-то защита от вайпа и ботов была заложена, кроме капчи?
У меня тоже есть идея сделать прототип p2p борды, но пока что любое решение без механизма доверенных узлов или серверов кажется нежизнеспособным в перспективе из-за потенциальных атак.
70 47351
>>47350
Только капча. Идея такая, что к ОП-посту приляпывается капча на 300 постов, которая генерируется при создани треда. Поскольку алгоритм генерации капчи можно выбирать произвольно, автоматического вайпа можно особенно не бояться. А ручной вайп-честное занятие.

При обновлении смысл такой: IPFS предоставляет pubsub. Каждой доске соответствует один канал. Когда кто-то что-то постит, он отправляет в pubsub сообщение с указанием, в какой тред он отправил какой пост. Сам пост- файл, хранящийся в IPFS. Все остальные его выкачивают, и обновляют у себя индекс (файл со списком и очередностью постов в тредах, и очередностью самих тредов). Раз в пять(число взято произовольно, нужно исследовать оптимальный промежуток) минут обновляется глобальный индекс. Для этого все пользователи в произвольный момент времени(но раз в пять минут) "испытывают желание" отправить сообщение. Если в последние пять минут сообщения с обновленным индексом (при этом, соответствующим построенному локально) не было, пользователь его отправляет. Если был новый индекс, но он не соответствует локальному, то сообщения по нему выкачиваются, и индекс строится заново. Если и он не соответствует присланному, клиент отправляет свой вариант.
Вся эта свистопляска нужна, по сути, только для свежеподключившихся клиентов. Но все-же нужна.

Поскольку текст весит очень мало(и, как правило, не настолько нелегален как файлы), текст постов хранится полностью, а вот приложенные картинки-избирательно. Вдаваться в подробности по этому поводу не буду, и так уже слишком подробно описал.
71 47355
>>47350

>У меня тоже есть идея сделать прототип p2p борды,


>но пока что любое решение без механизма доверенных узлов или серверов


>кажется нежизнеспособным в перспективе


>из-за потенциальных атак.


Кстати да вот, в контексте анонимности и децентрализации, любой сервер (пир), в клирнете - это уже неанонимный центр,
который можно атаковать, и вытащить IP других пиров,
и пойти их атаковать. Поэтому, лучше пускать трафик сразу через оор/айтупи, или где там ещё, а не светить ипы.
Именно поэтому, наноборда и реализована без серверов вообще, чтобы нехуй было атаковать.
Но постить же надо как-то, через браузер.
Поэтому, как вариант - рандомно-поднимаемые серверы, они имеют место быть, но где-нибудь, в торе, чтобы айпишнами не сверкать - для всяких дегенератов.
72 47356
>>47355
Контейнер наноборды ты тоже где-то постить должен.
Если ты постишь не в торе, то ГБ может просто запросить у владельца твой айпишник. Но, как мы уже видели, и тор не гарантирует что гебе до тебя не доберется.
Поэтому, на мой взгляд, наиболее реалистичное, по крайней мере, сейчас, и с имеющимися в нашем распряжении силами, решение, это ориентироваться на защиту неуловимого джо. То есть иметь борду, на которой принципиально нет модерации, и можно постить что угодно. Но каждый должен понимать, что постить то, за что тебя может реально захотеть натянуть гебня, можно только на свой страх и риск.
73 47357
>>47356

>Контейнер наноборды ты тоже где-то постить должен.


>Если ты постишь не в торе, то ГБ может просто запросить у владельца твой айпишник.


А что мешает постить контейнеры, через тор - прямо в папку download на сервере, как в тред контейнеров?
https://github.com/username1565/nanoboard/commit/ac32900e5460cfd27c401a919d223856cea5bd3d
74 47361
>>47355

>наноборда и реализована без серверов вообще


Наоборот же, наноборда использует множество серверов вместо одного.

>чтобы нехуй было атаковать


Наноборда более-менее защищена от атак на сами сервера за счет дублирования постов, но не защищена от атак контейнерами со спамом. Капча конечно увеличит затраченные ресурсы для атакующего, но никак не остановит его. Формально борда будет жива, но кто захочет выискивать нормальные посты среди мегабайт мусора.
75 47870
На наноборде стало больше народа? Там цп охуенное было и паки тоже, качал, фапал, гуд. Как щас там?
76 47871
Не программист в треде. Штука интересная, но не йоба-анархизм. Почему? Во-первых, устойчивость. Это публичная стеганография. Да, можно любой пароль поставить, но либо его знают два человека, либо неограниченный круг лиц. В том числе майор и админы борд с контейнерами. При популяризации админы могут легко впилить скрипт для детекта и автоудаления контейнеров, чтобы не забивать сервер тяжёлыми пнг и не огрести от майора.

Второе - анонимность. Её приходится обеспечивать самостоятельно. Есть ли на крупных мелкобордах незабаненные ноды/бесплатные прокси? Тут же дырявость тора. Сервер мелкоборды накроют и сделают из него ханипот. Дальше просто - твой провайдер отслеживает активность в сети тор и пишет график трафика. После эти графики сверяются с графиками, записанными на сервере и айпи выходной ноды соотносится с реальным. Если ещё и стиль речи узнаваемый, или идёт диалог, можно ещё больше инфы собрать, вероятность корреляции возрастает. Да, это не за мемы в контакте ловить, но перспектива получить звёздочки за рассекречивание особой скрытой сети педофилов/наркоманов/экстремистов может заставить подключить спецов. Мало того, распространяя контейнер, ты распространяешь даже то, что не очень хочешь распространять и вероятность попадания туда незаконной хуйни весьма велика.

То есть, это как торговля солями, когда они только появились. До поры до времени это было никому не нужно. А потом - всё, прикрыли лавочку. Ещё и специально именно фракталы постите: смотри, админ, на твоей борде паразитируют. Ему даже скрипты не нужны, просто выпилит тред с фракталами. Думаю, уже 100-1000 анонов в курсе про эту технологию. И наверняка хоть один майор есть среди них. Просто пока выжидают.

Думаю, надо смотреть в сторону p2p всяких, фринетов.
77 47876
>>47361

>Наоборот же, наноборда использует множество серверов вместо одного.


Изначально, наноборда являет собой локальную читалку в виде локального сервера, который не хостится в сети.
В сети хостятся только треды с картинками-контейнерами, на бордах, или даже личных домашних страничках.
Пока никто (кроме нанонов), не знает что это контейнеры, можно хостить внутри что угодно, без риска бана домена.
В конце концов, можно запилить свой сайт с обоями для рабочего стола, или фотогалерею, и туда напхать контейнеров.
Однако, сервера, хостящие треды с контейнерами, не являются серверами наноборды.
Наноборда, как таковая, вообще не имеет серверов.
Возомжность поднять lite-сервер (сервер с ограниченными правами, где нельзя например изменять настройки, или удалять сообщения) и возможность захостить его, в том числе и в торе (чтоб не светить айпишник) - это чисто опциональная фича, впиленная для того, чтобы сделать из наноборды - борду (то есть сайт, куда можно зайти и постить непосредственно, как на двоще).
Поэтому, я и написал, что наноборда реализована без серверов вообще.
Но да, отчасти ты прав в том, что можно поднять много lite-серверов, на разных доменах, а лучше в торе (чтобы не светить айпишник),
и/или менять их, эти домены,
и даже синхронизировать базу между серверами,
но даже тор не поможет от атак, наподобие DDoS-атаки.
А если же серверов нет, то и атаковать нечего, и это - главная задумка наноборды, в виде читалки с локальным сервером.

>Наноборда более-менее защищена от атак на сами сервера за счет дублирования постов


Что ты имеешь в виду здесь?
Атак на какие сервера?
На сервера борд, где хостятся контейнеры?
Если да, то как дублирование постов внутри одного контейнера, может защитить от дудоса какого-нибудь хуйчана?

>но не защищена от атак контейнерами со спамом.


Спам
(в том числе и ручной спам, который хуй распознаешь - спам полчищами долбоёбов,
готовых вводить каптчи за 0.0000000хуй центов),
этот спам можно тупо репортить и тереть нахуй с базы,
что как-бы, локально - исключает добавление гонопостов в контейнера.
Алсо, там можно выбрать какие именно нанопосты следует добавить в контейнер, можно вообще в один контейнер только свой нанопост всунуть.

>Капча конечно увеличит затраченные ресурсы для атакующего, но никак не остановит его.


Тут ты о чём? О том, что каптчу могут вводить вовсе не люди?
Да, это проблема, изначальной задумки, и я вижу её четко:
каптча имеет ограниченное число символов - 5, и 24 разрешённых символа. Всего комбинаций каптчи 24^5 = 7962624
Вот столько надо перебрать решений каптч, чтобы бот мог решить каптчу.
Однако, есть но. На каждом этапе нужно вычислить хэш.
А значит, надо вычислить 7962624 хэшей.
Конечно, это уже сложнее, и замедляет вайп,
однако с ASIC'ами, завайпать наноборду - вполне себе возможно.
Решением этой проблемы, в случае вайпа,
являлась бы смена каптчи на другую,
в которой вместо одного хэша, могла бы вычисляться цепочка вложенных хэшей, скажем 100500, и ещё и разных: >...sha(sha256(md5(keccak(sha3(ответ каптчи, или что там хэшируется)))))
Как-то вот так.

Но проблема щас не в вайпе, а в том,
что на наноборде вообще никого нет,
пару чел раз в год отпишут и всё.

А что стоит их выискивать?
Ввёл в поиск хэш треда и читаешь его себе.
Остальное - нахуй не нужно.
Ввёл хэш поста и прочитал себе его.
Написал пост, он имеет хэш.
Кто ответит на него, то его ответ будет содержать хэш поста твоего в replyTo, и он будет доступен при вводе хэша поста твоего.
Разрыв в пространстве-времени вообще не имеет значения.
Можно впостить на одном конце земли, а ответ получить из другого, через надцать лет, зато вменяемый ответ,
скажем, исправление какой-нибудь формулы фундаментальной.

Конечно же, в таком случае, лучше было бы поднять сервер вклирнете, чтобы он индексировался поисковиками,
тогда можно было бы просто забить хэш поста в гуголь и получить ответ сразу.

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

Просто вот пишешь пост, клеешь к нему replyTo хэш,
затем считаешь из всего этого хэш,
и постишь всё это текстом.
Через время, по хэшу, в гугле например, находишь сходу - все ответы на свой пост.

Но судя по усложнениям (половина sha256 хэша, блядь, DateTime в [ g ] [ / g ]-теге, POW и SIGN внутри поста, плюс картинки, файлы бейсом ), как-то всё сложно это, чтобы запомнить, поэтому хз.

Ясен хуй, что стеганографировать и/или шифровать,
следовало бы какую-то такоую инфу,
которую мочерируют сразу, например утечки из wikileaks попробуй впости в клирнете, сразу всех перебанят,
инфу замочерируют, и/или ещё и вычислят и перестреляют, нахуй.
Ну, или ссылочки на всякие пиратские хуйни, всякий контент мутный, и такое прочее, их тоже в клирнете, открыто не попостишь,
поэтому лучше эту инфу либо стегить, либо криптовать и зашить в блокчейны куда-нить - чтобы на века.

>Не программист в треде. Штука интересная, но не йоба-анархизм. Почему? Во-первых, устойчивость.


>Это публичная стеганография. Да, можно любой пароль поставить,


>но либо его знают два человека, либо неограниченный круг лиц.


>В том числе майор и админы борд с контейнерами.


>При популяризации админы могут легко впилить скрипт для детекта и автоудаления контейнеров,


>чтобы не забивать сервер тяжёлыми пнг и не огрести от майора.



А ничто не мешает тупо хостить контейнеры на любом другом хостинге,
и/или даже у себя, подняв какой-нибудь нджинкс или HttpFileServer, или по ftp.
Нанопосты в контейнерах перепаковать с другим паролем, и оставить лишь один контейнер с нанопостом,
где указана ссылка на хранилище контейнеров и новый пароль, или куда-нить в центр координации всунуть новый пароль,
через какой-нибудь чан в битмессадж, на какой-нить irc-канал, или где там эта ебучая координация пиздует.
Да, сервер забит тяжелыми пнг, да, там блядь, целая фотосессия, или целый пак пикч, пиздатый,
но какое дело до этого моёру, если это тупо пикчи в паблике висят, и открыть со старым паролем он их не может?
Конечно, лучше не афишировать пароль, а просто сменить пароль и свалить с борды, которая под атакой,
сформировав свою ячейку наноборды, и там себе няшится дальше, в локалке,
насрав на всё с высокой колокольни, и ебись оно конём.
Конечно же, в силу малого постинга, такого ещё не было никогда, но всю эту хуйню можно автоматизировать.

>Тут же дырявость тора. Сервер мелкоборды накроют и сделают из него ханипот.


>Дальше просто - твой провайдер отслеживает активность в сети тор и пишет график трафика.


А вот чтобы всякие снифферы не писали траффик в клирнете,
для этого и был впилен вот этот шифрохендлер >>46999
Хуйня черновая, до ума не доведена, но можете потыкать (да-да, тут надо быть дохуя кодером, естественно).

>Мало того, распространяя контейнер, ты распространяешь даже то,


>что не очень хочешь распространять и вероятность попадания туда незаконной хуйни весьма велика.


Чтобы этой хуйни не было, есть опциональная возможность выбрать нанопосты, пакуемые в контейнер,
исключив оттуда то, что не хочешь паковать в свой личный белый контейнер.
Но можно и не выбрать, и по дефолту впаковать всё вкупе,
тогда срабатывает схема отрицаемого шифрования,
так как сложно доказать, нанопост ли самого автора попал в контейнер,
или же это просто алгоритм выбрал случайные посты каких-то других авторов.
Наноны просто поднимают в локалке серв, постя там говно своё, жмакают кнопку "сгенерить контейнер",
и говно льётся, а кто его впостил - хуй разберёшь. Может оно вообще, ещё и до этого уже было там.

>То есть, это как торговля солями, когда они только появились. До поры до времени это было никому не нужно. А потом - всё, прикрыли лавочку. Ещё и специально именно фракталы постите: смотри, админ, на твоей борде паразитируют. Ему даже скрипты не нужны, просто выпилит тред с фракталами. Думаю, уже 100-1000 анонов в курсе про эту технологию. И наверняка хоть один майор есть среди них. Просто пока выжидают.


Да пускай себе выжидают. С 2016-го года уже выжидают, блядь.
Ясен хуй, что это просто концепт.
Годноту же, можно постить не обязательно во фракталы,
это может быть тред скринов рабочего стола, или какой-нить "оцени хуйца тред".

>Думаю, надо смотреть в сторону p2p всяких, фринетов.


А там, DDoS-атак, разве нет?
77 47876
>>47361

>Наоборот же, наноборда использует множество серверов вместо одного.


Изначально, наноборда являет собой локальную читалку в виде локального сервера, который не хостится в сети.
В сети хостятся только треды с картинками-контейнерами, на бордах, или даже личных домашних страничках.
Пока никто (кроме нанонов), не знает что это контейнеры, можно хостить внутри что угодно, без риска бана домена.
В конце концов, можно запилить свой сайт с обоями для рабочего стола, или фотогалерею, и туда напхать контейнеров.
Однако, сервера, хостящие треды с контейнерами, не являются серверами наноборды.
Наноборда, как таковая, вообще не имеет серверов.
Возомжность поднять lite-сервер (сервер с ограниченными правами, где нельзя например изменять настройки, или удалять сообщения) и возможность захостить его, в том числе и в торе (чтоб не светить айпишник) - это чисто опциональная фича, впиленная для того, чтобы сделать из наноборды - борду (то есть сайт, куда можно зайти и постить непосредственно, как на двоще).
Поэтому, я и написал, что наноборда реализована без серверов вообще.
Но да, отчасти ты прав в том, что можно поднять много lite-серверов, на разных доменах, а лучше в торе (чтобы не светить айпишник),
и/или менять их, эти домены,
и даже синхронизировать базу между серверами,
но даже тор не поможет от атак, наподобие DDoS-атаки.
А если же серверов нет, то и атаковать нечего, и это - главная задумка наноборды, в виде читалки с локальным сервером.

>Наноборда более-менее защищена от атак на сами сервера за счет дублирования постов


Что ты имеешь в виду здесь?
Атак на какие сервера?
На сервера борд, где хостятся контейнеры?
Если да, то как дублирование постов внутри одного контейнера, может защитить от дудоса какого-нибудь хуйчана?

>но не защищена от атак контейнерами со спамом.


Спам
(в том числе и ручной спам, который хуй распознаешь - спам полчищами долбоёбов,
готовых вводить каптчи за 0.0000000хуй центов),
этот спам можно тупо репортить и тереть нахуй с базы,
что как-бы, локально - исключает добавление гонопостов в контейнера.
Алсо, там можно выбрать какие именно нанопосты следует добавить в контейнер, можно вообще в один контейнер только свой нанопост всунуть.

>Капча конечно увеличит затраченные ресурсы для атакующего, но никак не остановит его.


Тут ты о чём? О том, что каптчу могут вводить вовсе не люди?
Да, это проблема, изначальной задумки, и я вижу её четко:
каптча имеет ограниченное число символов - 5, и 24 разрешённых символа. Всего комбинаций каптчи 24^5 = 7962624
Вот столько надо перебрать решений каптч, чтобы бот мог решить каптчу.
Однако, есть но. На каждом этапе нужно вычислить хэш.
А значит, надо вычислить 7962624 хэшей.
Конечно, это уже сложнее, и замедляет вайп,
однако с ASIC'ами, завайпать наноборду - вполне себе возможно.
Решением этой проблемы, в случае вайпа,
являлась бы смена каптчи на другую,
в которой вместо одного хэша, могла бы вычисляться цепочка вложенных хэшей, скажем 100500, и ещё и разных: >...sha(sha256(md5(keccak(sha3(ответ каптчи, или что там хэшируется)))))
Как-то вот так.

Но проблема щас не в вайпе, а в том,
что на наноборде вообще никого нет,
пару чел раз в год отпишут и всё.

А что стоит их выискивать?
Ввёл в поиск хэш треда и читаешь его себе.
Остальное - нахуй не нужно.
Ввёл хэш поста и прочитал себе его.
Написал пост, он имеет хэш.
Кто ответит на него, то его ответ будет содержать хэш поста твоего в replyTo, и он будет доступен при вводе хэша поста твоего.
Разрыв в пространстве-времени вообще не имеет значения.
Можно впостить на одном конце земли, а ответ получить из другого, через надцать лет, зато вменяемый ответ,
скажем, исправление какой-нибудь формулы фундаментальной.

Конечно же, в таком случае, лучше было бы поднять сервер вклирнете, чтобы он индексировался поисковиками,
тогда можно было бы просто забить хэш поста в гуголь и получить ответ сразу.

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

Просто вот пишешь пост, клеешь к нему replyTo хэш,
затем считаешь из всего этого хэш,
и постишь всё это текстом.
Через время, по хэшу, в гугле например, находишь сходу - все ответы на свой пост.

Но судя по усложнениям (половина sha256 хэша, блядь, DateTime в [ g ] [ / g ]-теге, POW и SIGN внутри поста, плюс картинки, файлы бейсом ), как-то всё сложно это, чтобы запомнить, поэтому хз.

Ясен хуй, что стеганографировать и/или шифровать,
следовало бы какую-то такоую инфу,
которую мочерируют сразу, например утечки из wikileaks попробуй впости в клирнете, сразу всех перебанят,
инфу замочерируют, и/или ещё и вычислят и перестреляют, нахуй.
Ну, или ссылочки на всякие пиратские хуйни, всякий контент мутный, и такое прочее, их тоже в клирнете, открыто не попостишь,
поэтому лучше эту инфу либо стегить, либо криптовать и зашить в блокчейны куда-нить - чтобы на века.

>Не программист в треде. Штука интересная, но не йоба-анархизм. Почему? Во-первых, устойчивость.


>Это публичная стеганография. Да, можно любой пароль поставить,


>но либо его знают два человека, либо неограниченный круг лиц.


>В том числе майор и админы борд с контейнерами.


>При популяризации админы могут легко впилить скрипт для детекта и автоудаления контейнеров,


>чтобы не забивать сервер тяжёлыми пнг и не огрести от майора.



А ничто не мешает тупо хостить контейнеры на любом другом хостинге,
и/или даже у себя, подняв какой-нибудь нджинкс или HttpFileServer, или по ftp.
Нанопосты в контейнерах перепаковать с другим паролем, и оставить лишь один контейнер с нанопостом,
где указана ссылка на хранилище контейнеров и новый пароль, или куда-нить в центр координации всунуть новый пароль,
через какой-нибудь чан в битмессадж, на какой-нить irc-канал, или где там эта ебучая координация пиздует.
Да, сервер забит тяжелыми пнг, да, там блядь, целая фотосессия, или целый пак пикч, пиздатый,
но какое дело до этого моёру, если это тупо пикчи в паблике висят, и открыть со старым паролем он их не может?
Конечно, лучше не афишировать пароль, а просто сменить пароль и свалить с борды, которая под атакой,
сформировав свою ячейку наноборды, и там себе няшится дальше, в локалке,
насрав на всё с высокой колокольни, и ебись оно конём.
Конечно же, в силу малого постинга, такого ещё не было никогда, но всю эту хуйню можно автоматизировать.

>Тут же дырявость тора. Сервер мелкоборды накроют и сделают из него ханипот.


>Дальше просто - твой провайдер отслеживает активность в сети тор и пишет график трафика.


А вот чтобы всякие снифферы не писали траффик в клирнете,
для этого и был впилен вот этот шифрохендлер >>46999
Хуйня черновая, до ума не доведена, но можете потыкать (да-да, тут надо быть дохуя кодером, естественно).

>Мало того, распространяя контейнер, ты распространяешь даже то,


>что не очень хочешь распространять и вероятность попадания туда незаконной хуйни весьма велика.


Чтобы этой хуйни не было, есть опциональная возможность выбрать нанопосты, пакуемые в контейнер,
исключив оттуда то, что не хочешь паковать в свой личный белый контейнер.
Но можно и не выбрать, и по дефолту впаковать всё вкупе,
тогда срабатывает схема отрицаемого шифрования,
так как сложно доказать, нанопост ли самого автора попал в контейнер,
или же это просто алгоритм выбрал случайные посты каких-то других авторов.
Наноны просто поднимают в локалке серв, постя там говно своё, жмакают кнопку "сгенерить контейнер",
и говно льётся, а кто его впостил - хуй разберёшь. Может оно вообще, ещё и до этого уже было там.

>То есть, это как торговля солями, когда они только появились. До поры до времени это было никому не нужно. А потом - всё, прикрыли лавочку. Ещё и специально именно фракталы постите: смотри, админ, на твоей борде паразитируют. Ему даже скрипты не нужны, просто выпилит тред с фракталами. Думаю, уже 100-1000 анонов в курсе про эту технологию. И наверняка хоть один майор есть среди них. Просто пока выжидают.


Да пускай себе выжидают. С 2016-го года уже выжидают, блядь.
Ясен хуй, что это просто концепт.
Годноту же, можно постить не обязательно во фракталы,
это может быть тред скринов рабочего стола, или какой-нить "оцени хуйца тред".

>Думаю, надо смотреть в сторону p2p всяких, фринетов.


А там, DDoS-атак, разве нет?
78 47877
>>47871 этот пост - цитировался тут: >>47876
79 47878
>>47876

> но какое дело до этого моёру, если это тупо пикчи в паблике висят, и открыть со старым паролем он их не может?


Если может открыть достаточно большое количество анонов, может открыть и майор.

> Наноны просто поднимают в локалке серв, постя там говно своё, жмакают кнопку "сгенерить контейнер",и говно льётся, а кто его впостил - хуй разберёшь.


Тебе говорят, что торрент - такая крутая прога, чтобы качать. Ставишь - и правда, фильм качается. Решаешь скачать процессор - а что, качать легально. Садишься на бутыль, прецеденты были. Постя контейнер ты распространяешь говняк. Незнание не освобождает от ответственности.
80 47881
>>47878

>Тебе говорят, что торрент - такая крутая прога, чтобы качать. Ставишь - и правда, фильм качается. Решаешь скачать процессор - а что, качать легально. Садишься на бутыль, прецеденты были. Постя контейнер ты распространяешь говняк. Незнание не освобождает от ответственности.



Ну так торрент палит ипы в процессе работы технологии Peer-exchange, эти ипы видно в списках пиров, оттого и бутыль.
А контейнеры можно по-разному впостить,
и через https, и через TOR, и через всякие там i2p, freenet, zeronet, да даже просто на двач пикчу прилепить, или бейсом в виде текста куда-то впостить.
Что там внутри бейса? Картинка с каким-то фракталом... Ну и хуй на неё.
81 47882
>>47876

>наноборда являет собой локальную читалку в виде локального сервера, который не хостится в сети


В этом смысле да, наноборде не нужны сервера. Но без серверов для обмена постами не будет выполняться основная цель борды - общение с анонами, так что без них все-таки не обойтись.

>Атак на какие сервера?


>На сервера борд, где хостятся контейнеры?


Да, закрытие сервера и пропадание всех постов на нём.

>как дублирование постов внутри одного контейнера, может защитить от дудоса какого-нибудь хуйчана


Имел ввиду размещение одного контейнера на разных бордах. Хотя много ли анонов будет таким заниматься?

>этот спам можно тупо репортить и тереть нахуй с базы


Не понял, кому репортить? А тереть вручную можно, только тебе придется тратить время на отличение спама от нормальных постов. И так придется делать каждому анону, так как посты удаляются только локально.

>>Капча конечно увеличит затраченные ресурсы для атакующего, но никак не остановит его.


>Тут ты о чём? О том, что каптчу могут вводить вовсе не люди?


О том, что капча заставит атакующего тратить больше времени или денег на спам, но не значительно. То есть только отсеет самых ленивых вайперов.

> Но проблема щас не в вайпе, а в том, что на наноборде вообще никого нет, пару чел раз в год отпишут и всё.


А вайп и появится, как только борда станет достаточно популярной. И этот же вайп убьет появившуюся активность.

>Ввёл в поиск хэш треда и читаешь его себе.


>Кто ответит на него, то его ответ будет содержать хэш поста твоего в replyTo


А в треде или в ответах к каждому твоему посту тысяча постов с текстом от какой-нибудь нейросети, и опять придется тратить кучу времени на поиск нормального поста.
82 47883
>>47881

>торрент палит ипы в процессе работы технологии Peer-exchange


p2p-трафик можно пускать внутри I2P, торренты там вполне нормально работают без раскрытия IP.

А насчет защиты от спама есть такая идея - сделать борду не анонимной, а псевдонимной. Каждый юзер генерирует публичный и приватный ключ, подписывает свои посты, и передает их другим пирам. При этом эти посты по умолчанию отображаются у других юзеров как неизвестные и не передаются другим пирам, до тех пор, пока юзеры не добавят отправителя этих постов в некий список доверенных юзеров. Таким образом со временем образуется сеть из доверенных юзеров, внутрь которой не будет попадать спам, а даже если кто-то и начнет вайпать, другие смогут его легко фильтровать.
Самый главный очевидный недостаток - это конечно привязка постов одного юзера к одному id. Хотя ничего не мешает поменять ключи, но тогда придется снова ждать какое-то время, пока твой id попадет в доверенные у достаточного количества юзеров.
Других вариантов реализации борды с большой активностью, без вайпов и без глобальной мочерации я пока не вижу.
83 47884
>>47882

>В этом смысле да, наноборде не нужны сервера.


>Но без серверов для обмена постами не будет выполняться основная цель борды - общение с анонами,


>так что без них все-таки не обойтись.


Ну, смотри.
Поднять lite-сервер в клирнете/локалке/торе, не проблема, и подвязать его на домен,
и нагнать туда нанонов, чтобы они постили прямо туда.
Главное, чтобы туда, на этот сервер,
можно было заливать нанопосты (в виде JSON),
а также контейнеры (в папке /download/ их можно туда постить ),
и сливать их тоже (и посты в JSON, и контейнеры из /download/ ) - причём анонимно.

Но если сервер падёт, должен быть другой центр координации,
например тред с контейнерами на какой-нибудь борде,
куда можно добавлять новые контейнеры
с нанопостами вида "тот серв упал, задуддосен - новый серв тут",
"новые тред с контейнерами - тут, пароль - такой-то", и тому подобное.
Так можно обеспечить децентрализованную устойчивость, при наплыве нанонов.
Или канал в irc/tox/bitmessage, да где угодно, хоть на дваче можно координироваться.

>Да, закрытие сервера и пропадание всех постов на нём.


Можно тупо упаковать пак с пикчами и/или базу зашифрованную, и расшарить её через торрент,
оттуда всё дело подгружать, из децентрализованной пиринговой сети,
а коротенькую magnet-ссылочку, просто повесить на наноборде,
или вообще вшить в какой-нить блокчейн, откуда хуй кто сможет удалить эту ссылку.
Просто нарезать данные по 20 байт, закодировать их в base58check, получить адреса,
и рассыпать мелочь по этим адресам. Всё, данные - в блокчейне, возможно даже на века.

>Имел ввиду размещение одного контейнера на разных бордах. Хотя много ли анонов будет таким заниматься?


Поначалу, меня жутко смутила необходимость выкачивать гиг пикч, и парсить нанопосты с них.
Поэтому была запилена возможность слить посты в виде JSON, с другого lite-server'a.
Как-бы синхронизируя базу, между двумя серверами.
Если lite-server'ов может быть поднято много, то можно было бы
автоматизировать межсерверную синхронизацию базы, и не иметь дело с многовесными контейнерами, вообще.

>Не понял, кому репортить?


Наноны могут репортить, которые распознали вайп.

>А тереть вручную можно,


>только тебе придется тратить время на отличение спама от нормальных постов.


Ну это уже по репортам можно смотреть, если там рандом тупо насыпан, многовесный,
или одно и то же постоянно постят - значит вайп.
Хотя "рандомом" может быть шифр,
и какая-то важная инфа внутри шифра, тут сложно сказать,
и тогда это уже будет мочерация, блядь.

>И так придется делать каждому анону, так как посты удаляются только локально.


Ну, в браузере, на клиентской стороне, можно просто скрыть говнопосты,
они не выводятся просто, при удалении и их хэши лезут в localStorage,
а если надо на самом сервере выпилить их - тогда репорт,
и уже там одменчег, ручками, выпиливает этот сраный вайп,
и не надо тогда каждому ебаццо с прописанием хэшей в локалстораж, на клиенте.
Как-то так.

Вообще, я не вижу в вайпе проблемы, ведь введя хэш нужного треда в поиск, можно сесть и читать его, и насрать на весь остальной вайп - с высокой колокольни,
пусть там зеттабайт срани будет, похуй, ты в нужном треде, читаешь нужные там посты.
Все треды же не будут одновременно вайпать, так как там целое дерево тредов.

>О том, что капча заставит атакующего тратить больше времени или денег на спам,


>но не значительно. То есть только отсеет самых ленивых вайперов.


>> Но проблема щас не в вайпе, а в том, что на наноборде вообще никого нет, пару чел раз в год отпишут и всё.


>А вайп и появится, как только борда станет достаточно популярной. И этот же вайп убьет появившуюся активность.



А разве сложность вайпа, при его обнаружении и усилении,
нельзя было бы регулировать, скажем, увеличением числа хэшей в цепочке,
или же банальным увеличением числа символов в каптче,
а значит и увеличением числа комбинаций к перебору хэшей - ASIC'ами?

Однако, такие изменения уже не являются обратно-совместимыми...
Потому что общепризнанный и каноничный каптча-пак-файл,
он имеет статичное число каптч,
определённого и предопределённого формата.

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

Это просто идея, я ебу как такое впилить, и признают ли наноны подобные нововведения.
Но, ясное дело, что вайп - это читерство, то есть читерский постинг,
и скорость постинга возрастёт до небес, в случае вайпа,
что является резким всплеском скорости постинга на борде,
в отличии от нормального постинга.
В таком-то случае, и следовало бы увеличивать сложность каптчи, при наростании постинга.

>А в треде или в ответах к каждому твоему посту тысяча постов


>с текстом от какой-нибудь нейросети,


>и опять придется тратить кучу времени на поиск нормального поста.


Тогда, можно было бы условится о ключевом слове,
и просто пхать внутрь поста-ответа,

>хэш (таймштамп_отрававки_поста_округлённый_до_минуты + ключевое слово)


Нейросеть так не сможет, ведь она заточена на узкую задачу - распознавать катпчи и срать говном. А вот разумный чел сможет.
Ну и дальше уже, отсеивать говно в читалке, на клиентской стороне,
или даже выставить авторепорт.

Также, можно было бы и познакомится с нужным наноном.
Он может сгенерировать новый приватный ключ критовалюты какой-то,
получить с него адрес, и подписывать сообщения этим приватником,
и проверять адрес по подписи, и так вот - распознавать его авторство,
среди всякого хлама и вайпа и даже флуда. Чисто как вариант.

>>47883
Обе идеи просто охуенны.
В контексте вышеописанного, сходу предлагаю ECDSA/EdDSA, ну или RSA (правда там ключи длинее).
Или у тебя есть другой вариант алгоритма работы с публичным/приватным ключем?

Но есть несколько но...
1. Привязка автора сообщений к публичному ключу - это возможность его деанонимизации по наличию приватного ключа на его железе.
В этом случае, следовало бы менять ключи регулярно,
а значит появлялись бы новые анонимные пользователи,
которых следовало бы отличать от вайперов.
Впрочем, отличить нанона от вайпера можно тупо по количеству высранных нанопостов,
и это может делать программа, а не чел.
Либо по самому контенту, однако тут появляется возможность применения двойных стандартов, и дискриминации нанонов по контенту, а значит - и мочерация, на этом вот уровне.

2. Как насчет добавления публичного ключа в список доверенных, с последующей крупномасштабной реализацией вайпа?
Впрочем, можно было бы и тут по количеству постов высранных, автобан тупо включить. Для этого даже челы не нужны.

Такие мысли...
83 47884
>>47882

>В этом смысле да, наноборде не нужны сервера.


>Но без серверов для обмена постами не будет выполняться основная цель борды - общение с анонами,


>так что без них все-таки не обойтись.


Ну, смотри.
Поднять lite-сервер в клирнете/локалке/торе, не проблема, и подвязать его на домен,
и нагнать туда нанонов, чтобы они постили прямо туда.
Главное, чтобы туда, на этот сервер,
можно было заливать нанопосты (в виде JSON),
а также контейнеры (в папке /download/ их можно туда постить ),
и сливать их тоже (и посты в JSON, и контейнеры из /download/ ) - причём анонимно.

Но если сервер падёт, должен быть другой центр координации,
например тред с контейнерами на какой-нибудь борде,
куда можно добавлять новые контейнеры
с нанопостами вида "тот серв упал, задуддосен - новый серв тут",
"новые тред с контейнерами - тут, пароль - такой-то", и тому подобное.
Так можно обеспечить децентрализованную устойчивость, при наплыве нанонов.
Или канал в irc/tox/bitmessage, да где угодно, хоть на дваче можно координироваться.

>Да, закрытие сервера и пропадание всех постов на нём.


Можно тупо упаковать пак с пикчами и/или базу зашифрованную, и расшарить её через торрент,
оттуда всё дело подгружать, из децентрализованной пиринговой сети,
а коротенькую magnet-ссылочку, просто повесить на наноборде,
или вообще вшить в какой-нить блокчейн, откуда хуй кто сможет удалить эту ссылку.
Просто нарезать данные по 20 байт, закодировать их в base58check, получить адреса,
и рассыпать мелочь по этим адресам. Всё, данные - в блокчейне, возможно даже на века.

>Имел ввиду размещение одного контейнера на разных бордах. Хотя много ли анонов будет таким заниматься?


Поначалу, меня жутко смутила необходимость выкачивать гиг пикч, и парсить нанопосты с них.
Поэтому была запилена возможность слить посты в виде JSON, с другого lite-server'a.
Как-бы синхронизируя базу, между двумя серверами.
Если lite-server'ов может быть поднято много, то можно было бы
автоматизировать межсерверную синхронизацию базы, и не иметь дело с многовесными контейнерами, вообще.

>Не понял, кому репортить?


Наноны могут репортить, которые распознали вайп.

>А тереть вручную можно,


>только тебе придется тратить время на отличение спама от нормальных постов.


Ну это уже по репортам можно смотреть, если там рандом тупо насыпан, многовесный,
или одно и то же постоянно постят - значит вайп.
Хотя "рандомом" может быть шифр,
и какая-то важная инфа внутри шифра, тут сложно сказать,
и тогда это уже будет мочерация, блядь.

>И так придется делать каждому анону, так как посты удаляются только локально.


Ну, в браузере, на клиентской стороне, можно просто скрыть говнопосты,
они не выводятся просто, при удалении и их хэши лезут в localStorage,
а если надо на самом сервере выпилить их - тогда репорт,
и уже там одменчег, ручками, выпиливает этот сраный вайп,
и не надо тогда каждому ебаццо с прописанием хэшей в локалстораж, на клиенте.
Как-то так.

Вообще, я не вижу в вайпе проблемы, ведь введя хэш нужного треда в поиск, можно сесть и читать его, и насрать на весь остальной вайп - с высокой колокольни,
пусть там зеттабайт срани будет, похуй, ты в нужном треде, читаешь нужные там посты.
Все треды же не будут одновременно вайпать, так как там целое дерево тредов.

>О том, что капча заставит атакующего тратить больше времени или денег на спам,


>но не значительно. То есть только отсеет самых ленивых вайперов.


>> Но проблема щас не в вайпе, а в том, что на наноборде вообще никого нет, пару чел раз в год отпишут и всё.


>А вайп и появится, как только борда станет достаточно популярной. И этот же вайп убьет появившуюся активность.



А разве сложность вайпа, при его обнаружении и усилении,
нельзя было бы регулировать, скажем, увеличением числа хэшей в цепочке,
или же банальным увеличением числа символов в каптче,
а значит и увеличением числа комбинаций к перебору хэшей - ASIC'ами?

Однако, такие изменения уже не являются обратно-совместимыми...
Потому что общепризнанный и каноничный каптча-пак-файл,
он имеет статичное число каптч,
определённого и предопределённого формата.

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

Это просто идея, я ебу как такое впилить, и признают ли наноны подобные нововведения.
Но, ясное дело, что вайп - это читерство, то есть читерский постинг,
и скорость постинга возрастёт до небес, в случае вайпа,
что является резким всплеском скорости постинга на борде,
в отличии от нормального постинга.
В таком-то случае, и следовало бы увеличивать сложность каптчи, при наростании постинга.

>А в треде или в ответах к каждому твоему посту тысяча постов


>с текстом от какой-нибудь нейросети,


>и опять придется тратить кучу времени на поиск нормального поста.


Тогда, можно было бы условится о ключевом слове,
и просто пхать внутрь поста-ответа,

>хэш (таймштамп_отрававки_поста_округлённый_до_минуты + ключевое слово)


Нейросеть так не сможет, ведь она заточена на узкую задачу - распознавать катпчи и срать говном. А вот разумный чел сможет.
Ну и дальше уже, отсеивать говно в читалке, на клиентской стороне,
или даже выставить авторепорт.

Также, можно было бы и познакомится с нужным наноном.
Он может сгенерировать новый приватный ключ критовалюты какой-то,
получить с него адрес, и подписывать сообщения этим приватником,
и проверять адрес по подписи, и так вот - распознавать его авторство,
среди всякого хлама и вайпа и даже флуда. Чисто как вариант.

>>47883
Обе идеи просто охуенны.
В контексте вышеописанного, сходу предлагаю ECDSA/EdDSA, ну или RSA (правда там ключи длинее).
Или у тебя есть другой вариант алгоритма работы с публичным/приватным ключем?

Но есть несколько но...
1. Привязка автора сообщений к публичному ключу - это возможность его деанонимизации по наличию приватного ключа на его железе.
В этом случае, следовало бы менять ключи регулярно,
а значит появлялись бы новые анонимные пользователи,
которых следовало бы отличать от вайперов.
Впрочем, отличить нанона от вайпера можно тупо по количеству высранных нанопостов,
и это может делать программа, а не чел.
Либо по самому контенту, однако тут появляется возможность применения двойных стандартов, и дискриминации нанонов по контенту, а значит - и мочерация, на этом вот уровне.

2. Как насчет добавления публичного ключа в список доверенных, с последующей крупномасштабной реализацией вайпа?
Впрочем, можно было бы и тут по количеству постов высранных, автобан тупо включить. Для этого даже челы не нужны.

Такие мысли...
84 47885
>>47884

>В контексте вышеописанного, сходу предлагаю ECDSA/EdDSA, ну или RSA (правда там ключи длинее).


>Или у тебя есть другой вариант алгоритма работы с публичным/приватным ключем?


ECDSA отлично подойдет, уже применял его.

>возможность его деанонимизации по наличию приватного ключа на его железе


Ну это уже относится к компьютерной безопасности, а не к самой борде. Чтобы с тебя ничего не слили, надо запускать всю хуйню в вируалках, вовремя патчить уязвимости, etc.

>отличить нанона от вайпера можно тупо по количеству высранных нанопостов


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

>Как насчет добавления публичного ключа в список доверенных, с последующей крупномасштабной реализацией вайпа?


>Впрочем, можно было бы и тут по количеству постов высранных, автобан тупо включить


Да, можно и автоблокировку по скорости постов сделать. Хотя это особо и не нужно, ведь юзеры и так начнут удалять у себя его посты, просто реакция будет чуть дольше.
Кстати, с этим механизмом распространения постов только от доверенных юзеров может возникнуть интересная ситуация, когда половина юзеров в сети добавили кого-то в доверенные, а другая половина нет. Например, кто-то постоянно постит в каждом треде пасту про говно, одним это забавно, а других заебало и они его заблочили, в итоге борда как бы разделится на две частично пересекающихся борды. А может даже будут возникать целые изолированные островки, где юзеры сознательно решат окуклиться от других.
85 47891
>>45030 (OP)

>>47885

>ECDSA отлично подойдет, уже применял его.


Ой, хуй знает как ECDSA впердолить в наноборду,
но я вижу там библиотеку Chaos.NaCl.dll,
и её можно скомпилировать
из полностью открытого исходного кода,
который приложен вот здесь:
https://github.com/username1565/nanoboard/tree/dev/nanodb.exe-source/Chaos.NaCl.dll/
И внутри этого кода, я вижу Ed25519
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Chaos.NaCl.dll/Chaos.NaCl-master/Chaos.NaCl/Ed25519.cs
Что как-бы намекает на EdDSA:
https://ru.wikipedia.org/wiki/EdDSA#Ed25519

>>47883
Вторая идея с p2p-сетью, мне нравится, да и первая тоже.

>>47225

>Хули вы полноценную p2p борду не запилите, ебаны?


Дело в том, что я хуй знает как всё это дело впердолить.
Возможно, можно было бы впилить это всё опциональным,
с полным сохранением обратной совместимости,
сделав нечто вроде p2p-ноды.

Я тут, блять, не могу никак даже SQLite прихуярить туда,
а вы про p2p-сети какие-то, пиздец просто.
Сорец вроде есть: https://github.com/username1565/System.Data.SQLite
а как его пришпандорить - хуй знает.
Выше была схема данных внутри базы данных,
но как с ними работать через шарп - ваще не ебу, блядь.

Можете форкать и впиливать тоже. Хулей вы сидите?
Оперсорец, позволяет 1000 людей, в год, нахуярить говнокода на 1000 человеко-лет, а мне одному 1000 лет надо будет тыкатся, я столько и не проживу, наверное, без бабла, которое ещё и пиздят тупые мочерские и усосочные - крысы говнявесные.
85 47891
>>45030 (OP)

>>47885

>ECDSA отлично подойдет, уже применял его.


Ой, хуй знает как ECDSA впердолить в наноборду,
но я вижу там библиотеку Chaos.NaCl.dll,
и её можно скомпилировать
из полностью открытого исходного кода,
который приложен вот здесь:
https://github.com/username1565/nanoboard/tree/dev/nanodb.exe-source/Chaos.NaCl.dll/
И внутри этого кода, я вижу Ed25519
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Chaos.NaCl.dll/Chaos.NaCl-master/Chaos.NaCl/Ed25519.cs
Что как-бы намекает на EdDSA:
https://ru.wikipedia.org/wiki/EdDSA#Ed25519

>>47883
Вторая идея с p2p-сетью, мне нравится, да и первая тоже.

>>47225

>Хули вы полноценную p2p борду не запилите, ебаны?


Дело в том, что я хуй знает как всё это дело впердолить.
Возможно, можно было бы впилить это всё опциональным,
с полным сохранением обратной совместимости,
сделав нечто вроде p2p-ноды.

Я тут, блять, не могу никак даже SQLite прихуярить туда,
а вы про p2p-сети какие-то, пиздец просто.
Сорец вроде есть: https://github.com/username1565/System.Data.SQLite
а как его пришпандорить - хуй знает.
Выше была схема данных внутри базы данных,
но как с ними работать через шарп - ваще не ебу, блядь.

Можете форкать и впиливать тоже. Хулей вы сидите?
Оперсорец, позволяет 1000 людей, в год, нахуярить говнокода на 1000 человеко-лет, а мне одному 1000 лет надо будет тыкатся, я столько и не проживу, наверное, без бабла, которое ещё и пиздят тупые мочерские и усосочные - крысы говнявесные.
86 47939
Дайте подробное объяснение, как сделать там пост без паления своего реального айпи.
87 47940
>>47939
Через тор или VPN.
88 47946
>>47940
Куда постить контейнеры?
89 47947
>>47946
В любой тред из списка тредов, которые прописаны в настройках http://127.0.0.1:7346/pages/params.html
90 48122
>>47232
>>47335
>>47337
>>47338

>коллизии



Пока что, пришло в голову следующее.
Помимо

>post_hash = sha256(replyTo+postMessage).substring(0,32)


Добавить отдельным свойством поста

>FullCollisionID = sha256(replyTo+message) + md5(replyTo+message)


и выдавать пост по обоим значениям, как по post_hash, так и по FulCollisionID.
Если добавляется пост с тем же post_hash, но FullCollisionID другой, то добавить его.
По post_hash выдавать все посты, если они имеют коллизии, и выдавать их со значением FullCollisionID,
по которому однозначно можно найти нужный пост.
В replyTo можно совать как post_hash так и FullCollisionID, определяя их по длине, после обрезания [ g ]-тега с датой и временем.
Вся хуйня должна быть обратно-совместима полностью, не?
Или может как-то по-другому можно сделать?
91 48123
>>48122
Для файлов, можно ту же хуйню сделать,
и также как и посты - выдавать их как по хэшу,
так и по FullCollisionID.
На случай, если два файла будут иметь один и тот же хэш, FullCollisionID выдаст нужный файл.
Можно было бы в посты, встроить отдельный тег, типа [attach]FullCollisionID[/attach] и подгружать аттачи туда,
оставив всю эту хуйню обратно-совместимой со старой нанобордой.
92 48124
>>48122
>>48123
Тогда, надо будет пхать внутрь постов, ещё FullCollisionID дополнительным тегом, внутрь postMessage, и обрезать его при ExceptXMG,
и пхать его, чтобы ответы не клеились к разным постам с одинаковым хэшем replyTo.

Блядь, проще оставить, наверное, всё, как есть, и просто перегенерировать POW, если обнаружена коллизия ебучая.
А для файлов, чтобы не было коллизий, тоже клеить рандомные байты, и перегенерировать их, если есть коллизия.
93 48127
>>45030 (OP)
Если зрить в корень,
то схема

>PostHash=sha256(ReplyToHash+PostMessage)


просто охуительна тем,
что если принять её за стандарт,
при должном уровне индексации,
она позволяет общаться децентраизированно,
и не взирая на разрывы в пространстве и времени.

Достаточно впостить куда-то инфу,
и если это место индексируется,
то эту инфу можно найти по её хэшу.
А цепочку ответов к этому хэшу,
можно выгрузить, спарсить, и сложить в тред.

И даже если

>PostHash=sha256(ReplyToHash+PostMessage).substring(0, 32)


увеличивает число коллизий,
достаточно изменить PostMessage, чтобы получить хэш, который позволит однозначно адресовать пост по PostHash.

Если какой-то ученый, впостил ёба-формулу теории Всего,
хуйнадцать лет назад, и если в этой формуле ошибка,
нанон может просто вычислить хэш формулы,
исправить ошибку, впостить свой ответ,
и этот ответ можно будет найти откуда угодно,
даже через хуйсот лет,
при должном уровне диверсификации базы,
а также её индексации.

И никаких серверов, которые могут падать, и которые нужно хостить на доменах, которые могут разделегировать.
Разве это не охуенно?
93 48127
>>45030 (OP)
Если зрить в корень,
то схема

>PostHash=sha256(ReplyToHash+PostMessage)


просто охуительна тем,
что если принять её за стандарт,
при должном уровне индексации,
она позволяет общаться децентраизированно,
и не взирая на разрывы в пространстве и времени.

Достаточно впостить куда-то инфу,
и если это место индексируется,
то эту инфу можно найти по её хэшу.
А цепочку ответов к этому хэшу,
можно выгрузить, спарсить, и сложить в тред.

И даже если

>PostHash=sha256(ReplyToHash+PostMessage).substring(0, 32)


увеличивает число коллизий,
достаточно изменить PostMessage, чтобы получить хэш, который позволит однозначно адресовать пост по PostHash.

Если какой-то ученый, впостил ёба-формулу теории Всего,
хуйнадцать лет назад, и если в этой формуле ошибка,
нанон может просто вычислить хэш формулы,
исправить ошибку, впостить свой ответ,
и этот ответ можно будет найти откуда угодно,
даже через хуйсот лет,
при должном уровне диверсификации базы,
а также её индексации.

И никаких серверов, которые могут падать, и которые нужно хостить на доменах, которые могут разделегировать.
Разве это не охуенно?
image.png17 Кб, 281x263
94 48172
>>47339
Короче, наноны, пока такая вот база: https://github.com/username1565/nanoboard/blob/nanodb-sqlite/nanodb.exe-source/Database/nanodb.sqlite3.sql
можете потыкать.

Если чо, чтобы потыкать эту шнягу - я использовал мокропиську SQLite Expert Professional Edition v5.3.4.460 x86 & x64 + Portable
95 48187
>>48172
А что делать с этой базой?
image.png73 Кб, 1088x331
96 48189
>>48187
Да пока ничо.
Просто взбрело в голову (уже давно, кстати) - заменить базу,
и переписать вот это вот всё:
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Database/PostDb.cs
Выбрал SQLite3.
Потому что она реляционная,
а ещё там есть индексация, её можно сжать (SQL-команда vacuum; ),
ну и всякая там транзакционность есть, шардинг, репликация,
можно файлы внутри неё blob'ами хранить, и ещё есть целостность данных.

А то ща, блядь, один битый сектор - и пизда контенту.

Я пока на стадии "проектирования базы данных".
Тот SQL-скрипт, можно запустить здесь в той софтине:

>SQLite Expert Professional Edition v5.3.4.460 x86 & x64 + Portable


и потыкать базу эту.
Чтоб наполнить её, можно использовать SQL-запрос, вида:

>BEGIN;


>INSERT OR REPLACE INTO [NanoPosts]([IsDeleted], [PostHash], [ReplyToHash], [PostMessage]) VALUES(0, 'PostHash', 'ReplyToHash', 'PostMessage');


>INSERT OR REPLACE INTO [NanoPosts]([IsDeleted], [PostHash], [ReplyToHash], [PostMessage]) VALUES(0, 'PostHash1', 'ReplyToHash1', 'PostMessage1');


>COMMIT;


где PostMessage - JSON-serialized сообщение, в котором одинарная кавычка ' заменена на две такие кавычки '' .

Поскольку там код на шарпе, то работать с этой базой данных SQLite,
можно через System.Data.SQLite,
и судя по https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
там нужна одна лишь dll-ка: https://system.data.sqlite.org/downloads/1.0.115.5/sqlite-netFx40-binary-bundle-Win32-2010-1.0.115.5.zip
и её можно скомпилировать из этого - открытого кода: https://github.com/username1565/System.Data.SQLite

Конечно, чтобы впилить SQLite, надо хорошо попердолиться, и вкодить всю хуйню,
у меня пока только некие тестовые наработки,
но они нихуя не готовы, и разбросаны, блядь, по куче папок, так шо яебал.

Если чо, тут справка, как дёргать эту DLL-ку:
https://github.com/username1565/System.Data.SQLite/blob/v1.0.115.0/Doc/SQLite.NET.chm
но она на ангельском.

Пока, схема данных, такая (пикрил).
Судя по всему, этого достаточно, чтобы однозначно адресовать по хэшам и нанопосты, и аттачи.
В таблицах NanoPosts и Attachments, поля PostHash и AttachmentHash являются уникальными - первичными ключами,
и коллизии могут быть исключены на этапе добавления данных в БД.
Если NanoPost, добавляемый NanoPosts имеет коллизию, тогда, достаточно перегенерировать POW, и вставить этот же пост, но с другим хэшем.
Если Attachment, добавляемый в Attachments имеет коллзию, и выдаёт тот же хэш,
то тогда, можно игнорировать его добавление,
ведь вероятнее всего - это тот же файл, к другому посту приклеили,
и тогда, просто запись добавляется в таблицу NanopostsAttachments - безо всякого дублирования файлов.

Но если это реально коллизия, а не тот же самый файл,
то тогда, данные в blob могут иметь разный размер и разный контент.
Наверняка, в этом случае, следовало бы прицепить в таблицу Attachments,
что-то вроде дополнительного поля c опциональным значением AntiCollisionID,
и регенерировать это значение в случае если хэш добавляемого файла,
уже есть у какого-либо аттача, из таблицы Attachments.
После двоичной компарации контента, из blob, разумеется.
Если контент совпадает, тогда не добавлять файл опять,
а просто добавить ссылку в таблицу NanopostsAttachments.

Может ещё быть такое, файл один и тот же, а имена, у них - разные.
Тоже надо подумать над этим, а пока - хуй знает что c этим делать.

Короче, после всего этого, база данных,
должна бы выдавать нанопост и аттач по их хэшам.
Да, это можно сделать SQL-запросами, вида:

>SELECT * FROM TableName WHERE Hash = 'хэш'


а дальше уже, всю хуйню можно было бы раздавать через API-вызовы,
прихуярив соответствующие хэндлеры в DbApiHandler.cs.
Например, что-то вроде http://127.0.0.1:7346/api/GetFile/hash -> бинарный ответ с файлом, с application/octet-stream
Ну и, так вот, можно было бы сливать аттачи с сервера, или даже заливать их туда (с каптчей, бы ещё).
image.png73 Кб, 1088x331
96 48189
>>48187
Да пока ничо.
Просто взбрело в голову (уже давно, кстати) - заменить базу,
и переписать вот это вот всё:
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Database/PostDb.cs
Выбрал SQLite3.
Потому что она реляционная,
а ещё там есть индексация, её можно сжать (SQL-команда vacuum; ),
ну и всякая там транзакционность есть, шардинг, репликация,
можно файлы внутри неё blob'ами хранить, и ещё есть целостность данных.

А то ща, блядь, один битый сектор - и пизда контенту.

Я пока на стадии "проектирования базы данных".
Тот SQL-скрипт, можно запустить здесь в той софтине:

>SQLite Expert Professional Edition v5.3.4.460 x86 & x64 + Portable


и потыкать базу эту.
Чтоб наполнить её, можно использовать SQL-запрос, вида:

>BEGIN;


>INSERT OR REPLACE INTO [NanoPosts]([IsDeleted], [PostHash], [ReplyToHash], [PostMessage]) VALUES(0, 'PostHash', 'ReplyToHash', 'PostMessage');


>INSERT OR REPLACE INTO [NanoPosts]([IsDeleted], [PostHash], [ReplyToHash], [PostMessage]) VALUES(0, 'PostHash1', 'ReplyToHash1', 'PostMessage1');


>COMMIT;


где PostMessage - JSON-serialized сообщение, в котором одинарная кавычка ' заменена на две такие кавычки '' .

Поскольку там код на шарпе, то работать с этой базой данных SQLite,
можно через System.Data.SQLite,
и судя по https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
там нужна одна лишь dll-ка: https://system.data.sqlite.org/downloads/1.0.115.5/sqlite-netFx40-binary-bundle-Win32-2010-1.0.115.5.zip
и её можно скомпилировать из этого - открытого кода: https://github.com/username1565/System.Data.SQLite

Конечно, чтобы впилить SQLite, надо хорошо попердолиться, и вкодить всю хуйню,
у меня пока только некие тестовые наработки,
но они нихуя не готовы, и разбросаны, блядь, по куче папок, так шо яебал.

Если чо, тут справка, как дёргать эту DLL-ку:
https://github.com/username1565/System.Data.SQLite/blob/v1.0.115.0/Doc/SQLite.NET.chm
но она на ангельском.

Пока, схема данных, такая (пикрил).
Судя по всему, этого достаточно, чтобы однозначно адресовать по хэшам и нанопосты, и аттачи.
В таблицах NanoPosts и Attachments, поля PostHash и AttachmentHash являются уникальными - первичными ключами,
и коллизии могут быть исключены на этапе добавления данных в БД.
Если NanoPost, добавляемый NanoPosts имеет коллизию, тогда, достаточно перегенерировать POW, и вставить этот же пост, но с другим хэшем.
Если Attachment, добавляемый в Attachments имеет коллзию, и выдаёт тот же хэш,
то тогда, можно игнорировать его добавление,
ведь вероятнее всего - это тот же файл, к другому посту приклеили,
и тогда, просто запись добавляется в таблицу NanopostsAttachments - безо всякого дублирования файлов.

Но если это реально коллизия, а не тот же самый файл,
то тогда, данные в blob могут иметь разный размер и разный контент.
Наверняка, в этом случае, следовало бы прицепить в таблицу Attachments,
что-то вроде дополнительного поля c опциональным значением AntiCollisionID,
и регенерировать это значение в случае если хэш добавляемого файла,
уже есть у какого-либо аттача, из таблицы Attachments.
После двоичной компарации контента, из blob, разумеется.
Если контент совпадает, тогда не добавлять файл опять,
а просто добавить ссылку в таблицу NanopostsAttachments.

Может ещё быть такое, файл один и тот же, а имена, у них - разные.
Тоже надо подумать над этим, а пока - хуй знает что c этим делать.

Короче, после всего этого, база данных,
должна бы выдавать нанопост и аттач по их хэшам.
Да, это можно сделать SQL-запросами, вида:

>SELECT * FROM TableName WHERE Hash = 'хэш'


а дальше уже, всю хуйню можно было бы раздавать через API-вызовы,
прихуярив соответствующие хэндлеры в DbApiHandler.cs.
Например, что-то вроде http://127.0.0.1:7346/api/GetFile/hash -> бинарный ответ с файлом, с application/octet-stream
Ну и, так вот, можно было бы сливать аттачи с сервера, или даже заливать их туда (с каптчей, бы ещё).
image.png44 Кб, 922x336
97 48190
>>48189
Где-то здесь было слово из спам-листа.
98 48191
>>48187
Удумался в вопрос более углубленно. Вопрос наводящий.
Что делать с базой?
Конечно же попытаться управлять ею, при помощи "системы управления базами данных" (СУБД).
После наполнения базы постами, можно производить поиск по их тексту
(смотри соответствующий SQL-запрос в той таблице [!SQL-requests]):
https://github.com/username1565/nanoboard/blob/c337657a41764ff4ff6bd10fdbb8bd5e1b952be9/nanodb.exe-source/Database/nanodb.sqlite3.sql#L210-L215
алсо - срабатывает вся та куча view'ов:
https://github.com/username1565/nanoboard/blob/c337657a41764ff4ff6bd10fdbb8bd5e1b952be9/nanodb.exe-source/Database/nanodb.sqlite3.sql#L271-L394
к которым, можно обращаться SQL-запросами, также как и к таблицам:

>SELECT * FROM ViewName WHERE {blah-blah} ORDER BY {blah-blah}

99 49101
>>45030 (OP)
Не доверяю этой бороде. При попытке постинга срабатывает Canvas Fingerprint Defender (хуйня, детектящая попытку собрать отпечаток браузера), что как бы намекает.
100 49102
>>49101
Хуле доверять, когда можно посмотреть исходник. Там просто картинка масштабируется через канвас, а твоя хуита детектит это как фингерпринтинг. Она даже на простой getImageData ругается, лол.
101 49103
>>49102
А, вот оно что. А то у меня еще старая версия картинки засирала шумами. Кстати, что там сделал разработчик, что теперь при загрузке картинки на сайты, где идет попытка чтения фингерпринта, не засирается?
изображение.png13 Кб, 563x235
102 49104
>>49103
Не знаю, что там раньше было, но это расширение и сейчас засирает, только не слишком заметно. Например, чисто черные пиксели на канвасе (0,0,0,255) с этим расширением стали (0,4,3,246) (каждый раз меняется рандомно). Так что если в картинке есть стеганография, то после преобразования в канвас и обратно она похерится.
image.png50 Кб, 806x423
103 49105
>>49101
>>49102
>>49103
>>49104
А где этот канвас в коде, именно? В каком месте?
Я вообще канваса не вижу, каптча выводится в img-теге.
Или это на борде карася?
1533221598369.png78 Кб, 200x200
104 49106
>>49105
Про наноборду
105 49108
>>49106
Очевиден реквест моара деталей, не?
Про какую наноборду. На каком этапе вылазит хуйня. Скрины, и прочее. Как можно фиксить хуй пойми что и хуй пойми где.
106 49109
>>49105

>где этот канвас в коде


nanoboard 2016 года, файл img2base64.js, функция updateImage.
107 49113
>>49109
Ага, ага...
То есть, эта шняга срабатывает,
не просто когда постишь нанопост,
а когда аттачишь картинку какую-то, внутрь нанопоста.

Ну и где ты видишь пиздинг фингерпринта из браузера?
И видишь нахуя всё оно надо, вся та ебанина с canvas'ом?
А попросту, чтобы вызвать потом - canvas.toDataURL(),
и получить dataURL, содержащий base64 пережатой пикчи, которую аттачишь,
и вставить этот base64 в нанопост.
Можно как-то по-другому получить base64, не используя canvas,
чтобы твой йоба-антивирус - не выдавал false positive detections?

Разве что залить на сервер, в какой-то временный файл,
эту пикчу пережатую, и потом уже вытащить бейс - как-то так, через XHR-запрос:
https://stackoverflow.com/questions/53415469/extract-dataurl-from-javascript-function
108 49114
>>49113

>видишь нахуя всё оно надо, вся та ебанина с canvas'ом?


>А попросту, чтобы вызвать потом - canvas.toDataURL()


Да и не только. Пережималка тоже через канвас жмёт пикчи.
Функция sharpen, она же принимает canvas в качестве аргумента:
https://github.com/username1565/nanoboard/blob/master/scripts/img2base64.js#L6
и дальше уже жмёт.
109 49440
>>45030 (OP)
Тут пиздует сиквелайт: https://github.com/username1565/nanoboard/commits/nanodb-sqlite
Постим пожелания, предложения, тестим...
Может создать серв в дискорде для нанобороды?
110 49443
>>45030 (OP)
Основная идея наноборды заключается в хэш-таблице:
{PostHash : ReplyToHash + PostMessage},
где PostHash = sha256(ReplyToHash + PostMessage);

Такую хэш-таблицу, возможно преобразовать в таблицу вида:
{PostHash, ReplyToHash, PostMessage}
являющей собой бесконечное дерево.

Такая хэш-таблица, может храниться децентрализовано, и собираться из различных мест.

Если принять это за стандарт, то можно общаться невзирая на разрывы в пространстве и времени.
Например, один ученый, может выложить формулу с хэшем, куда-либо, и это сообщение попадёт в хэш-таблицу.
А через 100 лет, другой учёный, просто возьмёт хэш, и впостит своё исправление к ней, что тоже попадёт в хэш-таблицу.
В итоге, получится текст формулы и текст исправления к ней - в качестве ответа к нанопосту.
111 49444
>>45030 (OP)
А зачем нужен /PngTransport/CurlWebClient.cs?
112 49944
Поясните за 3.0:
почему такая уебанская капча которую нихуя не понять?
Нахуя нужны кнопки COLLECT и CREATE PNG в шапке? Я потыкал, коллект вроде отвечает за загрузку контейнеров, но особо не понял всё равно

3.3:
Как запустить? открываю исполняемый файл, вылезает консоль и тут же закрывается
113 49945
>>49944

>3.3:


>Как запустить? открываю исполняемый файл, вылезает консоль и тут же закрывается


Вопрос закрыт, я понел надо было закинуть файлы 3.3 к файлам 3.0 с заменой

Но вот про CREATE PNG вопрос открытый, нахуя нужна эта кнопка?
114 49946
Почему версия 3.0 прям бодро загружает все пикчи-контейнеры по ссылкам, а 3.3 еле-еле их тянет и по итогу не добавляет даже половины тредов и постов, которые добавила 3.0?
115 50842
Давно не был на наноборде. Что за версия 3,3? Она работает в торе? Качнул вот старую 3,0. Что вообще поменялось? Я раньше постил контейнеры по бордам, было интересно. Вот решил снова вкатиться в наноборду.
116 50843
Дайте пожалуйста актуальный список борд в сеттинг для сбора контейнеров.
117 50844
Все попал на наноборду, скачал с дефолтного списка контейнеры, вроде все треды на месте. Дайти плис актуальный список мест где есть контейнеры, я помню в прежних тредах были посты где вылаживали актуальные списки, и на дваче есть треды где постили эти фракталы. А так вроде все норм, увидел посты за 2к22. Только цп куда-то вроде делось, а так все норм.
118 50845
Ебануться. 2016 год
https://www.youtube.com/watch?v=qEuV82GqQnE
Мой тред по новому клипу Роллинг Стоунз. Я снова здесь)
Снимок экрана2022-08-1918-47-19.png144 Кб, 1340x653
119 50846
А не, все на месте.Закон нарушен :3
120 50847
Актуальный список

# put URLs here, one per line
http://dobrochan.com/mad/res/75979.xhtml
http://hamstakilla.com/b/22279
https://2ch.hk/srv/res/1930.html (М)
https://2ch.hk/8/res/2570.html (М)

На дваче есть еще треды, но лень искать да я уже и не помню. Но два точно есть нашел, можно создавать еще. Аноны находили еще оч много борд где можно было паразитировать, но те списке хз уже где, тащемта советовали всегда размещать контейнеры сразу на двух а лучше пяти бордах дабы не утерять ничего. Я грузанул и вроде бы все осталось прежним есть даже посты за 2022 год. Давайте возобновимся.
121 50848
>>50847
упд

Кароч вот самый актуальный список на 2022

# put URLs here, one per line
http://dobrochan.com/mad/res/75979.xhtml
http://hamstakilla.com/b/22279
https://2ch.hk/srv/res/1930.html (М)
https://2ch.hk/8/res/2570.html (М)
https://2ch.hk/test/res/6599.html (М)
https://2ch.hk/who/res/1394.html (М)
https://2ch.hk/m/res/3730.html (М)
https://2ch.hk/mlpr/res/92518.html (М)
https://2ch.hk/cute/res/5790.html (М)
https://2ch.hk/obr/res/488.html (М)

Я же сам и создавал тред по спискам последний и вылаживал треды на дваче. Все вроде сохранилось в целости, вроде ничего не потерялось.
sage 122 50877
И как вы там, живы? Много анонов?
123 50878
>>50877
Да есть люди там, и есть треды за 2022 год. В целом наноборду надо также пиарить все таки, потому что о ней мало кто знает. Но треды свежие есть.
>>50848
самый актуальный список

Нужно пиарить, контент и тогда люди потянуться, и надо чтобы осознали выгоды наноборды, это же полная анонимность, неубиваемость и тд и тп.
изображение.png21 Кб, 611x327
124 51025
>>50878
Неплохо. Могло бы быть хуже, хотя нет, не могло, лучше бы уже окончательно померло
image.png41 Кб, 1339x361
125 51440
Контейнеры есть - постов нет. ЧЯДНТ?
Обновить тред
« /crypt/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее