-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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
Update EIP-1108 with latest gas metering benchmarks #1987
Conversation
Hi! I'm a bot, and I wanted to automerge your PR, but couldn't because of the following issue(s):
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome updates, thanks for adding a great mix of qualitative and quantitative justification!
Not sure what preferences are in this particular repo (@axic, perhaps?) but a couple of things I might tweak before merging:
- Avoiding first person (we).
- Clearer commit message, PR title, description.
- Consistency in references to zk-SNARKs (typically I've seen
zk-SNARK
as the capitalization/punctuation of choice).
I left some suggested changes for the zk-SNARK and first person thing that should be easy to include. I actually also noticed the original EIP has a first person reference, which I'll probably fix once this PR goes in.
I'll give the EIP folks a day (or maybe the weekend <_<) to speak up if anything else needs tweaking and then probably merge in whatever is here.
Heya @Shadowfiend Thanks for the feedback! I've committed your changes, let me know if you have any other suggestions. |
- Several optimizations have been made to the Parity bn create - EIP-1108 references benchmarks that utilize this optimization - Projected gas costs have been updated to reflect benchmark - (benchmark at https://gist.github.com/zac-williamson/838419a3da179d47d31b25b586c15e53) - Added descriptions of projects that would benefit from EIP-1108, and how they could utilize this EIP
Co-Authored-By: zac-williamson <blorktronics@gmail.com>
Co-Authored-By: zac-williamson <blorktronics@gmail.com>
Co-Authored-By: zac-williamson <blorktronics@gmail.com>
Co-Authored-By: zac-williamson <blorktronics@gmail.com>
I've updated the PR and the commit message to be more descriptive of the changes in this PR |
EIPS/eip-1108.md
Outdated
used by the [Parity client](https://github.com/paritytech/parity-ethereum) led to a | ||
significant performance boost we | ||
[benchmarked](https://gist.github.com/pdyraga/4649b74436940a01e8221d85e80bfeef) | ||
and compared against the [previous | ||
results](https://github.com/ethereum/benchmarking/blob/master/constantinople/analysis2.md). | ||
results](https://gist.github.com/zac-williamson/838410a3da179d47d31b25b586c15e53). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh actually I think the link here is flipped---the [benchmarked]
link needs to change, while the [previous results]
link should continue to reflect the original analysis that set the current gas price.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for spotting that! I switched the links over
EIPS/eip-1108.md
Outdated
|
||
Fast elliptic curve cryptography is a keystone of a growing number of protocols built on top of Ethereum. To list a few: | ||
|
||
[The AZTEC protocol](https://github.com/AztecProtocol/AZTEC) utilizes the elliptic curve precompiles to construct private tokens, with zero-knowledge transaction logic, via the [ERC1723](https://github.com/ethereum/EIPs/issues/1723) and [ERC1724](https://github.com/ethereum/EIPs/issues/1724) standard. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you make these into a bullet point list? It would look nicer that way after formatting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
EIPS/eip-1108.md
Outdated
[The AZTEC protocol](https://github.com/AztecProtocol/AZTEC) utilizes the elliptic curve precompiles to construct private tokens, with zero-knowledge transaction logic, via the [ERC1723](https://github.com/ethereum/EIPs/issues/1723) and [ERC1724](https://github.com/ethereum/EIPs/issues/1724) standard. | ||
[Matter Labs](https://github.com/matter-labs/matter-network) utilizes the precompiles to implement Ignis, a scaling solution with a throughput of 500txns per second | ||
[Rollup](https://github.com/rollup/rollup) utilizes the precompiles to create L2 scaling solutions, where the correctness of transactions is gauranteed by main-net, without an additional consensus layer | ||
[ZEther](https://crypto.stanford.edu/~buenz/papers/zether.pdf) uses precompiles `0x06` and `0x07` to construct confidential transactions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is nitpicking, but above you define what precompiles the addresses 0x6 and 0x7 refer to. Maybe it is easier to read if you use ECADD
and ECMUL
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pushed a change that uses ECADD
and ECMUL
EIPS/eip-1108.md
Outdated
|
||
The gas costs for `ECADD` and `ECMUL` are updates to the costs listed in | ||
EIP-196, while the gas costs for the pairing check are updates to the cost | ||
listed in EIP-197. Updated gas costs have been adjusted to the less performant | ||
client which is Parity, according to benchmarks<sup>[3]</sup>. | ||
client which is Parity, according to benchmarks<sup>[3]</sup>. The updated gas costs are scaled relative to the `ecrecover` precompile. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain how it is relative to ecrecover?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pushed a change that describes the ecrecover
scaling. The ecrecover
precompile took 116 microseconds to run in the benchmark. If we assume the ecrecover
gas price of 3,000 gas is a fair price, we get a price of 25.86 gas per microsecond of an precompile algorithm's run-time.
The pairing precompile took 3,037 microseconds to compute 1 pairing, and 14,663 microseconds to compute 10 pairings. From this, the pairing algorithm has a fixed 'base' run-time of 1,745 microseconds, plus 1,292 microseconds per pairing. We can split the run-time into 'fixed cost' and 'linear cost per pairing' components because of the structure of the algorithm.
Then using a 'fair' price of 25.86 gas per microsecond, we get a gas formula of ~35,000 * k + 45,000
gas, where k
is the number of pairings being computed.
n.b. of course, I am also making an explicit assumption that the run-time ratios between ecrecover
and the pairing precompile are constant irrespective of the specs or architecture of the underlying machine. I think this is a reasonable assumption, as the arithmetic operations being performed are extremely similar (modular multiplications in 256 bit finite fields). However more benchmarks would be useful here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@zac-williamson @Shadowfiend I think it would be nice to include the above text in the EIP. Can you add it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it's in there, right? @ https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1108.md#specification, ‘i.e. in the benchmark…’
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of it is, but this is a more comprehensive description.
EIPS/eip-1108.md
Outdated
results](https://github.com/ethereum/benchmarking/blob/master/constantinople/analysis2.md). | ||
results](https://gist.github.com/zac-williamson/838410a3da179d47d31b25b586c15e53). | ||
|
||
## The Rationale Behind Lowering Gas Costs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a standard "rationale" section in EIPs. Also it seems the layout of this EIP follows an outdated old template. Have a look at the current one: https://github.com/ethereum/EIPs/blob/master/eip-X.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Heya, thanks for pointing that out. I've pushed a change that uses the eip-X formatting
Oh, and please add a |
The formatting of the EIP has been modified to mirror EIP-X Benchmarks referenced the wrong links, these have been swapped Added example implementations of the bn128 curve Expanded rationale behind scaling gas costs relative to `ecrecover`
Thanks for pointing that out, I've added a |
EIP-196, while the gas costs for the pairing check are updates to the cost | ||
listed in EIP-197. Updated gas costs have been adjusted to the less performant | ||
client which is Parity, according to benchmarks<sup>[3]</sup>. The updated gas costs are scaled relative to the `ecrecover` precompile. | ||
As no underlying algorithms are not being changed, there are no additional test cases to specify. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
“As no underlying algorithms are being* changed.”, or we're changing ALL OF THE THINGS :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
“As no underlying algorithms are being* changed.”, or we're changing ALL OF THE THINGS :)
Came here to point that language out =)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll push a PR that fixes it in a few.
@Shadowfiend If you approve the PR, the bot will automatically merge it. |
Yep yep; since you had a lot more notes than I did I wanted to double-check before doing that :) I'm on it! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's rolllllll 🚀
@Shadowfiend @zac-williamson this EIP doesn't have a copyright statement. Can you please add one? EIP-1 suggests CC0 - see the |
* Automatically merged updates to draft EIP(s) 1898 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679, 233 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Minor updates to EIP-1319 (ethereum#1966) * EIP-1895: Support for an Elliptic Curve Cycle (ethereum#1895) * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Scalable Rewards (ethereum#1973) * added EIP * spacing * reorder * reorder * formats * <> brackets * edit * eip number * renaminng * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1559: Fee market change for ETH 1.0 chain (ethereum#1943) * Automatically merged updates to draft EIP(s) 1884 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Fix authors and type-fields in eip-1559.md (ethereum#1974) * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1344 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 777 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Remove obsolete layer field (ethereum#1978) * Document eip_validator and eip-automerger (ethereum#1977) * EIP-1803: Rename opcodes for clarity (ethereum#1803) * Change the citation format in README to point to EIP-1 * Automatically merged updates to draft EIP(s) 1679, 1803 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1057 Update progpow test-vectors (ethereum#1855) * Add editors * Automatically merged updates to draft EIP(s) 1155 (ethereum#1993) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#1995) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1775 - App Keys, application specific wallet accounts (ethereum#1775) * Automatically merged updates to draft EIP(s) 1155 (ethereum#1997) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#1998) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 777 (ethereum#1945) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * ERC777: Move to final (ethereum#1999) * Automatically merged updates to draft EIP(s) 1108 (ethereum#1987) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Fix typos (ethereum#1899) * Fixed typos and grammar (ethereum#1847) * Automatically merged updates to draft EIP(s) 1679 (ethereum#1988) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1344 (ethereum#2004) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1108 (ethereum#2005) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2006) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2007) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2008) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * fix github pull request links (ethereum#2000) * Automatically merged updates to draft EIP(s) 1679 (ethereum#1830) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2011) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2012) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2013) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Re-order EIP categories (ethereum#1989) * Automatically merged updates to draft EIP(s) 1679 (ethereum#2016) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2017) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2023) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Call strict gas (ethereum#1950) * CALL with strict gas * fix date * 1930 * update with explicit code change * add link to discussion * update * fix link * EIP-2015: Wallet Update Chain Method (ethereum#2015) * Create eip-2015.md * Include JSON RPC method in title * add requires 155 * update nativeCurrency field for wallet_updateChain * EIP-2015 format review changes * Update EIP-2015 discussions-to link * Automatically merged updates to draft EIP(s) 1679 (ethereum#2034) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 663 (ethereum#2038) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 (ethereum#2043) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 615 (ethereum#2044) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Calldata gas cost reduction (ethereum#2028) * Calldata gas cost reduction Added a draft of EIP to reduce the gas cost of Calldata * changed name to 2028 * Added EIP-2028 to meta eip-1679 * Added discussion url * edited 'motivation' & 'specification' Edited motivation to increase readability. Edited specification to clarify terms. * Automatically merged updates to draft EIP(s) 1155 (ethereum#2049) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1965 Method to check if a chainID is valid at a specific block Number (ethereum#1965) * Run spelling checks on CI (ethereum#2040) * Automatically merged updates to draft EIP(s) 1679, 1965 (ethereum#2047) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 (ethereum#1990) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Add special requirement for mentioning EVM instructions * EIP-1710: URL Format for Web3 Browsers (ethereum#1710) * EIP 1523: Standard for storing insurance policies as extension of ERC-721 token (ethereum#1512) * Automatically merged updates to draft EIP(s) 2028 (ethereum#2052) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EC arithmetics and pairings with runtime definitions (ethereum#1962) * Automatically merged updates to draft EIP(s) 663 (ethereum#2056) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Mention that the header is also called "front matter" in EIP1 (ethereum#2037) * Add EIP-1474 as a requirement to RPC ERCs * Fix Wrong Input Length - ERC165 Example (ethereum#1640) * Wrong input size - noThrowCall ERC165 Input should be 36 bytes (4 signature bytes + 32 bytes parameter) Solidity 5 validates the length of msg.data, reverting on the 32 bytes input, all contracts using the broken 'doesContractImplementInterface' will not be able to read an ERC165 implementation targetting Solidity 5. A legacy-compatible strategy should be defined to make all the "ERC165 readers" sending a 32 bytes sized data compatible with ERC165 contracts compiled targeting this new version of the compiler. A possible solution could be to add a keyword on Solidity to disable the validation of the calldata length. * Add version history section to EIP165 * EIP 1640 -> PR 1640 * Automatically merged updates to draft EIP(s) 1155 (ethereum#2063) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2064) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * State Rent change H placeholder EIP - fixed rent prepayment for all accounts (ethereum#2026) * Fix author fields (ethereum#2065) * Sane limits for certain EVM parameters (ethereum#1985) * sane * some clarifications * remove cruft * some clarifications * propose spec changes * limit the scope to EVM only * more rationale * group affected opcodes by ranges * Rename to EIP-1985 * Add discussion URL to EIP-1985 * Include a reference to EIP106 * Add more rationale * fix typo * Remove unfounded worry * mention timestamp being 64-bit value in Aleth * resolved an TODO item as Rationale entry * Reduced gas cost for static calls made to precompiles (ethereum#2046) * Reduced gas cost for static calls made to precompiles * Rename to EIP-2046 * Add discussion URL * Add 2046 to Istanbul * Fix header * Add draft for ESO (extended state oracle) (ethereum#2014) * Add draft for ESO (extended state oracle) * Add mention of revert to ESO * Add EIP-2014 number and rename file * Add reference to EIP-1959 and EIP-1965 * Add discussions-to URL * Update eip-181.md * Update eip-162.md * State Rent Change A EIP placeholder - State counters contract (ethereum#2029) * Create eip-StateRentACountersContract.md * Update eip-StateRentACountersContract.md * Rename eip-StateRentACountersContract.md to eip-2029.md * Update eip-2029.md * Update eip-2029.md * Fix typos * Make EIP-2014 into a proper link * New Opcode to check if a chainID is part of the history of chainIDs (ethereum#1959) * Automatically merged updates to draft EIP(s) 1679 (ethereum#2055) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Copyright 107 (ethereum#2068) * add copyrights for 107 * use github username * Automatically merged updates to draft EIP(s) 1155 (ethereum#2074) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * State Rent change C draft EIP - Net contract storage size accounting (ethereum#2027) * State Rent change C draft EIP * Update eip-draft_StateRentCnetContractSizes.md * Update eip-draft_StateRentCnetContractSizes.md * Rename eip-draft_StateRentCnetContractSizes.md to eip-2027.md * Update eip-2027.md * Update eip-2027.md * Update eip-2027.md * Quote "block C" properly * Update eip-2027.md * State Rent change B placeholder EIP - net transaction counter (ethereum#2031) * Create eip-draft_StateRentBNetTransactionCounter.md * Update and rename eip-draft_StateRentBNetTransactionCounter.md to eip-2031.md * Update eip-2031.md * Update eip-2031.md * Update eip-2031.md * Fix some typos * Use canonical link to EIP-2029 * Update eip-2031.md * Update eip-2031.md * Stateless Clients: Repricing SLOAD and SSTORE to pay for block proofs (ethereum#2035) * Create eip-draft_StatelessClientGasRepricing.md * Update and rename eip-draft_StatelessClientGasRepricing.md to eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Fix typos * Use canonical links to other EIPs * Update eip-2035.md * Fix link to EIP-2028 * Automatically merged updates to draft EIP(s) 1679 (ethereum#2036) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1930 (ethereum#2076) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 (ethereum#2042) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1418 (ethereum#2078) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1108 (ethereum#2067) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2083) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2084) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2085) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1930 (ethereum#2086) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 778 (ethereum#2087) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2088) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2089) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Last call for ERC-1155 (ethereum#2091) * add EIP for particle gas costs (ethereum#2045) * add EIP for fractional gas costs * use EIP number 2045, add references, discussion-to * add EIP-2045 to Istanbul * Formatting * Add ewasm to rationale * Clarify cost reduction examples * Clarify the increase of particles * link to eip-2035, edit for clarity * add reference to eip-2035 * add axic as author * rename title to "particle gas costs", edit ewasm section * fix header * Automatically merged updates to draft EIP(s) 1803 (ethereum#2093) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1803, 663 (ethereum#2094) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1193 (ethereum#2092) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2096) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 778 (ethereum#2097) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2101) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1261 (ethereum#2102) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * fix typo: "as follows" (ethereum#2099) see: https://ell.stackexchange.com/a/31673 * EIP-2003 - EVMC modules for implementations of precompiled contracts (ethereum#2003) * Automatically merged updates to draft EIP(s) 1261 (ethereum#2107) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2108) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2109) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2110) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 2003 (ethereum#2112) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2113) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2114) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2116) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2117) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2118) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2120) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * ERC-1155 Final Status (ethereum#2122) * Automatically merged updates to draft EIP(s) 1344 (ethereum#2079) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Propose to move EIP-695 to last call status (ethereum#1566) * Propose to move EIP-695 to last call status * Add a discussion link * Formatting fix * Fix @sorpaas handle in author field * Use EIP155 formatting for `CHAIN_ID` * Formatting fix for "chain ID" The document had places where we use lowercase "id" and uppercase "ID". This unify them to use uppercase "ID". * Update eip-695.md * Move EIP-695 to Last Call status and add 155 requirement (ethereum#2128) * Update eip-1577.md (ethereum#1670) * Automatically merged updates to draft EIP(s) 1702 (ethereum#2130) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2131) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 695 (ethereum#2133) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1202 (ethereum#2134) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2140) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2141) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Funding ETH1.X through a Developer Block Reward for 18 Months (ethereum#2025) * Automatically merged updates to draft EIP(s) 1702 (ethereum#2149) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP 747: wallet_watchAsset (ethereum#1426) * Initial draft * Add eip-747: watchToken * Update discussion link * Update eip-747 to watchAsset * Add image specification and examples EIP747 * Add asset type error * Respond to feedback * Depends on 1474 * Correct type to standards track * Correct spelling * Add eip images locally (ethereum#2150) * Automatically merged updates to draft EIP(s) 823 (ethereum#2151) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1193 (ethereum#2057) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * ERC-1948: Non-fungible Data Token (ethereum#1948) * first draft * remove boilerplate * fix indentations * typos * ethereum code highlights * moved file to id * syntax * naming * link to erc721 * make interface an interface * typo * better comments * Automatically merged updates to draft EIP(s) 1679, 233 (ethereum#2081) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2152) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Introduced Abandoned status in EIP-1 (ethereum#2051) * Introduced Abandoned status in EIP-1 * Fix typo * EIP-1967: Standard Proxy Storage Slots (ethereum#1967) * Proxy storage slots EIP * Apply suggestions from code review Co-Authored-By: spalladino <spalladino@gmail.com> * Add reference to vyper storage slots * Fix links to EIPs Co-Authored-By: spalladino <spalladino@gmail.com> * Apply suggestions from code review Co-Authored-By: spalladino <spalladino@gmail.com> * Applied suggestions by elopio and nventuro * Add discussions-to * Add EIP number * Rename eip file * Fix type attribute * Use zOS independent hash preimage * Implement suggestion by axic * Automatically merged updates to draft EIP(s) 1474 (ethereum#2155) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1613 (ethereum#2163) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1066 (ethereum#2164) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Mark EIP-158 proper superseded and not replaced (ethereum#2160) * Update eip_validator to 0.8.2 (ethereum#2161) * Fix Markdown formatting in EIP-1186 * Update eip_validator to 0.8.2 * Abandone EIP-1355 "Ethash 1a" (ethereum#1785) * Add information EIP: Common Prometheus metrics (ethereum#2159) * Add common metrics EIP. * Fix spelling error. * Assign EIP number, added more information on what Prometheus does. * Add link to prometheus website for further info. * Fix link. * Fix discussion link. * Switch to standards track - interface instead of informational. * Add motivation. * superseded-by EIP 1 (ethereum#2165) * Automatically merged updates to draft EIP(s) 1702 (ethereum#2167) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1753 - Define a smart contract interface for permits and licences (ethereum#1753) * First draft * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update authors * Update eip-x.md * Rename eip md * Rollback * Rename md * Add copyright * WIP: Re adding specificaiton * Update example solidity * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Do not touch eip-X * Fix typo * EIP-1895: Improvements (ethereum#2153) * EIP-1895: Better constants and address range description Address @Arachnid's comments about presenting constants and how an address value is limited. * EIP-1985: Fix a typo * EIP-1985: Use "instructions" instead of "opcodes" * eip-225: mark as final (ethereum#1954) * set EIP875 to last call and correct errors (ethereum#1549) * Automatically merged updates to draft EIP(s) 1571 (ethereum#2168) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 999 (ethereum#2170) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 2159 (ethereum#2174) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1884 (ethereum#2175) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 2028 (ethereum#2176) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1901: Add OpenRPC Service Discovery To JSON-RPC Services (ethereum#1901) * EIP-????: Add OpenRPC Service Discovery To JSON-RPC Services * fix: * fix(openrpc): add openrpc.json to eip assets * fix(openrpc): reference eip asset * Update EIPS/eip-1901.md - document link * Delete openrpc.json * Update eip-1901: move link to spec to top * fix(1901): preamble + author github usernames * fix(1901): add copyright info * fix(1901): add link to eth json rpc spec * fix(1901): type and category in preamble + spelling * fix(1901): motivation section and use vendored assets * fix(1901): add link to multi-geth OpenRPC discovery * fix(1901): change ordering + small fixes * fix(1901): typo * Automatically merged updates to draft EIP(s) 1108 (ethereum#2177) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1102 (ethereum#2178) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1900 Decentralized Type System for EVM (ethereum#1900) * Automatically merged updates to draft EIP(s) 1884 (ethereum#2180) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing
Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing
When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-X.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met: