Forums -> Сеть BitTorrent -> Структура .torrent файла
| Full Version

TAHKEP
Если я правильно понимаю это вроде бы открытай проект, значит структура содержимого должна быть где-то расписана?
admik
тебе зачем?
TAHKEP
QUOTE (admik @ 13-12-2005, 14:44)
тебе зачем?
Да... баловство... Я на другом трекере начал качать образ диска игрухи одной, и, вроде бы, по достоверным слухам, там примерно половина из 4Гб -- большие области заполненные нулями. Т.к. я частично уже качнул и затереть теперь файл нулями жалко, думал, что м.б. где то можно достать структурку torrent-файлов, и если там не слишком сложно, нацарапать утилитку, которая занулит только то, что не скачано, а вот тогда уже сделать ре-чек. :)
admik
вообще-то чанки заполненные нулями сжимаются и передаются с очень быстрой скоростью :)))) уже имели опыт общения раздач 70минут тишины
TAHKEP
QUOTE (admik @ 13-12-2005, 16:40)
вообще-то чанки заполненные нулями сжимаются и передаются с очень быстрой скоростью :)))) уже имели опыт общения раздач 70минут тишины
Опа! Оказывается я вообще ничего не знаю о bittorent'e :fear2: Т.е. чанки при передаче еще и сжимаются? А есть что-ньть тогда почитать? Желательно на русском, но если русского нет то и инглиш вполне устроит... Буду расти над собой :D
LF_
Ты его больше слушай :) Файл торрент говоря грубо - хеши кусоков файлов + немного разной инфы о самом файле, посмотреть внутренности можно TorrentSpy, а передача чанков - это дело клиентов и в протоколе сжатия нет, в большенстве случаев это и не надо, потому что передают архивы и тп
TAHKEP
QUOTE (LF_ @ 13-12-2005, 17:25)
Ты его больше слушай :)
Красные придут -- грабят, белые придут -- грабят... Куда крестьянину податься? (С) :)
QUOTE (LF_ @ 13-12-2005, 17:25)
Файл торрент говоря грубо - хеши кусоков файлов + немного разной инфы о самом файле,
Ну беглый осмотр в HEX редакторе примерно это и показал, но хотелось бы подробностев...
QUOTE (LF_ @ 13-12-2005, 17:25)
посмотреть внутренности можно TorrentSpy,
К сожалению, он не обеспечивает нужной "глубины" имхо, можно им глянуть какие чанки уже скачаны?
QUOTE (LF_ @ 13-12-2005, 17:25)
большенстве случаев это и не надо, потому что передают архивы и тп
Ну вот в том вся и проблема, что там просто несжатый образ диска... :(
TAHKEP
Метла, кстати, внушаить... :D
LF_
Им глянуть низя, потому что он не скачивает - глянуть мона чем качаешь, азур или мю показывают распределение и сколько процентов слито по каждому файлу, что слито и тп...

Торрент файл не имеет отношения к передачи данных, а zlib к торренту пока никто не приделывал...
TAHKEP
QUOTE (LF_ @ 13-12-2005, 18:13)
Им глянуть низя, потому что он не скачивает - глянуть мона чем качаешь, азур или мю показывают распределение и сколько процентов слито по каждому файлу, что слито и тп...
Ну там, кажись, довольно примитивное отображение, даже номера скачаных чанков узнать нельзя. :(
admik
TAHKEP виноват, ошибся. не приделали пока упаковку.
LF_
QUOTE (TAHKEP @ 13-12-2005, 10:22)
Ну там, кажись, довольно примитивное отображение, даже номера скачаных чанков узнать нельзя. :(
ну возьми вон ТоррентСпая, он на дельфе, опен сорс и допиши :diablo:
TAHKEP
QUOTE (LF_ @ 13-12-2005, 18:34)
ну возьми вон ТоррентСпая, он на дельфе, опен сорс и допиши :diablo:
Я первым делом туда полез, но там сорцов нет :(
LF_
все там есть - поставь себе CVS клиента или руками cvs.sourceforge.net/viewcvs.py/torrentspy/TorrentSpy-0.2-delphi/src/

cvs.sourceforge.net/viewcvs.py/torrentspy/
TAHKEP
QUOTE (LF_ @ 13-12-2005, 18:59)
все там есть - поставь себе CVS клиента или руками cvs.sourceforge.net/viewcvs.py/torrentspy/TorrentSpy-0.2-delphi/src/
Опять плохое знание матчасти! :) СПАСИБО!!!
FiL
вообще-то и простое описание структуры торрент-файла есть. В смысле не в сырцах, а в доках. Только к вопросу о том, что уже скачено, оно таки отношения не имеет.
TAHKEP
QUOTE (FiL @ 13-12-2005, 21:15)
вообще-то и простое описание структуры торрент-файла есть. В смысле не в сырцах, а в доках.
А можно, ссылочку? Заранее спасибо...
QUOTE (FiL @ 13-12-2005, 21:15)
Только к вопросу о том, что уже скачено, оно таки отношения не имеет.
Понимаю, но если знать структуру torrent-файла и алгоритм расчёта CRC чанков можно просто проверить какие чанки закончены, а остальные забить нужным символом.
FiL
wiki.theory.org/BitTorrentSpecification

Я-бы даже сказал так - wiki.theory.org/BitTorrentFAQ
Fellow
Конечно, о том, что уже скачено, клиент не будет писать в торрент файл. Клиент будет хранить эту информацию где-то у себя в своем собственном формате.

Например, BitComet хранит у себя в фолдере zzz.torrent и рядом zzz.xml. В xml файле хранятся имя и путь к загружаемому файлу, адрес трекера, PeerList и т.п. А также и "что скачено":
CODE
<BitFieldStatus TotalLength="734213634" PieceLength="524288">
<BitField>ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80</BitField>
</BitFieldStatus>
- так это выглядит для законченного файла.

А так - у файла с 49.2%
CODE
<BitFieldStatus TotalLength="181487616" PieceLength="262144">
<BitField>351e0271a5d4ae970ef304964e7a5ce29f455ca7cd76665c70fc2658f7f13f4e8ff57c8a667fd2cd8890f8105d44d680e74a52114f7903593a68a80607391730120a37a0947394e5da1fc04efe68a6e383bd744f7f0060</BitField>
<Placement>80:245,283:290,323:633,364:533,405:674,446:454,542:629,596:673,637:661,</Placement>
<BitFieldInPiece>
<Slice Index="42">f400</Slice>
<Slice Index="363">fffc</Slice>
<Slice Index="505">ffe0</Slice>
</BitFieldInPiece>
</BitFieldStatus>

В общем, тут есть что расшифровывать, если захочешь :) Подробности этих полей автором BitComet'а наверняка не описаны, да и действительно - зачем бы?





Если есть большие области, заполненные нулями ... Если это нули в смысле 00h (а не "0" который перед "1"), то, например, BitComet при создании пустого файла похоже все нулями и прописывает. Мне аж самому стало интересно - что будет, если раздавать пустой файл, начать его скачивать, потом сразу остановить и сделать "Manual Hash Check". Скакнет ли прогресс сразу на 100% или где-то я в рассуждениях ошибаюсь?




Описание структуры торрент-файла:
www.bittorrent.com/protocol.html
или wiki.theory.org/BitTorrentSpecification
или wiki.bitcomet.com/help/Torrent_File_Format
FiL
а я успел раньше :)
TAHKEP
FiL, Fellow Спасибо за ссылки, самое то, что нужно! :)

