Ich habe Ethereum (go-eth) in einem Ordner namens "Blockchain" installiert. In diesem "Blockchain"-Ordner habe ich 2 weitere Ordner, 'node2' und 'node3'.
Schritt 1:
Ich habe die folgende genesis.json-Datei verwendet und dieselbe json-Datei in beiden Ordnern gespeichert:
{
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {
}
}
speicherte die Datei mit dem Namen "genesis.json"
Schritt 2:
Zum Initialisieren des Genesis-Blocks habe ich die folgenden Befehle von 2 verschiedenen Eingabeaufforderungen ausgeführt:
Terminal 1 (Knoten2):
geth init "C:\Rahul1306\blockchain\node2\genesis.json" networkid 100
Klemme 2 (Knoten 3):
geth init "C:\Rahul1306\blockchain\node3\genesis.json" networkid 100
Der Genesis-Block wird initialisiert und mir wird Speicherplatz für beide Knoten zugewiesen.
Schritt 3
Jetzt führe ich die folgenden Befehle aus, um "chaindata" und andere Dateien in den jeweiligen Knoten zu erhalten:
Klemme 1 (Knoten2)
geth --identity "node2" --ipcdisable --rpc --rpcport "8001" --rpccorsdomain "*" --datadir "C:\Rahul1306\blockchain\node2" --port "30304" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3,personal,admin" --autodag -verbosity 6 --networkid 100 --nat "any" console
Klemme 2 (Knoten 3)
geth --identity "node3" --ipcdisable --rpc --rpcport "8002" --rpccorsdomain "*" --datadir "C:\Rahul1306\blockchain\node3" --port "30305" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3,personal,admin" --autodag -verbosity 6 --networkid 100 --nat "any" console
Alle erforderlichen Dateien werden in beiden Ordnern hinzugefügt
Schritt 4
Ich verwende den folgenden Befehl in beiden Terminals, um ihre Enode-Adresse abzurufen:
admin.nodeInfo
Ich erhalte folgende Adressen:
Knoten2:
enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@[::]:30305
Knoten3:
enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@[::]:30305
Schritt 5
Um diese Knoten nun mit dem privaten Netzwerk zu verbinden/anzuhängen, verwende ich den folgenden Befehl:
Hier versuche ich, node3 als Peer von node2 hinzuzufügen. Der folgende Befehl wird also auf Terminal 1 ausgeführt, dh auf dem Terminal node2. Beachten Sie, dass ich „[::]“ durch die lokale Hostadresse geändert habe, dh „127.0.0.1“.
admin.addPeer("enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@127.0.0.1:30305?di
scport=0")
Hier tritt nun das Problem auf. Ich sollte einen booleschen Wert „true“ erhalten. Beide Geth-Konsolen funktionieren und ich führe diesen Befehl aus und erhalte die folgende Fehlermeldung:
(anonymous): Line 1:15 Unexpected token ILLEGAL (and 2 more errors)
Ich bin nicht in der Lage zu verstehen, wo ich falsch gelaufen bin. Also muss ich in der Lage sein, die beiden oben genannten Knoten als Peers im privaten Blockchain-Netzwerk hinzuzufügen. Bitte helfen Sie!
Schritt 2:
Verwenden Sie --datadir
während der Initialisierung der Genesis-Datei. Und der Befehl sollte --networkid
nicht seinnetworkid
Schritt 3:
Posten Sie Ihre Ausgabe für die Befehle, damit wir überprüfen können, ob Sie die private Blockchain erfolgreich mit dem benutzerdefinierten Genesis-Block gestartet haben.
Schritt 4:
Ihre Enode-Informationen sind falsch. Gemäß Ihren Befehlen in Schritt 3 sollten beide Knoten unterschiedliche Enode-URIs haben und Knoten 2 sollte Port 30304 haben. Entweder haben Sie die falsche Ausgabe gepostet oder Sie haben nur einen Knoten erstellt.
Schritt 5:
Sie benötigen den ?discport=0
Enode-URI am Ende nicht.
Niksmac