Printable Version of Topic
Click here to view this topic in its original format
Forums > Сеть BitTorrent > Структура .torrent файла, Есть ли описание?


Posted by: TAHKEP on 13-12-2005, 14:14
Если я правильно понимаю это вроде бы открытай проект, значит структура содержимого должна быть где-то расписана?

Posted by: admik on 13-12-2005, 14:44
тебе зачем?

Posted by: TAHKEP on 13-12-2005, 16:20
QUOTE (admik @ 13-12-2005, 14:44):
тебе зачем?
Да... баловство... Я на другом трекере начал качать образ диска игрухи одной, и, вроде бы, по достоверным слухам, там примерно половина из 4Гб -- большие области заполненные нулями. Т.к. я частично уже качнул и затереть теперь файл нулями жалко, думал, что м.б. где то можно достать структурку torrent-файлов, и если там не слишком сложно, нацарапать утилитку, которая занулит только то, что не скачано, а вот тогда уже сделать ре-чек. :)

Posted by: admik on 13-12-2005, 16:40
вообще-то чанки заполненные нулями сжимаются и передаются с очень быстрой скоростью :)))) уже имели опыт общения раздач 70минут тишины

Posted by: TAHKEP on 13-12-2005, 16:51
QUOTE (admik @ 13-12-2005, 16:40):
вообще-то чанки заполненные нулями сжимаются и передаются с очень быстрой скоростью :)))) уже имели опыт общения раздач 70минут тишины
Опа! Оказывается я вообще ничего не знаю о bittorent'e :fear2: Т.е. чанки при передаче еще и сжимаются? А есть что-ньть тогда почитать? Желательно на русском, но если русского нет то и инглиш вполне устроит... Буду расти над собой :D

Posted by: LF_ on 13-12-2005, 17:25
Ты его больше слушай :) Файл торрент говоря грубо - хеши кусоков файлов + немного разной инфы о самом файле, посмотреть внутренности можно TorrentSpy, а передача чанков - это дело клиентов и в протоколе сжатия нет, в большенстве случаев это и не надо, потому что передают архивы и тп

