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

Suggestions #1

Closed
jamesray1 opened this issue Dec 15, 2017 · 6 comments
Closed

Suggestions #1

jamesray1 opened this issue Dec 15, 2017 · 6 comments
Assignees

Comments

@jamesray1
Copy link

jamesray1 commented Dec 15, 2017

Hi Micah,

Since the current "official" Yellow Paper is out of date, have you included the more recent EIPs from Byzantium into your specification? I see you've added the opcodes for REVERT and STATICCALL, but there is no description of these, so that needs to be done.

It also has CALL_BLACKBOX which I don't think is actually a part of the EVM. Sources:

There is no result when I search for precompiles.

While I understand that the blanched almond paper is concise, I think it is helpful to have a full formal specification, which it isn't, e.g. compared to the Yellow Paper it doesn't formally specify the opcodes. We could also improve on my version of the Yellow Paper for people who wish to have an in-depth understanding. For example one formal specification that I didn't see is of the difficulty, which is best represented by maths (or maths in code) rather than pseudocode.

Also have you outlined the development roadmap? E.g., implement sharding which will then enable more rapid development of other projects, e.g. EWASM, parallelizability, etc.

Finally it'd obviously be good to have this info on a website, e.g. one made by https://readthedocs.org/.

I haven't read through your repo yet but these are my initial thoughts on how the yellow paper needs to be improved, in addition to your ideas.

Additionally I think it would be good to have the formal math operations, but then you can also have pseudocode or explanations in plain English. You can also refer to Wikipedia's List of Mathematical symbols and make sure the symbol is listed there (add it if it isn't).

Links for the high level languages would be good.

@chronaeon
Copy link
Owner

Thanks for this feedback! I'm going to incorporate your suggestions into the paper.

Is there anything else you wanted to add before I close this issue?

@jamesray1
Copy link
Author

You're welcome Micah! Haha, I think I gave a lot of feedback, nothing further comes to mine at this stage.

@jamesray1
Copy link
Author

I just want to emphasise that "the current EVM will eventually be replaced and we don’t want you to spend your labor [editing] something that will later be discarded". http://notes.eth.sg/s/rksCgM0Mz#on-verifying-compilers-to-evm

@chronaeon chronaeon reopened this Dec 31, 2017
@chronaeon
Copy link
Owner

chronaeon commented Dec 31, 2017

@jamesray1 That's an interesting fact that the current EVM will be replaced.

@jamesray1
Copy link
Author

jamesray1 commented Jan 1, 2018

@jamesray1
Copy link
Author

jamesray1 commented Jan 3, 2018

See the ensuing discussion at https://gitter.im/ethereum/yellowpaper?at=5a4ad08e03838b2f2a5d350f to gain a better understanding of why the Yellow paper won't be maintained. In short, it's because of using the KEVM, "the first fully executable formal semantics of the EVM", which is reasonable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants