Al Liu
27d9f72035
Simulation happy path ( #161 )
...
* finish subscriber manager
* optimize subscribe on SimulationRunnerHandle
* fix comment
* replace std locks to parking_lot locks
* move producer initialization out simulate fn
* WIP
* optimize run fn
* update condition
* fix CI
* collect run times
* 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
* Remove leadership and old overlay
Create carnot event builder
Added some adjustments
* Add view to vote
* Fix serde derive in consensus-engine
* Add serde feature for engine in core
* Use view in tally
* Move carnot tally to consensus service
* Add new view msg
* Fit engine types in adapter
* Missing serde feature in consensus service
* Implement carnot event builder
* Implement even builder run main tasks
* Fill up view resolver
* Fix errors on network adapter implementations
* Clippy happy
* Extract event handling to independent methods in View
* Fix test
* Refactor carnot event builder (#135 )
* refactor
* format
* Discriminate proposal messages (#136 )
* Derive block id from wire format (#139 )
* Derive block id from wire format
* Derive id on block creation
* Use compile time hash size
* 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
* Fix waku update
* rewrite data collection add different kind of subscribers
* fix fmt
* 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>
* fix gather_new_views
* working node
* fix unhappy path
* remove leftover
* Kickstart event building in sim app
* finish event builder
* fix comment
* add Tally
* gather enough new views then construct ProposalBlock event
* Revert "gather enough new views then construct ProposalBlock event"
This reverts commit 87da2bdd0c
.
* WIP: CarnotNode
* WIP
* finish event handle
* dump state
* WIP
* finish message sending
* fix some compile errors
* make project compile
* update
* fix fmt and clippy
* optimize json ser/deser and add a config
* update Cargo.toml
* Implement leader proposing (#154 )
* Implement leader proposing
* fix fmt
---------
Co-authored-by: al8n <scygliu1@gmail.com>
* fix ser/deser bugs
* fix subscriber bugs
* Fix proposing genesis
* Fix genesis retrieval in consensus-engine
* Bring back general block proposal event
* Fix leaf voting
* fix init node bugs
* add more tracing
* fix empty qc
* fix data race
* fix all panics
* cleanup
* propose new blocks
* fix comment
* do not approve for the same block
* no panics
* fix some comments
* use serde_with
* Bring back genesis on 0
* Fix genesis retrieval
Replace output enum
Vote for genesis proposal
* Genesis methods
* fix StardardQc::genesis()
* fix genesis block bug
* fix PR comment
* fix PR comment
* fix PR comment
* fix PR comment
* fix PR comment
* Fix tally
Fix proposing
* Remove public block building
Added raw method
* Missing fmt
* clippy happy
* fix io stream downcast
* optional stream-type arg, by default we do not run any subscriber
* fmt
* cleanup
* Remove from header block constructor
* Fix duplicated approve (#180 )
* fix duplicated approve
* Success tally just on threshold
* Integrate random beacon on happy path
* Fix missing updating beacon
* Replicate consensus output
* Prune older non relevant messages from cache
* Remove view info just again
* Refactor Block deps
* Reverse wrong parent committee call in Consensus engine
* Remove useless event builder settings
* Remove blocks store from event builder
* Remove unnecessary carnot seed
* Remove duplicated proposals check
---------
Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
Co-authored-by: Giacomo Pasini <Zeegomo@users.noreply.github.com>
2023-06-14 16:52:37 +02:00
Al Liu
d864fecd07
chore: replace std locks to parking_lot locks in simulations ( #141 )
...
* replace std locks to parking_lot locks
2023-05-31 12:57:42 +08:00
Al Liu
4b880778ab
finish subscriber manager ( #140 )
...
* finish subscriber manager
2023-05-11 16:09:53 +08: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
Al Liu
a19278480d
Pipe output data ( #111 )
2023-04-04 20:26:57 +08:00
gusto
901ebf4152
Message sending between simulation nodes ( #110 )
...
* Dummy node for simulations
* Shared network state for nodes
* Runner one step test
* Beginning of network interface
* Connect dummy node to network
* Network step tests
* Pop messages that are being sent
* Regions send receive tests
* Setup network in sync runner tests
* Dispatch and collect node messages during sim step
* Improve network interface receiver
2023-03-31 12:48:06 +03:00
Al Liu
c882a58286
Add StalledViewWard ( #109 )
2023-03-30 16:35:29 +08:00
Daniel Sanchez
92ef9e5a77
Simulation app runners ( #105 )
...
* Integrate new runners, fit types...make it compile
* Added missing runners
* Fix rebased changes
* Make tests pass
* Clippy happy
* More clippy happy
2023-03-24 13:21:10 -07:00
Al Liu
4a90ba6926
chore: types wrapper ( #104 )
...
* chore: types wrapper
2023-03-24 19:50:30 +08:00
Al Liu
ea589d018a
Simulation App: Make step cost configurable ( #102 )
...
* WIP: make step cost configurable
* fix fmt
2023-03-23 16:57:18 +08:00
gusto
2d8c9f1099
Tree overlay for simulation app ( #101 )
...
* Add simulations crate
* Firs working runner
* Cleanupt
* Extract overlay from runner
* Fix off id calls
* Fix testing values
* WIP: Tree overlay for simulation app
* Build tree overlay from depth and size
* Tree overlay generation tests
* WIP: Committee role in layout
* Use commtittee role when constructing node
* Pairprogramming role calculation
* WIP: Extract step runner to node
* Aggregate times from different overlay layers
* Runner for overlay with layers
* Use StepRng in runner tests
* Decouple role from node
* Define leader steps and behaviour
* Get possible node ids from the overlay
* Handle unknown state in flat overlay
* Use solver type for deserialization
* Remove refcell from nodes hashmap
* Create layout from the provided node ids
* Break runner loops into seperate functions
* Use for loop to collect node step times
* Revert leader times collection
* Add interegion latency tests
---------
Co-authored-by: danielsanchezq <sanchez.quiros.daniel@gmail.com>
2023-03-23 01:32:54 -07:00
Al Liu
8a1af8c234
Add configuration for simulation app ( #94 )
...
* make simulation app compile to wasm
* add configuration
* improve args parsing
* add steps in configuration
---------
Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>
2023-03-20 17:13:55 +08:00
Daniel Sanchez
6ce9fdf553
[WIP] Simulation app barebones ( #90 )
...
* Add simulations crate
* Kickstart modules
* Add overlay
* Use node steps
* Add initial carnot node
* Implement Carnot node costs simulation
* Firs working runner
* Cleanup
* Extract overlay from runner
* Fix off id calls
* Fix testing values
* Clippy happy
* make simulation app compile to wasm
---------
Co-authored-by: al8n <scygliu1@gmail.com>
2023-03-14 07:15:45 -07:00