I'm running:
- Which Parity version?: 1.8.x
When using parity >=1.8 to create a new private PoA network, how to enable byzantium fork functionality?
Changelog mentions that 1.8.0 has "Full Byzantium-fork compatibility", but is it included by default on new networks?
Compare: 07c63c14f37a5be4f214dfe6acff033f3ec6f1c0
Add the following to the chain spec params section to enable Byzantium at block 0.
"eip140Transition": "0x0",
"eip211Transition": "0x0",
"eip214Transition": "0x0",
"eip658Transition": "0x0",
And add the built-in accounts:
"0000000000000000000000000000000000000005": { "builtin": { "name": "modexp", "activate_at": "0x0", "pricing": { "modexp": { "divisor": 20 } } } },
"0000000000000000000000000000000000000006": { "builtin": { "name": "alt_bn128_add", "activate_at": "0x0", "pricing": { "linear": { "base": 500, "word": 0 } } } },
"0000000000000000000000000000000000000007": { "builtin": { "name": "alt_bn128_mul", "activate_at": "0x0", "pricing": { "linear": { "base": 40000, "word": 0 } } } },
"0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } },
Note, ethash-specific Byzantium-params are not available in PoA networks (e.g., EIP 100, EIP 649, etc.).
@5chdn could you elaborate a bit on ethash-specific Byzantium-params or point where I can find this information?
Thanks!
Sorry, for ethash, you need to activate:
"eip161dTransition": "0x0",
"eip649Reward": "0x29A2241AF62C0000",
"eip100bTransition": "0x0",
"eip649Transition": "0x0"
Where eip649Reward is your desired block reward. For more information about the parameters, look up the according EIPs here: https://github.com/ethereum/EIPs/tree/master/EIPS
Thanks!
Just reading this thread and have an additional question I don't think covered by the above - we are running private PoA chains currently on Parity/v1.11.8 and on Ubuntu 16 machines. I notice from getting transaction receipts that the 'status' of the transaction is 'null' which I believe is indicative that they are pre the Byzantium fork block and fter that they should give a useful value - How do we configure our existing chains to be Byzantium fork enabled i.e. we are not starting them from scratch
@kevinaquick chose a good block number from the future, update your chain spec and make sure all nodes in your network upgrade before the block number hits.
@5chdn just to be sure I understand you - I need to set the following to a suitable future block (as opposed to 0):
"eip140Transition": "0x0",
"eip211Transition": "0x0",
"eip214Transition": "0x0",
"eip658Transition": "0x0",
what about the setting the "accounts" as in above message - are they not needed (I assume that wouldn't be possible for an existing chain without resetting it anyway - or, looking at the json - can they be added to an existing chain and its just a matter of setting the activate_at parameter)
@5chdn - update - no need to reply to my last query above - I was able to test on one of our test network adding the extra built-in accounts and setting the appropriate activate_at block number
Most helpful comment
Compare: 07c63c14f37a5be4f214dfe6acff033f3ec6f1c0
Add the following to the chain spec params section to enable Byzantium at block 0.
And add the built-in accounts:
Note, ethash-specific Byzantium-params are not available in PoA networks (e.g., EIP 100, EIP 649, etc.).