Alex Stokes
cc7982b277
Fixes a bug that was not returning the hash
...
The way this library works is that it is demand-driven, not
supply-driven; i.e. it will only fill as many bytes as you provide in a
given slice. The prior implementation was a vector of length 0 so the
backing slice requested no bytes.
2018-12-12 21:54:05 -08:00
Alex Stokes
97bd323a52
Updates the hash function used to Keccak-256
2018-12-12 21:54:04 -08:00
Paul Hauner
211d3961a0
Add ChainSpec
structure.
...
It includes all constants from the
[Constants](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#attestation )
section in the spec, except for things that are clearly enums.
My reasoning is that these enums are not so much "chain specification"
and this struct should be reserved for items that "configure" the chain.
2018-12-12 16:08:01 +11:00
Paul Hauner
4d0641636e
Rename AttestationRecord
-> Attestation
2018-12-12 12:16:11 +11:00
Paul Hauner
4fdc2e4ac6
Merge branch 'master' into attestation-update
2018-12-12 09:45:14 +11:00
Paul Hauner
f29d7961fd
Merge pull request #87 from ralexstokes/fix-boolean-bitfield-serde-bug
...
Fix boolean bitfield serde bug
2018-12-12 09:36:54 +11:00
Alex Stokes
6c2c42e6b7
Adds custom std::cmp::PartialEq
impl
...
Two bitfields now match if they contain the same information.
There were some discrepancies before when comparing fields with the same
bits set but came from different sources, e.g. off the wire vs created
in memory, due to the existence of unset bits in the high byte.
2018-12-10 20:34:35 -08:00
Alex Stokes
1ffd9e10b3
Fixes bug with attestation validation that arose from change to API
2018-12-10 20:33:43 -08:00
Alex Stokes
4d43de1cea
rustfmt edits
2018-12-10 20:32:44 -08:00
Paul Hauner
3ae82c0710
Strip out anitquated parts of chain crate
2018-12-10 10:48:02 +11:00
Paul Hauner
7ea701aa30
Remove old block processing code
2018-12-10 09:54:25 +11:00
Paul Hauner
a35a28f522
Remove old validation
crate
2018-12-10 09:48:41 +11:00
Paul Hauner
0f9482f9d1
Complete attestation_validation, bar tests
2018-12-10 09:33:57 +11:00
Paul Hauner
a8bfa4d733
Add more attestation validation tests
2018-12-07 08:59:05 +11:00
Paul Hauner
2d2da001b9
Implement tests for attestation validation
2018-12-06 19:50:33 +11:00
Paul Hauner
36bda7502b
Implement signature verification test
2018-12-06 18:41:22 +11:00
Paul Hauner
3533b8b892
Add untested attestation validation logic
2018-12-06 18:16:03 +11:00
Paul Hauner
d4b6d81c9d
Merge branch 'beacon-state-pub-fields' into attestation-update
2018-12-05 09:46:50 +11:00
Paul Hauner
140df1a689
Make all BeaconState fields public (doh!)
2018-12-05 09:45:03 +11:00
Alex Stokes
564f13be5f
fixes bug with serialization logic for boolean bitfield
...
should match the python impl
2018-12-03 20:46:11 -08:00
Paul Hauner
e0360edde0
Update ssz_utils
for new AttestationRecord
.
2018-12-04 14:50:47 +11:00
Paul Hauner
6e0daec1da
Update AttestationData struct
2018-12-04 14:50:32 +11:00
Paul Hauner
bedc1abec0
Add failing boolean bitfield test
2018-12-03 17:13:39 +11:00
Paul Hauner
1e3fd1ff80
Add ssz encode/decode for AttestationData
2018-12-03 16:19:31 +11:00
Paul Hauner
430bc224a4
Update BeaconState
object
...
Also adds the following structs:
- AttestationData
- ForkData
- PendingAttestationRecord
The `AttestationRecord` object has _not_ been updated.
2018-12-03 14:29:05 +11:00
Paul Hauner
54db7b5272
Merge pull request #76 from sigp/state-merge
...
Add new `State` type and dependant types
Closes #73
2018-11-27 15:10:06 +11:00
Paul Hauner
3ed4de65d2
Add new State
type and dependant types
2018-11-25 15:39:50 +11:00
mjkeating
d6bf1a6119
removed unnecessary call to saturated_sub() in vec_shuffle
2018-11-23 19:29:03 -08:00
Paul Hauner
f65888226a
Add some extra tests for boolean-bitfield
2018-11-22 14:18:08 -08:00
Alex Stokes
a695382260
Run cargo fmt
that got clobbered in merge
2018-11-20 12:54:35 -08:00
Alex Stokes
11cdf66079
Remove warning about unused import
2018-11-20 12:51:51 -08:00
Alex Stokes
57dcad149f
Fixes bug with ssz
encoding of BooleanBitfield
2018-11-20 12:40:13 -08:00
Alex Stokes
031b7bf225
Add method to calculate the underlying number of bytes
...
Required for part of attestation validation logic
2018-11-20 12:40:13 -08:00
Alex Stokes
72cf7ad1bd
Begin updating tests to reflect changes to bitfield
2018-11-20 12:40:13 -08:00
Alex Stokes
832d1bd295
Update bitfield to expand size when writing out-of-bounds
2018-11-20 12:38:23 -08:00
Alex Stokes
37b05e1a5b
get tests passing (except one)
2018-11-20 12:38:23 -08:00
Alex Stokes
a9decd3aed
Simplifies the boolean-bitfield implementation to use bit-vec
crate
2018-11-20 12:34:28 -08:00
Paul Hauner
900ffac5e0
Run rustfmt globally.
...
Using `$ cargo fmt` in the root. Closes #68 .
2018-11-04 15:35:55 +01:00
Paul Hauner
46da9b670f
Add untested minimum viable block processing
2018-10-30 15:49:32 +01:00
Paul Hauner
7f21fd325e
Add initial works on extending the chain
2018-10-25 10:14:43 +02:00
Paul Hauner
b2495cbcff
Fix clippy lints
2018-10-24 15:40:09 +02:00
Paul Hauner
28ffb037cc
Merge branch 'master' into genesis
2018-10-24 15:26:27 +02:00
Paul Hauner
e2c264de96
Merge pull request #58 from g-r-a-n-t/clippy-warnings
...
Clippy warnings
2018-10-24 15:25:14 +02:00
Paul Hauner
98076d6439
Add test for utils/active-validators
2018-10-24 15:22:39 +02:00
Grant Wuerker
625fc4c9b9
mutable iterator in encode_length
2018-10-24 07:56:58 -05:00
Paul Hauner
b17a15a378
Rename block preprocessing
2018-10-24 14:48:35 +02:00
Paul Hauner
e48e423b30
Update and add tests for chain maps
2018-10-24 14:48:20 +02:00
Paul Hauner
68e4c47cd3
Add slot-clock
2018-10-24 13:16:09 +02:00
Paul Hauner
58c6465f44
Ensure genesis inducts all validators as active
2018-10-24 10:15:59 +02:00
Paul Hauner
896810fb9f
Add status
to validator induction.
...
Allows for inducting validators with a specific status.
2018-10-24 10:13:47 +02:00