Commit Graph

629 Commits

Author SHA1 Message Date
vbuterin 6b5479cac9 Moved ancestor hashes to state, changed to batched accumulator (#269)
* Replaced ancestors hashes in blocks with the previous block root
* Add a block root batched accumulator
* Cleanup processing presentation
2018-12-12 13:02:50 +00:00
Chih Cheng Liang 21da07b4f7 typo (#294) 2018-12-12 10:30:58 +00:00
Danny Ryan e2714b3344 add bls_verify_multiple def to phase 0 spec (#292) 2018-12-11 21:18:30 +00:00
Danny Ryan 726ed97eb2
Merge branch 'rename_tree_roots' of https://github.com/terenc3t/eth2.0-specs into terenc3t-rename_tree_roots 2018-12-11 14:54:30 -06:00
Terence Tsao 3f31eecb18 fixed typo & s/winning_hash/winning_root/ 2018-12-11 12:50:20 -08:00
Terence Tsao a13997d738 updated rest of the fields except ancestor_hashes 2018-12-11 12:38:32 -08:00
Justin 9f8ae361f9
Rename `BLSVerify` to `bls_verify` and put `hash` in helpers 2018-12-11 20:30:28 +00:00
Danny Ryan 032007ad17
add organization to previous epoch attester helpers 2018-12-11 13:40:00 -06:00
Danny Ryan 5e84a53ff1
base_reward is 1/4 of total reward val can earn per cycle 2018-12-11 13:32:27 -06:00
Danny Ryan 42364fe7b1
add granular reward for the four different parts of attestation 2018-12-11 13:22:17 -06:00
Terence Tsao e0e2fed1b5 rename hash tree roots as root 2018-12-11 09:53:56 -08:00
Danny Ryan 83224c320a
small edit to language 2018-12-11 11:16:24 -06:00
Danny Ryan befc349878
add balance diff consensus safety note 2018-12-11 11:14:42 -06:00
Danny Ryan defe2668a0
Merge pull request #266 from ethereum/JustinDrake-patch-10
First pass cleanup of bls_verify.md
2018-12-11 10:38:21 -06:00
Danny Ryan e8d8b03089 note the vyper version the contract is expected to be compiled with (#287) 2018-12-11 16:29:09 +00:00
Danny Ryan 084880511d
Merge pull request #280 from ethereum/validator-status
validator status cleanup
2018-12-11 10:14:02 -06:00
Danny Ryan 5734b25fb1
rename bls verification spec ref 2018-12-11 10:13:31 -06:00
Danny Ryan c462f563b1
use Deposit object for processing intiial deposits 2018-12-11 10:02:59 -06:00
Danny Ryan 1e3f518f02
pr feedback 2018-12-11 09:49:50 -06:00
Danny Ryan e64bfb289c
Merge pull request #282 from ethereum/ssztreehash-cleanup
cleanup refs to SSZTreeHash
2018-12-11 09:17:57 -06:00
Justin d1c20b862b
Update bls_verify.md 2018-12-11 14:02:34 +00:00
Justin a32af50513
Update bls_verify.md 2018-12-11 13:56:40 +00:00
Justin 23f7e9db62
Rename FQ2 to Fq2 and specify the G1 generator 2018-12-11 13:36:34 +00:00
vbuterin 47dc3eb48b Updated winning_hash description (#283) 2018-12-11 13:25:21 +00:00
Danny Ryan 6fccd9f793
cleanup a few more hash refs to ssztreehash 2018-12-10 17:08:04 -06:00
Danny Ryan fa685abc47
add ref to ssztreehash spec. cleanup where ssztreehash should be used 2018-12-10 16:58:36 -06:00
Danny Ryan ae33eec081
Merge branch 'master' into validator-status 2018-12-10 16:43:35 -06:00
Danny Ryan e77bf04711
remove direct calls to exit_validator 2018-12-10 16:42:28 -06:00
Danny Ryan 37450e9a4d
Merge pull request #279 from status-im/attestation-unsigned
attestations: avoid unsigned underflow (eth2.0-specs/issues/#224)
2018-12-10 16:34:54 -06:00
Danny Ryan 70765a205e
fix toc 2018-12-10 16:30:25 -06:00
Danny Ryan 49f3cfebdf
add link to appendix A 2018-12-10 16:22:42 -06:00
Danny Ryan 0c281c8113
local var i -> index 2018-12-10 16:17:42 -06:00
Danny Ryan 03901ffe65
cleanups 2018-12-10 16:14:08 -06:00
Danny Ryan 9cff4ae653
fix exit conditions 2018-12-10 15:56:22 -06:00
Alex Stokes ed3611904d
update reference to hash function 2018-12-10 13:32:16 -08:00
Danny Ryan 6f058c2756
begin validator status cleanup 2018-12-10 15:16:06 -06:00
Jacek Sieka 2facc754cc
attestations: avoid unsigned underflow (eth2.0-specs/issues/#224)
* and some nitpicks
2018-12-10 14:38:32 -06:00
Jacek Sieka 44ac70e7fe remove trailing whitespace (#278) 2018-12-10 19:55:11 +00:00
Justin 411d347b6b
Update bls_verify.md 2018-12-10 14:30:36 +00:00
Justin 03c014d0e3
Update 0_beacon-chain.md 2018-12-10 11:22:42 +00:00
Justin c782725aa1
Update bls_verify.md 2018-12-10 10:43:42 +00:00
Justin 25cc1cf382
Address issues from reviewers 2018-12-10 10:34:36 +00:00
Justin 0afafe1c76
Merge branch 'master' into JustinDrake-patch-8 2018-12-10 10:11:41 +00:00
Nishant Das 88ef7b8186 typo (#270) 2018-12-10 08:28:11 +00:00
vbuterin d6cc826bb0
Some edits 2018-12-09 23:44:44 -05:00
Justin cd07ec126b
Update bls_verify.md 2018-12-09 14:51:15 +00:00
Justin 6079f70ebd
Update bls_verify.md 2018-12-09 14:49:16 +00:00
Justin 6c196fc411
Update bls_verify.md 2018-12-09 14:48:54 +00:00
Danny Ryan de32e25bfc fix initial initial persistent_committees (#258)
* fix initial persistent_committees
* initial persistent commmitees from active validator indices
2018-12-09 14:47:30 +00:00
Justin 0b8fa12289
Update bls_verify.md 2018-12-09 14:43:13 +00:00
Danny Ryan 685a1be651
Merge pull request #252 from ethereum/remove-specials
new block format pt2 -- remove specials
2018-12-09 08:33:46 -06:00
Danny Ryan cc476db8c9
address pr ffeedback 2018-12-09 08:33:12 -06:00
Justin 24d3c9c33a
Update bls_verify.md 2018-12-09 14:30:48 +00:00
Hsiao-Wei Wang c897dd99c2
Update specs/core/0_beacon-chain.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2018-12-09 08:25:34 -06:00
Justin 1b0b2f21cc
First pass cleanup of bls_verify.md
Misc cleanups:

* (typo) `highflag` => `highflag1`
* (typo) `lowflag = x = 0` => `lowflag == x == 0`
* Add structure and table of contents
* Describe more notation in words (e.g. `i`)
* Make sure flags are 1-bit
* Clarify and polish presentation

Example notation cleanups:

* `G1` => `id_G1` (to avoid confusing with the group G1)
* `field_modulus` => `q` (avoid using two names for same thing)
* `BLSVerify` => `bls_verify` (respect notation for functions in main document)
* `sig` => `signature` (avoid abbreviations as in main document)

TODO:

* Potentially describe `FQ2`, `b2`, `is_on_curve`, `multiply` in words
* Make the naming changes around `bls_verify` in the main document
* Fix any bugs introduced by the cleanup
2018-12-09 14:21:34 +00:00
vbuterin 70836ecd1c Clarify why it's called INVERSE_SQRT_E_DROP_TIME (#261)
* (cleanup) Rename `SQRT_E_DROP_TIME` to `INVERSE_SQRT_E_DROP_TIME` to reflect `1/sqrt(e)`
* (cleanup) Justify why it's called INVERSE_SQRT_E_DROP_TIME
* (cleanup) Polish and simplify presentation
* (bug fix) Fixed 2**34 value
* (bug fix) Replace epochs with slots to make the calculations work
2018-12-09 13:08:11 +00:00
vbuterin 238c0e10fe Added explicit "must be < q" phrasing to BLS description (#262) 2018-12-09 12:33:37 +00:00
Hsiao-Wei Wang e04378c38c bytes32(pubkey) -> bytes48(pubkey) (#265) 2018-12-09 12:33:13 +00:00
Chris Leishman eefaaf5ac3 Clarify TreeHash treatment of integers > 256bit
Also clarify treatment of hashes < 32bytes
2018-12-07 16:39:52 -08:00
Justin 2ed18bfa1f
Casper cleanups and bug fixes
* (cleanup) `SpecialAttestationData` => `CasperVotes`
* (cleanup) `vote_1`, `vote_2` => `votes_1`, `votes_2`
* (bug fix) Place a bound on the number of votes with `MAX_CASPER_VOTES`
* (bug fix) Supply `state` when calling `verify_casper_votes`
2018-12-07 20:09:49 +00:00
Danny Ryan e2eedabed2
Merge pull request #254 from mkalinin/fix-boundary_attesting_balance-2
Fix epoch_boundary_attesting_balance calculation
2018-12-07 13:00:38 -06:00
Danny Ryan a0e226c957
remove record from operation types 2018-12-07 12:51:15 -06:00
Danny Ryan 74ac7e6ee1
PR feedback 2018-12-07 12:43:11 -06:00
Chih Cheng Liang 357cb72d7a fix broken md (#257) 2018-12-07 16:16:09 +00:00
Danny Ryan dc4bbfedab
clarify header 2018-12-07 09:18:06 -06:00
Danny Ryan c4acafdb58
change block objects to operations 2018-12-07 09:15:55 -06:00
Danny Ryan 3a24fed194
fix toc' 2018-12-07 09:05:29 -06:00
Danny Ryan d9abce4471
rename transactiosn to block objects 2018-12-07 09:04:16 -06:00
Danny Ryan 76e5b76dc2
Merge branch 'master' into remove-specials 2018-12-07 08:12:58 -06:00
Danny Ryan 9f64530aac
remove BeaconBlockHeader 2018-12-07 07:46:52 -06:00
Mikhail Kalinin 1a716609ba
Fix epoch_boundary_attesting_balance calculation
get_effective_balance accepts ValidatorRecord object as an input but it was called with validator index instead
2018-12-07 18:23:55 +06:00
Justin 2d8efe57c0
Bug fixes and cleanups around exit_validator
Cleanups

* Use `state.slot` over `current_slot`.
* Specify `new_status`
* Segregate ejection processing

Bug fixes:

* Put ejections at the end of the per-slot processing (TODO: per-slot processing should come *after* per-epoch processing)
* Immediately exit ejections
* Include `ACTIVE_PENDING_EXIT` as an active state
* Renamed two `State` to `BeaconState`
2018-12-07 12:18:55 +00:00
Danny Ryan 35f8eccc1f
fix tox 2018-12-06 19:18:49 -06:00
Danny Ryan 57b86e3204
fix toc 2018-12-06 19:16:10 -06:00
Danny Ryan bcb09a49a0
rework transactions data structure ordering 2018-12-06 19:13:19 -06:00
Danny Ryan 3ea04a28ca
fix table 2018-12-06 19:07:26 -06:00
Danny Ryan 80e224be8c
remove specials 2018-12-06 19:02:23 -06:00
Danny Ryan 40fd893fc1
remove extra field 2018-12-06 17:55:23 -06:00
Danny Ryan d18ab07803
fix toc 2018-12-06 17:54:14 -06:00
Danny Ryan 7f542ca714
add beaconblockheader and body 2018-12-06 17:51:01 -06:00
Danny Ryan 15c11a46bd
consistency in multiplication of EPOCH_LENGTH formatting 2018-12-06 16:56:23 -06:00
Danny Ryan 332511b42b
simplify finality conditions 2018-12-06 16:51:29 -06:00
Danny Ryan 98430c7c68
address comments 2018-12-06 16:47:22 -06:00
Danny Ryan ae1b64ccff
remove s helper 2018-12-06 16:38:40 -06:00
Danny Ryan eb7715aa41
pr feedback 2018-12-06 16:12:33 -06:00
Danny Ryan 330b2449bf
pr feedback 2018-12-06 15:54:39 -06:00
Danny Ryan 5e058a15b8
remove 'slot_hash_block' 2018-12-06 10:41:50 -06:00
Danny Ryan 464ad63464
minor slot cleanups 2018-12-06 10:25:35 -06:00
Danny Ryan 3e1aad24b0
Merge branch 'master' into virtual-skip-block 2018-12-06 09:45:25 -06:00
Danny Ryan c5eddd54f4
Merge branch 'master' into cleanup-validator-change 2018-12-06 09:42:24 -06:00
Danny Ryan b8b2586c92
address review comments 2018-12-06 09:40:40 -06:00
Danny Ryan f7e58dd82c
Merge branch 'master' into virtual-skip-block 2018-12-06 09:38:07 -06:00
Danny Ryan 8bc0254deb
add missing toc entry 2018-12-06 09:29:49 -06:00
Danny Ryan 7c25665d61
remove state.slot ref 2018-12-06 09:28:55 -06:00
Danny Ryan c0ca669bd0
cleanup validator registry change to merge before #234 2018-12-06 08:51:57 -06:00
Danny Ryan 91f83e3861
isolate some of the per-epoch changes from the other #234 2018-12-06 08:38:31 -06:00
terence tsao 0626061977
don't need slot num in get_active_validator_indices 2018-12-05 17:26:07 -08:00
Danny Ryan db65429cc8
rework to do virtual block transitions 2018-12-05 19:24:37 -06:00
Danny Ryan 22a77c331b
fix change_validators 2018-12-05 14:35:58 -06:00
Danny Ryan 1ccb1074c5
fix just/finality 2018-12-05 14:07:41 -06:00
Danny Ryan e894a2dc18
fix issues in justificaiton/finality 2018-12-05 13:55:56 -06:00
Danny Ryan 4e0b120fe3
Merge branch 'master' into JustinDrake-patch-3 2018-12-05 13:14:16 -06:00
Danny Ryan 59494d1774
add state root processing 2018-12-05 13:03:24 -06:00
Danny Ryan 3a677eefa9
minor cleanup 2018-12-05 12:49:45 -06:00
Danny Ryan cb871c3f0e
minor cleanups 2018-12-05 12:47:21 -06:00
Danny Ryan c154c65f14
cleanup calls to 'get_block_hash' 2018-12-05 12:42:16 -06:00
Danny Ryan 3bd56891c5
cleanup per slot processing 2018-12-05 12:40:08 -06:00
Justin eb26e10fae
Update 0_beacon-chain.md 2018-12-05 17:30:37 +00:00
Justin f956135763
Fix #237 (#238) 2018-12-05 17:17:17 +00:00
terence tsao 130b837975 Fix ZERO_BALANCE_VALIDATOR_TTL and move get_domain 2018-12-05 14:41:11 +00:00
Justin 20407c8dd1
Update 0_beacon-chain.md 2018-12-05 14:34:50 +00:00
Justin 2fc3f88795
Update 0_beacon-chain.md 2018-12-05 11:22:15 +00:00
Paul Hauner 2913dfa6fe Change `state.crosslinks` to `state.latest_crosslinks` (#236)
Change `state.crosslinks` to `state.latest_crosslinks` to match the `BeaconState` definition.
2018-12-05 09:03:09 +00:00
Justin 4c0841ec6a
Move to a per-slot state transition function
Initial pass for the migration from a per-block state transition function to a per-slot state transition function. More simplifications and cleanups can be made.
2018-12-04 21:28:31 +00:00
Justin a4722faf12
Handle activations and exits separately for balance churn (#230)
This change is to avoid deposits from fully consuming the allowable balance churn, preventing exits from being processed. And vice versa with deposits/exits swapped.

A bunch of cleanups and bug fixes were made along the way.
2018-12-04 19:49:26 +00:00
Danny Ryan b40a7c5ad6
Merge pull request #228 from ethereum/fix-validator-states
Fix deposit logic
2018-12-04 11:51:47 -06:00
Danny Ryan 17cf4e9f56
remove WITHDRAWN again 2018-12-04 11:23:37 -06:00
Danny Ryan 84a1a5fc07
fix pending -> exited_without_penalty. change pendning_exit to active_pending_exit. fix merkle tree in contract 2018-12-04 10:07:46 -06:00
Justin 5e4883ccbf
Stick with Keccak-256/SHA3 for now
See https://github.com/ethereum/eth2.0-specs/issues/218
2018-12-04 15:50:44 +00:00
Justin 73e77b75e1
Fix #223
`next_start_shard` does not need to be part of `state` (it's already available via `(state.shard_committees_at_slots[-1][-1].shard + 1) % SHARD_COUNT`)
2018-12-04 12:37:05 +00:00
Justin 67e4fa9d6f
Cleanup of deposit
* Structure the presentation, add sections to table of contents
* Remove incorrect and redundant information
* Add section on withdrawal credentials
2018-12-04 11:47:41 +00:00
Justin 4bf1539c83
Cleanups part 2 (#217)
Changelog (nothing major):

* Clean up constants
   * Add to table of contents
   * Rename a few
   * Split into more categories (e.g. "Deposit contract"  and "Initial values")
   * Replaced `SQRT_E_DROP_TIME ` by `INACTIVITY_PENALTY_QUOTIENT`
* Put all the data structures in "Data structures", including specials
* Move deposit contract after "Data structures"
* `ShardAndCommittee` => `ShardCommittee` (and related changes)
* `aggregate_sig` => `aggregate_signature`
* `justified_slot_bitfield` => `justification_bitfield`
* Use double-ticks everywhere in Python docstrings
* Clean up deposit contract a bit
* Bug fix: ensure uniqueness of the `ChainStart` log
2018-12-04 10:57:09 +00:00
Danny Ryan c2227a59de
fix int384 to uint384 2018-12-03 12:27:58 -06:00
vbuterin 0f59a564d0
Merge pull request #215 from mratsim/patch-1
Small typo in get_active_validator_indices
2018-12-03 09:38:03 -05:00
vbuterin 2f112e12fc
Merge pull request #202 from ethereum/initial_fork_slot
set initial fork_slot to INITIAL_SLOT_NUMBER
2018-12-03 09:37:27 -05:00
Mamy Ratsimbazafy fe5a472ff6
Small typo in get_active_validator_indices
Change [ValidatorRecords] to [ValidatorRecord]
2018-12-03 15:14:31 +01:00
Hsiao-Wei Wang 2983e68f03
Merge pull request #213 from paulhauner/patch-1
ForkData typo
2018-12-03 14:29:41 +08:00
Antoine Toulme ff2551e754 Add Java implementation of SSZ 2018-12-02 21:22:51 -08:00
Paul Hauner 95211af400
ForkData typo
Extremely small change: added a close bracket to `ForkData`.
2018-12-03 14:08:33 +11:00
Hsiao-Wei Wang 11d4473863
Fix ToC 2018-12-01 13:29:19 +08:00
josojo 158c8f3ab3 minor correction 2018-11-30 22:47:28 +01:00
Danny Ryan cf97bd18ea
Merge pull request #200 from burnburn/validator_definitions
add links to validator definition
2018-11-30 13:24:16 -06:00
Danny Ryan daaf6e4bc2
Merge pull request #206 from burnburn/sample_reference
First/sample reference
2018-11-30 13:20:50 -06:00
Dan Burnett 38b3c572f6
Fix typo 2018-11-30 13:58:44 -05:00
Dan Burnett 72fc2a0cff
Show new reference style 2018-11-30 13:56:44 -05:00
Danny Ryan 1757c2ad26
Merge pull request #204 from burnburn/references
Add References section
2018-11-30 12:54:17 -06:00
Daniel Burnett b04938d795
Merge branch 'master' into validator_definitions 2018-11-30 19:14:17 +01:00
Danny Ryan b55ef47c9b
set initial fork_slot to INITIAL_SLOT_NUMBER 2018-11-30 12:04:18 -06:00
Dan Burnett 8f15b6179b
Add active validator links 2018-11-30 12:49:05 -05:00
Dan Burnett 13a5bdbf70
add links to validator definition 2018-11-30 12:31:09 -05:00
Justin 81360d50a4
Cleanups pt. 1 (#185)
Many cleanups in this monster commit! Two warnings:

1) More significant cleanups will be coming soon™.
2) While several bugs were fixed in this cleanup, some will undoubtedly have been introduced (thanks to the three reviewers!). In particular, the logic around validator statuses is known to be broken.
2018-11-30 14:28:33 +00:00
Dan Burnett 2701b44d23
Add References section 2018-11-29 11:12:12 -05:00
terence tsao 3b62508610
added link for BLS12-381 bls_verify spec 2018-11-29 06:18:31 -08:00
Danny Ryan 698283ee86
Merge pull request #188 from burnburn/notation
Add notation section
2018-11-29 07:29:03 -06:00
Dan Burnett a851e09b9c
add Notation section 2018-11-29 07:44:43 -05:00
terence tsao a891d5d585
Fix on_startup 2018-11-28 18:32:07 -08:00
Hsiao-Wei Wang 7359b36964
Remove tags 2018-11-28 23:07:39 +08:00
Hsiao-Wei Wang 64170f79a3
`ProcessedAttestations` -> `ProcessedAttestation` 2018-11-28 17:39:34 +08:00
Hsiao-Wei Wang 5abdbc600d
Fix `SQRT_E_DROP_TIME` description 2018-11-28 16:37:21 +08:00
Hsiao-Wei Wang fead86e31c
Move vyper contract to `PoW chain registration contract` section 2018-11-28 16:00:53 +08:00