So richten Sie eine private Kette/ein lokales Testnetz ein: Reverse Engineering des Blockchain-Codes

Um es kurz zu machen, ich möchte eine private Chain/eine Testnet-Blockchain einrichten, die lokal ausgeführt werden kann, nur um damit herumzuspielen und zu spielen, nur um zu lernen, wie sie funktioniert. Ich habe also ein allgemeines Verständnis dafür, wie die Dinge funktionieren, und dachte, dass ich, um wirklich zu lernen, so viel wie möglich zurückentwickeln und damit spielen müsste.

Also, wie würde ich das angehen? Was ich suche, ist idealerweise eine klare, anfängerfreundliche Schritt-für-Schritt-Erklärung, da ich auf Blockchains abziele, die in Javascript (Lisk, Nimiq) oder in Python (Bismuth) geschrieben sind.

Lassen Sie mich Ihnen zuerst sagen, was ich mir überlegt habe oder was ich über Möglichkeiten denke, dies zu tun. Ich stelle mir vor, ich müsste:

  1. Entscheiden Sie, welche vorhandene Blockchain am ehesten mit dem übereinstimmen würde, was ich in Bezug auf den Konsensalgorithmus im Sinn habe
  2. Laden Sie es von GitHub herunter
  3. Richten Sie eine Entwicklungsumgebung ein
  4. Führen Sie verschiedene Tests durch und lassen Sie mein Gehirn zaubern

Nun zu diesen Schritten habe ich einige Fragen:

  1. Übersehe ich so etwas wie einen Zwischenschritt, sagen wir mal?
  2. In Bezug auf Schritt 1, wo sollte ich suchen, welche Teile einer Blockchain werden die entscheidenden Faktoren für mich sein, wenn ich bedenke, dass ich einen neuen Konsensalgorithmus einführen möchte?
  3. In Bezug auf Schritt 2, wie würde ich eine Blockchain herunterladen, aber den Transaktionsverlauf ignorieren (dies wird ein neuer Altcoin sein, der mit dem Genesis-Block beginnt) oder ist das eher etwas, das ich im Code ändere, nicht sicher?
  4. In Bezug auf Schritt 3 würde ich hier eine Schritt-für-Schritt-Antwort begrüßen, da ich keine Ahnung habe, was ich herunterladen und welche Schritte ich unternehmen muss, um von der Stufe „Ich habe den Code“ zu „Ich kann damit spielen und verschiedene Dinge testen " Bühne.
  5. Zu Schritt 4: Außer dem Löschen eines Teils des Codes, dem Ändern des Variablenwerts, dem Ändern der Reihenfolge oder Zeilen, was könnte mir sonst noch helfen, besser zu verstehen, wie der Code funktioniert?

Danke

Willkommen bei Bitcoin.SE! Sie planen eine Entwicklungsumgebung aufzubauen, auf welcher Plattform?

Antworten (1)

Die Frage übersteigt leicht die Fähigkeiten dieses Q&A-Forums. Vielleicht besser bitcointalk.org durchsuchen, dort werden diese Art von Anfragen oft diskutiert. Beteiligen Sie sich dort an einer der Diskussionen!

Wie auch immer, wir brauchen Entwickler und Leute mit frischen Köpfen. Hier mein kurzer Blick auf Bitcoin, weil wir uns im Bitcoin Q&A-Forum befinden. Sie möchten wahrscheinlich einen Altcoin daraus erstellen. Sicherlich sind die relevanten Informationen und der Link zum Code auf bitcoin.org .

Um Ihre Ziele zu erreichen, müssten Sie eine Idee und manchmal übermäßiges Wissen über Folgendes haben:

Information Security
Overview of current crypto coin technologies
Finite Fields
Elliptic Curves
Elliptic Curve Cryptography
Signing/Verifying Messages
Parsing Transactions
Signing Transactions
Creating Transactions
Script parsing and processing
Address construction/Private Key WIF Format Construction
Extended Keys (XPriv and XPub)
Parsing Blocks
Validating Proof-of-Work
Difficulty Calculations
Merkle Tree Construction 
Merkle Proofs
Network Message Parsing

und vielleicht

Segwit
Lightning
Altcoin
... 

Die Liste lässt sich sicher noch verlängern :-) Sie entscheiden sich also für eine steile Lernkurve. Nach dem, was ich in deiner Nachricht gelesen habe, denke ich, dass du (noch) nicht da bist, aber das ist kein Problem. Sie werden wahrscheinlich Bücher wie „Mastering Bitcoin“ von Andreas und einige mehr lesen wollen. Sie bringen Sie auf den neuesten Stand.

Wenn Sie an Umgebungen (wie Ethereum oder IOTA) denken, bezweifle ich, dass viele Entwickler hier sind, um sie zu unterstützen.

1) Entscheiden Sie, welche vorhandene Blockchain am ehesten mit dem übereinstimmen würde, was ich in Bezug auf den Konsensalgorithmus im Sinn habe

das ist etw. da können wir dir nicht weiterhelfen, da du nichts vorgelegt hast. Möchten Sie die Kraft und Bemühungen der Community nutzen, um Ihr Projekt voranzubringen, aber der Community keinen Input geben, indem Sie Ihre Logik und Ideen verbergen? Generell gilt: wir sind hier sehr gespannt auf neue Ideen :-)

2) herunterladen, wenn von github

siehe die Links auf bitcoin.org

3) Richten Sie eine Entwicklungsumgebung ein

Sie nehmen einen Linux-Rechner und installieren die Software, kompilieren sie und sehen, wie es Ihnen geht. Alternativ können Sie Ihr Glück in anderen Betriebssystemen versuchen, aber die Unterstützung ist auf unixoiden Systemen viel besser. Auch der Einsatz virtueller Maschinen ist sehr attraktiv.

4) führe verschiedene Tests durch und lasse mein Gehirn zaubern

Auch dies ist bis zu Ihrem Verstand howto. Aber es gibt Testfälle, die mit der Software geliefert werden, sodass Sie relevanten Code dafür finden, ihn an Ihre Anforderungen anpassen und loslegen können.