Commit Graph

4022 Commits

Author SHA1 Message Date
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
Hsiao-Wei Wang ff92875aa1
fix constants table 2018-11-28 15:46:55 +08:00
Hsiao-Wei Wang 67123a79cb
proofread and add ToC 2018-11-28 15:40:27 +08:00
vbuterin 05be2f05e3
tree_hash -> SSZTreeHash 2018-11-27 18:54:43 -05:00
Danny Ryan 126a7abfa8
Merge branch 'master' into vbuterin-patch-7 2018-11-27 13:51:12 -06:00
Danny Ryan 0de7d3288a
change 'add_validator' to 'add_or_topup_validator' 2018-11-27 12:29:48 -06:00
vbuterin e3eda6ff4e
Put back deletion period check 2018-11-27 13:25:25 -05:00
vbuterin efdafee1ad
Made topping up a withdrawn account impossible 2018-11-27 13:23:26 -05:00
Danny Ryan 8b8253cdb2
fix incorrect types for eth in pow contract 2018-11-27 12:18:32 -06:00
vbuterin 4d3f388d28
Indent fix 2018-11-27 13:08:09 -05:00
Danny Ryan 2ea299bc49
Merge pull request #173 from ethereum/hwwhww/patch-1
Refactor code and fix `on_startup`
2018-11-27 11:23:25 -06:00
Hsiao-Wei Wang b9938f213e
Merge pull request #180 from ethereum/hwwhww/patch-2
ssz: proofread + `uintN` notation
2018-11-28 01:16:10 +08:00
vbuterin 9a20ecb9e4
Added handling for withdrawn validators 2018-11-27 12:07:30 -05:00
Hsiao-Wei Wang b1fc396ab4
Refactor `change_validators` 2018-11-28 01:06:09 +08:00
Hsiao-Wei Wang 829e6d9034
Merge branch 'master' into hwwhww/patch-1 2018-11-28 00:29:15 +08:00
Danny Ryan 9f26fbb4e2
Merge pull request #149 from ethereum/vbuterin-patch-1
Replace cycles with epochs
2018-11-27 10:13:04 -06:00
Hsiao-Wei Wang b59dda3409
`CHUNK_SIZE` -> `SSZ_CHUNK_SIZE` 2018-11-28 00:12:28 +08:00
vbuterin 822fbed83f BLS-12-381 specification (#141)
* Partial draft of BLS-12-381 specification

* Some updates

* Updated point serialization to standard
* Added BLSMultiVerify
* Added domain separation logic

* Added point to hash algorithm

* Represented field_modulus as decimal along with the cofactor

* Added what e(x,y) means.

* Pass domain into hash_to_G2

* Updated code to make it more easily runnable in py_ecc

* Add pending review warning
2018-11-27 10:08:43 -06:00
Hsiao-Wei Wang b27203c0ce
PR feedback: use `fork_data` 2018-11-27 23:54:09 +08:00
vbuterin 0d1b63bca3
Added min and max deposit sizes to Vyper contract 2018-11-27 10:07:21 -05:00
Hsiao-Wei Wang 562e60afdc
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 10:00:00 -05:00
Hsiao-Wei Wang c70e555260
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 09:59:36 -05:00
Hsiao-Wei Wang 4dc7a8809c
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 09:59:25 -05:00
Hsiao-Wei Wang eef28364ba
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 09:59:09 -05:00
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
Julian Meyer b8d85ef8bd get_block_hash gets the block hash, not the block (#117) 2018-11-06 23:26:29 +01:00
terence tsao a6cf5c4da1 typos from persistent shard committee changes (#113) 2018-11-06 10:43:21 +01:00
Danny Ryan 59f32978d4
Merge pull request #102 from ralexstokes/master
Add spec for {de,}serializing ssz container types
2018-11-05 14:05:07 +01:00
Danny Ryan 1d817608fb
update deserialize arg ordering in container type 2018-11-05 14:04:40 +01:00
Danny Ryan 3beab6a8db
Merge branch 'master' into vitalik7 2018-11-05 13:48:50 +01:00
Danny Ryan 189d44f5a5
move validator_set_last_changed to the validator set change section 2018-11-05 13:45:08 +01:00
Danny Ryan 236ac26867
rename var 2018-11-05 13:41:03 +01:00
Danny Ryan cc910d831a
cleanup shard reassignment logic 2018-11-05 13:38:25 +01:00
Vitalik Buterin eb1e8311c3
Implemented withdrawal rate limit in place of wihdrawal delay 2018-11-05 07:37:07 -05:00
Danny Ryan a6f8bdea66
Merge pull request #109 from ralexstokes/clean-up-unused-var
remove unused variable
2018-11-04 23:28:48 +01:00
Danny Ryan d44eb8eccc
remove unnecessary comment 2018-11-04 23:27:08 +01:00
Danny Ryan 83c624d0e8
add back in get_active_validator_indices 2018-11-04 23:26:24 +01:00
Danny Ryan 41105c28d0
Merge branch 'master' into JustinDrake-patch-3 2018-11-04 23:22:11 +01:00
Alex Stokes 9cf4f0c86e remove unused variable 2018-11-04 19:23:10 +03:00
Alex Stokes 56066260ad formatting 2018-11-04 19:13:37 +03:00
Alex Stokes cf70ed0b7c Adds specification for {de,}serializing container types 2018-11-04 19:13:37 +03:00
Danny Ryan 0df4141f05
make bytes more uniform 2018-11-01 08:08:23 +01:00
vbuterin 2fedaf0824
Chain initialization and main chain block inclusion 2018-10-31 03:44:18 -04:00
vbuterin 1276f1334b
Update beacon-chain.md 2018-10-30 04:45:28 -04:00
mratsim 0064043e14 Mention that lists are of elements of homegeneous type 2018-10-27 13:36:10 +02:00
Danny Ryan ff81a3032f
fix small error in comment 2018-10-25 15:51:24 +02:00
Danny Ryan e3931f1e72
minor type/clarification in adding validator 2018-10-25 09:43:47 +02:00
terence tsao 9064cfaddb
use int for type hints 2018-10-24 10:14:24 -07:00
terence tsao 203eeba2b6
update change_validator 2018-10-24 09:04:40 -07:00
terence tsao 40d0076b27
clean up possible rework/additions 2018-10-22 13:11:54 -07:00
Yutaro Mori bfe4caa379
minor typo 2018-10-20 17:07:45 +09:00
vbuterin 5d36ef4799
Update beacon-chain.md 2018-10-19 16:01:15 -04:00
vbuterin 8f3318813f
Update beacon-chain.md 2018-10-19 12:06:25 -04:00
vbuterin 3e7adb3981
Moved randao_mix from crystallized to active state 2018-10-19 12:05:00 -04:00
vbuterin 3e57bd5266
Update beacon-chain.md 2018-10-18 15:47:54 -04:00
Vitalik Buterin b4b60ae16a
Assign validators to persistent committees for shard block production 2018-10-18 13:54:57 -04:00
Alex Stokes 17fd4c7669 add code representation of utility function described in text for style consistency 2018-10-17 19:00:45 -07:00
Danny Ryan bb76b05f7d
fix merge conflicts 2018-10-17 12:52:48 -05:00
Danny Ryan 3697ebccaa
Merge branch 'master' into JustinDrake-patch-3 2018-10-17 12:50:23 -05:00
Danny Ryan 19a561cd8d
Merge pull request #87 from ethereum/beacon-block
be explicit about 'beacon block'
2018-10-17 11:34:57 -05:00
Danny Ryan edf0924e83
Merge pull request #86 from ethereum/fix-justified-attestation
clarify attestation justified slot validity conditions
2018-10-17 11:34:33 -05:00
Danny Ryan 75614224c7
be more explicit about attester role wrt shards 2018-10-17 09:52:03 -05:00
Danny Ryan 9b9cfae117
Add explicit setting of parent and parent_hash 2018-10-17 09:48:17 -05:00
Danny Ryan d0501631a4
added missing periods 2018-10-17 09:45:15 -05:00
Danny Ryan 0e86ab8206
Merge pull request #39 from ethereum/test-format
Document for general test format
2018-10-16 20:32:42 -05:00
Danny Ryan 8aeb55d4ea
a note about wip 2018-10-16 17:50:56 -05:00
Danny Ryan 934dbf8888
be explicit where needed about block meaning 'beacon block' 2018-10-16 17:03:29 -05:00
Danny Ryan 840d3f11ad
clarify the validity conditions for attestation.justified_slot and justified_block_hash 2018-10-16 16:37:59 -05:00
Danny Ryan 13e155a40f
Merge branch 'master' into JustinDrake-patch-3 2018-10-16 16:29:20 -05:00
Danny Ryan 7945ce58d5
update recently_changed flag comment 2018-10-16 16:22:05 -05:00
Danny Ryan dc2317b010
Merge branch 'master' into JustinDrake-patch-2 2018-10-16 13:03:14 -05:00
Danny Ryan d0ff8cdece
Merge pull request #83 from ethereum/JustinDrake-patch-1
Move from signed integers to unsigned integers
2018-10-16 13:00:26 -05:00
Danny Ryan f3ea9bf43c
Merge pull request #44 from ethereum/fix-recent_block_hashes
Fix `recent_block_hashes`
2018-10-16 10:36:31 -05:00
Danny Ryan 9135fd9085
fix small typo 2018-10-16 10:35:09 -05:00
Justin 8e8eed23f3
Misc minor cleanups 2018-10-16 13:50:31 +01:00
Justin 41cf454fe9
Add INITIAL_FORK_VERSION constant 2018-10-16 13:30:38 +01:00
Justin ef0c773fe7
Rename `version` to `fork_version`
For consistency with `pre_fork_version` and `post_fork_version`.
2018-10-16 13:27:29 +01:00
Justin fdf8162c59
Move from signed integers to unsigned integers 2018-10-16 12:55:03 +01:00
Danny Ryan 11012448fa
Merge pull request #65 from sigp/shuffling_update
Fix shuffle() function errors
2018-10-15 22:08:40 -05:00
Danny Ryan ec54cab28f
Merge pull request #81 from rawfalafel/patch-2
Clarify description in ancestor_hashes
2018-10-15 22:05:16 -05:00
terence tsao 873e3b0574
Update possible rework/additions 2018-10-15 18:20:58 -07:00
Yutaro Mori 38f2ae1a74
Update beacon-chain.md 2018-10-16 10:13:32 +09:00
Yutaro Mori 6334e5328b
Proposal to clarify `ancestor_hashes` description
`i'th ancestor` really means `most recent ancestor that is a multiple of 2**i`, not `go up the chain i times`.

Maybe I'm wrong though :)
2018-10-16 10:11:50 +09:00
Paul Hauner 3791cb5a5d
Update shuffle() as per review
- Add `rand_bytes`
- Change `for` loop condition for readability and generality.
- Ensure consistency of comment spacing
- Update comments
2018-10-16 11:17:34 +11:00
Danny Ryan 2ce1ddd14c
Merge pull request #69 from ethereum/vbuterin-patch-7
Add RANDAO multi-hashing
2018-10-15 13:14:59 -05:00
Danny Ryan 6aeb382132
change current_block to block.slot 2018-10-15 13:14:45 -05:00
Danny Ryan f9cb4a6e9b
Merge branch 'master' into vbuterin-patch-1 2018-10-15 12:25:32 -05:00
Danny Ryan 0e1c733254
small typo 2018-10-15 10:22:29 -05:00
vbuterin aacaefbd2b
Update to make @djrtwo happy 2018-10-14 22:51:51 -04:00
Danny Ryan d7458bf201
Merge pull request #78 from Mikerah/patch-1
Adding first completed version of ssz in JS
2018-10-14 20:23:55 -05:00
vbuterin 2f2fbcabee
Update beacon-chain.md 2018-10-14 21:08:35 -04:00
Danny Ryan 9f25eea9e3
Merge pull request #73 from jamesray1/patch-1
Re-add removed rationale for min. committee size
2018-10-14 19:45:15 -05:00
Mikerah cf28f1a784
Adding first completed version of ssz in JS to list of ssz implementations 2018-10-14 16:29:47 -04:00
Danny Ryan 17ba99ed8f
minor change in language 2018-10-14 09:20:51 -05:00
Danny Ryan 48d5c1d12c
minor change to comment 2018-10-14 08:55:01 -05:00
Danny Ryan cdabb4b205
remove extra def of clamp 2018-10-14 08:32:10 -05:00
Danny Ryan 4191b0089a
Merge branch 'master' into vitalik6 2018-10-14 08:30:52 -05:00
Danny Ryan eb93cef16d
add `validator_change_slot` to startup init vars 2018-10-14 08:03:08 -05:00
Yutaro Mori 0dc597a11c Remove remaining usage of dynasty 2018-10-14 12:31:06 +09:00
James Ray 73854e8598
Re-add removed rationale for min. committee size 2018-10-12 19:22:12 +11:00
vbuterin 2d3b13ccf4
Add version to logout message
Resolves https://github.com/ethereum/eth2.0-specs/issues/57
2018-10-12 00:45:58 -04:00
vbuterin b9c922ce4b
Merge pull request #68 from ethereum/vbuterin-patch-6
Add bool to simple serialize
2018-10-11 20:21:04 -04:00
vbuterin 0cd41bc578
Rework validator exiting, add min balance clause 2018-10-11 14:14:48 -04:00
vbuterin c827a26ecf
Add RANDAO multi-hashing
Requires more hashes in a RANDAO reveal the more time passes. This greatly reduces the chance that a RANDAO reveal accidentally revealed during an orphaned block will be usable for future blocks.
2018-10-11 13:57:30 -04:00
vbuterin fe74c7e299
Stop changing the crystallized state in the RANDAO reveals. 2018-10-11 13:06:37 -04:00
Danny Ryan d6504fb51f
Merge branch 'master' into vitalik5 2018-10-11 10:45:10 -05:00
vbuterin 1c25917622
Add bool to simple serialize 2018-10-11 09:51:35 -04:00
vbuterin 79f2ecb0d9
Update beacon-chain.md 2018-10-11 09:45:33 -04:00
vbuterin 57efc20ed7
Update beacon-chain.md 2018-10-11 09:43:52 -04:00
Danny Ryan c519608eec
Merge branch 'master' into fix-recent_block_hashes 2018-10-11 08:37:00 -05:00
Paul Hauner 6700f283d5
Fix shuffle() function errors
- `rand_max` now represents the greatest value returned by the RNG,
instead of the length of the range.
 - Loop condition fixed to stop infinite loop.
 - Comments updated
2018-10-11 16:56:46 +11:00
Hsiao-Wei Wang 31eb7e9a05
Rename rand_max to sample_max 2018-10-11 11:29:29 +08:00
Hsiao-Wei Wang 39a5bac337
PR feedback and minor fix 2018-10-11 11:29:29 +08:00
Hsiao-Wei Wang 80a61c1c62
PR feedback and some minor fix 2018-10-11 11:29:29 +08:00
Hsiao-Wei Wang 0cc1b6c4a4
fix shuffle 2018-10-11 11:27:19 +08:00
Hsiao-Wei Wang f1da3c55cd
minor fix 2018-10-11 11:27:19 +08:00
Hsiao-Wei Wang 12a1bd2473
Refactor the sample code and fix #47 2018-10-11 11:27:10 +08:00
terence tsao 9abb1a0e41
fixed typo in change_validators 2018-10-10 11:16:13 -07:00
Yutaro Mori b62c8c9db1
Fix lighthouse link 2018-10-10 16:14:53 +09:00
Vitalik Buterin 20e31b2930
Remove multiple slots per committee option 2018-10-09 19:26:03 -04:00
Vitalik Buterin e66cd35d0e
Removed all uses of the word dynasty, and replaced the functionality of dynasties with other variables. 2018-10-09 19:19:37 -04:00
Danny Ryan cbd254a309
replace total_blance_attestable_to_h with total_committee_balance 2018-10-08 20:42:16 -05:00
Danny Ryan 753219ba6a
Merge branch 'master' into JustinDrake-patch-4 2018-10-08 20:40:36 -05:00
Danny Ryan 0445bff1b1
Merge branch 'master' into JustinDrake-patch-2 2018-10-08 14:10:15 -05:00
Danny Ryan ef0da3ce28
Merge branch 'master' into fix-recent_block_hashes 2018-10-08 14:02:26 -05:00
Danny Ryan 169f031514
Merge branch 'master' into codes-flags-types 2018-10-08 13:47:17 -05:00
Justin 8f65c85455
Update beacon-chain.md 2018-10-06 13:32:19 +01:00
Justin fedfe61d6c
Update beacon-chain.md 2018-10-06 13:02:08 +01:00
Danny Ryan 48b0b523a8
Merge pull request #49 from ethereum/JustinDrake-patch-3
Make status codes consistent with "active" validators
2018-10-05 12:06:45 -04:00
Danny Ryan fddd50f8ab
Merge pull request #46 from ethereum/JustinDrake-patch-1
Fix typo calling AttestationSignedData
2018-10-05 12:05:46 -04:00
Danny Ryan d495b0ec4f
clear up a comment in AttestationSignedData 2018-10-05 12:05:09 -04:00
Mikhail Kalinin 64ba1aa931 Get rid of redundant recent_block_hashes entry 2018-10-05 21:16:02 +06:00
Justin 623d3cd31b
Cleanups in "State recalculations" 2018-10-05 12:05:08 +01:00
Justin ef4b2c4542
Update beacon-chain.md 2018-10-05 12:01:03 +01:00
Justin e3c1eeb569
Update beacon-chain.md 2018-10-05 11:49:18 +01:00
Justin cb6e94a115
Make status codes consistent with "active" validators 2018-10-05 11:38:30 +01:00
Justin 1cbde6f3c8
Change balances to Gwei
See discussion here https://github.com/ethereum/eth2.0-specs/issues/34
2018-10-05 11:34:38 +01:00
Justin d6395fa678
Fix typo calling AttestationSignedData 2018-10-05 11:25:52 +01:00
Justin 9ee17787d2
Homogenise AttestationSignedData data structure 2018-10-05 11:20:02 +01:00
Danny Ryan f003d6b753
Merge branch 'master' into vitalik3 2018-10-04 18:55:43 -05:00
Danny Ryan 4f929daaac
Merge branch 'master' into data-structures 2018-10-04 18:29:03 -05:00
Danny Ryan 57cbc5434c
[fix-recent_block_hashes] remove min requirement from append_to_recent_block_hashes 2018-10-04 18:25:24 -05:00
vbuterin bf3fe932a2
Update casper_sharding_v2.1.md 2018-10-04 17:05:38 -04:00
Justin b4f2317692
Update beacon-chain.md 2018-10-04 21:59:36 +01:00
Danny Ryan 5b31268abc
[fix-recent_block_hashes] fix formatting 2018-10-04 12:53:53 -05:00
Danny Ryan dc01cb0f4d
[fix-recent_block_hashes] fix issue with recent_block_hashes when slots are skipped 2018-10-04 12:43:30 -05:00
Justin 5f40856606
Update beacon-chain.md 2018-10-04 14:39:56 +01:00
Justin b60cbd9c33
Update beacon-chain.md 2018-10-04 14:26:13 +01:00
Justin 5306c1e728
Update beacon-chain.md 2018-10-04 14:16:31 +01:00
Danny Ryan fbd4c3664f Merge branch 'vitalik2' of github.com:ethereum/eth2.0-specs into vitalik2 2018-10-04 07:30:59 -05:00
Danny Ryan 0f5fca7e03 Merge branch 'master' into vitalik2 2018-10-04 07:30:54 -05:00
Justin 7749c28bd9
Update beacon-chain.md 2018-10-04 11:22:50 +01:00
Justin 16928c85bb
Clean up codes, flags, types
This includes:

* Optimised values (e.g. `PENALIZED` now fits in a single byte)
* More consistent values (e.g. the flags start at 0)
* Added types for specials
2018-10-04 11:21:33 +01:00
Justin a85f59779a
Clean up data structures
This includes:

* Giving every data structure a name (e.g. `BeaconChainBlock`)
* Making data structure names consistent (e.g. `SpecialObject` => `SpecialRecord`)
* Arranging the fields within the data structures in a more logical/consistent manner
* Reworking the comments to be more concise and to the point
* Rename some fields for consistency:
    * `shard_id` => `shard` (for consistency with `withdrawal_shard`)
    * `last_state_recalculation` => `last_state_recalculation_slot` (for consistency with `last_finalized_slot`, `last_justified_slot`, etc.)
    * `current_dynasty` => `dynasty` (for consistency with `slot`, `shard`)
    * `pow_chain_ref` => `pow_chain_reference` (abbreviations are avoided throughout)
* Various other cleanups
2018-10-04 11:09:39 +01:00
Danny Ryan ed014c4fbc Merge branch 'master' into todos 2018-10-03 21:47:50 -05:00
Danny Ryan d779bef562
Merge pull request #38 from ethereum/JustinDrake-patch-1
Minor cleanups
2018-10-03 21:46:11 -05:00
Danny Ryan f1dda7f434 [test-format] Add base document for general test format 2018-10-03 21:41:28 -05:00
vbuterin 6568bc1b6d
Update casper_sharding_v2.1.md 2018-10-03 22:02:04 -04:00
Justin 9a05c79e3e
Update casper_sharding_v2.1.md 2018-10-03 22:15:43 +01:00
Justin 2f34691615
Minor cleanups 2018-10-03 22:00:05 +01:00
Justin 538e4e1f88
Rename simpleserialize.md to simple-serialize.md
For consistency with beacon-chain.md
2018-10-03 21:35:47 +01:00
vbuterin 8b0bbad29f
Update casper_sharding_v2.1.md 2018-10-03 15:09:16 -04:00
Vitalik Buterin e640f13e9c
Added versioning 2018-10-03 12:11:53 -04:00
Danny Ryan 8dffb4e32b
remove extra comma from spec 2018-10-03 09:37:21 -05:00
Danny Ryan 4686f4938f Merge branch 'master' into vitalik2 2018-10-03 09:36:46 -05:00
Danny Ryan 0941d592de
Merge pull request #30 from ethereum/JustinDrake-patch-1
Cleanups in get_active_validator_indices and shuffle
2018-10-03 09:31:56 -05:00
Vitalik Buterin e7ff5ad5e7
Added RANDAO support (without multi-skip mechanism) 2018-10-03 10:29:00 -04:00
Danny Ryan 86d0c209b7 fix rand_max in shuffle alg. add note about usage 2018-10-03 09:28:42 -05:00
Danny Ryan 65656e15d1
Merge pull request #31 from ethereum/JustinDrake-patch-2
Minor fixes
2018-10-03 09:19:20 -05:00
Danny Ryan 7e978f1b40 Merge branch 'master' into JustinDrake-patch-1 2018-10-03 09:17:06 -05:00
Justin 48c2643f47
Update beacon-chain.md 2018-10-03 15:16:38 +01:00
Justin 4076804d2b
Rework Appendix A on hash functions 2018-10-03 15:13:29 +01:00
Justin 038db57b9d
Minor fixes 2018-10-03 15:02:58 +01:00
Danny Ryan 52d2355a5e Merge branch 'master' into rename-file 2018-10-03 08:47:54 -05:00
Danny Ryan f547232070
Merge pull request #27 from ethereum/header-and-intro
Clean up header and intro
2018-10-03 08:46:41 -05:00
Justin f271d8b358
Cleanups in get_active_validator_indices and shuffle 2018-10-03 14:45:33 +01:00
Danny Ryan d8c681b695
add 'receipts' when discussion registration txs 2018-10-03 08:45:28 -05:00
Justin cf7552ee31
Rename spec.md to beacon-chain.md 2018-10-03 14:35:11 +01:00
Danny Ryan 66e316dcb3
Merge pull request #18 from sigp/master
[WIP] Initial SimpleSerialize (SSZ) spec
2018-10-03 08:34:54 -05:00
Justin 24c8a53b5c
Update casper_sharding_v2.1.md 2018-10-03 14:29:56 +01:00
Danny Ryan cbec267dc4 Merge branch 'master' into constants-readability 2018-10-03 08:28:36 -05:00
Danny Ryan 2637057b06
Merge pull request #24 from ethereum/vitalik
Added hash chain for light clients
2018-10-03 08:02:58 -05:00
Justin ca7bb7426e
Update casper_sharding_v2.1.md 2018-10-03 12:32:16 +01:00
Justin 1c3b38a749
Update casper_sharding_v2.1.md 2018-10-03 12:10:52 +01:00
Justin 21da063d3c
Update casper_sharding_v2.1.md 2018-10-03 12:04:17 +01:00
Justin afea8a10a5
Rework the TODO
Probably missed a few. Will try to keep up to date.
2018-10-03 11:59:59 +01:00
Justin e5f94eae07
Fix typo 2018-10-03 11:24:07 +01:00
Hsiao-Wei Wang ef5d54cda0
Merge pull request #28 from ethereum/registration-contract
Rework registration contract
2018-10-03 17:58:17 +08:00
Justin 8210eb0233
Start work on glossary
A lot more work required. The goal is to get it to the standard of the [retired phase 1 spec](https://ethresear.ch/t/sharding-phase-1-spec-retired/1407).
2018-10-03 10:38:09 +01:00
Justin d85cb48fef
Rework registration contract 2018-10-03 10:28:15 +01:00
Justin be385b4c57
Clean up header and intro 2018-10-03 10:24:31 +01:00
Justin 52ca90a7ee
Remove version number in file name
Putting the version number in the file name is not future proof
2018-10-03 08:30:42 +01:00
Justin 8648f4800e
Rework the constants for readability 2018-10-03 08:27:39 +01:00
NatoliChris 03252637cb
Add container todo stubs 2018-10-03 15:08:20 +10:00
Vitalik Buterin 86ea004ea6 Added hash chain for light clients 2018-10-02 19:05:30 -04:00
NatoliChris a2ad4bf6d5
Add assertions in examples; Update checks from @djrtwo's comments 2018-10-03 08:21:28 +10:00
Vitalik Buterin 894fb380f3 Added backward skip list 2018-10-02 14:13:13 -04:00
Vitalik Buterin 95b67a4fd0 Fixes Justin's issues except nitpicks 3,13,16,20, content 2,3,6 2018-10-02 11:20:07 -04:00
NatoliChris cd71c223d1
Add "WIP" to title to make it clear; @djrtwo's comment in #18 2018-10-02 23:46:22 +10:00
NatoliChris 8521bd93ad
Update List/Vectors with comments on #18 2018-10-02 23:42:25 +10:00
NatoliChris 78a830da27
Update Hash Types as per @mratsim's comments on #18 2018-10-02 23:33:11 +10:00
NatoliChris 6287573adc
Update misspelling; Use `LENGTH_BYTES` variable; Update for comments 2018-10-02 12:34:20 +10:00
Danny Ryan 0043846ff9 [clean-up] Move all data structures to beginning of spec. Clean up a few things 2018-10-01 21:21:15 -05:00
Danny Ryan b3d258e54e [validator-rotation] fix corner case in change_validators, add what to do with special ojects in active state 2018-10-01 21:02:46 -05:00
NatoliChris 0b0f618c61
Add check for byte serialization 2018-10-02 10:47:30 +10:00
NatoliChris b1c873c8f6
Remove int as per discussions, update implementations 2018-10-02 09:51:01 +10:00
NatoliChris 4c75cd0db2 Initial SimpleSerialize spec 2018-10-02 09:43:47 +10:00
Danny Ryan 11d6daf68c [validator-rotation] add WITHDRAWAL_PERIOD constant 2018-10-01 17:30:07 -05:00
Danny Ryan 52cf7f943d [validator-rotation] add validator rotation logic 2018-10-01 17:19:16 -05:00
Danny Ryan ca48b304f9 [fix-crosslink-reward] add 'B *' factor to quadratic leak term in crosslink rewards 2018-10-01 09:28:22 -05:00
Danny Ryan 0d4cd0e758 [crosslink-reward-fix] update crosslink reward logic to perform as expected 2018-09-30 20:40:48 -05:00
Danny Ryan 606cb477f6 [integer-sqrt] update int_sqrt to more robust implementation 2018-09-30 18:38:47 -05:00
Danny Ryan 2ef9bc9f06 Merge branch 'integer-sqrt' of github.com:ethereum/eth2.0-specs into integer-sqrt 2018-09-30 18:10:10 -05:00
Danny Ryan d25f536ec5 [integer-sqrt] add concrete implementation that meets the requirements 2018-09-30 18:02:09 -05:00
vbuterin 2f9b8b2f08
Update casper_sharding_v2.1.md 2018-09-30 14:38:51 -04:00
Danny Ryan 4cb9790ea8 [integer-sqrt] use abstract def of integer_sqrt 2018-09-30 11:50:44 -05:00
Danny Ryan ec1eee4133 [integer-sqrt] add comment to credit 'newton's method' 2018-09-30 10:04:02 -05:00
Danny Ryan 82ec8dfdc2 [integer-sqrt] add integer_sqrt helper function and use in rewards calculations 2018-09-30 09:56:43 -05:00
Danny Ryan 5cfa735482
Merge pull request #11 from hwwhww/blake2b
Added hash function description
2018-09-27 07:37:59 -05:00
Hsiao-Wei Wang e5af9ba254
PR feedback 2018-09-27 19:58:38 +08:00
Danny Ryan 815e597a49 [bound-committee-per-slot] enforce maximum committees per slot 2018-09-26 12:43:31 -05:00
Hsiao-Wei Wang 56e597187e
Added Appendix A - Hash function 2018-09-26 23:31:09 +08:00
nisdas a66db3cec8
Adding fix 2018-09-26 12:38:41 +08:00
Danny Ryan 8fac47eb94 [fix-quadratic-penalty] fix quadratic_penalty_quotient 2018-09-25 14:56:03 -05:00
Danny Ryan 338a892cb4 [reward-fixes] remove extra term in crosslink rewards 2018-09-25 10:44:28 -05:00
Danny Ryan 8b9eb6fa0e [reward-fixes] ffg rewards fix time since finality calculation. crosslink rewards fix cycle in question 2018-09-25 08:27:54 -05:00
Danny Ryan e712cd1f04
Merge pull request #4 from hwwhww/proofread
`EPOCH_LENGTH` -> `CYCLE_LENGTH`
2018-09-23 18:10:26 -05:00
Hsiao-Wei Wang 483e489e5d
`EPOCH_LENGTH` -> `CYCLE_LENGTH` 2018-09-22 15:09:34 +08:00
Hsiao-Wei Wang ff92171993
Added CC0 2018-09-22 15:06:53 +08:00
Hsiao-Wei Wang a1c853298e
20180921 1951 2018-09-22 12:36:02 +08:00
Hsiao-Wei Wang 0001b7b9de
first commit 2018-09-20 13:20:49 +08:00