По поводу заполнения нулями (0х00h) очень похоже -- utorrent при резервировании места тоже забивает будущие файлы этим символом. Возможно, у меня неверная инфа, м.б. там другой символ использовался, или может там вообще заполнено не каким-то единственным символом, а "белым шумом". :(
Еще раз -- спасибо!
Не догоню, так хоть согреюсь... :D
CheFF
Оффтопик, но, подскажите какой либо клиент CVS, если этот вопрос конечно имеет смысл ;)
obaldin
QUOTE (CheFF @ 15-12-2005, 06:52)
Оффтопик, но, подскажите какой либо клиент CVS, если этот вопрос конечно имеет смысл ;)
Если под винду - Tortoise CVS
TAHKEP
QUOTE (CheFF @ 15-12-2005, 07:52)
Оффтопик, но, подскажите какой либо клиент CVS, если этот вопрос конечно имеет смысл ;)
Фтопку(С), имхо, проще руками скачать. Ради прокта в сотню кб ставить минимум 5Мб хреновину?
admik
TAHKEP хех...если один раз - то может быть проще руками, а если переодически?
тортила оказалось очень приятным клиентом. я чего-то без неё уже и не представляю как жить вообще.
TAHKEP
QUOTE (admik @ 15-12-2005, 13:53)
TAHKEP тортила оказалось очень приятным клиентом. я чего-то без неё уже и не представляю как жить вообще.
А я её ниасилил. Как с её помощью слить исходники того же торрентспая -- так и не понял. :( Если кто-нибудь подскажет, буду очень признателен... :help:
admik
http://sourceforge.net/docs/F04/en/
LF_
ссылки давать все мастера, а кто потом ко мне приставал как его настраивать? :diablo:

user posted image
admik
LF_ я приставал не как настраивать, а почему на версии 1.8 тоже самое не работало :) Fetch не делался.
LF_
а зачем его делать-то? Его можно и на вебе посмотреть :p
admik
QUOTE (LF_ @ 16-12-2005, 01:16)
а зачем его делать-то? Его можно и на вебе посмотреть :p
а вот это ты мне и объяснил :)
я то все свой сервер пользую