Camarilla: Archivo Génesis

¿Cuáles son los parámetros obligatorios de genesis.jsonArchivo en PoA? y ¿cuáles son sus valores esperados? por ej. valores de

byzantiumBlock epi155Block DAOForkBlock EIP150Block EIP158Block epoch nonce mixhash

Cuando traté de cambiar el valor de noncey mixhashluego inicié el nodo, no arrancó.

Respuestas (1)

Usa algo como esto:

{
    "config": {
        "chainId": <yourChainId>,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0,
        "clique": {
            "period": <yourPeriodInSecs>,
            "epoch": <yourEpochInBlocks>
        }
    },
    "alloc": {
        "0000000000000000000000000000000000000001": { "balance": "1" },
        "0000000000000000000000000000000000000002": { "balance": "1" },
        "0000000000000000000000000000000000000003": { "balance": "1" },
        "0000000000000000000000000000000000000004": { "balance": "1" },
        "0000000000000000000000000000000000000005": { "balance": "1" },
        "0000000000000000000000000000000000000006": { "balance": "1" },
        "0000000000000000000000000000000000000007": { "balance": "1" },
        "0000000000000000000000000000000000000008": { "balance": "1" },
        "<yourPreallocAccount>": { "balance": "<yourPreallocAmount>" }
    },
    "coinbase": "0x0000000000000000000000000000000000000000",
    "difficulty": "1",
    "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000<yourInitialSigners>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "gasLimit": "<yourInitialGasLimit>",
    "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "nonce": "0",
    "timestamp": "<yourUnixTimeStamp>"
}
  • yourChainId: Solo usa un número.
  • yourPeriodInSecs: Tiempo de bloque en segundos. 5 o 10 son buenos valores para empezar.
  • yourEpochInBlocks: El valor predeterminado de 30000 suele ser lo suficientemente bueno.
  • yourPreallocAccount, yourPreallocAmount: Dado que no se crean monedas a través de la minería, las cantidades preasignadas son todo lo que tiene. Dar una cuenta de algunas monedas aquí. (Sin el prefijo "0x".)
  • yourInitialSigners: Necesita al menos un firmante inicial. Agregue su dirección de cuenta aquí.
  • yourInitialGasLimit: El límite de gas inicial por bloque. Depende de lo que quieras hacer. (Considere 21000 gas/transferencia, por ejemplo).
  • yourUnixTimeStamp: El número de segundos desde la época de Unix (1970-01-01).

Notas:

  • Los otros elementos en configson opcionales; la forma en que están configurados aquí le brindan una cadena de bloques que funciona como el Ethereum actual (excepto Clique). Controlan el comportamiento de la cadena de bloques. Encontrará más información sobre lo que significan buscándolos.
  • Las otras cuentas allocson contratos predefinidos que se inicializan con esto. No estrictamente necesario pero recomendable.
  • AFAIK, todos los demás elementos del bloque de génesis deben ser como están aquí.
¿ nonceY mixHashlos valores? Si trato de cambiarlos, siempre obtengo un error como `ERROR[06-22|03:34:21] No se pudo preparar el encabezado para la minería err="vote nonce not 0x00..0 or 0xff..f" `
No recuerdo de qué mixHashse trata, pero el noncevalor se usa para votar a las autoridades y siempre debe ser uno de los dos valores, como dice el mensaje de error. En el bloque de génesis, solo 0 tiene sentido.