* 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
* Build up validator behaviour and swarm
* Refactor modules
* More barebones structure on validator swarm
* Refactor protocols into submodule
* Pipe up events stream into swarm impl
* Clippy happy on tests
* WIP: cli dispersal reenable
* WIP: Nomos da network mock in cli app
* Mock adapter with KzgEncoder in cli
* Send BlobInfo to the mempool
* KzgrsSettings in dispersal cli app
* Dispersal backend mock for executor
* build_attestation_message to build_blob_id refactor
* Pass blob metadata via the cli args
* Fix reading messages state machine
* Improve waker on behaviour
* Rename test
* First sketch
* Implement replication
* Refactor protocols names
* Clippy happy
* expose behaviour
* Return dummy on outbound for validator behaviour
* Implement behaviour, lacks streams handling
* Cleanup
* Implement stream handling
* Add some documentation and comments
* Clippy fixes after rebase
* Move all neighbours to test_utils module
* Executor only outgoing streams
* First assault at testing behaviours
* Add debug instead of traces
* Added more logs
* Bullshitting tests
* Fix outstream handling, offers hook to send new peer streams
* Fix blob dispersal handling
* Refactor test, use new api
* Imports cleanup
* Working test
* Add docs
* Non overlapping test port
* DispersedBlobData in nomos-core
* Implement BlobInfo in kzgrs-backend
* Fullreplication BlobInfo
* Use block info in da mempool
* Blob info in consensus
* Blob info in da-verifier
* BlobInfo in da indexer
* BlobInfo in nomos-api
* Verifier and Indexer integration tests with BlobInfo
* Blob info in nomos node
* Import DaEncoder trait
* Fix attempt 1 - nonworking
* Added missing open stream request
* Expand outbound lifecycle to openstream state
* Fix reading messages state machine
* Use tracing
* Remove unnecessary loop
* Use stream style for test
* Send 10 messages
* Use quic in test
* Sends and receives
* cargo update fixed the panic
* Refactor test
* reschedule polls
* Clippy cleanup
* Remove leftover features
* Cargo fmt
* Improve waker on behaviour
* Rename test
* Split message definitions for broadcast, dispersal and sampling
* Expose dispersal messages via crate
* Create nomos-da-messages crate
* From trait implementations for messages
* Rename broadcast to replication
* Prost crate integration for DA
* Packing and unpacking for protobuf messages
* Minimal helper macro for dispersal message
* Use protoc in gh actions
* Move dispersal related protocol to nomos-da-dispersal
* test: add metadata getter test for VidCertificate
* fix: uncomment assertion for SeqCst
* fix: formatting
* test: get Metadata for Certificate
- generate signature for Certificate
* test: generate hash for Attestation
* fix: add assertion for generate hash
* fix: wrap in test module
- add helper functions
* fix: undo wrap in test module
* test: Hash implementation for Certificate with default Hasher
* Api endpoint to add blob and receive attestation
* Nomos DA Certificate serialization
* Kzgrs verification params provider
* Indexer http api using kzgrs
* Plug da http endpoints into nomos api
Otherwise we get:
```
ERROR: for libp2p-node-1 pull access denied for nomos, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
ERROR: for libp2p-node-2 pull access denied for nomos, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
ERROR: for libp2p-node-3 pull access denied for nomos, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
ERROR: for chatbot pull access denied for nomos, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
ERROR: pull access denied for nomos, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
```
Required for:
* https://github.com/status-im/infra-misc/pull/294
Signed-off-by: Jakub Sokołowski <jakub@status.im>
* test: getters for Branches
- derive(PartialEq) for Branch
* fix: format code
* test: Slot genesis and add
* fix: change expect message
* test: add ParentMissing error case
- derive(PartialEq) only for tests
* fix: false positive for ParentMissing
* fix: add PartialEq to derive for Branch
* fix: unwrap once only
* fix: simply create an Id
* fix: remove inappropriate meaning
* fix: simplify unwrap for branches.get()
* Use fft for rs
* Specify evaluation domains
* Fix domains in verifier, decoder and dispersal
* Fix domains in verifier, decoder and dispersal
* Fix size in verifier to fit tests