Estoy tratando de crear mi red de prueba privada usando geth. Sin embargo, incluso cuando uso un bloque CustomGenesis de un archivo json, cuando inicio geth y ejecuto admin.nodeInfo, el génesis y los hashes principales son de la red principal.
Aquí está CustomGenesis.json: -
{
"nonce": "0x0ae067964324234907200d849",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x4000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x16d38897146fb767e709386f416bbc88aed53171",
"alloc": {
"0x16d38897146fb767e709386f416bbc88aed53171": {
"balance": "10000000000000000000"
}
}
}
Aquí está el comando que estoy usando para iniciar mi red de prueba privada:
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"
La salida del comando 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
}
}
}
No quiero usar la opción --dev con geth porque quiero preasignar algo de éter. Además, simplemente usar una identificación de red para diferenciar entre redes me parece incorrecto (también quiero poder configurar un nonce personalizado para asegurarme de que nadie más se conecte a mi red a menos que conozcan mi nonce).
Tu init
comando es muy largo. Esto le impidió notar que le dio órdenes a Geth 2: console
y init
. Se fue con el primero.
Entonces, ¿qué tal si mantienes lo estrictamente necesario y eliminas console
y el "
:
geth --datadir /home/dev1admin/ethereum/private_test1/chain --verbosity 5 init /home/dev1/ethereum/private_test1/CustomGenesis.json
La cuenta a la que está asignando ether ya debe existir para que se genere a través del archivo de génesis. Las cuentas viven fuera de la cadena de bloques (Geth las almacena en la carpeta datadir/keystore) para que pueda crearlas en una cadena de bloques y copiarlas en otra.
Aquí hay un posible flujo de trabajo:
Puede encontrar útil mi repositorio de github sobre la configuración de una red ethereum privada:
goluhaque
chris hafey
goluhaque