Commit Graph

456 Commits

Author SHA1 Message Date
Danny Ryan cae363f209
add missing quotes for field 2018-11-27 08:21:42 -06:00
vbuterin 1df0f9f1b7
Fixed indent. 2018-11-27 07:25:31 -05:00
Hsiao-Wei Wang 2795af7bae
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 06:36:47 -05:00
Hsiao-Wei Wang 034e2d4546
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 06:36:10 -05:00
Hsiao-Wei Wang 2d766e4aae
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 06:35:55 -05:00
vbuterin fc059f2ec1
Moved proposer reshuffling section 2018-11-27 06:30:19 -05:00
Hsiao-Wei Wang 4c991bf3ca
ssz proofread 2018-11-27 15:45:04 +08:00
ncsolar 472a117162
Update 0_beacon-chain.md
Assumed it should read "A block `B` is justified if there is a descendant of `B`..." ?
2018-11-27 00:12:10 -06:00
Hsiao-Wei Wang 43ef444613
PR feedback: add `ForkData` 2018-11-27 11:52:06 +08:00
vbuterin 4ec40f06f3
Added topups 2018-11-26 19:08:04 -05:00
vbuterin cd9c47af5a
Made pure functions return indices of validators instead of validator objects
Makes the code cleaner this way; returning an object that then gets mutated is confusing.
2018-11-26 18:51:34 -05:00
vbuterin f2af5fd9df
Moved two calculations back to the FFG reward section 2018-11-26 18:44:29 -05:00
vbuterin 3b7164c2d6
Resolved some of @djrtwo's nitpicks 2018-11-26 18:39:35 -05:00
Danny Ryan b8689e1727
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:35:32 -05:00
Danny Ryan 7fcd9930df
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:35:25 -05:00
Danny Ryan e651e99210
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:35:02 -05:00
Danny Ryan 973d0ab591
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:33:31 -05:00
Danny Ryan bcd9eb53fb
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:33:18 -05:00
Danny Ryan fe4496dd74
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:33:06 -05:00
Danny Ryan be56e58c1a
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:32:53 -05:00
vbuterin 9f1869cad9
Remove todos 2018-11-26 17:14:38 -05:00
vbuterin 170962c80f
Big refactor + simplification 2018-11-26 17:12:39 -05:00
vbuterin 386dab1140
Update 0_beacon-chain.md 2018-11-26 13:40:02 -05:00
Danny Ryan d6d1f88ac1
Merge branch 'master' into vbuterin-patch-7 2018-11-26 10:48:28 -06:00
terence tsao 25e5408ed8
shard block sigs to uint384 2018-11-26 06:36:19 -10:00
Hsiao-Wei Wang b66f168468
PR feedback: reduce `on_startup` parameters 2018-11-27 00:21:59 +08:00
Danny Ryan 347e796b39
Merge branch 'master' into vbuterin-patch-1 2018-11-26 10:01:27 -06:00
Hsiao-Wei Wang 4067e0f25a
fix 2018-11-26 21:43:59 +08:00
Hsiao-Wei Wang 7bde8c415a
fix `get_new_validator_set_delta_hash_chain` 2018-11-26 21:27:41 +08:00
Hsiao-Wei Wang defa7da1c6
Refactor and fix on_startup 2018-11-26 21:12:14 +08:00
vbuterin b2d13e3e23
Merge branch 'master' into vbuterin-patch-13 2018-11-26 06:24:11 -05:00
Justin 78a82f6185
Merge pull request #170 from ethereum/djrtwo-patch-2
change SpecialRecord.kind to uint64
2018-11-26 10:47:50 +00:00
Justin 1bf04c8c17
Make status uint64 2018-11-26 10:47:32 +00:00
Justin d6fd0a4dc4
Merge pull request #172 from ethereum/JustinDrake-patch-2
Remove fork_version for DOMAIN_LOGOUT
2018-11-26 10:45:58 +00:00
Hsiao-Wei Wang 6a7b280d49
Update specs/core/0_beacon-chain.md
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2018-11-26 10:45:39 +00:00
Hsiao-Wei Wang b1740ba0c5
Proofread 2018-11-26 17:14:42 +08:00
Hsiao-Wei Wang e5eb3daad1
Merge branch 'master' into vbuterin-patch-1 2018-11-26 16:01:45 +08:00
vbuterin 2902170b26
Reduce width of vyper code 2018-11-25 22:22:15 -05:00
vbuterin 04ac4ea54d
Fixed more nitpicks 2018-11-25 21:15:46 -05:00
vbuterin 2dad2d4c42
V -> v 2018-11-25 21:14:13 -05:00
Justin 13866e3e04
Remove fork_version for DOMAIN_LOGOUT
Also remove `LOGOUT_MESSAGE `
2018-11-25 18:19:22 +00:00
Justin 9fde4e312d
Merge pull request #169 from ethereum/djrtwo-patch-1
remove fork_version from ProposalSignedData
2018-11-25 17:57:29 +00:00
vbuterin e6a15edc8d
Made contract compile in Vyper 2018-11-25 12:08:06 -05:00
chainsafe 6c660de8ff updated spelling 2018-11-25 12:03:27 -05:00
Danny Ryan 2a7103d1f6
change SpecialRecord.kind to uint64 2018-11-25 10:41:59 -06:00
Danny Ryan e539de9922
remove fork_version from ProposalSignedData 2018-11-25 10:37:52 -06:00
Danny Ryan ed8dd1eabc
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-25 11:33:17 -05:00
Danny Ryan b6349eefd4
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-25 11:33:07 -05:00
Danny Ryan c0aa43804b
block proposer sig to uint384 2018-11-25 10:12:48 -06:00
Danny Ryan e711076723
Update 0_beacon-chain.md 2018-11-25 10:02:43 -06:00
Danny Ryan 16d05b353a
remove `GENESIS_TIME` from constants
This constant has been superseded by `BeaconState.genesis_time`
2018-11-25 09:54:29 -06:00
Hsiao-Wei Wang 20214da420
Merge pull request #142 from ethereum/vbuterin-patch-6
Switch from alt_bn255 to BLS12-381 and add domain separation
2018-11-25 23:11:34 +08:00
Hsiao-Wei Wang 440fb337e7
Merge branch 'master' into vbuterin-patch-6 2018-11-25 22:57:50 +08:00
vbuterin 6fe5928a84
Blocks to fixed size, add proposal signatures 2018-11-25 08:06:37 -05:00
vbuterin 99d7f5c1b8
Address Justin's #1 2018-11-25 06:33:05 -05:00
vbuterin e8aa93e53e
Addressed Justin's 16, 17, 18 2018-11-25 06:23:34 -05:00
Hsiao-Wei Wang 4310b0c7d0
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-25 06:11:40 -05:00
Justin 50e8e1a918
Update 0_beacon-chain.md 2018-11-24 21:51:09 +00:00
Justin 51f8ea16ae
Merge pull request #164 from ethereum/vbuterin-patch-12
Made candidate PoW receipt roots into a map
2018-11-24 21:42:51 +00:00
Justin 755eadb20a
Fixes to PoW receipt roots 2018-11-24 21:41:53 +00:00
vbuterin 5ba47b476a
Shard uint16 -> uint64 2018-11-24 16:20:20 -05:00
vbuterin 40d289f1a3
Resolved Justin's #13 2018-11-24 16:16:27 -05:00
vbuterin 4be17dea14
Made candidate PoW receipt roots into a map 2018-11-24 16:12:27 -05:00
vbuterin b92889cf83
Add a minimum deposit time equal to the SHARD_PERSISTENT_COMMITTEE_CHANGE_PERIOD 2018-11-24 16:07:25 -05:00
vbuterin 6bdff4e82e
Fix Justin's issues 10 and 12 2018-11-24 16:04:07 -05:00
Danny Ryan d0f43663a3
Update 0_beacon-chain.md 2018-11-24 14:40:48 -06:00
Justin d0f7937089
Remove TODO
See for example https://github.com/ethereum/eth2.0-specs/issues/128
2018-11-24 19:54:05 +00:00
vbuterin fe3a0d6881
Only increment total_deposit_count for 32 ETH deposits from PoW chain 2018-11-24 14:03:22 -05:00
vbuterin 117b7b6953
More reward changes
* Added rewards for proposers
* Added declining rewards for greater inclusion distance
2018-11-24 13:30:18 -05:00
vbuterin 0d26da4a7d
Cleaned up committee balance changes 2018-11-24 12:44:43 -05:00
vbuterin b61f7d57c9
Further incremental steps on balances 2018-11-24 12:34:26 -05:00
Hsiao-Wei Wang 4ba62bb80a
Remove leftover 2018-11-25 00:22:28 +08:00
Hsiao-Wei Wang c8e9ff3d87
`shard_id` -> `shard` patch 2018-11-25 00:20:47 +08:00
Justin a818575ca8
Minor cosmetic fixes 2018-11-24 15:15:19 +00:00
vbuterin 403253c879
Added 2/3/4 cycle finalization options
Suppose B1, B2, B3, B4 are consecutive blocks and we are now processing the end of the cycle containing B4.

