Commit Graph

84 Commits

Author SHA1 Message Date
Age Manning
ccaaaffde1
Merge branch 'master' into fork-choices.
This introduces the `Height` type which keeps track of block_height
types.

Further integration into beacon chain with the merge.
2019-02-13 18:04:29 +11:00
Age Manning
4370035448
Integrate ForkChoice into beacon_node. 2019-02-13 16:29:37 +11:00
Age Manning
c4c1e5647e
Update original lmd-ghost begin intergration. 2019-02-13 14:49:57 +11:00
Age Manning
ef1717312f
Remove block_graph from beacon_chain. 2019-02-13 11:38:22 +11:00
Paul Hauner
d2a1000520
Fix clippy lints in beacon_chain 2019-02-13 10:28:38 +11:00
Paul Hauner
61bbbab33d
Fix clippy lints in lmd_ghost 2019-02-13 09:27:09 +11:00
Paul Hauner
05ed778ccc
Remove unused var from block_producer
It was made redundant when `proposer_slots` was removed.
2019-02-13 07:39:00 +11:00
Paul Hauner
5c1d0dcea5
Fix various clippy lints 2019-02-13 07:32:31 +11:00
Age Manning
84bf5ecd74
Inact clippy suggestions on beacon_chain. 2019-02-12 22:00:38 +11:00
Age Manning
eae68865d1
Integrate fork choice into beacon_chain.
- Adds fork_choice to beacon_chain struct.
- Adds add_attestation inside process_free_attestation.
- Adds add_block inside process_block.
- Shifts core fork-choice logic into lib.rs.
2019-02-12 21:49:24 +11:00
Paul Hauner
5039001eba
Rename file to resolve clippy lint
Lint was "module inception"
2019-02-12 17:20:58 +11:00
Paul Hauner
12076bce76
Update test_harness to spec v0.2.0 2019-02-12 16:57:47 +11:00
Paul Hauner
5fefc79521
Update BeaconChain for spec v0.2.0 2019-02-12 13:00:52 +11:00
Paul Hauner
36f441c968
Replace genesis crate with on-type defs
The methods in the `gensis` crate have been moved to `genesis` methods
on `BeaconState` and `BeaconBlock`.
2019-02-12 13:00:35 +11:00
Age Manning
405b3ff6c1
Add first implementation of optimised LMD ghost.
- Implements the optimised lmd-ghost fork choice rule.
- Removes Attestations struct.
- Removes latest_attestation_targets from beacon_chain.
2019-02-12 11:49:39 +11:00
Age Manning
4723707097
Partially implement optimised lmd ghost.
- Creates fork-choice trait.
- Corrects comment spelling in beacon block.
- Implements helper functions of optimised lmd ghost.
2019-02-11 15:14:56 +11:00
Paul Hauner
85450ec254
Fix all compile errors from new Slot/Epoch types 2019-02-07 11:22:48 +11:00
Paul Hauner
9b1d8cd3c1
Update BeaconChain to use Slot newtype 2019-02-07 10:03:55 +11:00
Age Manning
0972c67d19
Pull basic LMD Ghost into fork choice crate.
- Moves the basic implementation into the fork choice crate.
- Builds the option of fork choices into beacon_struct.
2019-02-05 17:15:15 +11:00
Paul Hauner
af50c28e0f
Improve naming consistency in test_harness
With respect to filenames. Especially removing Test.. prefixes
2019-02-05 16:22:07 +11:00
Paul Hauner
449312d95c
Set all test_harness tests to ignore
They were taking too long, we'll need to build a different build cycle
to cover these.
2019-02-05 12:29:08 +11:00
Paul Hauner
4008ec9b25
Re-org test_harness files for consistency 2019-02-05 05:49:53 +11:00
Paul Hauner
d83bafae10
Fix compiler errors from BeaconChain refactor.
I accidentally forgot to include this in the last commit, my bad!
2019-02-05 05:26:47 +11:00
Paul Hauner
c1ed5cd2d8
Refactor beacon_chain.
Moves all the `BeaconChain` impls into the same file that the struct is
defined in.
2019-02-05 05:08:40 +11:00
Paul Hauner
cb85fbcdb2
Tidy and add docstring to chain test harness. 2019-02-01 18:48:37 +11:00
Paul Hauner
4cc88c8cc7
Tidy benches 2019-02-01 18:22:43 +11:00
Paul Hauner
5ca53190b5
Add comments to beacon chain fork choice 2019-02-01 18:18:39 +11:00
Paul Hauner
865919e398
Improve attester errors, move info -> helpers
- Ensured one can distingush between a committee error and an invalid
validator index when using `validator_attesation_slot_and_shard`.
- Renamed the `info.rs` file to `getters.rs`, for clarity.
2019-02-01 17:56:49 +11:00
Paul Hauner
a71e1031ce
Add docstrings to finalized_head 2019-02-01 17:07:59 +11:00
Paul Hauner
b99e4ed9f4
Tidy slot_dump, remove SlotDump, use CheckPoint 2019-02-01 17:04:25 +11:00
Paul Hauner
4d062d77f9
Move CheckPoint into file, tidy canonical_head 2019-02-01 16:58:12 +11:00
Paul Hauner
942ef4b002
Move advance_slot to its own file. 2019-02-01 16:30:42 +11:00
Paul Hauner
db230475d7
Remove SlotClock error from block production, tidy. 2019-02-01 16:21:18 +11:00
Paul Hauner
9d1f98ba8f
Delete SlotClock errs from block_processing, tidy. 2019-02-01 16:07:59 +11:00
Paul Hauner
1e6f85a5eb
Tidy BlockGraph, use parking_lot, add doc comments 2019-02-01 15:59:12 +11:00
Paul Hauner
d4757f2e09
Drop test repetitions down to 100 2019-02-01 15:39:30 +11:00
Paul Hauner
d50a8b03f8
Set BeaconChain present_slot to read from state.
It used to read from the slot_clock, that has been replaced with
`read_slot_clock`.
2019-02-01 15:37:43 +11:00
Paul Hauner
92753fa24e
Tidy attestation_production and create docstrings 2019-02-01 15:26:36 +11:00
Paul Hauner
2ed5f69448
Tidy attestation_processing, add docstrings. 2019-02-01 15:19:50 +11:00
Paul Hauner
a86f7fa51b
Tidy AttestationAggregator, add docstrings. 2019-02-01 15:16:24 +11:00
Paul Hauner
20e45b3369
Refactor block_processing
- Add the rayon library for parallelization
- Move from std::sync::Rwlock to rayon::RwLock
- Add `state` field to BeaconChain
- Fix major bug in attestation validator where justified slot was
incorrectly looked up.
2019-02-01 14:48:09 +11:00
Paul Hauner
b6b738e83a
Improve test_harness efficiency for attesatations
Reduce the amount of attester.poll() calls by using a hashset
2019-01-31 20:27:15 +11:00
Paul Hauner
becb81d842
Fix memory blow-up with Arc<ChainSpec>
Previously it was cloning the ChainSpec, now it shares an Arc.
2019-01-31 20:24:37 +11:00
Paul Hauner
c1b3d1b63e
Tidy up and add some logs 2019-01-31 18:32:01 +11:00
Paul Hauner
d6adfc7655
Refactor justified_slot fn
Now it reads from the head state
2019-01-31 18:30:43 +11:00
Paul Hauner
3f13c25c05
Fix issues with per_epoch block_root calls
They were being called with the wrong slot.
2019-01-31 18:28:54 +11:00
Paul Hauner
5da955e3ce
Ensure harness produces block before attestations. 2019-01-31 16:41:17 +11:00
Paul Hauner
c5a0170a0a
Tidy out some verbose debugs 2019-01-31 16:40:44 +11:00
Paul Hauner
8073296f5d
Ensure per_epoch processing always runs.
Previously, it was running _after_ a state transition, not before it
with the slot processing.
2019-01-31 16:39:44 +11:00
Paul Hauner
ae39a24e71
Add committee_index to aggregator
Fixes a bug where the validator index bit was set on the bitfield,
instead of the committee index
2019-01-31 14:16:28 +11:00