to post messages and comments.

У протокола BitTorrent я вижу два самых больших минуса:
1: Поток данных делится на куски по N байт, без учёта файлов. А это значит в одном куске может находиться конец файла A, M маленьких файлов и начало файла B.
1.а: Как следствие: если вам нужно всего 10 байт с конца куска, то вам придётся качать ВЕСЬ кусок, вне зависимости от того сколько он весит
2: Как следствие пункта один: Хешировать файлы по отдельности нельзя. То есть если два торрента A и B совпадают на N файлов из M, вам всё равно придётся качать отдельно и тот и другой торренты.
2.а: нельзя создать поисковик внутри торрент-файлов. Даже если какой-нибудь файл есть внутри 10 торрентов, вы об этом не узнаете

CImg Library — cimg.sourceforge.net
The CImg Library is an open source, C++ toolkit for image processing, designed with these properties in mind.

pHash — phash.org
pHash is an open source software library released under the GPLv3 license that implements several perceptual hashing algorithms, and provides a C-like API to use those functions in your own programs. pHash itself is written in C++.

Implementation and Benchmarking of Perceptual Image Hash Functions — phash.org