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
Mark Spanbroek
09f7257bd3
ignore parents that are too old to matter
2024-10-29 12:58:22 +01:00
Mark Spanbroek
26234bec9c
refuse proposals with a round number that is too high
2024-10-29 12:35:06 +01:00
Mark Spanbroek
415a8fcc3f
allow validator to request missing blocks
...
- refuse proposals with unknown parent blocks
- store signed blocks in slots
- allow retrieval of signed blocks
- make indirect decision rule test more similar to
scenario from the paper
2024-10-29 12:19:20 +01:00
Mark Spanbroek
66f24cb296
separate checking of block from receiving of block
2024-10-28 12:54:36 +01:00
Mark Spanbroek
103da7497f
refuse block that doesn't include parents from previous block with >2/3 stake
2024-10-28 10:56:23 +01:00
Mark Spanbroek
d39813f333
refuse blcok that includes a parent more than once
2024-10-24 15:00:13 +02:00
Mark Spanbroek
3220612690
validator refuses bad block proposals
2024-10-22 16:26:12 +02:00
Mark Spanbroek
4ae99f73e2
add tests for Rounds
2024-10-22 12:55:08 +02:00
Mark Spanbroek
1692bde0f4
add tests for Round
2024-10-22 12:29:55 +02:00
Mark Spanbroek
f3c013ced0
rename add() -> addProposal()
2024-10-21 13:35:07 +02:00
Mark Spanbroek
5c09e8ee3f
move Round into its own module
2024-10-21 12:48:52 +02:00
Mark Spanbroek
65519a30f4
rename Rounds.new() to Rounds.init()
2024-10-21 11:16:08 +02:00
Mark Spanbroek
2d83d8066d
cleanup
2024-10-21 11:06:31 +02:00
Mark Spanbroek
619c11c2ad
simplify Validator.status()
2024-10-21 11:05:20 +02:00
Mark Spanbroek
c4d1300374
cleanup
2024-10-21 11:04:08 +02:00
Mark Spanbroek
30273d705c
rename last and first to latest and oldest
2024-10-21 10:35:25 +02:00
Mark Spanbroek
903fffd101
make Rounds.first and Rounds.last read-only
2024-10-21 10:16:51 +02:00