Проектная лаборатория

Собственный BitTorrent

0 / 19этапов пройдено

Этап 19 · Magnet-ссылки

Скачивание всего файла

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы скачаете весь файл по magnet-ссылке и сохраните его на диск.

Команда magnet_download

Для проверки программы на этом этапе вводится новая команда magnet_download. Она работает так:

$ ./your_program.sh magnet_download -o /tmp/sample <magnet-link>

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

Тесты

Тестирующая система запустит вашу программу следующим образом:

$ ./your_program.sh magnet_download -o /tmp/sample <magnet-link>

Она проверит, что файл скачан правильно.

Примечания

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

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init bittorrent ./my-bittorrent --language go

2. Откройте папку в IDE

cd ./my-bittorrent

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage dv7

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста