Parity-ethereum: How to enable byzantium on new networks

Created on 22 Nov 2017  ·  8Comments  ·  Source: openethereum/parity-ethereum

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?

M2-config 📂 Z1-question 🙋‍♀️

Most helpful comment

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.).

All 8 comments

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jordipainan picture jordipainan  ·  3Comments

m-thomson picture m-thomson  ·  3Comments

vmenond picture vmenond  ·  3Comments

dukei picture dukei  ·  3Comments

famfamfam picture famfamfam  ·  3Comments