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
619c11c2ad
simplify Validator.status()
2024-10-21 11:05:20 +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
Mark Spanbroek
fb153b7e9f
move round-robin ordering of members to Round
2024-10-17 16:00:22 +02:00
Mark Spanbroek
c3b8429ed6
add tests for proposer slots
2024-10-16 15:08:24 +02:00
Mark Spanbroek
0f8d59958f
add tests for blocks and block ids
2024-10-07 14:29:52 +02:00
Mark Spanbroek
b50d455f7e
add tests for Committee
2024-10-03 14:53:15 +02:00
Mark Spanbroek
70d3969564
simplify imports in tests
2024-10-03 14:36:03 +02:00
Mark Spanbroek
6b5529d6e2
rename tests
2024-10-03 10:23:41 +02:00
Mark Spanbroek
5aa7ee0fbd
commit blocks using the indirect decision rule
2024-10-02 15:44:01 +02:00
Mark Spanbroek
daa5e7dd4d
rename ProposalStatus to SlotStatus
2024-10-02 12:03:45 +02:00
Mark Spanbroek
3ac5829f89
commit to blocks in round-robin order
2024-09-26 07:16:26 +02:00
Mark Spanbroek
bd930b05a0
reference committee members by index
2024-09-25 15:48:49 +02:00
Mark Spanbroek
c03cfe66d7
iterate over committed blocks
2024-09-25 11:25:20 +02:00
Mark Spanbroek
7a516fb5cc
cleanup tests
2024-09-23 14:47:52 +02:00
Mark Spanbroek
5e7d247e84
ensure that example length is evaluated only once
2024-09-23 13:30:36 +02:00
Mark Spanbroek
47d5025b45
simplify committee test
2024-09-19 15:34:07 +02:00
Mark Spanbroek
ded07cfc3c
separate tests for committee of validators
2024-09-19 11:47:17 +02:00
Mark Spanbroek
c063e9f52f
update certification when proposing our own block
2024-09-19 10:15:41 +02:00
Mark Spanbroek
d491b68843
commit blocks that are certified by >2f validators
2024-09-19 10:08:42 +02:00
Mark Spanbroek
666835dd03
skip blocks that are ignored by >2f validators
2024-09-18 15:41:53 +02:00
Mark Spanbroek
4f8c280c7b
reference blocks by author, round and hash
2024-09-18 15:41:03 +02:00
Mark Spanbroek
67f9f1e149
introduce committee with stakes
2024-09-18 14:29:00 +02:00
Mark Spanbroek
075786a165
include parents in block
2024-08-21 15:14:19 +02:00
Mark Spanbroek
c20c1a261e
add Hashing abstraction
2024-08-21 15:07:14 +02:00
Mark Spanbroek
91ab0365af
rename: SignatureScheme -> Signing
2024-08-21 15:02:09 +02:00
Mark Spanbroek
6766beea66
signature scheme is now determined compile time
2024-08-21 11:16:52 +02:00
Mark Spanbroek
1ec5bf4a05
do not allow proposing ore than one block per round
2024-08-20 16:52:50 +02:00