Skip to content

Common genesis.json format scheme across all client implementations #1085

@winsvega

Description

@winsvega

Simple Summary

Client should be able to parse genesis.json config file that is commonly accepted and supported by all other client implementations.

Motivation

Currently every ethereum client has it's own genesis.json format which makes it impossible to move one node configuration to another node. (parity config to geth and vice versa). And it is not about unique options that some clients have, it's about using common fields but with different format. Same options has different style and names in .json configurations across client implementation.

Hive tool uses bash script in order to make a config file for each client individually.

Users have to search for correct genesis.json description for each client on different web pages.

Suggestion

Make a list of minimum required fields for genesis.json config file that each client would be able to parse and understand.

Example:

{
       "version" : "1",
       "params": {
                "miningMethod" : "NoProof",
            	"homesteadForkBlock": "0x00",
		"EIP150ForkBlock": "0x00",
		"EIP158ForkBlock": "0x00",
		"byzantiumForkBlock": "0x00",
		"constantinopleForkBlock": "0x00",
		"chainID": "0x01",
       },
       "genesis" : {
            	"nonce": "0x0000000000000042",
		"difficulty": "0x020000",
		"author": "0x0000000000000000000000000000000000000000",
		"timestamp": "0x00",
		"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
		"gasLimit": "0x1388"
       },
       "accounts": {
            "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
                "balance" : "0x0de0b6b3a76586a0",
                "code" : "0x6001600101600055",
                "nonce" : "0x00",
                "storage" : {
                    "0x00" : "0x02"
                }
            },
            "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
                "balance" : "0x29a2241af62ca034",
                "code" : "",
                "nonce" : "0x00",
                "storage" : {
                }
            }
       }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions