Демон хранения
warning
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Демон хранения (storage daemon) — это программа, используемая для загрузки и обмена файлами в сети TON. Другая программа storage-daemon-cli используется для управления уже запущенным демоном хранения из консоли.
Текущую версию демона хранения можно найти в репозитории в ветви Testnet.
Требования к аппаратному обеспечению
- не менее 1 ГГц частоты и 2 ядер у процессора
- не менее 2 ГБ оперативной памяти
- не менее 2 ГБ SSD (без учета места для торрентов)
- пропускная способность сети 10 Мб/с со статическим IP
Бинарные файлы
Вы можете скачать бинарные файлы storage-daemon и storage-daemon-cli для Linux/Windows/MacOS из раздела сборок в GitHub-репозитории.
Компиляция исходного кода
Вы можете самостоятельно скомпилировать storage-daemon и storage-damon-cli из файлов с исходным кодом, используя инструкцию.
Ключевые понятия
- Пакет файлов («bag of files») или просто Пакет — коллекция файлов, распространяемых через хранилище TON
- Сетевая часть TON Storage основана на технологии, схожей с торрентами, поэтому термины торрент, пакет файлов и пакет будут использоваться как взаимозаменяемые. Однако важно отметить некоторые различия: TON Storage передает данные по протоколу ADNL по протоколу RLDP, каждый пакет распространяется через свой собственный сетевой оверлей, меркловая структура может существовать в двух вариантах — с большими чанками для эффективного скачивания и маленькими для эффективного доказательства права собственности, а для поиска пиров используется сеть TON DHT.
- Пакет файлов состоит из информации о торренте и блока данных.
- Блок данных начинается с заголовка торрента — структуры, содержащей список файлов с их именами и размерами. Далее в блоке данных следуют сами файлы.
- Блок данных делится на так называемые «чанки» (по умолчанию 128 КБ), и на основе SHA256-хэшей этих чанков строится дерево Меркла (из TVM-ячеек). Это позволяет создавать и проверять доказательства Меркла для отдельных фрагментов, а также эффективно воссоздавать пакет, обмениваясь только доказательством измененного чанка.
- Информация о торренте содержит Меркловый корень следующих данных:
- Размер чанка (блок данных)
- список размеров чанков
- Хэш дерева Меркла
- Описание – любой текст, указанный создателем торрента
- Информация о торренте сериализуется в TVM-ячейку. Хэш этой ячейки называется BagID, и он уникально идентифицирует Bag.
- Bag meta — это файл, содержащий информацию о торренте и заголовок торрента.* Это аналог файлов с расширением
.torrent.