Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EIP-225 Clique Spec Improvements #3426

Merged

Conversation

holgerd77
Copy link
Contributor

We have now finished our TypeScript Clique implementation (ethereumjs/ethereumjs-monorepo#1032 as well as ethereumjs/ethereumjs-monorepo#1074 and ethereumjs/ethereumjs-monorepo#1088).

Thanks for this wonderful spec, the clarity of the writing and the extensive test cases helped us a lot! 😄 We nevertheless stumbled upon a few things which caused us some significant extra debugging time. Just took the time to extract, think this should be useful for future implementations.

//cc @karalabe

EIPS/eip-225.md Outdated
* Should be filled with zeroes normally, modified only while voting.
* Arbitrary values are permitted nonetheless (even meaningless ones such as voting out non signers) to avoid extra complexity in implementations around voting mechanics.
* **Must** be filled with zeroes on checkpoint (i.e. epoch transition) blocks.
* Transaction execution **must** use the actual block signer (see `extraData`) for the `COINBASE` opcode.
* Transaction execution **must** use the actual block signer (see `extraData`) for the `COINBASE` opcode and transaction fees **must** be attributed to the signer account.
* Block execution **must** not distribute any block rewards.
Copy link
Contributor

@shemnon shemnon Mar 26, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like an addition to the spec rather than a clarification like the other proposed edits are. Enterprise chains may want to add block rewards to encourage miners to stay online.

My opinion is that this should be removed from the edits or become a should instead of a must

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for having a look, definitely not my intention to change the spec in any way, have updated.

EIPS/eip-225.md Outdated Show resolved Hide resolved
EIPS/eip-225.md Outdated Show resolved Hide resolved
…iew)

Co-authored-by: Micah Zoltu <micah@zoltu.net>
@MicahZoltu
Copy link
Contributor

@karalabe Can you review this and make sure there are no normative changes (just clarification)? If so, please do a GitHub review/approve and I'll merge.

@lightclient
Copy link
Member

Bumping again - @karalabe if you could take a look please.

@alita-moore
Copy link
Contributor

Hi! I'm a bot, and I wanted to automerge your PR, but couldn't because of the following issue(s):

 - eip-225.md is in state final, not draft or last call or review
 - eip-225.md requires approval from one of (karalabe)

@karalabe

@holgerd77
Copy link
Contributor Author

Any chance that we get this merged?

Sorry Peter, I know about these nasty side tasks which nobody asked for and which sneak in from the sideline 😋.

I am also very willing to remove all things which have even the slightest controversial aspect. 😀

@MicahZoltu
Copy link
Contributor

Someone may have to reach out to Peter via alternative means, since it doesn't appear that they are receiving pings here.

@karalabe
Copy link
Member

Yeah, I just figured you'll auto-merge bike shedding fixes :P

@MicahZoltu
Copy link
Contributor

In this case, I don't know enough about the subject matter to be able to assert whether this is purely a non-normative or not, hence the need for author approval.

@MicahZoltu MicahZoltu merged commit 6816df8 into ethereum:master Aug 17, 2021
@holgerd77
Copy link
Contributor Author

@karalabe we actually lost ~3 development days with debugging on these "trivialities", so bear in mind the non-enlightened. 😄

Thanks for merging.

@holgerd77
Copy link
Contributor Author

(e.g. we were sorting Clique signers on a FIFO basis and were searching our butts of why the block hashes are not matching 😄)

PhABC pushed a commit to PhABC/EIPs that referenced this pull request Jan 25, 2022
* eip-225: additionally label  ethash header field with original miner field name for easier association

* eip-225: added fille-with-zeros-on-genesis note to EXTRA_SEAL definition

* eip-225: added ascending-byte-order note to extraData signer section description to avoid ascending-time-order confusion

* eip-225: better differentiate between sighash and final block hash

* eip-225: added note on transaction fee and block reward attribution

* eip-225: added zero-based note to SIGNER_INDEX

* EIP-225: changed block reward distribution must -> should after review

* eip-225: removed block rewards note and corrected typo (from code review)

Co-authored-by: Micah Zoltu <micah@zoltu.net>

Co-authored-by: Micah Zoltu <micah@zoltu.net>
Co-authored-by: Alita Moore <alita.moore805@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants