Author: @Daniel Sanchez Quiros @Thomas Lavaur

Reviewers: 🟢@Álvaro Castro-Castilla 🟢@Daniel Kashepava 🟢@Gusto Bacvinka 🟢@Marcin Pawlowski

Introduction

NomosDA dispersal is the sub-protocol, used by encoders, for publishing data onto the NomosDA network. This document describes the protocol structure abstracted from the network construction that can be found in the NomosDA network specification. This document also describes the interaction between encoders and validators.

NomosDA dispersal aims to provide encoders with a simple method of distributing data into the NomosDA subnetworks. The protocol needs to be:

Overview

NomosDA dispersal is a sub-protocol for encoders delivering encoded shares of data to the NomosDA network. Encoders listed in the Service Declaration Protocol (SDP) as stipulated in the NomosDA network specification are entitled to publish data.

Encoders connected to each NomosDA subnetwork encode data blobs as per the NomosDA Encoding Protocol . Then, shares of the encoded data are distributed into each NomosDA subnetwork (0 to num_subnets-1). Encoders wait for an acknowledgment that the encoded data was received by a DA node and publish a set of metadata to the mempool.

Optionally, encoders can perform sampling to double-check that the data was distributed properly without trust issues.

Construction

Before the dispersal protocol can be executed, the minimum number of nodes (unique ProviderIds from declarations) must be retrieved from the SDP (Minimum Network Size). After this requirement is met, the protocol operates as described below.

The dispersal protocol starts with data to be encoded, then it works as follows:

  1. Encoder encodes data as defined in the NomosDA Encoding Protocol. The encoding process **prepare the data to be dispersed.
  2. When the data is encoded successfully, the encoder sends a Mantle Transaction that includes a single BLOB operation to one selected DA node (for every subnetwork).
  3. DA node sends a Mantle Transaction acknowledgement message.
  4. DA node verifies the Mantle Transaction. If the transaction is valid then it accepts encoded data; otherwise the data will be silently rejected.
  5. Encoder after reception of Mantle Transaction acknowledgment sends encoded data to DA node (to each of the subnetworks) — disperses data. Encoders are fully connected to each of the NomosDA subnetworks. Encoders keep communication streams with their chosen DA nodes open for further dispersal events.
  6. DA node receives encoded data share and acknowledges its reception.