Commit Graph

2083 Commits

Author SHA1 Message Date
Age Manning 22d44969f7
Add initial libp2p standardization 2019-04-16 15:05:27 +10:00
Justin f84818f19c
Decouple justification and finalization processing (#925) 2019-04-16 14:59:35 +10:00
Hsiao-Wei Wang acd172f4d1
Merge pull request #929 from terenc3t/patch-62
Fix SimpleSerialize title
2019-04-16 14:17:24 +10:00
Hsiao-Wei Wang 441e21b6b4
Merge pull request #851 from protolambda/proto-merge-test-gen
Combine specs and test-generators
2019-04-16 13:51:10 +10:00
terence tsao 758696ba44
Update sync_protocol.md 2019-04-15 11:03:53 -07:00
terence tsao d8d0aaecff
Update simple-serialize.md 2019-04-15 11:02:23 -07:00
Danny Ryan 956e7c5abc Update specs/test_formats/shuffling/README.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-15 23:06:01 +10:00
Danny Ryan 87bee73222 Update specs/test_formats/operations/deposits.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-15 23:05:42 +10:00
protolambda d64a4f248e
forks coverage description cleanup 2019-04-15 22:39:07 +10:00
protolambda e0400a87b1
Merge branch 'dev' into proto-merge-test-gen 2019-04-15 16:35:38 +10:00
Justin b6b82ae494
Update 0_beacon-chain.md 2019-04-15 08:15:20 +10:00
Justin a25c436b78
Update 0_beacon-chain.md 2019-04-15 08:14:33 +10:00
Justin 9eba123e2e
Remove serialization from consensus
Consensus now only cares about Merkleisation (i.e. `hash_tree_root`), not about serialization (i.e. `serialize`). This simplifies consensus code by a few tens of lines, is conceptually cleaner, and is more future proof.

A corresponding change is required in the deposit contract.
2019-04-15 07:54:08 +10:00
Alex Stokes 40d6a2635a Update 0_beacon-chain.md (#923)
Fix another typo w/ the withdrawal ~> exit queue PR
2019-04-15 07:03:47 +10:00
Diederik Loerakker 2a88dff2be
Merge pull request #919 from ethereum/JustinDrake-patch-10
Cleaner dust checking in transfers
2019-04-14 23:04:12 +10:00
Alex Stokes c01fb1eea6 Update 0_beacon-chain.md (#922)
More clean up on recent switch to exit queue
2019-04-14 22:56:01 +10:00
Alex Stokes bcf10ecf11 Update 0_beacon-chain.md (#921)
Fix typo to set the right property on the correct object
2019-04-14 22:55:38 +10:00
protolambda 9bb902217d
change wording deposit case format 2019-04-14 22:54:01 +10:00
Hsiao-Wei Wang 3c8d1b23a5 Update specs/core/0_beacon-chain.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-04-14 22:12:39 +10:00
Justin a376b6607f
Cleaner dust checking in transfers
Inspired by [this](https://github.com/ethereum/eth2.0-specs/pull/916#commitcomment-33170877).
2019-04-14 21:53:32 +10:00
Danny Ryan 3555ab8c36
Merge branch 'dev' into prev-cur-crosslinks 2019-04-14 20:05:35 +10:00
Danny Ryan 0656817346
Merge branch 'dev' into start-at-zero 2019-04-14 19:46:21 +10:00
Danny Ryan 7840d29f2d
Merge pull request #850 from ethereum/vbuterin-patch-13
Withdrawal queue -> exit queue
2019-04-14 19:21:52 +10:00
Diederik Loerakker be86f966f8 fix transfer invariant, credits to @holiman for finding the edge case (#916) 2019-04-14 19:18:00 +10:00
Justin 3394368a66
Update 0_beacon-chain.md 2019-04-14 19:14:27 +10:00
Justin 875b2ba00d
Update 0_beacon-chain.md 2019-04-14 19:11:40 +10:00
Justin 0908ffa653
Update 0_beacon-chain.md 2019-04-14 19:01:53 +10:00
Danny Ryan 704ea7c301
Merge branch 'vbuterin-patch-13' of github.com:ethereum/eth2.0-specs into vbuterin-patch-13 2019-04-14 18:52:19 +10:00
Danny Ryan 06807cf520
fix tests and off by one error 2019-04-14 18:50:05 +10:00
Justin 0b770121fe
Update 0_beacon-chain.md 2019-04-14 18:23:30 +10:00
Hsiao-Wei Wang 02cfbca81f
Remove blanks 2019-04-14 18:17:43 +10:00
Hsiao-Wei Wang 2f2e7847de
More fix 2019-04-14 18:13:43 +10:00
Justin 229af3deda
Update 0_beacon-chain.md 2019-04-14 18:10:44 +10:00
Justin 7705ecf89c
Update 0_beacon-chain.md 2019-04-14 17:28:45 +10:00
Hsiao-Wei Wang f7d3e02eb2
Add ToC 2019-04-14 17:17:09 +10:00
Justin 15bb9676d5
Update 0_beacon-chain.md 2019-04-14 17:04:36 +10:00
Justin d01fb80fd4
Update 0_beacon-chain.md 2019-04-14 17:02:04 +10:00
Justin 0d6448303d
Update 0_beacon-chain.md 2019-04-14 16:49:17 +10:00
vbuterin f85e7ac447
Added churn limit logic 2019-04-13 22:14:05 -05:00
Hsiao-Wei Wang 5ed4cb29f6
ValidatorMemory 2019-04-14 12:15:24 +10:00
Hsiao-Wei Wang 705b553139
Fix 2019-04-14 12:11:50 +10:00
Alex Stokes 5466a4875d
Update 1_shard-data-chains.md
Fix some typos
2019-04-14 09:54:35 +10:00
Danny Ryan 37004404d0
add exit queue test 2019-04-14 09:13:53 +10:00
Danny Ryan f7c5b0a1c6
set activation_eligibility_epoch during process_deposit 2019-04-14 08:30:13 +10:00
Danny Ryan eafcab7e58
check crosslinks validity root against previous 2019-04-14 08:24:54 +10:00
JSON 2fceb36f14
Update README.md 2019-04-13 17:01:33 -05:00
Justin 30fe6f5657
Update 0_beacon-chain.md 2019-04-14 00:47:14 +10:00
Justin 62ffb897ae
Update simple-serialize.md 2019-04-14 00:41:48 +10:00
Justin 59f568073a
Update simple-serialize.md 2019-04-14 00:26:44 +10:00
Justin 7255b0fc0d
Update simple-serialize.md 2019-04-14 00:25:47 +10:00
Justin 09d927405c
Update simple-serialize.md 2019-04-14 00:22:41 +10:00
Justin 97ca672105
Update simple-serialize.md 2019-04-14 00:18:44 +10:00
Justin 9adbaba96e
Update simple-serialize.md 2019-04-14 00:14:30 +10:00
Justin f6ed1df62b
Update simple-serialize.md 2019-04-14 00:10:02 +10:00
Justin 23c09541e2
Update simple-serialize.md 2019-04-14 00:05:43 +10:00
Justin a90bcc0cd4
Update simple-serialize.md 2019-04-14 00:00:46 +10:00
Justin 27cf02a9b0
Update simple-serialize.md 2019-04-13 23:59:03 +10:00
Justin 10f3db977d
Update simple-serialize.md 2019-04-13 23:56:06 +10:00
Justin 80bd4a381b
Update simple-serialize.md 2019-04-13 23:55:08 +10:00
Justin 35a6311208
Update simple-serialize.md 2019-04-13 23:50:23 +10:00
Justin 0695d0ad1c
Update simple-serialize.md 2019-04-13 23:48:47 +10:00
Justin aaa5a16765
Update simple-serialize.md 2019-04-13 23:45:18 +10:00
Justin 4d2bdf8628
Cleanup spec 2019-04-13 23:44:14 +10:00
vbuterin cc2d005917
Merge branch 'dev' into vbuterin-patch-13 2019-04-13 06:18:54 -05:00
Hsiao-Wei Wang 449e8a44a4
Remove unused `log2` 2019-04-13 18:17:09 +10:00
Hsiao-Wei Wang 8807781a8d
formatting 2019-04-13 18:16:44 +10:00
Danny Ryan 9489ae5dcd
upate validator guide to new crosslink format 2019-04-13 18:02:12 +10:00
Danny Ryan a6b3b11356
ensure no reward for crosslinks taht can't form a chain 2019-04-13 17:49:25 +10:00
Danny Ryan 0a5a5b77d5
Merge branch 'dev' into prev-cur-crosslinks 2019-04-13 15:40:05 +10:00
Danny Ryan 387654f486
Merge pull request #913 from terenc3t/patch-61
Add unit/duration for MAX_CROSSLINK_EPOCHS
2019-04-13 15:26:09 +10:00
Danny Ryan 75df6106aa
clean up some deposit notes in validator doc 2019-04-12 23:23:04 -06:00
terence tsao 710bacad75
Update 0_beacon-chain.md 2019-04-13 11:56:55 +10:00
JSON 1932a4fbf4
Update 0_beacon-chain-validator.md 2019-04-12 19:46:22 -05:00
JSON 0a8b5275ab Update rpc-interface.md (#910) 2019-04-13 09:56:37 +10:00
Alex Stokes b34c41c525 Update 0_beacon-chain.md (#911)
Fix prose around state transition functionality
2019-04-13 09:56:19 +10:00
JSON ee1578d22a Update 0_beacon-chain.md (#908) 2019-04-13 09:33:53 +10:00
JSON 0b6d6f2c51 Update 0_beacon-chain-validator.md (#909) 2019-04-13 09:33:34 +10:00
JSON f4753d6157 Update rpc-interface.md (#907) 2019-04-13 09:32:36 +10:00
protolambda 6b701a6c8b
update tests format docs 2019-04-12 23:59:19 +10:00
protolambda d5d0ff2360
Merge branch 'dev' into proto-merge-test-gen 2019-04-12 23:39:51 +10:00
Danny Ryan a3b020384f
add tests for finality through the first few epochs 2019-04-12 23:17:57 +10:00
protolambda b6c45b9dc1
update ssz test format and fix uint sizes 2019-04-12 23:02:36 +10:00
protolambda 88d076b615
initial work to fix outdated ssz tests 2019-04-12 22:48:59 +10:00
protolambda 0aa1cc8f60
update shuffling test docs 2019-04-12 22:30:19 +10:00
protolambda fcb7e3437e
test format doc tweaks 2019-04-12 22:19:10 +10:00
protolambda 7ca20d71ca
minor naming tweaks, document BLS and deposit test formats 2019-04-12 22:15:30 +10:00
Danny Ryan 3c55854072
clean up 2019-04-12 21:16:34 +10:00
Justin 1e32661c4f
Remove references and copyright
Licensing is done at the repo level. The listed references are awkwardly incomplete (only the Python implementation was listed when we have ~10 implementations, and only the Casper paper was listed where we could add many ethresear.ch posts).
2019-04-12 19:54:33 +10:00
Danny Ryan a374e29184
Merge pull request #902 from ralexstokes/fix-ordering-of-process-deposits
Move the ordering of the definition of `process_deposit`.
2019-04-12 19:26:30 +10:00
Danny Ryan c119565d8b
Merge pull request #903 from ralexstokes/update-verify-indexed-attestation
Avoid materializing the merged list.
2019-04-12 19:07:01 +10:00
Alex Stokes 4824b34df3
Avoid materializing the merged list.
Fixes #901.
2019-04-12 19:02:16 +10:00
Danny Ryan ce0f52b52d
Merge pull request #890 from ethereum/proto-fix-justification-bitfield
limit bit-length of justification bitfield to strict 64
2019-04-12 18:59:42 +10:00
Alex Stokes c954eab96d
Move the ordering of the definition of `process_deposit`.
This move matches the symmetry of the other operation processing definitions.
2019-04-12 18:57:55 +10:00
Alex Stokes b966041ddb formatting fix (#899) 2019-04-12 18:56:55 +10:00
terence tsao 38b6e71bd5
Update 0_beacon-chain.md 2019-04-12 15:06:23 +10:00
Justin e9a44545be
Update 0_beacon-chain.md 2019-04-12 13:38:58 +10:00
Justin 47b9cdbb36
Update 0_beacon-chain.md 2019-04-12 13:18:10 +10:00
JSON 5e8172aaa7 Update README.md (#897) 2019-04-12 13:09:31 +10:00
protolambda 7ffcdcfd7c
bitfield length limit style improvement 2019-04-12 09:12:37 +10:00
Dankrad Feist 2017ce9614 Rename "option" -> "union"; "null" only in unions 2019-04-11 16:05:16 +01:00
jannikluhn 283ba8f761 Update specs/simple-serialize.md
Co-Authored-By: dankrad <dankrad@ethereum.org>
2019-04-11 16:00:53 +01:00
Danny Ryan 6ca550489e
prevent underflow of previous epoch in all cases 2019-04-11 22:48:27 +10:00
Danny Ryan 8c32128ffb
initial pass on genesis slot == 0 2019-04-11 22:28:42 +10:00
Danny Ryan 2468f9fc99
Merge pull request #868 from ethereum/vbuterin-patch-7
Separate out get_switchover_epoch
2019-04-11 18:55:39 +10:00
Danny Ryan 9c662ec4c3
fix shard delta for latest shard change 2019-04-11 18:48:05 +10:00
Danny Ryan b6158e080a
Merge branch 'dev' into vbuterin-patch-17 2019-04-11 18:36:15 +10:00
Hsiao-Wei Wang 2bda58fbdc
Clean up light client spec 2019-04-11 17:15:34 +10:00
JSON 9cd1b4206b
Update simple-serialize.md 2019-04-10 13:28:24 -05:00
Dankrad Feist cd85546954 Add option type and null 2019-04-10 15:09:53 +01:00
protolambda 3f61780260
Merge branch 'dev' into proto-merge-test-gen 2019-04-10 22:34:42 +10:00
Hsiao-Wei Wang e2dc12e9f6 Update specs/core/0_beacon-chain.md
Co-Authored-By: ChihChengLiang <chihchengliang@gmail.com>
2019-04-10 16:24:05 +08:00
protolambda 509354582c
limit bit-length of justification bitfield to strict 64, prevent SSZ encoding crash due to too large integer size 2019-04-10 11:14:22 +10:00
vbuterin 9dde3a2661
Update replace_empty_or_append
Requires adding definitions of `empty` and `typeof` to the function puller.
2019-04-09 05:59:00 -05:00
vbuterin 7a1b38a6ad
Homogenised start shard
Alternative presentation to #884, should be substantively equivalent
2019-04-09 05:52:32 -05:00
Piper Merriam 92f002c501
specify offsets better 2019-04-08 12:55:13 -06:00
Piper Merriam 66173b8ba3
static > fixed 2019-04-08 12:55:13 -06:00
Piper Merriam 5f465842a4
more language updates 2019-04-08 12:55:13 -06:00
Piper Merriam ca98d752d2
d 2019-04-08 12:55:13 -06:00
jannikluhn 1ab501975c
Update specs/simple-serialize.md
Co-Authored-By: pipermerriam <piper@pipermerriam.com>
2019-04-08 12:55:13 -06:00
jannikluhn 3741b7517b
Update specs/simple-serialize.md
Co-Authored-By: pipermerriam <piper@pipermerriam.com>
2019-04-08 12:55:13 -06:00
jannikluhn 32684d582a
Update specs/simple-serialize.md
Co-Authored-By: pipermerriam <piper@pipermerriam.com>
2019-04-08 12:55:13 -06:00
jannikluhn fa66640a00
Update specs/simple-serialize.md
Co-Authored-By: pipermerriam <piper@pipermerriam.com>
2019-04-08 12:55:13 -06:00
Piper Merriam 605028bbda
more precise definitions for and and expand code example for how sections are created 2019-04-08 12:55:13 -06:00
Piper Merriam 4a0459a087
PR feedback 2019-04-08 12:55:13 -06:00
Piper Merriam ad07649ec3
Update spec to use SOS style offset layout for variable size values. 2019-04-08 12:55:13 -06:00
Danny Ryan e246c3fb04
source_crosslink_root to previous_crosslink_root 2019-04-08 12:59:42 +10:00
Chih Cheng Liang ffccf742bd
replace signed_root with signing_root 2019-04-08 09:57:04 +08:00
Danny Ryan 42dc003e91
add previous_crosslink_root and enforce crosslinks form a chain 2019-04-07 17:55:38 +10:00
protolambda c350aaecf7
small format update, support new testing format in generator base pkg 2019-04-07 17:26:24 +10:00
Danny Ryan 26df4f4bc8
Merge branch 'dev' into prev-cur-crosslinks 2019-04-07 16:26:42 +10:00
Danny Ryan 2baa242ac0
Merge pull request #877 from ethereum/sydney-test-format
A new more complete test format for ETH 2.0 testing
2019-04-07 16:23:04 +10:00
protolambda 117e157f29
update comment, fix net naming 2019-04-07 16:21:50 +10:00
protolambda c5ab5435a1
include example configs and fork timelines, with format spec 2019-04-07 14:46:37 +10:00
protolambda 1c81638e86
forks are based on epoch numbers, as per spec 2019-04-07 12:07:10 +10:00
Justin 47464f28dc
Update 0_beacon-chain.md 2019-04-07 08:45:43 +10:00
Hsiao-Wei Wang ebba3f5891
Fix typo 2019-04-07 01:59:10 +11:00
Hsiao-Wei Wang 8958cf86bb
Merge branch 'dev' into vbuterin-patch-13 2019-04-06 22:27:35 +08:00
Hsiao-Wei Wang 5ea5746fdd
Fix `get_genesis_beacon_state` and minor refactoring 2019-04-07 01:24:50 +11:00
Justin 63412d9b9e
Update 0_beacon-chain.md 2019-04-06 22:13:56 +11:00
Justin 7f0a93fc3e
Update 0_beacon-chain.md 2019-04-06 21:07:03 +11:00
Justin 169579ce3b
Update 0_beacon-chain.md 2019-04-06 20:45:11 +11:00
vbuterin 199e7849da Clarify lexicographic hash favoring (#881) 2019-04-06 13:07:26 +04:00
protolambda 09ceccacb4
consistent naming of network types 2019-04-05 22:31:37 +11:00
Danny Ryan f677af2179
Merge branch 'dev' into prev-cur-crosslinks 2019-04-05 19:55:47 +11:00
Danny Ryan dc325f7682
clean up a few things from PR 2019-04-05 19:39:03 +11:00
protolambda 4bf20a1208
remove confusing note 2019-04-05 19:29:58 +11:00
Hsiao-Wei Wang 13fc498f7b
Update specs/test_formats/README.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-05 19:24:09 +11:00
terence tsao 5a77e61160
Update 0_beacon-chain.md 2019-04-04 08:11:12 -07:00
Justin a790afa891
Update 0_beacon-chain.md 2019-04-04 08:23:48 +04:00
Justin d1af9144bc
Update 0_beacon-chain.md 2019-04-03 23:40:54 +04:00
Justin 6ca3c64526
Update 0_beacon-chain.md 2019-04-03 23:24:46 +04:00
Justin 76893cafaa
Missing typehint for `convert_to_indexed`
And some minor cleanups
2019-04-03 23:22:27 +04:00
Justin 2529cb1d74
Update 0_beacon-chain.md 2019-04-03 22:53:41 +04:00
Danny Ryan afdfb2a5de
Merge pull request #766 from ethereum/vitalik81
Added light client related files
2019-04-03 00:23:21 -06:00
vbuterin bee740e834
Removed merkle partial from paths for now 2019-04-03 01:06:18 -05:00
Danny Ryan 1fa88fb6d1
remove previous crosslink check from process_crosslinks 2019-04-03 16:56:13 +11:00
protolambda 9fe9a000f5
more explicit about relations between generator, runner, type, handler 2019-04-03 14:37:34 +11:00
Danny Ryan 55d21c1563
Update specs/test_formats/README.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-03 14:13:29 +11:00
Danny Ryan 5790af7fc4
Update specs/test_formats/README.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-03 14:13:17 +11:00
Danny Ryan 04b9ce8eac
Update specs/test_formats/README.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-03 14:13:05 +11:00
Danny Ryan 54eba8cbbe
Update specs/test_formats/README.md
Co-Authored-By: protolambda <proto@protolambda.com>
2019-04-03 14:12:48 +11:00
protolambda 96ab5a334d
Add note on configuration of constants 2019-04-03 13:35:40 +11:00
protolambda 80067721e2
A new more complete test format for ETH 2.0 testing 2019-04-03 12:29:34 +11:00
Danny Ryan 39b4ef3892
Merge branch 'dev' into prev-cur-crosslinks 2019-04-03 11:57:07 +11:00
Danny Ryan 2f1ab491f9
Merge branch 'dev' into vbuterin-patch-2 2019-04-03 11:15:58 +11:00
Danny Ryan 75f0af45bb
Merge pull request #873 from ethereum/validator-indices-bug
minor bug `process_attester_slashings`
2019-04-02 18:07:30 -06:00
Danny Ryan 014138baab
pr feedback 2019-04-03 11:04:12 +11:00
Danny Ryan d8df789a70
simplify get_winning_root logic 2019-04-03 10:13:05 +11:00
Justin 37fc79cb94
Update 0_beacon-chain.md 2019-04-02 22:30:26 +04:00
Justin c4321c7cc7
Update 1_shard-data-chains.md 2019-04-02 22:17:55 +04:00
Danny Ryan 529cf4223e
add previous and current crosslinks 2019-04-02 16:00:36 +11:00
Danny Ryan 06d005999a
fix validator_indicies issue in process_attester_slashing 2019-04-02 13:50:06 +11:00
vbuterin 3fc24f3d41
Replace with empty instead of popping finished challenges 2019-03-31 21:20:43 -05:00
vbuterin bb990e9892
Separate out get_switchover_epoch
So that we can use it in for subkey reveals as well.
2019-03-31 17:49:02 -05:00
Justin c2edcebee3
Update 0_beacon-chain.md 2019-03-31 20:48:44 +04:00
Justin 79d1f9fb76
Update 0_beacon-chain.md 2019-03-31 20:45:57 +04:00
Hsiao-Wei Wang 77b0a4188b
Update `1_custody-game.md` as well 2019-03-31 22:54:46 +08:00
vbuterin b6be9e1830
Possible aesthetic rework to get_domain
In general I dislike how domains, which should be an unobtrusive out-of-the-way thing that we don't think about much, are taking up so much space in code to express, to the point of them being the single thing preventing `bls_verify` from being expressed in one line of code. Here I reorder arguments and add a default, and make `bls_verify` a one-liner.

Not necessarily convinced that exactly this approach is the way to go, but IMO it's worth considering.
2019-03-31 04:55:24 -05:00
Justin e4c3c556d5
Rename "transaction" to "operation"
Fix #822.
2019-03-31 09:02:10 +04:00
vbuterin 15498f22ef
Fixed exit epoch conditional 2019-03-30 19:26:44 -05:00
vbuterin 2418bab250
Merge branch 'dev' into vitalik81 2019-03-30 19:22:08 -05:00
Alex Stokes 6f0f2a8f53
Update the descriptive text to refer to the correct type of root 2019-03-30 16:21:09 -07:00
Hsiao-Wei Wang a2dae9a8e0
Fix after merging 2019-03-29 15:26:26 +08:00
Hsiao-Wei Wang 9c4e034bed
Merge branch 'dev' into vbuterin-patch-13 2019-03-29 13:36:00 +08:00
vbuterin f5c5c166af Replace custody challenge game with JABS (#812)
See also #818.

===

* Replace custody challenge game with JABS

Replace the existing proof of custody game with a new game ("Justin's Awesome Bit Sum" or JABS) that works as follows:

* The data `D` is split up into 512-byte chunks `D[0] .... D[n-1]`, and use a mix function `mix(subkey, data) -> {0,1}` (currently the first bit of the hash of `subkey+data`). We calculate `M[i] = (mix(D[0]) + ... + mix(D[i-1])) % 2`, and set the custody bit to `M[n-1]`
* Anyone can challenge by providing the full `M` where `M[n-1]` is not equal to the custody bit
* Anyone can respond to a challenge by providing a specific position in `M` along with a branch of the data where `M[i-1] ^ mix(D[i]) != M[i]`

The maximum size of data is now `2**6` epochs *  `2**6` blocks * `2**14` bytes = `2**26` bytes, so assuming 512-byte mix chunks the maximum mix size is `2**17` bits or `2**14` bytes. The average mix size is `2**8` bytes.
2019-03-28 22:56:43 +00:00
Justin 1082c68fef
Separate document for phase 1 custody game (#818)
The 1-round custody game has been implemented. Many bugs squashed, and a bunch of polishing done. Miscellaneous known issues (~8 of them) to be resolved in separate, smaller, PRs.
2019-03-28 22:54:39 +00:00
Danny Ryan bad03ba554
Merge pull request #848 from wmpea/patch-1
Minor copyedits to 0_beacon-chain.md
2019-03-28 13:16:01 -06:00
Danny Ryan 66d5026ffe
minor copy edit 2019-03-28 13:15:38 -06:00
Danny Ryan 901478e148
Merge branch 'dev' into JustinDrake-patch-11 2019-03-28 12:14:13 -06:00
Danny Ryan 30e29324e9
Merge pull request #831 from ethereum/vbuterin-patch-3
Merge attestation verification logic
2019-03-28 11:33:34 -06:00
Danny Ryan ba47a8f4c4
remove unused set_bitfield_bit hlper 2019-03-28 11:29:45 -06:00
Danny Ryan 1f657cfec5
remove custody_bitfield from indexedattestation. add two separate arrays for 0 and 1 bit 2019-03-28 11:26:04 -06:00
Hsiao-Wei Wang aa4bbcc1c8
Bugfix 2019-03-29 00:43:28 +08:00
vbuterin deb0e32590
Fixes to make Justin happy 2019-03-28 10:51:36 -05:00
vbuterin 1aaa0030fc
Withdrawal queue -> exit queue 2019-03-28 08:58:18 -05:00
Danny Ryan 0ed94b209e
Merge pull request #847 from mkalinin/mkalinin-patch-4
Use signed_root as block id in Honest V guide
2019-03-27 20:18:55 -06:00
Danny Ryan bae727a83c
Merge pull request #763 from mslipper/dev
Phase 0 Networking Specifications
2019-03-27 20:11:57 -06:00
William M Peaster 458eb99133
Minor copyedits to 0_beacon-chain.md
Approximately a dozen minor copyediting fixes of non-code text for improved clarity, consistency, and accuracy.
2019-03-27 14:15:50 -05:00
William M Peaster b5bf56376b
Minor copyediting corrections to 0_beacon-chain.md
A handful of minor editing changes made to non-code text for the purposes of improved clarity, consistency, and accuracy.
2019-03-27 14:00:28 -05:00
Danny Ryan fbb09795ed
fix convert_to_indexed custody bitfield bug 2019-03-27 08:31:56 -06:00
Mikhail Kalinin 1b975d2ceb
Use signed_root as block id in Honest V guide 2019-03-27 19:23:23 +06:00
Danny Ryan e9cdcac29e
Merge branch 'dev' into JustinDrake-patch-11 2019-03-26 14:09:07 -06:00
Danny Ryan 63e7346cfb
standaline -> indexed 2019-03-26 13:40:19 -06:00
Danny Ryan 81e0e494a8
Merge branch 'dev' into vbuterin-patch-3 2019-03-26 13:30:33 -06:00
Danny Ryan 654351faea
Merge branch 'dev' into vbuterin-patch-16 2019-03-26 13:04:18 -06:00
Danny Ryan 2c5a68b5b5
remove registry_change options from shuffling functions 2019-03-26 12:32:24 -06:00
Vitalik Buterin b91dfd6244 Add merkle_parial_from_paths 2019-03-26 12:56:35 -05:00
Danny Ryan a8410b8b84
add some attestation tests. fix genesi crosslink bug 2019-03-26 11:27:07 -06:00
Danny Ryan 2c8e9a11e7
Merge branch 'dev' into vbuterin-patch-18 2019-03-26 10:13:17 -06:00
Danny Ryan c5f1db27f5
Merge branch 'dev' into JustinDrake-patch-7 2019-03-26 07:38:39 -06:00
Justin 87d2618a49
Update 0_beacon-chain.md 2019-03-26 13:21:49 +00:00
Danny Ryan 7f53f257cd
Merge branch 'dev' into JustinDrake-patch-4 2019-03-26 07:14:34 -06:00
Danny Ryan 0121adea38
fix beacon proposer function and mod v-guide to not have lookahead for proposing 2019-03-26 07:09:48 -06:00
Danny Ryan fcc1c64acb
Merge branch 'dev' into vbuterin-patch-13 2019-03-26 06:45:40 -06:00
Matthew Slipper 6cc82278b4
Update rpc-interface.md 2019-03-25 13:27:18 -07:00
Danny Ryan fceebeec4e
backport 839 into dev 2019-03-25 11:25:33 -06:00
Justin acc5f314ac
Update 0_beacon-chain.md 2019-03-25 14:54:43 +00:00
Justin fb837400b2
Can't spell (thanks continuous integration!) 2019-03-25 14:49:35 +00:00
Justin b7441e8ab7
Generalise `slash_validator` for phase 1
Make `slash_validator` friendly to phase 1. This is a cosmetic change in the context of phase 0.
2019-03-25 14:30:59 +00:00
Hsiao-Wei Wang 80e2553afd
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-22 09:32:21 -04:00
vbuterin ce18bde5c9
Simplified sorted index check 2019-03-22 06:20:38 -05:00
vbuterin 3ee9fc0cc7
Merge attestation verification logic
Also rename slashable attestation to standalone attestation to reflect its broader functionality in phase 1.
2019-03-22 06:10:44 -05:00
vbuterin e8257db320
Removed hanging min 2019-03-22 05:40:41 -05:00
Hsiao-Wei Wang b34858c67b
Refactor `get_justification_and_finalization_deltas` 2019-03-22 14:21:33 +08:00
Hsiao-Wei Wang ae67e9513b
Fix type hinting and add docstrings 2019-03-22 12:56:54 +08:00
Hsiao-Wei Wang 512ceff1bb
Merge branch 'dev' into vbuterin-patch-20 2019-03-22 11:58:32 +08:00
Hsiao-Wei Wang 417d526ce9
Merge pull request #825 from terenc3t/patch-56
Add table fo contents for light client sync
2019-03-22 11:53:25 +08:00
terence tsao 11c3291817
Update sync_protocol.md 2019-03-21 16:30:45 -07:00
Danny Ryan 64e3db09d4
Merge branch 'dev' into JustinDrake-patch-19 2019-03-21 16:25:31 -06:00
Danny Ryan d8ad56f759
Merge pull request #828 from ethereum/vbuterin-patch-20-1
Small cosmetic change to slashable attestations
2019-03-21 15:50:08 -06:00
vbuterin 3ece05ccc1
Small cosmetic change to slashable attestations 2019-03-21 16:36:31 -05:00
vbuterin 3b403909e8
Cosmetic improvement to reward/penalty functions 2019-03-21 16:29:14 -05:00
vbuterin 38a5c3640b
Re-added some penalization in case of failure to finalize 2019-03-21 15:13:13 -05:00
vbuterin d1d1b73fb1
Simplify justification and finalization accounting logic
Much of the simplification is cosmetic. The following changes are substantive:

* Inactivity leak penalty specifically on missing the target, not both the target and the source
* Even outside of quadratic leak scenarios, slashing victims suffer offline penalties
2019-03-21 15:11:05 -05:00
terence tsao d3f175d728
Update sync_protocol.md 2019-03-21 11:33:36 -07:00
Danny Ryan f6da42ffb3
fix markdown issues 2019-03-21 10:04:20 -06:00
Danny Ryan c99fe3fb38
Merge branch 'dev' into vbuterin-patch-3 2019-03-21 08:47:19 -06:00
Danny Ryan fd6d80fcb6
remove get_split_offset from phase 1 doc 2019-03-21 08:24:26 -06:00
vbuterin fdcfc91008
Add docstring into get_split_offset 2019-03-21 07:38:25 -05:00
Matthew Slipper 8794d03517 Updates with Whiteblock 2019-03-20 19:04:16 -07:00
vbuterin ced6208d55
Edits
* shuffled committee -> period committee
* Reduced code redundancy
2019-03-20 11:49:28 -05:00
Hsiao-Wei Wang 2215988415
Merge branch 'dev' into JustinDrake-patch-19 2019-03-20 21:59:40 +08:00
vbuterin fff76749d2
Merge branch 'dev' into vbuterin-patch-3 2019-03-20 08:05:22 -04:00
Justin 833691b8af
Update 0_beacon-chain.md 2019-03-20 08:16:39 +00:00
Danny Ryan 1083de0c61
add notes about mandatory deposits in validator guide 2019-03-19 17:38:09 -06:00
Danny Ryan b72070b53e
Merge branch 'dev' into vbuterin-patch-12 2019-03-19 17:31:10 -06:00
Matthew Slipper 472d9c5c20 Updates from review 2019-03-19 15:32:38 -07:00
Danny Ryan a8e2b8cd1d
Merge branch 'dev' into vbuterin-patch-11 2019-03-19 16:06:33 -06:00
Danny Ryan acd7fdd762
add a few voluntary exit tests 2019-03-19 16:00:27 -06:00
Danny Ryan 9d7c2b264e
Merge branch 'dev' into JustinDrake-patch-20 2019-03-19 15:06:36 -06:00
Danny Ryan 2afbd8a02d
Merge branch 'dev' into JustinDrake-patch-8 2019-03-19 14:44:25 -06:00
Justin b664453a34
Update 0_beacon-chain.md 2019-03-19 20:43:05 +00:00
Danny Ryan ef0b3d2948
Merge branch 'dev' into JustinDrake-patch-20 2019-03-19 14:26:38 -06:00
Danny Ryan be13fa8ec3
Merge branch 'dev' into JustinDrake-patch-14 2019-03-19 14:20:12 -06:00
Danny Ryan 574fd8d63c
Merge branch 'dev' into JustinDrake-patch-18 2019-03-19 14:14:35 -06:00
Danny Ryan 23ef802da5
fix small bug in sytax 2019-03-19 13:25:34 -06:00
Danny Ryan cf06cb59c3
Merge branch 'dev' into JustinDrake-patch-13 2019-03-19 12:40:58 -06:00
Danny Ryan 054a1e3126
Merge branch 'dev' into JustinDrake-patch-12 2019-03-19 12:25:50 -06:00
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