-
Notifications
You must be signed in to change notification settings - Fork 1.7k
ECIP 1017: Different behaviour for go-ethereum and Parity #6523
Comments
cc @sjmackenzie as the original author of ECIP1017 implementation. |
Projected geth block winner rewards for era(s) in question for comparison:
@ntallar Can you explain your reasoning more why a loop vs exponentiation would yield different values? |
would be accumulated rounding error, I suppose. it should just use the same approach as the go code to take |
That's right @rphmeier , I think it's a rounding error as |
We discussed Rounding Error as a potential issue for ECIP-1017, but decided as it isn't going to happen in next few decades we can postpone the solution. That will probably include a formal definition how you should make calculation/rounding, or even a value table for some eras. I guess it's a question to @snaproII which number to choose as correct 46116860184273879 or 46116860184273876, so we can choose right formula |
Did you decide yet which formula you are going to use? |
see recently merged ECIP1039 👍 |
also noting #7067 |
I'm running the latest versions that include the ECIP 1017:
Description
When having a Geth classic and a Parity client connected, with a miner being connect to the Parity node, the blocks eventually start not being accepted by the Geth classic client, due to:
This issue seems to only arise when the era corresponding to the block number is equal or higher than 21, and could mainly be an issue when creating private networks.
How to reproduce
Configured both Geth classic and Parity clients with the default Ethereum Classic configuration, only changing:
This eventually causes block 85 (in era 21 of ECIP 1017), mined by Parity to not be accepted by the Geth Classic client.
Possible explanation
This seems to be caused by a difference in how the block reward is calculated after the ECIP1017 was in place as Geth classic uses exponentiation to obtain the block reward while a loop is used in Parity clients.
The text was updated successfully, but these errors were encountered: