Commit Graph

  • 5f8eef2187 when equivocating, use first received proposal main Mark Spanbroek 2024-12-11 15:12:55 +01:00
  • ebfe1b619e cleanup Mark Spanbroek 2024-12-11 14:23:30 +01:00
  • 22b473763c use threshold logical clock to move to next round Mark Spanbroek 2024-12-11 14:22:39 +01:00
  • 742d9e8334 signature scheme needs to support verifying signatures Mark Spanbroek 2024-12-11 10:53:36 +01:00
  • 46b7887566 rename BlockId.new() -> BlockId.init() Mark Spanbroek 2024-12-10 14:43:03 +01:00
  • 1830b8f99e export BlockId getters Mark Spanbroek 2024-12-10 14:23:12 +01:00
  • c9209c1405 update Readme with API changes Mark Spanbroek 2024-12-10 12:56:40 +01:00
  • ea9e1c01f9 derive Hash type from Block type Mark Spanbroek 2024-12-10 12:28:16 +01:00
  • de854cbb5f make Block a type dependency Mark Spanbroek 2024-12-09 18:07:43 +01:00
  • aa4f390a1a rename: validator.receive() -> validator.add() Mark Spanbroek 2024-12-09 16:49:44 +01:00
  • 416d43bed1 remove Identity type from Dependencies Mark Spanbroek 2024-12-09 16:46:49 +01:00
  • 8caa6e04b8 keep identity (private key) outside of the validator Mark Spanbroek 2024-12-09 16:02:04 +01:00
  • 456669248f move block creation outside of the validator Mark Spanbroek 2024-12-09 15:58:51 +01:00
  • fc3bdde46e simplify BlockId type parameter Mark Spanbroek 2024-12-09 11:14:39 +01:00
  • 183890e2ca lazy calculation of block id Mark Spanbroek 2024-12-09 10:59:46 +01:00
  • 1f67e989bc cleanup Mark Spanbroek 2024-11-28 14:24:46 +01:00
  • 824d3a2f3b raise assertion in Validator.new Mark Spanbroek 2024-11-28 14:24:35 +01:00
  • 8974ea38b3 add readme Mark Spanbroek 2024-11-28 14:22:47 +01:00
  • d7fccb7323 simplify signing dependency Mark Spanbroek 2024-11-27 11:48:50 +01:00
  • c768908bc8 add license Mark Spanbroek 2024-11-26 14:13:56 +01:00
  • e012c694ac order dependencies in order of appearance Mark Spanbroek 2024-11-26 14:13:50 +01:00
  • a8122cb27c primary proposer for a round Mark Spanbroek 2024-11-26 10:59:04 +01:00
  • 7218991f31 rename Round.members -> Round.proposers Mark Spanbroek 2024-11-26 10:44:13 +01:00
  • ff848a20c4 avoid copying of blocks and seqs Mark Spanbroek 2024-11-25 15:47:01 +01:00
  • cd161d331e add performance test Mark Spanbroek 2024-11-25 15:30:39 +01:00
  • a871e8d930 add fuzzing test Mark Spanbroek 2024-11-25 11:29:43 +01:00
  • 65938fa385 run tests in continuous integration Mark Spanbroek 2024-11-21 15:19:55 +01:00
  • 54edc32b41 simplify Hash dependency Mark Spanbroek 2024-11-21 15:12:03 +01:00
  • 7ee84f7b5c simplify Transaction dependency Mark Spanbroek 2024-11-21 14:30:40 +01:00
  • 030bbf3367 serialization algorithm can be set at compile time Mark Spanbroek 2024-11-20 15:51:34 +01:00
  • 01cbefe898 add nonce to mock transaction for easier debugging Mark Spanbroek 2024-11-06 16:34:55 +01:00
  • 6f0035c8fa Transaction type can be set at compile time Mark Spanbroek 2024-11-06 16:32:28 +01:00
  • 5a9602a9be order dependencies alphabetically Mark Spanbroek 2024-11-06 13:57:03 +01:00
  • 7997ae0f65 move signing and hashing under dependencies Mark Spanbroek 2024-11-06 13:55:14 +01:00
  • c600c5a2ef combine generic types for signing and hashing Mark Spanbroek 2024-11-06 13:45:37 +01:00
  • fcf32043a1 check that equivocation is handled correctly Mark Spanbroek 2024-11-06 11:25:48 +01:00
  • a4b1510663 check that validators emit blocks in the same sequence Mark Spanbroek 2024-11-06 10:11:52 +01:00
  • edc81ba568 cleanup Mark Spanbroek 2024-11-06 09:55:54 +01:00
  • d40737e4d7 rename tests Mark Spanbroek 2024-11-06 09:55:22 +01:00
  • c94df10f3f remove workaround; seems to work with ORC now Mark Spanbroek 2024-11-05 14:57:29 +01:00
  • b757074193 simulate scenario from figure 4 in the Mysticeti paper Mark Spanbroek 2024-11-05 14:38:43 +01:00
  • f5fdf8e581 move code to exchange proposals to simulator Mark Spanbroek 2024-11-04 12:19:06 +01:00
  • 2d5f3721e4 extract network simulator from tests Mark Spanbroek 2024-10-31 12:56:04 +01:00
  • e20da68dfc skip blocks using the indirect rule Mark Spanbroek 2024-10-31 12:29:05 +01:00
  • 7ce6f639f3 count votes from committee members only once Mark Spanbroek 2024-10-30 14:50:00 +01:00
  • da66c27de7 rewording Mark Spanbroek 2024-10-30 11:28:59 +01:00
  • 923f09976e update certificates for older blocks Mark Spanbroek 2024-10-30 11:25:24 +01:00
  • 432692f472 update skipped for older blocks Mark Spanbroek 2024-10-30 10:45:54 +01:00
  • 099aeeb0af validator can't propose a block with too few parents Mark Spanbroek 2024-10-30 10:23:56 +01:00
  • 2a13ddffd4 refuse a proposal that was already received Mark Spanbroek 2024-10-29 13:05:38 +01:00
  • 09f7257bd3 ignore parents that are too old to matter Mark Spanbroek 2024-10-29 12:58:22 +01:00
  • 26234bec9c refuse proposals with a round number that is too high Mark Spanbroek 2024-10-29 12:35:06 +01:00
  • 415a8fcc3f allow validator to request missing blocks Mark Spanbroek 2024-10-29 12:19:20 +01:00
  • 66f24cb296 separate checking of block from receiving of block Mark Spanbroek 2024-10-28 12:54:36 +01:00
  • 103da7497f refuse block that doesn't include parents from previous block with >2/3 stake Mark Spanbroek 2024-10-24 16:18:00 +02:00
  • d39813f333 refuse blcok that includes a parent more than once Mark Spanbroek 2024-10-24 15:00:13 +02:00
  • 3220612690 validator refuses bad block proposals Mark Spanbroek 2024-10-22 16:26:12 +02:00
  • 4ae99f73e2 add tests for Rounds Mark Spanbroek 2024-10-22 12:55:08 +02:00
  • 1692bde0f4 add tests for Round Mark Spanbroek 2024-10-22 12:29:55 +02:00
  • f3c013ced0 rename add() -> addProposal() Mark Spanbroek 2024-10-21 13:35:07 +02:00
  • 5c09e8ee3f move Round into its own module Mark Spanbroek 2024-10-21 12:46:22 +02:00
  • 65519a30f4 rename Rounds.new() to Rounds.init() Mark Spanbroek 2024-10-21 11:10:32 +02:00
  • 2d83d8066d cleanup Mark Spanbroek 2024-10-21 11:06:31 +02:00
  • 619c11c2ad simplify Validator.status() Mark Spanbroek 2024-10-21 11:05:20 +02:00
  • c4d1300374 cleanup Mark Spanbroek 2024-10-21 10:47:50 +02:00
  • 30273d705c rename last and first to latest and oldest Mark Spanbroek 2024-10-21 10:29:41 +02:00
  • 903fffd101 make Rounds.first and Rounds.last read-only Mark Spanbroek 2024-10-21 10:16:51 +02:00
  • d478e438b0 formatting Mark Spanbroek 2024-10-17 16:06:50 +02:00
  • 96295461ae find block by block id Mark Spanbroek 2024-10-17 16:06:28 +02:00
  • 6a400772cd move findAnchor to rounds module Mark Spanbroek 2024-10-17 16:03:20 +02:00
  • fb153b7e9f move round-robin ordering of members to Round Mark Spanbroek 2024-10-17 16:00:22 +02:00
  • fa2985718a make Round.slots private Mark Spanbroek 2024-10-17 15:45:37 +02:00
  • 33773f3e56 move more functions to round module Mark Spanbroek 2024-10-17 15:15:09 +02:00
  • 70f61d1ef6 introduce Round.find() Mark Spanbroek 2024-10-17 15:05:02 +02:00
  • 2dede094c8 move Rounds to rounds module Mark Spanbroek 2024-10-17 14:46:40 +02:00
  • 6250be0d97 create next round from last round Mark Spanbroek 2024-10-17 14:42:40 +02:00
  • db46e9927f move Round to its own module Mark Spanbroek 2024-10-17 14:35:50 +02:00
  • 017d48c5c8 introduce Rounds type Mark Spanbroek 2024-10-17 14:13:22 +02:00
  • c3b8429ed6 add tests for proposer slots Mark Spanbroek 2024-10-16 15:08:24 +02:00
  • 87da1b774d replace slot.certifiedProposal() by slot.proposal() Mark Spanbroek 2024-10-14 13:31:10 +02:00
  • a91221d8f4 move proposer slots into their own module Mark Spanbroek 2024-10-14 12:37:32 +02:00
  • 83a1592fcb simplify handling of proposals Mark Spanbroek 2024-10-07 16:31:16 +02:00
  • a2304160d8 separate modules for BlockId, SignedBlock and Transaction Mark Spanbroek 2024-10-07 14:41:01 +02:00
  • 0f8d59958f add tests for blocks and block ids Mark Spanbroek 2024-10-07 14:29:52 +02:00
  • b50d455f7e add tests for Committee Mark Spanbroek 2024-10-03 14:53:15 +02:00
  • 70d3969564 simplify imports in tests Mark Spanbroek 2024-10-03 14:36:03 +02:00
  • 6b5529d6e2 rename tests Mark Spanbroek 2024-10-03 10:23:41 +02:00
  • 30872786e5 move CommitteeMember to its own module Mark Spanbroek 2024-10-03 09:51:29 +02:00
  • 9137edbfee remove Block's unnecessary dependency on Signing Mark Spanbroek 2024-10-02 15:58:33 +02:00
  • 75ad9d09d5 ignore warnings about .? operator Mark Spanbroek 2024-10-02 15:44:16 +02:00
  • 5aa7ee0fbd commit blocks using the indirect decision rule Mark Spanbroek 2024-10-02 15:44:01 +02:00
  • c2ee75694e remove use of std/tables Mark Spanbroek 2024-10-02 12:05:22 +02:00
  • 9f69aea37d allow for multiple proposals per slot Mark Spanbroek 2024-09-30 16:22:17 +02:00
  • daa5e7dd4d rename ProposalStatus to SlotStatus Mark Spanbroek 2024-09-30 15:25:09 +02:00
  • bb8ea4d16a remove rounds that were fully committed Mark Spanbroek 2024-09-26 08:17:54 +02:00
  • f08666ec43 make Slot a ref object Mark Spanbroek 2024-09-26 07:19:45 +02:00
  • 3ac5829f89 commit to blocks in round-robin order Mark Spanbroek 2024-09-26 07:16:26 +02:00
  • bd930b05a0 reference committee members by index Mark Spanbroek 2024-09-25 11:41:48 +02:00
  • c03cfe66d7 iterate over committed blocks Mark Spanbroek 2024-09-25 11:25:20 +02:00
  • 9dc432ae3c introduce doubly linked list for rounds Mark Spanbroek 2024-09-25 10:56:59 +02:00