Есть ли документация для разработчиков исходного кода Bitcoin Core?

Есть ли где-нибудь документация, чтобы понять код C++ Bitcoin Core (доступный на Github) «от а до я» и возможность воссоздать его?

Вы имеете в виду не сам источник ( github.com/bitcoin/bitcoin ) или документацию разработчика ( bitcoin.org/en/developer-documentation )? Кроме того, этот сайт SE является прекрасным ресурсом для конкретных вопросов :)
@Jestin: Это должен быть ответ, а не комментарий. ;) Возможно, добавить в Принстонскую книгу биткойнов.
Я не был уверен, что это именно то, что искал @smoumou, но на всякий случай опубликую это как ответ.

Ответы (2)

Чтобы понять Bitcoin Core, лучшим ресурсом, вероятно, является сам исходный код:

https://github.com/bitcoin/биткойн

Чтобы понять, что происходит в коде, ознакомьтесь с документацией для разработчиков и Princeton Bitcoin Book . Имейте в виду, что код обновляется быстрее, чем документация, поэтому код должен быть вашим источником правды.

Несколько интересных мест для начала:

https://github.com/bitcoin/bitcoin/blob/master/src/script/interpreter.cpp — это исходный файл, который содержит код для интерпретации скрипта и, следовательно, проверяет валидность транзакции

https://en.bitcoin.it/wiki/Protocol_documentation — документы для сетевого протокола, такие как определения сообщений и структуры данных.

https://bitcoin.org/en/developer-reference#transactions — справочник по транзакциям, описывающий содержание и структуру транзакций.

Для любых уточнений и вопросов очень рекомендую этот самый сайт StackExchange :)

Во-первых, спасибо за ответ, я должен сказать, что искал документацию о коде C ++, доступную на Github, я уже просмотрел документацию для разработчиков и прочитал книгу «Освоение биткойнов», написанную г-ном Андреасом Антонопулосом, и она дала мне подробную объяснения протоколов, но моя цель состоит в том, чтобы пойти как можно глубже, взяв исходный код, чтобы понять каждую строку, чтобы быть уверенным в том, что это программное обеспечение действительно делает с моим компьютером, и я действительно не знаю, как начать (в настоящее время я готов все классы, начиная с bitcoin-cli.cpp, но это не очень эффективно).
Я отредактировал свой ответ, чтобы указать несколько мест, в которые я рекомендую погрузиться. Это в основном только мое мнение о том, что интересно, так что имейте в виду, что другие скажут вам начать с другого места. Лично я считаю, что обременение и освобождение выходов транзакций — это сердце Биткойна, поэтому я указал вам на скриптовую часть кода. Я также выделил сетевой протокол, так как связь между узлами является еще одним фундаментальным аспектом. Опять же, только мое мнение.
@smoumou: Пожалуйста, также отредактируйте пояснения обратно в свой исходный вопрос, чтобы другим ответчикам не нужно было проверять все ответы, прежде чем добавить один.

Пару лет назад я написал несколько статей по анализу кода ядра биткойна. Он находится здесь: http://embedded-design-vic.blogspot.com/2017/07/bitcoin-core-tutorial-and-source-code.html .