Danny Ryan
bdfc01cf93
Merge branch 'dev' into JustinDrake-patch-11
2019-03-19 12:13:42 -06:00
Danny Ryan
f7fab30772
minor adjustment to not repeat committe count calc
2019-03-19 11:40:24 -06:00
Danny Ryan
f5826e7f1c
small lint
2019-03-19 11:34:49 -06:00
Danny Ryan
c8e9073414
define get_split_offset and squash a couple of bugs
2019-03-19 11:24:36 -06:00
Danny Ryan
009563b2c3
fix a few bugs in testing compute_committee
2019-03-19 11:15:51 -06:00
Justin
b50e148642
Update 0_beacon-chain.md
2019-03-19 17:13:25 +00:00
Danny Ryan
0737494694
Merge branch 'dev' into vbuterin-patch-16
2019-03-19 11:04:11 -06:00
vbuterin
c5ee74d5e0
Justin fixes
2019-03-19 11:21:17 -05:00
Danny Ryan
9e3079854f
Merge pull request #809 from ethereum/master
...
Backport CI testing into dev
2019-03-19 10:16:46 -06:00
vbuterin
db92235d9e
Removed some no-longer-necessary functions
2019-03-19 09:34:37 -05:00
vbuterin
dd39d25c86
Replace committee exponential backoff with max progress
...
Removes the mechanism that only rotates committees if blocks have been finalized and every shard has been crosslinked or at exponentially decreasing intervals, and replaces it with a rule that shard committees can only progress a maximum of 64 epochs at a time to preserve the invariant that maximum possible work required per epoch for a validator is O(1).
2019-03-19 09:32:06 -05:00
Justin
78f47f2069
Avoid underflow in voluntary exits
2019-03-19 12:23:17 +00:00
Justin
e91036cfc9
Update 0_beacon-chain.md
2019-03-19 11:12:50 +00:00
Justin
0c383ce4a1
Update 0_beacon-chain.md
2019-03-19 11:11:18 +00:00
Justin
2b454d57f1
Update 0_beacon-chain.md
2019-03-19 11:08:17 +00:00
Justin
dc4b652f72
Only slash active validators
...
This is to prevent a spam/DoS attack where validators with zero balance get "slashed" but no validator loses any balance.
2019-03-19 11:03:42 +00:00
Matthew Slipper
2dce326310
Bring back envelope
2019-03-18 16:02:31 -07:00
Justin
0039613628
Simplify exit_validator
...
Minor cleanup
2019-03-18 19:08:41 +00:00
Matthew Slipper
fba333c791
Updates from review
2019-03-17 21:19:45 -07:00
Justin
d25c18b320
Update 0_beacon-chain.md
2019-03-17 11:48:47 +00:00
vbuterin
91a0c1ba5f
Persistent committee size per slot reduced to max 128 ( #734 )
...
* Persistent committee size per slot target 128 max 256
Cuts down the cost of verifying a shard chain and aggregating signatures for a shard chain, and also makes the shard chain signatures more usable by light clients for verification as they would only need to keep track of a max 256-sized committee.
2019-03-17 11:44:19 +00:00
Hsiao-Wei Wang
6b82f5e999
Set `GENESIS_FORK_VERSION` to a `bytes4` constant ( #792 )
...
* Set `GENESIS_FORK_VERSION` to a `bytes4` constant
* Update 0_beacon-chain.md
2019-03-17 11:33:42 +00:00
Justin
390ece7fbe
Rename "vector" to "tuple" in SSZ spec ( #794 )
...
To be done in combination with #777 .
Also:
* Define "fixed-size" and "variable-size" more rigorously
* Use `"` vs `'` consistently
* Add missing `"`
2019-03-17 11:33:29 +00:00
vbuterin
506fdf4042
Added FixedSizeList wrappers ( #777 )
...
* Added FixedSizeList wrappers
Requires corresponding changes to the spec pythonizer.
* FixedSizeList -> Vector
2019-03-17 11:33:19 +00:00
vbuterin
1967a8939d
Fixed some variable names
2019-03-17 06:25:56 -05:00
Sören Steiger
65162e0371
Update 0_beacon-chain.md ( #791 )
2019-03-16 20:56:10 +00:00
Sören Steiger
919b99e0ae
Add missing word ( #788 )
2019-03-16 12:46:45 +00:00
NIC Lin
1a0938169b
Fix `get_split_offset` ( #790 )
2019-03-16 12:45:39 +00:00
Justin
e5ff0d59ad
Update 0_beacon-chain.md
2019-03-16 11:23:41 +00:00
Sören Steiger
6b118d2398
Add trailing comma ( #789 )
2019-03-16 12:16:47 +08:00
Justin
3944fd4b15
Clarify empty sums in BLS spec ( #782 )
...
Fix #775 .
2019-03-15 18:18:37 +00:00
Justin
709e0df39f
Update 0_beacon-chain.md
2019-03-15 13:54:33 +00:00
Justin
1236e8e1fa
Update 0_beacon-chain.md
2019-03-15 13:53:24 +00:00
Justin
4b461838d2
`GENESIS_EPOCH - 1` for `previous_shuffling_epoch` and `previous_justified_epoch`
...
See item 26 in #675 .
2019-03-15 13:32:24 +00:00
Justin
e912ed7fca
Include recently slashed churn in churn queue
...
Addresses #527 in combination with #784 .
2019-03-15 13:12:03 +00:00
Justin
4a8d748c55
Milder ejections
...
See item 22 in https://github.com/ethereum/eth2.0-specs/issues/675 . Also partially addresses https://github.com/ethereum/eth2.0-specs/issues/527 .
2019-03-15 13:05:46 +00:00
Justin
d8d653dd94
Update 0_beacon-chain.md
2019-03-15 12:51:46 +00:00
Justin
96ab535704
Simplify and cleanup process_attestation
...
Improve readability and testability (by avoiding untriggerable `assert`). Fix #753 .
2019-03-15 12:40:52 +00:00
Justin
58603f276e
Update 0_beacon-chain.md
2019-03-15 11:28:55 +00:00
Justin
b566722b52
Update sync_protocol.md
2019-03-15 11:25:15 +00:00
Justin
22be21223b
Update merkle_proofs.md
2019-03-15 11:24:59 +00:00
Justin
dac43eb564
Simplify deposits
...
Fix #760
2019-03-15 11:18:06 +00:00
Justin
4a5ef98813
Move to SHA256
...
SHA256 is de facto blockchain standard. Standardisation of the hash function is a prerequisite for [full standardisation of BLS12-381 signatures](https://github.com/ethereum/eth2.0-specs/issues/605 ). Blockchain projects are likely to provide a cheap SHA256 opcods/precompile, and unlikely to provide a Keccak256 equivelent. (Even WASM-enabled blockchains are likely to provide a SHA256 opcode/precompile since WASM does *not* natively support optimised SHA256 CPU instructions.) With Ethereum 2.0 embracing SHA256 the wider industry is more likely to converge towards a unified cross-blockchain communication scheme via Merkle receipts.
There are no security blockers with SHA256 (see comments by Dan Boneh [here](https://github.com/ethereum/eth2.0-specs/issues/612#issuecomment-470452562 )).
2019-03-15 10:51:08 +00:00
Justin
68d1c74784
Update 0_beacon-chain.md
2019-03-15 09:45:20 +00:00
Justin
5d327b6364
Update 0_beacon-chain.md
2019-03-15 09:43:38 +00:00
Hsiao-Wei Wang
16123685af
Merge branch 'dev' into vbuterin-patch-3
2019-03-15 11:22:15 +08:00
vbuterin
24468de23b
Change get_shuffling to compute_committee
...
See #729 and #774
The behavior now is that the first committee will consist of `get_permuted_index(0..n-1)`, the second committee `get_permuted_index(n....2n-1)`, etc.
2019-03-14 20:28:44 -05:00
Danny Ryan
aeb5bb9b11
Merge pull request #755 from ethereum/dev
...
v0.5.0 release
2019-03-14 15:49:49 -06:00
Justin
bbc5139115
Update 0_beacon-chain.md
...
Assuming `epoch % i` is a bug, and you meant `epoch + i`. @vbuterin
2019-03-14 19:01:32 +00:00
Justin
23d15f51a7
Update 0_beacon-chain.md
2019-03-14 18:57:17 +00:00
Vitalik Buterin
b65601afda
Updated Merkle proof file
2019-03-14 08:29:03 -05:00
Raúl Kripalani
863f85c45a
Update specs/networking/rpc-interface.md
...
Co-Authored-By: mslipper <me@matthewslipper.com>
2019-03-13 21:57:29 -07:00
Raúl Kripalani
22e6212e6f
Update specs/networking/node-identification.md
...
Co-Authored-By: mslipper <me@matthewslipper.com>
2019-03-13 21:56:47 -07:00
jannikluhn
5a9ef0fd98
Update specs/networking/rpc-interface.md
...
Co-Authored-By: mslipper <me@matthewslipper.com>
2019-03-13 21:55:59 -07:00
jannikluhn
f3bddee7a5
Update specs/networking/rpc-interface.md
...
Co-Authored-By: mslipper <me@matthewslipper.com>
2019-03-13 21:55:48 -07:00
jannikluhn
29caafc756
Update specs/networking/rpc-interface.md
...
Co-Authored-By: mslipper <me@matthewslipper.com>
2019-03-13 21:52:25 -07:00
vbuterin
4442dfffb9
Fair proposer selection probability
...
Note that as a side effect, proposer selection becomes less predictable, but I don't feel like this is a large downside.
2019-03-13 21:42:49 -05:00
terence tsao
c30018a716
Update 0_beacon-chain-validator.md
2019-03-13 18:45:52 -07:00
Alex Stokes
9774a3d581
Helper function returns correct type of `Gwei` instead of indices
2019-03-13 17:01:47 -07:00
Danny Ryan
15263c4e06
Merge pull request #769 from ethereum/v0.5-val-guide
...
update v-guide to v0.5.0
2019-03-13 13:53:15 -06:00
Danny Ryan
0e837c3386
update v-guide to v0.5.0
2019-03-13 12:17:21 -06:00
Hsiao-Wei Wang
cdd59ae230
add return types to phase 1 functions
...
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-13 09:11:35 -06:00
Danny Ryan
b40236685c
phase 1 nitpicks
2019-03-13 09:04:12 -06:00
Vitalik Buterin
3371dcc23b
Added light client related files
2019-03-13 02:54:27 -05:00
Vitalik Buterin
34cd96be54
Added light client related files
2019-03-13 02:47:29 -05:00
Matthew Slipper
e4a1ef16e6
Add networking specs
2019-03-12 13:46:58 -07:00
Danny Ryan
e8a5cd0747
fix up for tests
2019-03-12 12:32:11 -06:00
Danny Ryan
6e04b2118c
Merge branch 'dev' into store-justified-root
2019-03-12 12:08:59 -06:00
Danny Ryan
acf0f76d60
Merge branch 'dev' into JustinDrake-patch-1
2019-03-12 11:48:05 -06:00
Danny Ryan
a68b050053
set fork values in genesis as bytes4
2019-03-12 11:35:59 -06:00
Danny Ryan
7b829227ee
Merge branch 'dev' into JustinDrake-patch-4
2019-03-12 11:28:33 -06:00
Danny Ryan
25f6647ef2
minor formatting
2019-03-12 11:07:20 -06:00
Danny Ryan
bdaba00a58
Merge branch 'dev' into JustinDrake-patch-7
2019-03-12 10:56:22 -06:00
Justin
0a349f8bdc
Update 0_beacon-chain.md
2019-03-12 15:58:31 +00:00
Hsiao-Wei Wang
0f120415b5
Update specs/core/0_beacon-chain.md
...
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2019-03-12 16:49:04 +01:00
Justin
d8a3048f2c
Update 0_beacon-chain.md
2019-03-12 12:36:09 +00:00
Justin
64ba3a3107
Epoch-based proposer slashing
...
See #675 item 25.
2019-03-12 12:24:37 +00:00
Justin
6c35934060
Update 0_beacon-chain.md
2019-03-12 10:34:24 +00:00
Justin
addf7b77ab
Update 0_beacon-chain.md
2019-03-12 10:26:34 +00:00
Justin
578bf02b6f
Update 0_beacon-chain.md
2019-03-12 10:17:34 +00:00
Justin
a7544864d5
Update 0_beacon-chain.md
2019-03-12 10:02:52 +00:00
vbuterin
5266bbd378
Honest validator doc update for mandatory deposits
...
Co-requisite with #758 .
2019-03-11 23:38:22 -05:00
vbuterin
4410a55c4d
Mandatory deposits
...
Resolves #675 point 5.
2019-03-11 23:30:08 -05:00
Danny Ryan
3916643ef6
only update justified epoch/root if changed
2019-03-11 18:23:17 -06:00
Justin
3459ea0838
Check proposer is not slashed
2019-03-11 22:07:34 +00:00
Danny Ryan
f06a3b82e7
cache current and previous justified root in state
2019-03-11 14:38:10 -06:00
Danny Ryan
bf6bdbb021
cleanup minor var errors
2019-03-11 12:38:11 -06:00
Danny Ryan
36efb4498f
Merge branch 'dev' into vbuterin-patch-3
2019-03-11 10:44:18 -06:00
Justin
0704297480
Update 0_beacon-chain.md
2019-03-11 17:28:39 +01:00
Danny Ryan
9c2d34d876
Merge branch 'dev' into min-time-to-exit
2019-03-11 09:45:39 -06:00
Danny Ryan
2c7c48a4e0
Merge pull request #751 from ethereum/JustinDrake-patch-8
...
Disallow duplicate voluntary exits
2019-03-11 09:09:53 -06:00
Justin
2d3d7e33b3
Weaken criterion for attestation inclusion
...
The invariant that `get_current_epoch(state) in [get_current_epoch(state), get_previous_epoch(state)]` is preserved, as well as symmetry/fairness across blocks.
2019-03-10 21:58:32 +01:00
Danny Ryan
641bfc2f2c
Merge pull request #744 from ethereum/empty-attestation-bug
...
minor execution bugs
2019-03-10 08:26:21 -06:00
Justin
d425ea26e2
Update 0_beacon-chain.md
2019-03-10 13:50:28 +01:00
Justin
b7376aea5c
Disallow duplicate voluntary exits
...
Stricter processing of voluntary exits to remove an edge case
2019-03-10 13:49:37 +01:00
Justin
02428ec252
Do not check withdrawal credentials for existing validators
...
We should not invalidate blocks that contain a deposit with an inconsistent withdrawal credential as that would stall the chain.
2019-03-10 13:25:57 +01:00
Danny Ryan
902e65e072
add min persistent committee period resitriction on exits
2019-03-08 15:16:06 -07:00
Danny Ryan
0f3e0ef2ad
Merge pull request #743 from ethereum/JustinDrake-patch-9
...
Minor cleanups
2019-03-08 14:59:39 -07:00
Danny Ryan
30e64d7de6
fix get_inactivity_penalty function signature
2019-03-08 12:14:21 -07:00
Danny Ryan
f88db44e81
skip proposer bonus if no attestation for v index
2019-03-08 12:07:57 -07:00
Danny Ryan
f72e856620
Merge branch 'dev' into JustinDrake-patch-7
2019-03-08 10:46:36 -07:00
Danny Ryan
29014d554e
Merge branch 'dev' into JustinDrake-patch-9
2019-03-08 10:39:26 -07:00
Justin
f253feeacf
Update 0_beacon-chain.md
2019-03-08 18:34:51 +01:00
Justin
f180eb5e9e
Update 0_beacon-chain.md
2019-03-08 18:14:00 +01:00
Justin
de60533d72
Update 0_beacon-chain.md
2019-03-08 18:13:05 +01:00
Danny Ryan
f081f23c31
cache more than just state root at start of state transition
2019-03-08 09:48:46 -07:00
Justin
ecd93468a2
Update 0_beacon-chain.md
2019-03-08 17:38:19 +01:00
Justin
3aedf1226a
Update 0_beacon-chain.md
...
Did I get the type casting OK @hwwhww?
2019-03-08 17:36:58 +01:00
Justin
1141467349
Update 0_beacon-chain.md
2019-03-08 17:28:00 +01:00
Danny Ryan
9b598c91b7
Merge branch 'dev' into JustinDrake-patch-7
2019-03-08 09:10:08 -07:00
Danny Ryan
7dc61c6126
Merge branch 'dev' into epoch-start
2019-03-08 08:51:19 -07:00
Justin
a51d7d5db5
Update 0_beacon-chain.md
2019-03-08 10:50:45 +01:00
Justin
12695425c9
Use hash_tree_root everywhere
...
And get rid of merkle_root. This is possible because of SSZ tuples.
2019-03-08 10:32:40 +01:00
vbuterin
8dcc1ba930
Break LMD GHOST ties in favor of higher hash tree roots ( #737 )
2019-03-08 09:58:38 +01:00
Justin
1f147486fc
Semantic fork versions and signature domains
...
Fix #706
2019-03-08 09:57:09 +01:00
Justin
e74c79e353
Update 0_beacon-chain.md
2019-03-08 09:08:30 +01:00
Justin
33a05109ea
Fair proposer sampling
...
I think we want `first_committee[epoch % len(first_committee)]` as opposed to `first_committee[slot % len(first_committee)]`. The reason is that if the shuffling happens infrequently and `len(first_committee)` is a multiple of `SLOTS_PER_EPOCH` then the proposers will not be sampled fairly.
Taking this logic further, we may want to avoiding always picking the proposer from `first_committee`, e.g.:
```
validators_at_slot = []
for crosslink_committee, _ in get_crosslink_committees_at_slot(state, slot, registry_change):
validators_at_slot.append(crosslink_committee)
return validators_at_slot[epoch % len(validators_at_slot)]
```
2019-03-07 23:56:03 +01:00
Justin
339a7fb63b
Update 0_beacon-chain.md
2019-03-07 23:14:47 +01:00
Justin
2d9724dbfc
Update 0_beacon-chain.md
2019-03-07 23:13:06 +01:00
Danny Ryan
e57bfaab7c
clean up state transition notes
2019-03-07 13:36:22 -07:00
Danny Ryan
d00353534d
Merge branch 'dev' into epoch-start
2019-03-07 13:32:15 -07:00
Danny Ryan
6cf14884a8
epoch transition at start of epoch
2019-03-07 12:05:34 -07:00
Danny Ryan
8dec7d805c
reorder ssz types topologically
2019-03-07 11:02:13 -07:00
Hsiao-Wei Wang
250455a67e
Apply suggestions from code review
...
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-07 10:03:25 -07:00
Danny Ryan
987c741bea
fix state types
2019-03-07 09:44:55 -07:00
Danny Ryan
b1baea2d28
Merge branch 'dev' into vbuterin-patch-7
2019-03-07 08:56:29 -07:00
vbuterin
f9a07f7653
Fixed MIN_DEPOSIT_AMOUNT
2019-03-07 04:04:05 -06:00
vbuterin
be4b912373
Added underflow checking to decrease_balance
2019-03-07 04:02:53 -06:00
vbuterin
0759e170a7
High/low balance separation
...
See #685 for reasoning
2019-03-07 01:38:03 -06:00
vbuterin
ec12460b8b
Make wthdrawn validators immune to inactivity leak
2019-03-07 01:21:17 -06:00
vbuterin
663bc489b6
Added lexicographic tiebreaking
2019-03-06 22:54:52 -06:00
Danny Ryan
175dde7cf7
Merge branch 'dev' into patch-1
2019-03-06 15:56:35 -07:00
Danny Ryan
2f6e560e30
Merge branch 'dev' into vbuterin-patch-7
2019-03-06 15:07:20 -07:00
Danny Ryan
28f2a723af
Merge pull request #725 from ralexstokes/dev
...
Fix calls of `signed_root`
2019-03-06 15:03:20 -07:00
Danny Ryan
fc9686636e
Merge pull request #724 from dankrad/dev
...
Make basic/non-basic for bytes explicit
2019-03-06 14:58:48 -07:00
Alex Stokes
ee2fbd0df7
Fix calls of `signed_root`
2019-03-06 13:48:06 -08:00
Dankrad Feist
37b77725d8
Make basic/non-basic for bytes explicit
2019-03-06 22:32:26 +01:00
Dankrad Feist
81f48ea1c3
Also fix length of Deposit.proof
2019-03-06 21:11:50 +01:00
Akhila Raju
f4e0d9804a
Minor spelling fixes.
2019-03-06 12:03:03 -05:00
Dankrad Feist
eece029cdf
Array spec to [type] and tuple to [type, N]. Also make notation consistent: use "base" for base types
2019-03-06 17:46:40 +01:00
Dankrad Feist
9d175c9dc9
Merge branch 'dev' into patch-1
2019-03-06 17:28:09 +01:00
Carl Beekhuizen
b4779cd83d
Apply suggestions from code review
...
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-06 08:55:39 -07:00
Carl Beekhuizen
c9e06d31f3
Apply suggestions from code review
...
base_reward -> get_base_reward
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-06 07:29:06 -07:00
dankrad
776196e66d
Add tuple lengths
...
Adding tuple lengths in BeaconState objects (this changes merkleization/serialization as no length mixin required)
2019-03-06 14:46:52 +01:00
Danny Ryan
b36e70040b
fix call to union
2019-03-05 16:18:41 -07:00
Danny Ryan
b5f0509595
fix proposal slashing minor bugs
2019-03-05 11:29:40 -07:00
Danny Ryan
be1cb4a850
Merge pull request #718 from ethereum/empty-base-reward
...
handle get_base_reward when no previous balance
2019-03-05 09:24:12 -07:00
Danny Ryan
f93e6fe53d
Merge pull request #696 from ethereum/JustinDrake-patch-4
...
Rewrite SSZ spec
2019-03-05 09:22:33 -07:00
Danny Ryan
0eacabc273
fix minor typo
2019-03-05 08:51:34 -07:00
Danny Ryan
99da6fe141
fix advance_slot ordering issue
2019-03-05 08:50:51 -07:00