* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* fix coverage workflow
* fix action
* do not run tests
* build binaries
* clean before tests
* only compile tests
* clean dir
* remove intermediate artficats
* 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
* first iteration, does not compile due to incompatible types
* Trigger sampling in node (#725)
* Sampling service in node
* Sampling in da integration tests
---------
Co-authored-by: gusto <bacv@users.noreply.github.com>
* Add sampling relay to consensus and massage all generics
* Pipe in sampling filtering of blob info
* Add mark in block
* Pipe validate block
* Refactor mark_in_block -> mark_complete
* Fix generics on tests
* Fix generics on tests
* Fix rebase
* Cargo fmt after rebase
* Sampling service configuration
* Sampling service config in indexer integration tests
---------
Co-authored-by: Gusto <bacvinka@gmail.com>
* Dissemination app in tests module
* Expose remaining executor settings
* Configure peer ids and addresses for cli tests
* Add BlobInfo to mempool via api
* Expose columns number args for nomos cli
* Spawn all nodes in nodes config
* initial
* first iteration, lots of lifetime and trait issues, does not compile
* Daniel/sampling service (#706)
* Implement sampling service
* Implement libp2p adapter listen_to_sampling_messages
* temporary empty backend mod; implement start_sampling
* addressed PR comments; moved random sampling subnet list generation to backend (todo impl)
* addressed PR nitpicks
* remove empty mod which was failing CI due to cargo fmt
* removed unused code
---------
Co-authored-by: holisticode <holistic.computing@gmail.com>
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
* Nomos cli executor swarm
* Executor swarm and backend in nomos-cli
* Libp2p executor adapter in nomos cli
* Update nomos-cli/src/da/network/backend.rs
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
* Use FillFromNodeList with executor backend
* Integrate Executor backend into the cli
* Use subnetwork id where appropriate
* Common clone_deserialize_error
* Use thiserror
* Minimal dialing in cli swarm
* Send dispersal messages async
* Remove unused connection id
---------
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
* ColumnIndex type in Blob trait
* Store blob id and column after verification
* Use blob_id+column_idx storage scheme in indexer
* Store and load multiple columns for the same blob
* Add comments