Ich versuche, mein privates Testnetz mit Geth zu erstellen. Aber selbst wenn ich einen CustomGenesis-Block aus einer JSON-Datei verwende, wenn ich geth starte und admin.nodeInfo ausführe, stammen die Genesis- und Head-Hashes aus dem Hauptnetzwerk.
Hier ist die CustomGenesis.json:-
{
"nonce": "0x0ae067964324234907200d849",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x4000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x16d38897146fb767e709386f416bbc88aed53171",
"alloc": {
"0x16d38897146fb767e709386f416bbc88aed53171": {
"balance": "10000000000000000000"
}
}
}
Hier ist der Befehl, den ich verwende, um mein privates Testnet zu starten:-
geth --identity "Dev1" --datadir "/home/dev1admin/ethereum/private_test1/chain" --port "30304" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3" --autodag --networkid 1729 --nat "none" --verbosity 5 console init "/home/dev1/ethereum/private_test1/CustomGenesis.json"
Die Ausgabe des Befehls admin.nodeInfo:-
{
enode:"enode://0e576e1aa07d4ee4ea7fc34fe7a0e46ef16f9b835ce58b76dd7b675eea67d7546c3daf3b3115badabc24235d1056c508b108ba7d0f88bbf3687edae5db9165f7@[::]:30304?discport=0",
id: "0e576e1aa07d4ee4ea7fc34fe7a0e46ef16f9b835ce58b76dd7b675eea67d7546c3daf3b3115badabc24235d1056c508b108ba7d0f88bbf3687edae5db9165f7",
ip: "::",
listenAddr: "[::]:30304",
name: "Geth/Dev1/v1.5.5-stable-ff07d548/linux/go1.7.3",
ports: {
discovery: 0,
listener: 30304
},
protocols: {
eth: {
difficulty: 17179869184,
genesis: "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",
head: "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",
network: 1729
}
}
}
Ich möchte die Option --dev nicht mit Geth verwenden, weil ich etwas Ether vorab zuweisen möchte. Außerdem erscheint es mir falsch, nur eine Netzwerk-ID zur Unterscheidung zwischen Netzwerken zu verwenden (ich möchte auch in der Lage sein, eine benutzerdefinierte Nonce festzulegen, um sicherzustellen, dass sich niemand sonst mit meinem Netzwerk verbindet, es sei denn, sie kennen meine Nonce).
Dein init
Befehl ist super lang. Dadurch konnten Sie nicht bemerken, dass Sie Geth 2 Befehle gegeben haben: console
und init
. Mit dem ersten ging es.
Wie wäre es also, wenn Sie das unbedingt Notwendige behalten und entfernen console
und das "
:
geth --datadir /home/dev1admin/ethereum/private_test1/chain --verbosity 5 init /home/dev1/ethereum/private_test1/CustomGenesis.json
Das Konto, dem Sie Ether zuweisen, muss bereits existieren, damit es über die Genesis-Datei geseedet werden kann. Konten befinden sich außerhalb der Blockchain (Geth speichert sie im Ordner datadir/keystore), sodass Sie sie in einer Blockchain erstellen und in eine andere kopieren können
Hier ein möglicher Arbeitsablauf:
Möglicherweise finden Sie mein Github-Repo zum Einrichten eines privaten Ethereum-Netzwerks hilfreich:
goluhaque
Chris Hafey
goluhaque