Commit Graph

33 Commits

Author SHA1 Message Date
Youngjoon Lee eebe305544
wip 2024-11-22 19:08:50 +09:00
Youngjoon Lee cb708de1b0
Mix: Re-define max_payload_size parameter 2024-11-22 18:38:18 +09:00
Youngjoon Lee 006f5dba89
Use proper size for drop message 2024-11-21 11:12:23 +09:00
Youngjoon Lee e68f927e2b
remove MixMessage::Settings 2024-11-21 10:58:12 +09:00
Youngjoon Lee 30eefbbe57
define size of layered encryption data as const 2024-11-20 19:33:08 +09:00
Youngjoon Lee 6fa207167c
use explicit RoutingFlag type in error 2024-11-20 19:21:52 +09:00
Youngjoon Lee a0154853b8
use itertools::chain! instead of concat_bytes 2024-11-20 19:07:15 +09:00
Youngjoon Lee 3d32942725
apply feedbacks 2024-11-20 18:03:57 +09:00
Youngjoon Lee 94dbd35fea
modularization 2024-11-20 18:03:10 +09:00
Youngjoon Lee bfa4fe617f
Mix: Packet header encryption 2024-11-20 11:34:06 +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 d73f3c2040
Mix: Implemented cover traffic (#910)
* Implemented cover traffic

* Update as per last specs
2024-11-07 12:22:26 +09: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
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
Youngjoon Lee ce24a03a23
Mix: Offload transmission rate and message processing from libp2p behaviour/handler (#843) 2024-10-24 21:00:26 +09:00
Youngjoon Lee 929fb1b7b1
forward msgs immediately without any processing (#841) 2024-10-24 11:44:35 +09:00
Daniel Sanchez 5a85281ec0
Use tokio 1 in deps (#842) 2024-10-22 16:59:42 +02: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 8dbcf560f9
Mix: Add mix service (#823)
* Mix: remove all of the previous mixnet stuff

* Mix: Add mix service

* refactor extract_peer_id and add comments
2024-10-17 18:12:26 +09:00
Youngjoon Lee ca0eb824aa
Mix: NetworkBehaviour (#765)
* Mix: NetworkBehaviour

* use Waker.wake()

* make clippy happy by defining Config instead of Behaviour::Default
2024-09-24 22:39:59 +09:00