Commit Graph

88 Commits

Author SHA1 Message Date
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
Age Manning
03a5a892d0
Ensure latest attestations are considered only. 2019-02-13 10:34:56 +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
Age Manning
fb270a5a41
Implements add_block, shifts out constants. 2019-02-12 18:47:55 +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
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
Age Manning
8109fad7bf
Create the fork-choice crate.
- Adds the naive fork choice (longest chain) rule.
- Adds basic documentation for the crate.
2019-02-05 15:55:29 +11:00
Paul Hauner
da1498fc45
Remove validator_shuffling crate.
It has been replaced by the `beacon_state.get_shuffling` function.
2019-02-05 12:48:07 +11:00
Paul Hauner
87a326d8a2
Complete canonical_root for attestation_data 2019-02-05 12:41:56 +11:00
Paul Hauner
cbb84c0d69
Move all attestation_data fns into same file 2019-02-05 12:40:03 +11:00
Paul Hauner
05b890860a
Move all attestaion fns into same file 2019-02-05 12:38:58 +11:00
Paul Hauner
b9dc8437c9
Move all beacon_block fns into the same file 2019-02-05 12:33:52 +11:00
Paul Hauner
ade2460377
Move all beacon_state fns into single file. 2019-02-05 12:25:42 +11:00
Paul Hauner
0120082f6b
Merge branch 'master' into add-chain-benchmarks 2019-02-05 05:49:45 +11:00
Paul Hauner
bd1cfeeba9
Change bls import method for validator 2019-02-05 03:52:34 +11:00
Paul Hauner
dcb507ca18
Remove unused errors from genesis crate 2019-02-05 03:51:24 +11:00
Paul Hauner
aad3b3dc7a
Merge spec into types crate.
Also remove some pre-2018 `extern crate` calls.
2019-02-01 19:05:39 +11:00
Paul Hauner
efc0902abb
Run cargo fmt 2019-02-01 18:20:42 +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
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
10fec4919b
Merge pull request #175 from sigp/tree_hash
Merkle hashing chunk size fix
2019-02-01 12:08:17 +11:00
Paul Hauner
02a962d35d
Ensure per_epoch trans. happens before per_slot. 2019-01-31 18:32:23 +11:00
Paul Hauner
c1b3d1b63e
Tidy up and add some logs 2019-01-31 18:32:01 +11:00
Paul Hauner
e1239a1ecc
Ensure attestation_participants is deduped 2019-01-31 18:31:20 +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
5c44f97fba
Fix bug with committee index for attester duties
It was returning the validator_index instead of the `committee_index`.
2019-01-31 16:42:53 +11:00
Paul Hauner
48801e4674
Re-enable signature checking for validations 2019-01-31 16:42:31 +11:00
Paul Hauner
a1cdc0402d
Tidy attestation_participants function.
It was using a map where it could use a find.
2019-01-31 16:41:54 +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
Paul Hauner
5ec9d82e40
Minor bug fixes and formatting changes. 2019-01-31 10:04:40 +11:00
Paul Hauner
2fc6dbb02a
Fix bug with inclusion_distance 2019-01-31 08:49:50 +11:00
Paul Hauner
7d94cfb0e4
Refine state transition to allow first transition 2019-01-31 00:39:34 +11:00
Kirk Baird
73ba4d3cfc
Minor modification to merkle hashing 2019-01-29 09:27:40 +11:00
Paul Hauner
6a4252b8c6
Add state helpers from #148 2019-01-28 19:12:20 +11:00
Paul Hauner
f92b9d618a
Add get_shuffling to state 2019-01-28 17:45:54 +11:00
Paul Hauner
be7e326c33
Add FreeAttesation type 2019-01-28 16:21:33 +11:00
Paul Hauner
5bbffcb053
Add attester to beacon chain test harness 2019-01-28 15:50:42 +11:00
Grant Wuerker
0cbc2936ea
added version to signature-schemes dependency
using tag instead of branch

changed signature-schemes tag to 0.3.0
2019-01-27 21:12:00 -06:00
Paul Hauner
e1698102e0
Add attestation aggregation to BeaconChain 2019-01-28 13:04:50 +11:00
Paul Hauner
acf8b79fe9
Add unsafe attester crate 2019-01-28 11:23:30 +11:00
Paul Hauner
d5da84d967
Add BitAnd impl for BooleanBitfield 2019-01-28 11:23:01 +11:00
Paul Hauner
a037fec283
Add signable_message() to AttestationData 2019-01-28 11:22:25 +11:00
Paul Hauner
fd47f6c433
Move attestation validator to BeaconState fn 2019-01-27 17:54:26 +11:00
Paul Hauner
b487db68a1
Add signable_message() to Attestation 2019-01-27 17:28:16 +11:00
Paul Hauner
79d1b15afc
Tidy epoch_processing 2019-01-27 13:59:29 +11:00
Paul Hauner
22a08e5160
Fix failing tests 2019-01-26 22:22:52 +11:00