Posted by: TAHKEP on 13-12-2005, 18:08
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):
большенстве случаев это и не надо, потому что передают архивы и тп
Ну вот в том вся и проблема, что там просто несжатый образ диска... :(

Posted by: TAHKEP on 13-12-2005, 18:12
Метла, кстати, внушаить... :D

Posted by: LF_ on 13-12-2005, 18:13
Им глянуть низя, потому что он не скачивает - глянуть мона чем качаешь, азур или мю показывают распределение и сколько процентов слито по каждому файлу, что слито и тп...

Торрент файл не имеет отношения к передачи данных, а zlib к торренту пока никто не приделывал...

Posted by: TAHKEP on 13-12-2005, 18:22
QUOTE (LF_ @ 13-12-2005, 18:13):
Им глянуть низя, потому что он не скачивает - глянуть мона чем качаешь, азур или мю показывают распределение и сколько процентов слито по каждому файлу, что слито и тп...
Ну там, кажись, довольно примитивное отображение, даже номера скачаных чанков узнать нельзя. :(

Posted by: admik on 13-12-2005, 18:25
TAHKEP виноват, ошибся. не приделали пока упаковку.

Posted by: LF_ on 13-12-2005, 18:34
QUOTE (TAHKEP @ 13-12-2005, 10:22):
Ну там, кажись, довольно примитивное отображение, даже номера скачаных чанков узнать нельзя. :(
ну возьми вон ТоррентСпая, он на дельфе, опен сорс и допиши :diablo:

Posted by: TAHKEP on 13-12-2005, 18:55
QUOTE (LF_ @ 13-12-2005, 18:34):
ну возьми вон ТоррентСпая, он на дельфе, опен сорс и допиши :diablo:
Я первым делом туда полез, но там сорцов нет :(

Posted by: LF_ on 13-12-2005, 18:59
все там есть - поставь себе CVS клиента или руками cvs.sourceforge.net/viewcvs.py/torrentspy/TorrentSpy-0.2-delphi/src/ (http://cvs.sourceforge.net/viewcvs.py/torrentspy/TorrentSpy-0.2-delphi/src/

cvs.sourceforge.net/viewcvs.py/torrentspy/ (http://cvs.sourceforge.net/viewcvs.py/torrentspy/

Posted by: TAHKEP on 13-12-2005, 19:01
QUOTE (LF_ @ 13-12-2005, 18:59):
все там есть - поставь себе CVS клиента или руками cvs.sourceforge.net/viewcvs.py/torrentspy/TorrentSpy-0.2-delphi/src/ (http://cvs.sourceforge.net/viewcvs.py/torrentspy/TorrentSpy-0.2-delphi/src/
Опять плохое знание матчасти! :) СПАСИБО!!!

Posted by: FiL on 13-12-2005, 21:15
вообще-то и простое описание структуры торрент-файла есть. В смысле не в сырцах, а в доках. Только к вопросу о том, что уже скачено, оно таки отношения не имеет.

Posted by: TAHKEP on 14-12-2005, 00:12
QUOTE (FiL @ 13-12-2005, 21:15):
вообще-то и простое описание структуры торрент-файла есть. В смысле не в сырцах, а в доках.
А можно, ссылочку? Заранее спасибо...
QUOTE (FiL @ 13-12-2005, 21:15):
Только к вопросу о том, что уже скачено, оно таки отношения не имеет.
Понимаю, но если знать структуру torrent-файла и алгоритм расчёта CRC чанков можно просто проверить какие чанки закончены, а остальные забить нужным символом.

Posted by: FiL on 14-12-2005, 00:24
wiki.theory.org/BitTorrentSpecification (http://wiki.theory.org/BitTorrentSpecification

Я-бы даже сказал так - wiki.theory.org/BitTorrentFAQ (http://wiki.theory.org/BitTorrentFAQ

Posted by: Fellow on 14-12-2005, 00:24
Конечно, о том, что уже скачено, клиент не будет писать в торрент файл. Клиент будет хранить эту информацию где-то у себя в своем собственном формате.

Например, 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>

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





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




Описание структуры торрент-файла:
www.bittorrent.com/protocol.html (http://www.bittorrent.com/protocol.html
или wiki.theory.org/BitTorrentSpecification (http://wiki.theory.org/BitTorrentSpecification
или wiki.bitcomet.com/help/Torrent_File_Format (http://wiki.bitcomet.com/help/Torrent_File_Format

Posted by: FiL on 14-12-2005, 00:26
а я успел раньше :&#041;

Posted by: TAHKEP on 14-12-2005, 01:13
FiL, Fellow Спасибо за ссылки, самое то, что нужно! :&#041;

По поводу заполнения нулями (0х00h) очень похоже -- utorrent при резервировании места тоже забивает будущие файлы этим символом. Возможно, у меня неверная инфа, м.б. там другой символ использовался, или может там вообще заполнено не каким-то единственным символом, а "белым шумом". :&#040;
Еще раз -- спасибо!
Не догоню, так хоть согреюсь... :D

Posted by: CheFF on 15-12-2005, 07:52
Оффтопик, но, подскажите какой либо клиент CVS, если этот вопрос конечно имеет смысл ;&#041;

Posted by: obaldin on 15-12-2005, 12:59
QUOTE (CheFF @ 15-12-2005, 06:52):
Оффтопик, но, подскажите какой либо клиент CVS, если этот вопрос конечно имеет смысл ;&#041;
Если под винду - Tortoise CVS (http://www.tortoisecvs.org/

Posted by: TAHKEP on 15-12-2005, 13:47
QUOTE (CheFF @ 15-12-2005, 07:52):
Оффтопик, но, подскажите какой либо клиент CVS, если этот вопрос конечно имеет смысл ;&#041;
Фтопку(С), имхо, проще руками скачать. Ради прокта в сотню кб ставить минимум 5Мб хреновину?

Posted by: admik on 15-12-2005, 13:53
TAHKEP хех...если один раз - то может быть проще руками, а если переодически?
тортила оказалось очень приятным клиентом. я чего-то без неё уже и не представляю как жить вообще.

Posted by: TAHKEP on 15-12-2005, 14:29
QUOTE (admik @ 15-12-2005, 13:53):
TAHKEP тортила оказалось очень приятным клиентом. я чего-то без неё уже и не представляю как жить вообще.
А я её ниасилил. Как с её помощью слить исходники того же торрентспая -- так и не понял. :&#040; Если кто-нибудь подскажет, буду очень признателен... :help:

Posted by: admik on 15-12-2005, 15:32
http://sourceforge.net/docs/F04/en/ (http://sourceforge.net/docs/F04/en/

Posted by: LF_ on 15-12-2005, 20:06
ссылки давать все мастера, а кто потом ко мне приставал как его настраивать? :diablo:

user posted image

Posted by: admik on 16-12-2005, 00:38
LF_ я приставал не как настраивать, а почему на версии 1.8 тоже самое не работало :&#041; Fetch не делался.

Posted by: LF_ on 16-12-2005, 01:16
а зачем его делать-то? Его можно и на вебе посмотреть :p

Posted by: admik on 16-12-2005, 09:54
QUOTE (LF_ @ 16-12-2005, 01:16):
а зачем его делать-то? Его можно и на вебе посмотреть :p
а вот это ты мне и объяснил :&#041;
я то все свой сервер пользую

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)