Daniel Sanchez
bc453b686f
Consensus orchestrator ( #128 )
...
* 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
* 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>
* Working node (#149 )
* fix gather_new_views
* working node
* fix unhappy path
* remove leftover
* fix comments
* update waku (#146 )
* update waku
* Fix waku update
---------
Co-authored-by: danielsanchezq <sanchez.quiros.daniel@gmail.com>
* little fixes
* Consensus tasks cancellation (#147 )
* fix
* Create view cancel and cancel cache
* Attach cancellation to consensus tasks
* Fix view binds
---------
Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
---------
Co-authored-by: danielsanchezq <sanchez.quiros.daniel@gmail.com>
* Remove clones on consts
---------
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-22 14:56:56 +02:00
Giacomo Pasini
fdc22111d3
use nanosecond precision in waku timestamp ( #152 )
2023-05-18 15:19:36 +02:00
Giacomo Pasini
bbd313f70a
update waku ( #146 )
...
* update waku
* Fix waku update
---------
Co-authored-by: danielsanchezq <sanchez.quiros.daniel@gmail.com>
2023-05-15 16:21:49 +02: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
Daniel Sanchez
1ec4231a7a
Add Qc to block ( #99 )
...
* Added Qc type to Tally trait
* Add generic Qc to block header
* Use blockid instead of unnecessary header
* Expand Qc over generics
* Build up block with proper qc header
2023-03-17 06:23:50 -07:00
Daniel Sanchez
91ce4e6fa1
Make a transaction trait ( #98 )
...
* Impl Transaction trait
* Impl Transaction for MockTransaction
* <ake carnot transaction a module
* Refactor consensus to use Transaction
* Fix tests
* Constrain Transaction::Hash
* Refactor redundant Carnot in CarnotTx
2023-03-16 22:42:56 -07:00
Al Liu
818d7f29cd
Add generic block ( #93 )
...
* add generic block
* fix PR comments
* Block uses tx hashes
* Refactor bounds and generics to accept block type
* remove Tx generics
* add generic for block
* Remove unnecessary bounds on leadership
* Impl from with ownership for mock tx and txid
* feature gate
---------
Co-authored-by: danielsanchezq <sanchez.quiros.daniel@gmail.com>
2023-03-14 09:55:08 -07:00
Daniel Sanchez
274e8d55fd
Voting core primitive ( #82 )
...
* Add tally trait
Implement mock tally
* Add tally to consensus
* Use tally in implemented overlays
* Clippy happy
* Scratch carnot voting as per specification
* Add missing derives
* Clippy happy
* Fix tests
* Add checks on valid votes
* Refactor ApprovalMsg to VoteMsg
* Remove no vote in MockVote and MockQC
* Remove no vote in MockVote and MockQC
* Remove timeout todo
* Fix tests
2023-03-14 03:32:36 -07:00
gusto
42ea8f9be3
Update waku-bindings to 0.1.0-rc.2 ( #86 )
2023-03-06 15:18:27 +02:00
Daniel Sanchez
c6bc35a931
Make carnot overlay generic ( #87 )
...
* Make carnot overlay generic
* support generic
* add back 'view for View fns
* add assertion on view number
* remove unused comments
* fix fmt
---------
Co-authored-by: al8n <scygliu1@gmail.com>
2023-03-03 00:23:51 +08:00
Daniel Sanchez
55aece674b
Update to waku rc 1 ( #80 )
2023-02-22 15:55:59 +01:00
Daniel Sanchez
8cc37385b3
Waku cached streams consensus adapter ( #70 )
...
* Added waku archive message to waku network backend
* Use cached streams in consensus waku adapter
* Fix mock test
* Add missing import
* Join requests tasks
* Use waku-bindings beta4
* Get stream from archive query method
* Set store protocol active for waku backend
* Implement local query stream response
* Add missing linking flags for new waku-bindings version
* Cleanup unbounded sender fuse/unwrap
* Clippy happy
2023-02-15 16:49:49 +01:00
Al Liu
6b45bf408e
add Debug and constructor for CarnotSettings ( #71 )
2023-02-10 19:04:56 +08:00
Daniel Sanchez
320755d19d
Detach tx broadcast from mempool ( #69 )
...
* Remove send tx method from mempool network adapter
* Add error reporting to add_tx operation in mempool
Delegate broadcasting to external caller
2023-02-08 11:07:09 +01:00
Giacomo Pasini
bbb783e1da
Complete consensus ( #65 )
...
* complete consensus
* review comments
2023-02-08 10:23:55 +01:00
Al Liu
3d3d2760ec
Implement #31 : Mock network backend ( #41 )
...
* relax trait bounds
* mock mempool
* remove unused generic
* add mock network test case
* fix some PR comments
* simplify match branch
* finish mempool adapter example
* clippy happy
* mock consensus
2023-02-01 21:58:23 +08:00
Daniel Sanchez
1e20c3b6cc
Use commitee and view information for consensus network adapter ( #57 )
...
* Add committee and view information to network adapter
* Use committee and view on waku adapter
* Add committee and view info to flat view implementation.
* Clippy happy
* Rename flat -> root
* Split broadcast block iterator into l/r childs
* Extract topics to builder functions
2023-01-31 03:03:45 -08:00
Giacomo Pasini
f5175c74c0
Add flat overlay ( #55 )
2023-01-27 10:37:04 +01:00
Giacomo Pasini
f5a1dd5513
Relax type bounds ( #49 )
2023-01-18 11:30:37 +01:00
Daniel Sanchez
7ff63d4824
Add fountain codes to consensus ( #38 )
...
* Add basic encode/decode test
* Use Stream for trait instead of Iterator
* Removed unnecessary pin
* Add custom fountain error
* Add failing path to tests
* Added docs
* Normalized chunks to bytes
* Added settings initialization for fountain codes trait
* Pipe fountain code through consensus
* Implement broadcast block and block reconstruction for Member Overlay
* Fix failing raptor test
* Use seed for raptorq tests
* Use const for topics instead of static
* Clippy happy
2023-01-10 12:58:51 +01:00
Giacomo Pasini
15f97dcace
fix consensus merge ( #42 )
2023-01-10 12:26:36 +01:00
Giacomo Pasini
0229337414
Add leadership stub ( #22 )
...
* add leadership stub
* move types to core
* clippy happy
2023-01-10 11:33:08 +01:00
Daniel Sanchez
9721e6f5fa
Mempool network adapter ( #30 )
...
* Refactor mempool naming and added settings to backend trait
* Implement mempool networking traits and waku backend
* Transaction networking plumbing in mempool service
* Make TransactionMsg generic
Use bincode to deserialize tx messages
* Make wakuadapter generic over tx and tx-id
* Fix wrong backend type bound
* Adapt to waku beta2
* Thread tx and id together for adapter and pool
* Panic on subscribing error
* Prune unnecessary Id type bounds
* Remove transaction placeholder
* Remove Id bound from waku adapter
* Remove empty transactions module
2023-01-09 17:22:46 +01:00
Daniel Sanchez
664cb3ccd8
Update waku-bindings to beta2 ( #40 )
2023-01-09 12:20:14 +01:00
Daniel Sanchez
fb3fd6f3b1
Nomos core ( #28 )
...
* Extract block to core crate
* Added linking flag for waku
* Cleanup imports
* Add missing core files
* Create more base mods
2022-12-13 15:35:11 +01:00
Giacomo Pasini
7cc9181574
Consensus backbone ( #16 )
...
* tmp
* add peers implem
* update return values
* Backport network consensus adapter (#26 )
* Pipe network adapter with proper types over original implementation
* Hold relay on CarnotConsensus
* Scratch Network adapter methods
* Fix tests blocking CI
* Fix waku feature on network crate
* Fix waku_bindings refs
* Restructure consensus network
* Stream block chunk
* Pipe adapter creation with subscription
* Add placeholder proposal chunk and approval messages
* Implement waku backend
* Clippy happy
* Use full path for tokio oneshot and error types in message_subscriber_channel method
* Clean imports
* small fixes
Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>
Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>
2022-12-13 11:15:54 +01:00