Вы упомянули и биткойн и битторант, которые совершенно разные, поэтому я предполагаю, что вы не хотите привязываться к какому-либо конкретному протоколу или даже к формату сериализации.
И все же вы упомянули о том, что одноранговое обнаружение и управление статистикой, которые относятся к проблемам высокого уровня, должны быть построены сверху некоторых сетевых протоколов. Но протокол диктует, как будет работать такой механизм.
Это похоже на то, что вы спрашиваете, есть ли заранее построенные крыши, которые бы поместились на небоскребах так же, как и на деревянной каюте.
Итак, если вы действительно хотите разработать свой собственный протокол, вам, вероятно, стоит сначала взглянуть на фундамент.
- , какой язык вы хотите использовать
- , что IO/обработки событий библиотек доступны
- , что протокол парсеры и сериализаторы доступны
- вы стремитесь к пропускной способности? низкий объем памяти? низкая латентность? минимальное количество потраченных часов программиста?
- Какая защита необходима? для использования криптографии на уровне протокола потребуется достоверная криптова библиотека (не сворачивайте свои собственные!)
- Какие вспомогательные вещи вам нужны (где хранятся данные? filesystem? databases? нужен ли вам интерфейс?)
в качестве альтернативы, в зависимости, как интерпретировать ваш вопрос, если вы хотите написать клиент для конкретной сети, то вы должны просто искать библиотеку реализации основных концепций этой конкретной сети, освобождая вас до реализовать остальную часть приложения.
В случае bittorrent такой пример будет libtorrent
Вы ищете академические или практические цели? Я думаю, что некоторые такие библиотеки могут существовать, но приложения реального мира кажутся рулонами из-за разных потребностей. – the8472
@ the8472 Практические цели – Muis
Обычно я проверяю [this out] (https://github.com/kgryte/awesome-peer-to-peer) для любых библиотек p2p. Также для начальной загрузки в биткойне сети используется [this repo] (https://github.com/TheBlueMatt/dnsseed). Не уверен, что он все еще используется. –