-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Description
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" : {
}
}
}
}