Commit Graph

524 Commits

Author SHA1 Message Date
Youngjoon Lee 06a741fe3b
refactor: abstract all maintenance logic into `nomos-mix` crate 2024-12-04 17:23:11 +09:00
Youngjoon Lee f0df03df19
Merge branch 'master' into mix-conn-monitor 2024-12-02 23:31:58 +09:00
Youngjoon Lee 9dda7c79b5
clippy: remove empty lines under comment documents (#927) 2024-12-02 23:30:44 +09:00
Youngjoon Lee 65f0327897
Mix: add connection maintenance 2024-12-02 15:09:49 +09:00
Youngjoon Lee d923328744
Mix: Use Sphinx instead of mock (#924) 2024-11-29 00:07:08 +09:00
Roman Zajic 516d11b50a
chore: Data dispersal storage tests (#921)
* test: send blob with closed receiver

* fix: add tracing-subscriber dep

* test: unwrap on not existing blob_col_idx

* fix: add third node

* test: write orphan blob info into mempool

* test: indexer filtering with app_id

* fix: assert on result returned from indexer

* fix: remove custom logs from verifier service

* fix: remove newline from verifier service
2024-11-28 21:39:56 +08:00
Youngjoon Lee 7b1772a84c
Mix: Re-define max_payload_size parameter (#923) 2024-11-28 11:34:32 +09:00
Youngjoon Lee 63c472e172
Mix: Integrate cover traffic to mix service (#920) 2024-11-28 10:36:43 +09:00
Youngjoon Lee dc286a967a
Mix: Don't panic on SendError in libp2p mix backend (#919) 2024-11-28 10:36:30 +09:00
Youngjoon Lee 0ff16ef5f2
Mix: Packet header encryption (#897)
* Mix: Packet header encryption

* modularization

* apply feedbacks

* use itertools::chain! instead of concat_bytes

* use explicit RoutingFlag type in error

* define size of layered encryption data as const

* remove MixMessage::Settings

* Use proper size for drop message

* remove TODOs
2024-11-28 10:36:14 +09:00
Daniel Sanchez f71db1a7fe
Mix: Fix bug in cover traffic ticket generation (#915)
* Fix bug in cover traffic ticket generation

* fix hash bug

* Clippy happy
2024-11-09 09:06:32 +09:00
Daniel Sanchez 360a9aa558
Add missing bounds for cover traffic (#914) 2024-11-08 04:09:52 +01:00
Álex a3c2fe5d55
Add deserialize to CoverTrafficSettings (#913) 2024-11-08 02:45:21 +01:00
Youngjoon Lee 7b984a4e29
Just use priv/pubkey as Node ID in the mock mix message encoding (#912)
* Just use priv/pubkey as Node ID in the mock mix message encoding

* do not convert private key to public key in mix service
2024-11-08 10:14:34 +09:00
Álex 1c62ced9ea
Add clone and copy to CoverTrafficSettings (#911)
* Add clone and copy to CoverTrafficSettings

* Make settings fields public.
2024-11-07 06:40:22 +01:00
Daniel Sanchez 727b838042
Add rs encode/decode benches (#907) 2024-11-07 05:17:54 +01:00
Daniel Sanchez d73f3c2040
Mix: Implemented cover traffic (#910)
* Implemented cover traffic

* Update as per last specs
2024-11-07 12:22:26 +09:00
gusto a5243c6af2
Tracing: Otlp metrics (#909)
* Metrics layer configuration in nomos-tracing

* Add metrics layer to tracing service

* Use http/proto for prometheus

* Add metrics layer to integration tests

* Use metrics layer in cfgsync

* Plug metric in node and tests

* Remove old metrics

* Use otlp metrics in mempool
2024-11-07 04:25:20 +02:00
Youngjoon Lee e0959644a9
Add Sync bound to BoxStream in blend stream (#908) 2024-11-06 18:59:06 +09:00
Daniel Sanchez 9b29c17e2f
Mix: time abstract from streams (#906)
* Extract temporal async stream

* Make stuff public

* Extract persistent transmission scheduler

* Fix tests

* Push temporal scheduler one layer up

* fix compile errors

* return Poll::Pending instead of Poll::Ready(None) when queue is empty

---------

Co-authored-by: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com>
2024-11-06 14:08:52 +09:00
Youngjoon Lee c84a29db31
Use public keys for the mock mix message encoding (#905)
* add node IDs in message

* integrate

* handle variable-lenght messages in nomos-mix-network

* add trait MixMessage

* make tests work

* clippy happy

* remove println!

* remove unnecssary dependency

* remove unnecessary trait bounds

* remove leftover
2024-11-06 10:49:38 +09:00
Daniel Sanchez d0eafb7635
Abstract blend rng (#904) 2024-11-05 11:24:41 +01:00
Daniel Sanchez 23f93dcc28
Abstract persistent transmission rng (#903) 2024-11-05 09:00:31 +01:00
Daniel Sanchez c237333791
Mix: Use streams in message blend and mix service (#896)
* Use streams in message blend and mix service

* Refactor temporal stream method naming

* Clippy happy

* Clippy test happy

* Undo coupling

* Remove bypassing from blend

* Clippy happy

* Un-entangle tiers

* Send local messages to persistent transmission

Co-authored-by: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com>

---------

Co-authored-by: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com>
2024-11-02 22:57:10 +01:00
Daniel Sanchez 2f92c183ab
Mix: Implement blend as stream + extension (#864)
* First attempt

* Implement blend as stream and extension

* Implement blend as stream and extension
2024-10-30 11:50:15 +01:00
Giacomo Pasini 9b5d4d329e
Move POL definition into nomos-core (#837) 2024-10-30 11:46:51 +01:00
Roman Zajic 07b215e885
fix: Codecov workflow output directory cleanup (#866)
* fix: self-hosted runner needs clean up

* fix: remove on push trigger
2024-10-30 17:15:27 +08:00
Giacomo Pasini 3213453c43
[CL-1] Add proofs to CL txs (#850)
* Add missing tx proofs to complete bundle validation

* address review comments
2024-10-30 10:07:55 +01:00
Roman Zajic 6567a2d890
fix: Codecov workflow conflicting output directory (#862)
* fix: change conflicting output directory name

* test: try to remove unwanted software

* test: run on self-hosted

* fix: remove dispatch on push
2024-10-29 20:27:05 +08:00
Youngjoon Lee 0c0aae0712
Mix: Packet algorithms (#859)
* add keyset

* add packet

* add comments

* add comments

* use functions in sphinx
2024-10-29 17:51:52 +09:00
Daniel Sanchez 9d52297cdf
Mix: temporal as stream extension (#861)
* forward msgs immediately without any processing

* Mix: Offload transmission rate and message processing from libp2p behaviour/handler

* Mix: Core skeleton used in `MixService`

* rename Processor to MessageBlend

* Mix: Implement Persistent Transmission (Tier 1) (#845)

* Mix: Add Persistent Transmission (Tier 1)

* add test

* define Coin struct with Uniform distribution for fast repeated sampling

* use ChaCha12Rng for Coin

* improve comment

* Mix: Implement Temporal Processor (Tier 2) (#846)

* Mix: Add Persistent Transmission (Tier 1)

* Mix: Implement TemporalProcessor

* use pub(crate)

* Mix: Use TemporalProcessor in MessageBlend (#847)

* Mix: Add Persistent Transmission (Tier 1)

* Mix: Implement TemporalProcessor

* Mix: Use TemporalProcessor in MessageBlend

* remove duplicate members in Cargo.toml

* Implement persistent transmission as stream trait extension

* Replicate test for stream version

* Temporal processor as stream extension

---------

Co-authored-by: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com>
2024-10-28 17:12:50 +01:00
Daniel Sanchez e207743f69
Mix: Persistent rate as stream + Extension (#860)
* forward msgs immediately without any processing

* Mix: Offload transmission rate and message processing from libp2p behaviour/handler

* Mix: Core skeleton used in `MixService`

* rename Processor to MessageBlend

* Mix: Implement Persistent Transmission (Tier 1) (#845)

* Mix: Add Persistent Transmission (Tier 1)

* add test

* define Coin struct with Uniform distribution for fast repeated sampling

* use ChaCha12Rng for Coin

* improve comment

* Mix: Implement Temporal Processor (Tier 2) (#846)

* Mix: Add Persistent Transmission (Tier 1)

* Mix: Implement TemporalProcessor

* use pub(crate)

* Mix: Use TemporalProcessor in MessageBlend (#847)

* Mix: Add Persistent Transmission (Tier 1)

* Mix: Implement TemporalProcessor

* Mix: Use TemporalProcessor in MessageBlend

* remove duplicate members in Cargo.toml

* Implement persistent transmission as stream trait extension

* Replicate test for stream version

---------

Co-authored-by: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com>
2024-10-28 15:24:40 +01:00
Youngjoon Lee 7aea30132d
Mix: Implement PersistsentTransmission & Temporal/CryptoProcessor and use them in `MixService` (#844)
* forward msgs immediately without any processing

* Mix: Offload transmission rate and message processing from libp2p behaviour/handler

* Mix: Core skeleton used in `MixService`

* rename Processor to MessageBlend

* Mix: Implement Persistent Transmission (Tier 1) (#845)

* Mix: Add Persistent Transmission (Tier 1)

* add test

* define Coin struct with Uniform distribution for fast repeated sampling

* use ChaCha12Rng for Coin

* improve comment

* Mix: Implement Temporal Processor (Tier 2) (#846)

* Mix: Add Persistent Transmission (Tier 1)

* Mix: Implement TemporalProcessor

* use pub(crate)

* Mix: Use TemporalProcessor in MessageBlend (#847)

* Mix: Add Persistent Transmission (Tier 1)

* Mix: Implement TemporalProcessor

* Mix: Use TemporalProcessor in MessageBlend

* remove duplicate members in Cargo.toml
2024-10-28 17:32:39 +09:00
gusto bebb15f921
Cli: Deserialization and runtime fixes (#854)
* Deserialization and runtime fixes for cli

* Disable dissemination test
2024-10-25 14:56:37 +03:00
gusto 461a7beaf8
Ignore reconstruction test in CI (#856) 2024-10-25 13:48:13 +03:00
gusto 5a2c41574a
Tests: Local debugging setup using grafana (#855)
* Local debug setup for integration tests

* Tests debugging setup readme

* Clippy too smart
2024-10-25 13:39:07 +03:00
gusto 938bcd7926
Nomos tracing crate (#849)
* tmp grafana stack

* Testnet configure otlp tracing

* tmp: Configurable loki and tempo in cfgsync

* Rename nomos-log to nomos-tracing-service

* nomos-tracing crate for tracing layer creation

* Use multiple layers in nomos-tracing-service

* Tracing in tests and testnet

* Tempo volume instead of local host dir
2024-10-24 19:33:04 +03:00
Daniel Sanchez 733f50b521
Abort tasks for da networks backends (#853)
* Abort tasks for da networks backends

* fmt
2024-10-24 18:17:33 +02:00
gusto 193ff82980
Cli: Dissemination and retrieval (#851)
* Remove chat and dissemination from nomos-cli

* Dissemination using executor http client in nomos-cli

* Blob retrieval from indexer using executor http client

* Range reqeust type from nomos-node

* Split executor and validator commands
2024-10-24 16:21:27 +03:00
Youngjoon Lee ce24a03a23
Mix: Offload transmission rate and message processing from libp2p behaviour/handler (#843) 2024-10-24 21:00:26 +09:00
gusto 97330a763f
Reconstruct from incomplete blobs (#852) 2024-10-24 12:01:19 +03:00
Youngjoon Lee 929fb1b7b1
forward msgs immediately without any processing (#841) 2024-10-24 11:44:35 +09:00
Roman Zajic ca786fd264
fix: Coverage workflow to run on ubuntu-22.04 (#836)
* fix: remove Remove unwanted software step

* fix: return Remove unwanted software step
- change to run ubuntu-latest to not occupy self-hosted runner

* fix: remove redundant condition

* fix: remove Checkout submodules step

* test: run on ubuntu-22.04

* test: without Remove unwanted software

* fix: remove on push trigger
2024-10-23 11:12:01 +08:00
Daniel Sanchez 5a85281ec0
Use tokio 1 in deps (#842) 2024-10-22 16:59:42 +02:00
Giacomo Pasini ad88d2bc0c
Add first tx defition (#835)
* Add first tx defition

* address review comments

* review comments
2024-10-22 15:51:54 +02:00
Deep Mondal b0142d7173
Fix: membership comments to documentation (#838)
* rebased

* doc comment add

* fmt
2024-10-22 13:13:29 +02:00
gusto 03854f4c23
Executor in testnet (#839) 2024-10-22 12:36:06 +03:00
gusto 328398ca68
DA: Use executor in tests (#818)
* Use executor in tests instead of nomos node

* Executor config from node config

* Bring generics to the testing game

* Fill in missing gaps in test

* Implement testnode wrapper

* Use sleep on dispersal service instead

* Fix cfgsync

* Clippy happy

* Clippy happy tests

* Mixnet config in tests for validator

* Tests: General config and multiple nodes (#832)

* Use executor in tests instead of nomos node

* Bring generics to the testing game

* Fill in missing gaps in test

* Clippy happy

* Mixnet config in tests for validator

* Derive different types of configs from general in tests

* Validator and executor in cfgsync

---------

Co-authored-by: danielSanchezQ <3danimanimal@gmail.com>

* Tests executor node mix config (#834)

* Merge branch 'master' into tests-executor-node-mix-config

* add mix configs

---------

Co-authored-by: danielSanchezQ <3danimanimal@gmail.com>
Co-authored-by: Youngjoon Lee <5462944+youngjoon-lee@users.noreply.github.com>
2024-10-21 15:38:56 +03:00
Youngjoon Lee 83d9ef7738
Mix: Integrate mix service to the system (#824)
* Mix: remove all of the previous mixnet stuff

* Mix: Add mix service

* Integrate mix service to the node

* Add mock mix service for DA integration tests

* clippy happy

* use explicit function name and add TODOs

* remove the redundant use of tokio::sync::broadcast channel in mix adapter

* add mix service to nomos-executor binary

* removed mock mix backend and related adapters

Use the real mix backend for DA integration tests

* fix compile error generated when merging master

* rename all `MixNetwork*` to `Mix*` for further changes

* use explicit name for adapters

* Mix: Perform broadcasting within the mix service (#829)

* rename relay variables properly
2024-10-21 18:12:47 +09:00
Youngjoon Lee 163cc2ce64
chore: clippy: remove irrefutable `let...else` patterns in DA (#830) 2024-10-20 01:49:48 +09:00