Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Вкратце, принцип работы наноборды #22

Open
username1565 opened this issue May 24, 2022 · 0 comments
Open

Comments

@username1565
Copy link
Owner

PostMessage; некий текст.

PostHash = sha256(PostMessage); хэш текста.

Уже можно сделать хэш-таблицу:
{
"PostHash1": "PostMessage1"
, "PostHash2": "PostMessage2"
, ...
}

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

Но возможны редчайшие коллизии хэша, для разных входных текстов
Например: PostHash1 = sha256(PostMessage1); PostHash1 = sha256(PostMessage2), где PostMessage1 и PostMessage2 - тексты разной длины.

Тогда, PostHash = sha256(PostMessage)+PostMessageLength; идентификатор текста, где PostMessageLength - байтовая длина текста.

Хэш-таблица, вида
{
"PostHash1": "PostMessage1"
, "PostHash2": "PostMessage2"
, ...
}
Содержит только тексты, доступные по хэшам.

PostMessage = ReplyToHash + PostMessage
{
"PostHash1": "ReplyToHash1+PostMessage1"
, "PostHash2": "ReplyToHash2+PostMessage2"
, ...
}
Это уже бесконечно-ветвящееся дерево, которое может быт преобразовано в таблицу, вида:
|PostHash|ReplyToHash|PostMessage|

Совместить эту хэш-таблицу можно с предыдущей, можно добавив ReplyToHash=00000000000000000000000000000000 к данным.
Если там 00000000000000000000000000000000, то не хэшировать ReplyToHash, а обрезать его, и прохэшировать только данные.

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

Сообщение может быть размещено где угодно, в виде: (PostHash+ReplyToHash)+PostMessage,
в том числе на форуме, или на бумаге даже,
и из этого источника спарсено (отсканировано), и добавлено в хэш-таблицу.
Эти данные могут храниться где угодно, например в архивах, то есть это могут быт и историческими данные.

Так как, sha256-хэш слишком длинный, а два хэша (PostHash+ReplyToHash) - тем более, то можно уполовинить, как в наноборде:
PostHash1 = sha256(PostMessage1).substring(0, 32)

Тогда, PostHash+ReplyToHash будет длиной как 1 sha256-hash.

В хэш-таблицу может быть спам и вайп, поэтому POW и каптча внутри PostMessage, а такжe bb-коды, как в наноборде.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant