Commit Graph

128 Commits

Author SHA1 Message Date
al8n 87da2bdd0c gather enough new views then construct ProposalBlock event 2023-05-17 21:21:52 +08:00
al8n 9ca5060ce7 add Tally 2023-05-17 00:16:45 +08:00
al8n 5fad6aad04 fix comment 2023-05-16 19:58:30 +08:00
al8n 2bfb7acf80 finish event builder 2023-05-16 16:31:00 +08:00
Daniel Sanchez Quiros 45cb4ebaec Kickstart event building in sim app 2023-05-16 09:55:38 +02:00
Giacomo Pasini dfeef7f8d6
remove leftover 2023-05-15 16:45:03 +02:00
Giacomo Pasini a94f9300fd
fix unhappy path 2023-05-15 16:42:00 +02:00
Giacomo Pasini 3c569e1278
working node 2023-05-15 16:41:45 +02:00
Giacomo Pasini 430dbf510e
fix gather_new_views 2023-05-15 16:41:32 +02:00
Daniel Sanchez fc48f55a25
Unhappy tally (#137)
* Refactor tally module

* Implement tally for new view messages

* Assess pr comments

* Fix rebase

* simplify tally

---------

Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
2023-05-15 11:30:39 +02:00
danielsanchezq 726f7c239c Fix waku update 2023-05-12 16:32:21 +02:00
Giacomo Pasini bbb5b08516 Add leader role (#138)
* add leadership stub

* fix gather_new_views

* fmt

* actually build qc

* remove redundant fields

* add flat overlay (#143)

* add flat overlay

* fix

* sort imports

* fix tests
2023-05-12 13:33:17 +02:00
Daniel Sanchez 4dfecc510f Derive block id from wire format (#139)
* Derive block id from wire format

* Derive id on block creation

* Use compile time hash size
2023-05-12 13:33:17 +02:00
Daniel Sanchez bf5988fc75 Discriminate proposal messages (#136) 2023-05-12 13:33:17 +02:00
Giacomo Pasini ab15514f39 Refactor carnot event builder (#135)
* refactor

* format
2023-05-12 13:33:17 +02:00
danielsanchezq 5ac08a93fb Fix test 2023-05-12 13:33:17 +02:00
danielsanchezq c9704348b8 Extract event handling to independent methods in View 2023-05-12 13:33:17 +02:00
danielsanchezq dd9fbc3e83 Clippy happy 2023-05-12 13:33:17 +02:00
danielsanchezq 66807feef8 Fix errors on network adapter implementations 2023-05-12 13:33:17 +02:00
danielsanchezq 3e8df8914d Fill up view resolver 2023-05-12 13:33:17 +02:00
danielsanchezq d43be314d6 Implement even builder run main tasks 2023-05-12 13:33:17 +02:00
danielsanchezq 73332cbc41 Implement carnot event builder 2023-05-12 13:33:17 +02:00
danielsanchezq 965db1b282 Missing serde feature in consensus service 2023-05-12 13:33:17 +02:00
danielsanchezq 2c86b22e7e Fit engine types in adapter 2023-05-12 13:33:17 +02:00
danielsanchezq 4a1e56293a Add new view msg 2023-05-12 13:33:17 +02:00
danielsanchezq 14d680557d Move carnot tally to consensus service 2023-05-12 13:33:17 +02:00
danielsanchezq 3003503ce2 Use view in tally 2023-05-12 13:33:17 +02:00
danielsanchezq 85d2d4a6a7 Add serde feature for engine in core 2023-05-12 13:33:17 +02:00
danielsanchezq 9d095949ea Fix serde derive in consensus-engine 2023-05-12 13:33:17 +02:00
danielsanchezq 8e7ecdf2d9 Add view to vote 2023-05-12 13:33:17 +02:00
danielsanchezq a8996fc6cd Remove leadership and old overlay
Create carnot event builder
Added some adjustments
2023-05-12 13:33:17 +02:00
danielsanchezq 241c5d38b2 Fit types yet again 2023-05-12 13:33:17 +02:00
danielsanchezq 55898acc98 Update network with engine types 2023-05-12 13:33:17 +02:00
danielsanchezq 3210873344 Fix errors 2023-05-12 13:33:17 +02:00
danielsanchezq 752f4570ff Adapt carnot network adapter interfaces and implementations 2023-05-12 13:33:17 +02:00
Daniel Sanchez 24467528ac Fit types from spec (#124)
* Match types to spec

* Remove Output import

* Consensus engine rework (#126)

* rework

* fix test

* clippy happy

---------

Co-authored-by: Giacomo Pasini <Zeegomo@users.noreply.github.com>
2023-05-12 13:33:17 +02:00
Giacomo Pasini e3544a2998 tmp 2023-05-12 13:33:17 +02:00
Al Liu bfbbae4493 Add happy-path consensus engine 2023-05-12 13:33:17 +02:00
Al Liu 4b880778ab
finish subscriber manager (#140)
* finish subscriber manager
2023-05-11 16:09:53 +08:00
Giacomo Pasini eb6f36782d
fix link flgs (#144) 2023-05-08 17:28:10 +02:00
gusto 0bf6e6d272
Simulation initialization (#122)
* Use enums for different settings types

* Enum for overlay settings

* Configurable simulation overlay

* Use duration type for network behaviour delays

* Configurable simulation nodes

* Runner for different node types

* Seedable rng

* Convert settings to required objects

* Implement IOStreamSettings deserialization

* Use common run method for different node types

* Configuration for simapp

* Testcase for region distribution

* Use unix time if seed is not provided
2023-05-08 13:06:39 +03:00
Daniel Sanchez 26d10856ff
Adapt carnot network adapter interfaces and implementations to latest spec (#121)
* Add happy-path consensus engine

* tmp

* Fit types from spec (#124)

* Match types to spec

* Remove Output import

* Consensus engine rework (#126)

* rework

* fix test

* clippy happy

---------

Co-authored-by: Giacomo Pasini <Zeegomo@users.noreply.github.com>

* Adapt carnot network adapter interfaces and implementations

* Fix errors

* Update network with engine types

* Fit types yet again

---------

Co-authored-by: Al Liu <scygliu1@gmail.com>
Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
Co-authored-by: Giacomo Pasini <Zeegomo@users.noreply.github.com>
2023-05-01 17:47:56 +02:00
Giacomo Pasini f8617d7331
Consensus engine rework (#127)
---------

Co-authored-by: Giacomo Pasini <Zeegomo@users.noreply.github.com>

---------

Co-authored-by: Al Liu <scygliu1@gmail.com>
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
2023-04-27 19:18:24 +02:00
Al Liu ea7896f06c
Simulation streaming and gracefully shutdown (#119)
* add stream supports

* add test case

* add polars stream, and force to use stream for the runner

* using arcswap instead RefCell for producers

* finish gracefully shutdown

* - add IOProducer and IOSubscriber
- fix deadlock in sync runner
- fix testcases
2023-04-25 19:14:30 +08:00
Álvaro Castro-Castilla b1381d727f
Update README.md (#120) 2023-04-24 11:05:00 +02:00
Al Liu c2d1ee1291
add rustfmt.toml (#118) 2023-04-19 15:59:51 +08:00
gusto 2206d7a291
Use par_iter in network module (#116)
* Use par_iter in network module

* Pass rng from filter function

* Remove locking for network messages
2023-04-13 17:24:27 +03:00
gusto a87418c908
Test voting steps with various node roles (#114)
* Single step send receive runner tests

* Rename network to overlay state

* Store every overlay that might happen

* Get related nodes for from node id

* Add leader role

* WIP dummy handle events

* Leader and root roles

* Add intent as helper to dummy vote

* Check if has enough votes

* Proposal to vote to new view tests

* Update sync runner tests

* Smallrng in send receive tests

* Send initial vote next view leaders in tests

* Local view struct for node

* Large node number tests

* Fix internal to internal case
2023-04-10 13:18:20 +03:00
Al Liu a19278480d
Pipe output data (#111) 2023-04-04 20:26:57 +08:00
Al Liu d07da7ba5a
add missing ward (#112) 2023-04-03 17:17:14 +08:00