Gibt es eine Entwicklerdokumentation für den Bitcoin Core-Quellcode?

Gibt es irgendwo eine Dokumentation, um den C++-Code von Bitcoin Core (verfügbar auf Github) "von A bis Z" zu verstehen und ihn neu erstellen zu können?

Sie meinen etwas anderes als die Quelle selbst ( github.com/bitcoin/bitcoin ) oder die Entwicklerdokumentation ( bitcoin.org/en/developer-documentation )? Außerdem ist diese SE-Site eine wunderbare Ressource für spezifische Fragen :)
@Jestin: Das sollte eine Antwort sein, kein Kommentar. ;) Vielleicht im Princeton Bitcoin Book hinzufügen.
Ich war mir nicht sicher, ob @smoumou genau danach gesucht hat, aber ich werde es für alle Fälle als Antwort posten.

Antworten (2)

Um Bitcoin Core zu verstehen, ist die beste Ressource wahrscheinlich der Quellcode selbst:

https://github.com/bitcoin/bitcoin

Um zu verstehen, was im Code vor sich geht, lesen Sie die Entwicklerdokumentation und das Princeton Bitcoin Book . Denken Sie daran, dass der Code schneller aktualisiert wird als die Dokumentation, daher sollte der Code Ihre Quelle der Wahrheit sein.

Einige interessante Startpunkte:

https://github.com/bitcoin/bitcoin/blob/master/src/script/interpreter.cpp – dies ist die Quelldatei, die den Code zum Interpretieren des Skripts enthält und daher die Gültigkeit der Transaktion prüft

https://en.bitcoin.it/wiki/Protocol_documentation – die Dokumente für das Netzwerkprotokoll, wie Nachrichtendefinitionen und Datenstrukturen

https://bitcoin.org/en/developer-reference#transactions – Transaktionsreferenz, die den Inhalt und Aufbau von Transaktionen beschreibt

Für Klarstellungen und Fragen empfehle ich sehr diese StackExchange-Site :)

Erstmal danke für die Antwort, ich muss sagen, ich habe nach einer Dokumentation über den auf Github verfügbaren C++-Code gesucht, ich habe mir bereits die Entwicklerdokumentation angesehen und das Buch „Mastering bitcoin“ von Herrn Andreas Antonopoulos gelesen und es hat mir ausführlich berichtet Erklärungen zu den Protokollen, aber mein Ziel ist es, so tief wie möglich zu gehen, indem ich den Quellcode nehme, um jede Zeile zu verstehen, um sicher zu sein, was diese Software wirklich mit meinem Computer macht, und ich weiß wirklich nicht, wie ich anfangen soll (ich bin derzeit bereit alle Klassen beginnend mit bitcoin-cli.cpp, aber es ist nicht wirklich effizient).
Ich habe meine Antwort bearbeitet, um einige der Orte anzugeben, an denen ich das Eintauchen empfehle. Dies ist im Grunde nur meine Meinung zu dem, was interessant ist. Denken Sie also daran, dass andere Ihnen sagen würden, dass Sie woanders anfangen sollen. Ich persönlich denke, dass das Be- und Entladen von Transaktionsausgaben das Herzstück von Bitcoin ist, also habe ich Sie auf den Skriptteil des Codes hingewiesen. Ich habe auch das Netzwerkprotokoll herausgegriffen, da die Kommunikation zwischen Peers ein weiterer grundlegender Aspekt ist. Wieder nur meine Meinung.
@smoumou: Bitte bearbeiten Sie auch Klarstellungen wieder in Ihre ursprüngliche Frage, damit andere Antworten nicht alle Antworten überprüfen müssen, bevor Sie eine hinzufügen.

Vor ein paar Jahren habe ich ein paar Artikel zur Analyse des Bitcoin-Kerncodes erstellt. Es ist hier: http://embedded-design-vic.blogspot.com/2017/07/bitcoin-core-tutorial-and-source-code.html