* If B4 is justified using source B3, then B3 is finalized.
* If B4 is justified using source B2, and B3 has been justified, then B2 is finalized.
* If B3 is justified using source B1, and B1 has been justified, then B1 is finalized.
2018-11-24 09:41:25 -05:00
Justin 70cef14a08
Merge pull request #156 from ethereum/vbuterin-patch-3
LMD fork choice rule
2018-11-23 20:48:12 +00:00
vbuterin 020ec39260
Clarify variables 2018-11-23 15:25:45 -05:00
vbuterin c098978efb
Fixed domain separation for proposals 2018-11-23 15:14:53 -05:00
vbuterin 5508a0f9c5
get_fork_version -> get_domain 2018-11-23 15:13:21 -05:00
Hsiao-Wei Wang 048090acf6
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-23 15:10:59 -05:00
vbuterin 545e35e4b1
Clarified "logarithmic" 2018-11-23 15:10:03 -05:00
vbuterin ee40888d2e
Fix to fixes 2018-11-23 15:01:15 -05:00
vbuterin bb6c81beb0
Merge pull request #158 from ethereum/JustinDrake-patch-1
Various fixes regarding PoW receipt roots
2018-11-23 14:58:03 -05:00
vbuterin 6f44db789f
s/=/==/ 2018-11-23 14:57:43 -05:00
Jacek Sieka 70b181fe32
Small fixes
* pick out committee when getting proposer
* avoid unsigned underflow when chain is starting (since we're using
uint)
2018-11-23 12:57:17 -06:00
Hsiao-Wei Wang 252a24cff0
Minor fix: markdown grammar and typing hints 2018-11-24 01:38:57 +08:00
Justin ea31ff3cea
Fix minor bug in `ghost_lmd` 2018-11-23 16:05:30 +00:00
Justin b76eae8a71
Update 0_beacon-chain.md 2018-11-23 15:37:37 +00:00
Justin 361bcd6be4
More polishing to fork choice rule 2018-11-23 15:23:22 +00:00
Justin 92981e9714
Started cleaning up fork choice rule definition 2018-11-23 14:46:25 +00:00
vbuterin f3094e179e
Resolved Justin's questions 2018-11-23 08:54:24 -05:00
Hsiao-Wei Wang 2375e0ce28
Merge branch 'master' into vbuterin-patch-6 2018-11-23 20:37:23 +08:00
Hsiao-Wei Wang e7852de0c2
Merge branch 'master' into vbuterin-patch-1 2018-11-23 20:06:43 +08:00
Hsiao-Wei Wang f513e2022e
Merge pull request #154 from terenc3t/patch-11
Typo in Vyper contract
2018-11-23 19:57:54 +08:00
4000D e2193b1324 fix hyperlink 2018-11-23 13:54:11 +09:00
Justin 50458c1d31
Various fixes regarding PoW receipt roots
Question: What happens if the block proposer at the `POW_RECEIPT_ROOT_VOTING_PERIOD` boundary puts a bad receipt root? Does this give too much power to that block proposer?
2018-11-22 23:09:36 +00:00
Terence Tsao 925ac0ecc0 use convert function in Vyper 2018-11-22 06:32:15 -10:00
vbuterin bc53f0e386
Fork choice rule
Added the LMD GHOST fork choice rule.
2018-11-22 08:24:20 -05:00
Hsiao-Wei Wang f1b78cf01e ss: Add CC0 copyright declaration (#155) 2018-11-22 17:28:24 +09:00
terence tsao fec46f9e09
Typo in Vyper contract 2018-11-21 18:37:14 -10:00
vbuterin 745524b762 Added whistleblower reward (#144)
* Added whistleblower reward

* Update 0_beacon-chain.md

* Fixed proposer.deposit += ...
2018-11-21 15:21:07 +09:00
vbuterin b4dfdb5ed4
Partial edits.... 2018-11-20 16:49:43 -05:00
Hsiao-Wei Wang 98312f40b5
Merge pull request #140 from status-im/simplify-merkle-tree
simplify merkle tree chunking
2018-11-20 23:19:04 +09:00
Hsiao-Wei Wang a217e9b32c
tree_ssz: fix extra parens
Co-Authored-By: arnetheduck <arnetheduck@gmail.com>
2018-11-20 08:12:56 -06:00
Danny Ryan addd345b36
Merge branch 'master' into vbuterin-patch-1 2018-11-20 17:41:18 +09:00
vbuterin 396d798500 Separated out proposer from attesters (#143)
* Separated out proposer from validators

* Update 0_beacon-chain.md

* Update specs/core/0_beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* Update specs/core/0_beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* get_proposer -> get_beacon_proposer, block -> slot

* Move proposer sig to the end of a block

* Update specs/core/0_beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* sig -> signature

* add type hints for get_beacon_proposer
2018-11-20 16:40:04 +09:00
Hsiao-Wei Wang 00f7554ec4
Remove justified_streak 2018-11-20 11:18:58 +09:00
vbuterin e925fe5705
Forgot to change validators -> state.validators 2018-11-19 20:15:10 -05:00
vbuterin 54217772fe
Added domain separation 2018-11-19 20:13:58 -05:00
vbuterin eb29b28dc5
Update 0_beacon-chain.md 2018-11-19 15:59:15 -05:00
vbuterin 1eaf15cf73
Replace single specials limit with per-type limit 2018-11-19 11:14:18 -05:00
vbuterin 2fead870ad
Replace cycles with epochs
Also adjusted constants to keep interest rates and the quadratic leak period the same.

Also, did some simplifications of the cycle calculation procedure. Make the decision to remove automatic registration of a validator as a proposer when they join, because that can just happen on its own due to the reshuffling procedure.
2018-11-19 11:07:41 -05:00
vbuterin 21d120e771
Remove uint32 use. 2018-11-19 07:00:03 -05:00
Danny Ryan 71451e0a0b
Merge branch 'master' into vbuterin-patch-6 2018-11-19 17:59:45 +09:00
Hsiao-Wei Wang 54eeb49831
crystallized_state -> state 2018-11-19 12:48:12 +09:00
Hsiao-Wei Wang c3e2c2a46d
Clean up leftover of CrystallizedState 2018-11-19 12:17:50 +09:00
Danny Ryan 2a077fbecc
init current_exit_seq in on_startup 2018-11-19 12:16:37 +09:00
Hsiao-Wei Wang d7ead98ea4
Merge branch 'master' into vitalik9 and fix conflicts 2018-11-19 11:23:50 +09:00
Ben Edgington c961b3dca8 Add ToDo for state_root specification (#137) 2018-11-19 11:05:53 +09:00
vbuterin 3bdd56b0f8 Fix bugs in #146 (#147)
* Fix bugs in #146

* Update 0_beacon-chain.md

* cleanup  deposit params
2018-11-19 11:02:26 +09:00
vbuterin d889eec555
Oops, accidental duplication 2018-11-18 07:09:50 -05:00
vbuterin 5dc66c328c
oops 2018-11-18 07:06:46 -05:00
vbuterin ca4b670b11
Merge branch 'master' into vbuterin-patch-1 2018-11-18 07:06:01 -05:00
Danny Ryan 8a2e1d55a5
fix bls12-381 to be in standard notation 2018-11-18 10:34:23 +09:00
vbuterin db9fdb9b72
Switch from alt_bn255 to BLS12-381 2018-11-17 18:20:39 -05:00
Jacek Sieka ea7ad28298
simplify merkle tree chunking
* pack small items tightly to fit more items in single chunk, decreasing
the number of hash operations needed
* remove chunk padding - hash algorithm will pad to its own block size
anyway
* express data length in number of items instead of binary bytes at leaf
level (equivalent)
2018-11-17 07:59:11 -06:00
vbuterin 10c375244b
Cleaned up LOGOUT 2018-11-17 07:51:25 -05:00
Danny Ryan 06cf704e83
fix typo in slashing special 2018-11-17 13:52:49 +09:00
vbuterin 1664414852
Fixed as per hww's comments 2018-11-16 19:41:09 -05:00
vbuterin eb24f9482d
int128 -> int64 2018-11-16 12:20:59 -05:00
vbuterin 57c2deefbb
Added description of genesis block 2018-11-16 11:41:59 -05:00
vbuterin c9c85e8645
Added max specials count. 2018-11-16 10:48:57 -05:00
vbuterin 65dc333549
Move specials into block processing, and clean up specification
Moves the procedure for handling specials into the per-block processing loop. Cleans up the specification for handling them to be more unambiguous, and changes the formats to be more readable and simpler to implement.
2018-11-16 07:54:03 -05:00
Danny Ryan ac207e4cc8
minor var fix (#136) 2018-11-16 08:23:28 +09:00
Danny Ryan 9825cc98fe
Update 0_beacon-chain.md 2018-11-16 08:16:35 +09:00
Danny Ryan 024852c024
Merge branch 'master' into vbuterin-patch-1 2018-11-16 08:13:33 +09:00
Chih Cheng Liang 2dfa7bc652 Fix a broken markdown table (#134) 2018-11-16 07:51:32 +09:00
vbuterin 5ed4392b54 Minimal replacement of active/crystallized state with single state (#122)
* Minimal replacement of active/crystallized state with single state

* Update specs/beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* Update specs/beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* State -> BeaconState

* Update beacon-chain.md

* Update 0_beacon-chain.md
2018-11-15 13:20:25 +00:00
vbuterin 707adddc92 Added tree hashing algorithm (#120)
* Added tree hashing algorithm

* Update simple-serialize.md

* add one more ref to tree_hash

* Add the zero-item special case

* list_to_glob to handle empty list
2018-11-15 13:12:34 +00:00
Ben Edgington 86ec833172 Remove MIN_BALANCE definition (#131)
MIN_BALANCE is not used - I'm guessing it was replaced by MIN_ONLINE_DEPOSIT_SIZE.
2018-11-15 12:28:47 +00:00
vbuterin 7d5436166e Add shard blocks, shard data roots and how data is computed into cros… (#123)
* Add shard blocks, shard data roots and how data is computed into crosslinks

Includes:

* Shard block structure
* Shard block header verification rule
* Shard block fork choice rule
* Shard block body verification rule
* Crosslink verification rule

Possible simplification: require `calc_block_maxbytes` to always output an exact power of two; if we desire the average maxbytes to be smooth, we can simply make it a pseudorandom chose between powers. This reduces some of the padding complexity.

* create separate files for phases (#125)

* create separate files for phases

* fix links

* add shard block pre processing conditions

* cleanup

* remove 'essentially'

* Updated handling for beacon chain skipping slots.

* Handle missing slots more

* modify attestation validity rule for crosslink hash
2018-11-14 21:01:57 +00:00
terence tsao 2a1150e5b8 fixed get_active_validator_indices typo (#126)
* get_active_validator_indices fixes

* add a newline
2018-11-13 19:24:49 +00:00
vbuterin add815d8f8
Fixed a bunch of comments. 2018-11-13 08:57:24 -05:00
Danny Ryan 6034dbf4ff
update randao_last_change and fix some var names (#115)
* update randao_last_change and fix some var names

* fix some special record stuff
2018-11-11 09:15:43 +00:00
vbuterin f7a8eb5a3e
Fixed bug in previous version
Validators cannot simply be "popped out" of the list because it's super-important for validator indices to be immutable.

Instead, the validator stays until a new run of `add_validator` swaps it out.
2018-11-09 15:31:50 -05:00
vbuterin 20358f8d18
Updated the PR to include deposits
Includes https://github.com/ethereum/eth2.0-specs/issues/71#issuecomment-435837594
2018-11-09 09:23:33 -05:00
terence tsao 899f86adac typo in reshuffle proposer (#118) 2018-11-09 11:40:21 +01:00
Danny Ryan b76275482d
extend ssz hash type to arbitrary lengths (#116)
* refactor hash in simple serialize to support arbitrary byte length

* make comment clearer

* add deserialization of hashN

* formatting

* remove specific hash examples
2018-11-09 11:39:03 +01:00
terence tsao 1296a4863e
helpful comment for persistent committee shuffling 2018-11-08 08:28:44 -08:00
vbuterin 024ba75fb3 Changed crosslink mechanics (#111)
* Changed crosslink mechanics

* Update beacon-chain.md

* make start_shard clearer
2018-11-07 17:47:27 +01:00