Commit Graph

486 Commits

Author SHA1 Message Date
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
Youngjoon Lee 26ae6c0a5d
CI: Update Rust 1.82 (#831) 2024-10-20 00:17:22 +09:00
Daniel Sanchez ba726bad84
Remove task from consensus network adapter (#828) 2024-10-18 16:25:08 +02:00
Daniel Sanchez 41a9387b4b
DA: Executor dispersal auto stream (#826)
* Re-structure connection handling properly

* Handle event based connections

* Fix test

* Handling auto reconnection for dispersal behaviour

* Ignore cli test
2024-10-17 14:10:28 +00: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 cb86528a4a
Mix: remove all of the previous mixnet stuff (#822) 2024-10-17 00:19:20 +09:00
Daniel Sanchez 228d4b2147
Da: Implement verifier adapter for executor network backend (#816)
* Implement adapter for executor
Refactored into common macro

* Executor and node indexer types

* Sampling service generic over network adapter

* Verifier changes tmp

---------

Co-authored-by: Gusto <bacvinka@gmail.com>
2024-10-10 08:16:25 +00:00
Daniel Sanchez 461a9cacdf
DA: Executor sampling adapter (#815)
* Add macro to share adapter implementation for both validator and executor

* Fix imports in binaries

* Adapt cryptarchia types in binaries

* Fix tests build
2024-10-09 10:32:00 +00:00
gusto 0d6e14c773
Executor: Dispersal http endpoint (#814)
* Data dispersal endpoint in executor

* Use path consts in openapi defs
2024-10-09 10:52:41 +03:00
Daniel Sanchez 11ddb23795
Ci: kzg bench update (#813)
* Update kzg benches

* Add bench check to CI
2024-10-08 16:39:38 +00:00
Daniel Sanchez c983eb2260
Add Executor client (#811)
* Refactor paths into common modules

* Kickoff http client

* Add blob to send blob

* Refactor publish method. Will reuse older endpoint in further prs

* Use paths in tests

* Fix more tests
2024-10-08 15:43:58 +00:00
gusto 07c9096924
Integrate dispersal service into executor node (#812) 2024-10-08 17:03:38 +03:00
gusto 22dfb51eba
Executor: Dispersal service mempool adapter (#810)
* Pass metadata when dispersing

* Sketch of executor dispersal mempool adapter
2024-10-08 11:03:34 +03:00
Daniel Sanchez a3cea9a09c
DA: Implement data reconstruction from original columns (#808)
* Implement data reconstruction from original columns

* Make reconstruction public
2024-10-08 07:15:41 +00:00
Alexis c03dec4b3d
ci: build on self-hosted runner (#799)
Signed-off-by: Alexis Pentori <alexis@status.im>
2024-10-07 15:16:02 +03:00
Daniel Sanchez 98e9cde66d
DA: Executor dispersal service (#806)
* Added basic dispersal structure

* Expand impl

* Pull events from network service

* Implement network adapter
Tie types together in service

* Fill up service processing

* Tie up types in kzgrs backend implementation

* Implement disperse

* Pipe encode and dispersal

* Create mempool adapter

* Add mempool adapter

* Tiny comment
2024-10-04 13:06:42 +00:00
gusto d17afcbe4d
Replication behavior membership test (#805) 2024-10-03 20:37:13 +03:00
gusto d7fe88f30b
Remove graylog and related containers (#804) 2024-10-03 14:36:36 +03:00
Caio 93de3afaf9
chose: fk20 benches clippy happy (#800) 2024-10-03 04:43:46 +00:00
Deep Mondal 563bf6f948
DA: kzg main testing parallelize proofs checks (#803) 2024-10-03 04:37:53 +00:00
gusto 66fc046091
Testnet: Kzgrs config (#797)
* Remove out of place wait_online test param

* Cfgsync crate for testnet startup

* Config dispersal to node hosts

* Remove etcd dep and obsolete bash scripts

* Kzgrs test params in testnet

* Nodes listen on all interfaces
2024-10-02 14:26:39 +03:00
gusto b01c4dd8c7
DA: Executor http api (#801)
* Node api handlers and backend modules

* Executor axum api backend

* Expose config functions from node

* Descriptive generics names in http api

* Nomos node metrics feature
2024-10-02 12:18:59 +03:00
Daniel Sanchez 9ecd738d6e
DA: Executor network service (#795)
* Refactor common things in backends

* Further extract to common

* Extract dial_peers

* Pipe out executor events

* Add wrapper settings

* Dial up dispersal peers

* Clippy happy

* dial_peers -> dial_validator_subnetwork_peers

* Add members list to membership trait

* Implement peers selection and dialing up from specification

* Fix tests

* Fix tiny doc
2024-10-01 12:44:13 +00:00
Roman Zajic 2672b7bde4
fix: Coverage and PR workflows - no space left on device (#798)
* test: remove LLVM profiling

* fix: add on push

* test: use release mode

* test: remove Android support from the runner

* test: return back LLVM profiling
- remove dotnet

* fix: remove on push condition

* fix: prune-vm action added

* fix: move actions-checkout

* fix: PR workflow

* fix: remove on push condition from codecov
2024-09-30 23:46:18 +08:00
gusto a30a809ea1
CI: Jenkins risczero setup (#770)
* Remove dep

* Use cargo as jenkins user

* Ensure that toolchain directory is setup before installation

* Debian 12 and gcc deps

* Env variables for risc zero dev mode

* Update testnet and base dockerfiles

* Env vars comments
2024-09-26 18:00:47 +03:00
Daniel Sanchez d83380cf02
Add default template (#769) 2024-09-26 12:41:26 +02:00
Daniel Sanchez 02b6969967
DA: Executor behaviour + swarm (#768)
* Add executor behaviour

* Implement executor behaviour

* Implement executor swarm

* Fix comment

* Clippy happy

* Bubbled up utility methods on swarms
2024-09-26 09:58:49 +00:00
Daniel Sanchez a19a8e8112
Specification related PRs template (#734)
* Added template for specification related PRs

* Added new template
2024-09-26 09:57:53 +00:00
gusto 25270de680
CI: Nighly tests update and docker build gh workflow (#767)
* Github workflow for docker images

* Fix use sections in gh workflow

* Update nightly integration tests
2024-09-25 20:18:56 +03:00
Daniel Sanchez f689372146
Add executor binary crate (#766)
* Create executor binary reusing validator lib

* Use executor in main

* Use storage from config
2024-09-25 09:34:45 +00:00
gusto 915fe3f098
DA: Replication integration (#764)
* Handle replication messages

* Multiple indexes for kzgrs verifier

* Add rocksdb storage to node config

* Configurable delay before sending blob info to mempool

* Dial peers in same subnet for replication

* Update da integration tests

* Update nomos node tests

* Load kzgrs config from file

* SLOW_ENV set true for macos CI

* Assert retrieved blobs in dissemination test

* Kzgrs params deserialize unchecked
2024-09-25 11:27:39 +03: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
Roman Zajic 8142feaa8c
chore: Da dispersal unit tests update (#720)
* test: prepare to call stream disperse

* fix: formatting

* fix: remove test_stream_disperse_error_cases

* test: utils for cli

* test: test_dispersal_with_swarms
- runtime preparation

* fix: cleanup
- tracing_subscriber

* fix: rewrite without using sampling

* fix: outstanding space

* fix: use executor.run

* fix: formatting

* test: add replies handling

* fix: formatting

* fix: switch to logging system

* fix: executor should wait for correct event
- cleanup

* Update nomos-cli/src/da/network/swarm.rs

Fix ignore value syntax.

Co-authored-by: gusto <bacv@users.noreply.github.com>

---------

Co-authored-by: gusto <bacv@users.noreply.github.com>
2024-09-24 20:37:56 +08:00
gusto 9f4f139771
DA: Integration tests for sampling and dispersal (#733)
* Use common test node in da tests

* Pick ranged subnetids when sampling

* Da network settings for integration tests

* Predefined node keys and deterministic rng

* Disperse kzgrs encoded blob

* Cli swarm fixes

* Increase indexer integration test timeout

* Check dispersal responses in cli da adapter

* DA membership configuration in node tests

* Nomos Cli act as a node in tests

* Increase timeout for dispersal tests

* Different node configurations for da tests

* Collect unique ids for sampling
2024-09-18 16:22:36 +03:00
Roman Zajic fadf6d010b
chore: Improve coverage workflow (#738)
* fix: reduce space requirements
- run tests to get coverage

* fix: schedule on 3am UTC
- use binstall for grcov
2024-09-18 08:43:35 +08:00
Youngjoon Lee 8a1e705792
DA: Fix compliation errors in KZG backend bench (#737) 2024-09-17 18:32:11 +09:00
Youngjoon Lee d2db454765
Add missing error handling: `LedgerError::ParentNotFound` (#630) 2024-09-13 15:07:47 +02:00
Giacomo Pasini b7865b27ec
fix coverage workflow (#736)
* fix coverage workflow

* fix action

* do not run tests

* build binaries

* clean before tests

* only compile tests

* clean dir

* remove intermediate artficats
2024-09-13 15:05:50 +02:00
Giacomo Pasini f2dfd468ac
Integrate PoL into consensus (#721)
* Add PoL crate

* promote cl crate to nomos-node repo

* Integrate PoL into consensus

* remove metal feature

* install risc0 on ci

* more risc0 install

* fix da tests

* pass gh token

* fix tests and run in release mode

* clippy allow

* do not run in release mode

* drop windows in CI

* execute heavy tests nightly or accelerated in macos

* fmt

* configurable slot time

* use xlarge workers

* fix workflows

* remove unstable test

* use xlarge runners

* separate integrations tests

* fix features

* add token to ci

* downgrade runners

* fix integration tests

* revert testing changes and use risc0 dev mode

* fix coverage risc0 install

* increase slot time

* use cargo binstall

* clean before coverage
2024-09-11 01:59:09 +02:00