Mark Spanbroek
|
5f8eef2187
|
when equivocating, use first received proposal
|
2024-12-11 15:12:55 +01:00 |
|
Mark Spanbroek
|
ebfe1b619e
|
cleanup
|
2024-12-11 14:23:30 +01:00 |
|
Mark Spanbroek
|
22b473763c
|
use threshold logical clock to move to next round
|
2024-12-11 14:22:39 +01:00 |
|
Mark Spanbroek
|
742d9e8334
|
signature scheme needs to support verifying signatures
So that it no longer needs to support recovering a public
key from a signature
|
2024-12-11 10:53:36 +01:00 |
|
Mark Spanbroek
|
46b7887566
|
rename BlockId.new() -> BlockId.init()
|
2024-12-10 14:43:03 +01:00 |
|
Mark Spanbroek
|
1830b8f99e
|
export BlockId getters
|
2024-12-10 14:23:12 +01:00 |
|
Mark Spanbroek
|
c9209c1405
|
update Readme with API changes
|
2024-12-10 13:04:57 +01:00 |
|
Mark Spanbroek
|
ea9e1c01f9
|
derive Hash type from Block type
|
2024-12-10 12:28:16 +01:00 |
|
Mark Spanbroek
|
de854cbb5f
|
make Block a type dependency
|
2024-12-09 18:07:43 +01:00 |
|
Mark Spanbroek
|
aa4f390a1a
|
rename: validator.receive() -> validator.add()
|
2024-12-09 16:49:44 +01:00 |
|
Mark Spanbroek
|
416d43bed1
|
remove Identity type from Dependencies
|
2024-12-09 16:46:49 +01:00 |
|
Mark Spanbroek
|
8caa6e04b8
|
keep identity (private key) outside of the validator
|
2024-12-09 16:02:04 +01:00 |
|
Mark Spanbroek
|
456669248f
|
move block creation outside of the validator
|
2024-12-09 15:58:51 +01:00 |
|
Mark Spanbroek
|
fc3bdde46e
|
simplify BlockId type parameter
|
2024-12-09 11:14:39 +01:00 |
|
Mark Spanbroek
|
183890e2ca
|
lazy calculation of block id
|
2024-12-09 10:59:46 +01:00 |
|
Mark Spanbroek
|
1f67e989bc
|
cleanup
|
2024-11-28 14:24:58 +01:00 |
|
Mark Spanbroek
|
824d3a2f3b
|
raise assertion in Validator.new
reason: it's a programmer error when the identity
doesn't match the committee, not a runtime error
|
2024-11-28 14:24:35 +01:00 |
|
Mark Spanbroek
|
8974ea38b3
|
add readme
|
2024-11-28 14:22:47 +01:00 |
|
Mark Spanbroek
|
d7fccb7323
|
simplify signing dependency
|
2024-11-27 14:29:03 +01:00 |
|
Mark Spanbroek
|
c768908bc8
|
add license
|
2024-11-26 14:13:56 +01:00 |
|
Mark Spanbroek
|
e012c694ac
|
order dependencies in order of appearance
|
2024-11-26 14:13:50 +01:00 |
|
Mark Spanbroek
|
a8122cb27c
|
primary proposer for a round
|
2024-11-26 10:59:04 +01:00 |
|
Mark Spanbroek
|
7218991f31
|
rename Round.members -> Round.proposers
|
2024-11-26 10:44:13 +01:00 |
|
Mark Spanbroek
|
ff848a20c4
|
avoid copying of blocks and seqs
speeds up performance test by a factor of 4
|
2024-11-25 15:47:01 +01:00 |
|
Mark Spanbroek
|
cd161d331e
|
add performance test
|
2024-11-25 15:30:39 +01:00 |
|
Mark Spanbroek
|
a871e8d930
|
add fuzzing test
|
2024-11-25 11:29:43 +01:00 |
|
Mark Spanbroek
|
65938fa385
|
run tests in continuous integration
|
2024-11-21 15:19:55 +01:00 |
|
Mark Spanbroek
|
54edc32b41
|
simplify Hash dependency
|
2024-11-21 15:12:03 +01:00 |
|
Mark Spanbroek
|
7ee84f7b5c
|
simplify Transaction dependency
|
2024-11-21 14:30:40 +01:00 |
|
Mark Spanbroek
|
030bbf3367
|
serialization algorithm can be set at compile time
- calculate block id once
- sign hashes, not byte sequences
- simplify Transaction abstraction
|
2024-11-20 15:51:34 +01:00 |
|
Mark Spanbroek
|
01cbefe898
|
add nonce to mock transaction for easier debugging
|
2024-11-06 16:35:20 +01:00 |
|
Mark Spanbroek
|
6f0035c8fa
|
Transaction type can be set at compile time
|
2024-11-06 16:32:28 +01:00 |
|
Mark Spanbroek
|
5a9602a9be
|
order dependencies alphabetically
|
2024-11-06 13:57:03 +01:00 |
|
Mark Spanbroek
|
7997ae0f65
|
move signing and hashing under dependencies
|
2024-11-06 13:55:14 +01:00 |
|
Mark Spanbroek
|
c600c5a2ef
|
combine generic types for signing and hashing
|
2024-11-06 13:45:37 +01:00 |
|
Mark Spanbroek
|
fcf32043a1
|
check that equivocation is handled correctly
|
2024-11-06 11:27:28 +01:00 |
|
Mark Spanbroek
|
a4b1510663
|
check that validators emit blocks in the same sequence
|
2024-11-06 10:36:03 +01:00 |
|
Mark Spanbroek
|
edc81ba568
|
cleanup
|
2024-11-06 09:55:54 +01:00 |
|
Mark Spanbroek
|
d40737e4d7
|
rename tests
|
2024-11-06 09:55:22 +01:00 |
|
Mark Spanbroek
|
c94df10f3f
|
remove workaround; seems to work with ORC now
|
2024-11-05 14:57:29 +01:00 |
|
Mark Spanbroek
|
b757074193
|
simulate scenario from figure 4 in the Mysticeti paper
needed fix: call updateSkipped() when proposing a block
|
2024-11-05 14:49:53 +01:00 |
|
Mark Spanbroek
|
f5fdf8e581
|
move code to exchange proposals to simulator
|
2024-11-04 14:36:19 +01:00 |
|
Mark Spanbroek
|
2d5f3721e4
|
extract network simulator from tests
|
2024-10-31 13:16:35 +01:00 |
|
Mark Spanbroek
|
e20da68dfc
|
skip blocks using the indirect rule
|
2024-10-31 12:29:05 +01:00 |
|
Mark Spanbroek
|
7ce6f639f3
|
count votes from committee members only once
|
2024-10-30 14:50:00 +01:00 |
|
Mark Spanbroek
|
da66c27de7
|
rewording
|
2024-10-30 11:28:59 +01:00 |
|
Mark Spanbroek
|
923f09976e
|
update certificates for older blocks
|
2024-10-30 11:25:24 +01:00 |
|
Mark Spanbroek
|
432692f472
|
update skipped for older blocks
|
2024-10-30 10:45:54 +01:00 |
|
Mark Spanbroek
|
099aeeb0af
|
validator can't propose a block with too few parents
|
2024-10-30 10:23:56 +01:00 |
|
Mark Spanbroek
|
2a13ddffd4
|
refuse a proposal that was already received
|
2024-10-29 13:05:38 +01:00 |
|