-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Update EIP-1485: Fix typographical errors in Documentation #9186
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
Changes from 9 commits
a607005
35d55f1
74bec30
be1ea78
fbc99b3
5aa9d35
da17c82
2e4d7df
e6e7195
591ee72
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,35 @@ | ||
--- | ||
eip: 1485 | ||
title: TEthashV1 | ||
author: trustfarm <trustfarm.info@gmail.com>, trustfarm <cpplover@trustfarm.net> | ||
Check warning on line 4 in EIPS/eip-1485.md
|
||
discussions-to: https://ethereum-magicians.org/t/anti-eth-asic-mining-eip-1488-pr/1807 | ||
status: Stagnant | ||
type: Standards Track | ||
category: Core | ||
created: 2018-11-01 | ||
--- | ||
|
||
Check warning on line 11 in EIPS/eip-1485.md
|
||
## Simple Summary | ||
Check failure on line 12 in EIPS/eip-1485.md
|
||
This EIP modifies ethash in order to break ASIC miners specialized for the current ethash mining algorithm. | ||
|
||
## Abstract | ||
Check failure on line 15 in EIPS/eip-1485.md
|
||
This EIP pursue "obsolete current ASIC miners" by modifying PoW algorithm in a very low risk manner and update to latest hash algorithm from deprecated FNV Hash algorithms. | ||
|
||
Following TEthashV1 algorithm suggests safe transition of PoW algorithms and secure the FNV Algorithm in MIX Parts. | ||
|
||
## Motivation | ||
Check failure on line 20 in EIPS/eip-1485.md
|
||
Provide original Ethash proof of work verification with minimal set of changes by updating FNV0 algorithm | ||
|
||
## Specification | ||
|
||
#### 1. Reference materials on ETHASH FNV0 | ||
Check failure on line 25 in EIPS/eip-1485.md
|
||
|
||
#### Where FNV Applied on ETHASH | ||
|
||
- In [ETHASH](https://github.com/ethereum/wiki/wiki/Ethash) , FNV Hash is used on | ||
Check warning on line 29 in EIPS/eip-1485.md
|
||
* 1) On data aggregation function, MIX parts. | ||
Check failure on line 30 in EIPS/eip-1485.md
|
||
|
||
* Ethash Algorithm | ||
Check failure on line 32 in EIPS/eip-1485.md
|
||
|
||
``` | ||
Header + Nonce | ||
|
@@ -46,12 +46,12 @@ | |
|-----> Mix64 [Process] ---> Mix Digest [32B] | ||
``` | ||
|
||
* FNV used in DAG Generation | ||
Check failure on line 49 in EIPS/eip-1485.md
|
||
and Mixing for random access or DAG Page. | ||
|
||
#### 2. Current applied Ethash FNV hash implementation is deprecated now. | ||
|
||
[FNV-0_hash (deprecated)](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-0_hash_(deprecated)) | ||
Check warning on line 54 in EIPS/eip-1485.md
|
||
|
||
It is a simple way of hashing algorithm | ||
|
||
|
@@ -63,7 +63,7 @@ | |
return hash | ||
``` | ||
|
||
When analysed FNV-0 , there's very weak [avalanche effect](https://simple.wikipedia.org/wiki/Avalanche_effect), when hash input changes on 1~2bits. refer [FNV-Analysis reference section](https://github.com/tao-foundation/FNV-Analysis#how-to-test-and-analysis-reference-test-code) | ||
Check warning on line 66 in EIPS/eip-1485.md
|
||
|
||
We need to research and apply newer FNV hash or short message hash algorithm. | ||
|
||
|
@@ -71,10 +71,10 @@ | |
|
||
Previous proposed algorithm based on FNV1 [EIP-1355](./eip-1355.md) | ||
|
||
There's a implementation that looks like "Missing Offset Bias" at **FNV1A**. | ||
There's an implementation that looks like "Missing Offset Bias" at **FNV1A**. | ||
|
||
Quotation of [original algorithm FNV1A](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash) | ||
Check warning on line 76 in EIPS/eip-1485.md
|
||
``` | ||
Check failure on line 77 in EIPS/eip-1485.md
|
||
use hash offset | ||
FNV-1a hash | ||
The FNV-1a hash differs from the FNV-1 hash by only the order in which the multiply and XOR is performed:[8][10] | ||
|
@@ -124,7 +124,7 @@ | |
#define fnv1c(x, y) ((fnv1i(x) ^ (y)) * FNV_PRIME) | ||
``` | ||
|
||
#### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis) | ||
Check failure on line 127 in EIPS/eip-1485.md
|
||
FNV Mix Algorithm Analysis for TEthashV1 | ||
|
||
#### How to test and analysis reference test code. | ||
|
@@ -137,7 +137,7 @@ | |
``` | ||
|
||
And You can execute it | ||
``` | ||
Check failure on line 140 in EIPS/eip-1485.md
|
||
fnvtest | ||
|
||
F(00,00)::VEC(0, 0, ffffffff, 0):: FNV :00000000, DF=00000000(00) DS(00000000), FNV1 :00000000, DF=00000000(00) DS(00000000), FNV1a:117697cd, DF=117697cd(17) DS(117697cd), FNV1c:1210d00f, DF=127f8dbf(20) DS(11a1725f), F___RC=efe1b9c4, DF:efe1b9c4(19) , F1__RC=deb68dfe, DF:deb68dfe(22) , F1A_RC=99bad28b, DF:99bad28b(17) , F1C_RC=e29fa497, DF:e29fa497(18) | ||
|
@@ -197,4 +197,4 @@ | |
|
||
## Copyright | ||
|
||
This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/). | ||
Check warning on line 200 in EIPS/eip-1485.md
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
--- | ||
Check failure on line 1 in EIPS/eip-158.md
|
||
eip: 158 | ||
title: State clearing | ||
author: Vitalik Buterin (@vbuterin) | ||
type: Standards Track | ||
Check failure on line 5 in EIPS/eip-158.md
|
||
category: Core | ||
status: Final | ||
created: 2016-10-16 | ||
--- | ||
|
||
Check failure on line 10 in EIPS/eip-158.md
|
||
# Specification | ||
|
||
For all blocks where `block.number >= FORK_BLKNUM` (TBA): | ||
1. In all cases where a state change is made to an account, and this state change results in the account state being saved with nonce = 0, balance = 0, code empty, storage empty (hereinafter "empty account"), the account is instead deleted. | ||
2. If a address is "touched" and that address contains an empty account, then it is deleted. A "touch" is defined as any situation where if the account at the given address were nonexistent it would be created. | ||
2. If an address is "touched" and that address contains an empty account, then it is deleted. A "touch" is defined as any situation where if the account at the given address were nonexistent it would be created. | ||
3. Whenever the EVM checks if an account exists, emptiness is treated as equivalent to nonexistence. Particularly, note that this implies that, once this change is enabled, there is no longer a meaningful difference between emptiness and nonexistence from the point of view of EVM execution. | ||
4. Zero-value calls and zero-value suicides no longer consume the 25000 account creation gas cost in any circumstance | ||
|
||
|
@@ -37,5 +37,5 @@ | |
|
||
# References | ||
|
||
1. EIP-158 issue and discussion: https://github.com/ethereum/EIPs/issues/158 | ||
Check failure on line 40 in EIPS/eip-158.md
|
||
2. EIP-161 issue and discussion: https://github.com/ethereum/EIPs/issues/161 | ||
Check failure on line 41 in EIPS/eip-158.md
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,16 +2,16 @@ | |
eip: 1884 | ||
title: Repricing for trie-size-dependent opcodes | ||
author: Martin Holst Swende (@holiman) | ||
type: Standards Track | ||
Check failure on line 5 in EIPS/eip-1884.md
|
||
category: Core | ||
discussions-to: https://ethereum-magicians.org/t/opcode-repricing/3024 | ||
status: Final | ||
created: 2019-03-28 | ||
requires: 150, 1052 | ||
--- | ||
|
||
Check failure on line 12 in EIPS/eip-1884.md
|
||
|
||
## Simple Summary | ||
Check failure on line 14 in EIPS/eip-1884.md
|
||
|
||
This EIP proposes repricing certain opcodes, to obtain a good balance between gas expenditure and resource consumption. | ||
|
||
|
@@ -67,7 +67,7 @@ | |
|
||
It can be seen that the repricing at [EIP-150][eip-150] caused a steep drop, from around `67` to `23`. | ||
Around block `5M`, it started reaching pre-[EIP-150][eip-150] levels, and at block `7M` | ||
it was averaging on around `150` - more than double pre-eip-150 levels. | ||
Check failure on line 70 in EIPS/eip-1884.md
|
||
|
||
Increasing the cost of `SLOAD` by `4` would bring it back down to around `40`. | ||
It is to be expected that it will rise again in the future, and may need future repricing, unless | ||
|
@@ -82,7 +82,7 @@ | |
It is comparable to `EXTCODESIZE` and `EXTCODEHASH`, which are priced at `700` already. | ||
|
||
It has a built-in high variance, since it is often used for checking the balance of `this`, | ||
which is a inherently cheap operation, however, it can be used to lookup the balance of arbitrary account which often require trie (disk) access. | ||
which is an inherently cheap operation, however, it can be used to lookup the balance of arbitrary account which often require trie (disk) access. | ||
|
||
In hindsight, it might have been a better choice to have two | ||
opcodes: `EXTBALANCE(address)` and `SELFBALANCE`, and have two different prices. | ||
|
@@ -127,7 +127,7 @@ | |
- Gascost verification of `SLOAD`, `EXTCODEHASH` and `SELFBALANCE` | ||
- Verify that `SELFBALANCE` is invalid before Istanbul | ||
|
||
Some testcases have been implemented as statetests at https://github.com/holiman/IstanbulTests/tree/master/GeneralStateTests | ||
Check failure on line 130 in EIPS/eip-1884.md
|
||
|
||
## Implementation | ||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.