diff --git a/cips/cip-19.md b/cips/cip-19.md index 0030c95..7394a96 100644 --- a/cips/cip-19.md +++ b/cips/cip-19.md @@ -311,6 +311,50 @@ Namespace data may span over multiple rows, in which case all the data is encaps containers. This enables parallelization of namespace data retrieval and certain [compositions](#protocol-compositions) may get advantage of that by requesting containers of a single namespace from multiple servers simultaneously. +#### RangeNamespaceDataID + +RangeNamespaceDataID: encapsulates SampleID, Namespace and identifies the continuous range of shares in the DataSquare, +starting from the given [SampleID](#sampleid) and contains `Length` number of shares. Formated as below: + +```text +RangeNamespaceDataID { + SampleID; + Namespace; + Length: u16; + OmitData: bool; +} +``` + +The fields with validity rules that form RangeNamespaceDataID are: + +[SampleID](#sampleid): it MUST follow formatting and validity rules. + +[**Namespace**][ns]: A fixed-size 29 bytes array representing the Namespace of interest. It MUST follow [Namespace][ns] +formatting and its validity rules. + +Length: uint16 representation of the length of the range. This number MUST NOT exceed the last original share of the DataSquare. + +OmitData: bool flag that specifies whether the user expects the original data along with the proof or not. + +[Serialized](#serialization-for-share-identifiers) RangeNamespaceDataID MUST have a length of 44 bytes. + +#### RangeNamespaceData + +RangeNamespaceData containers encapsulate user-submitted data under [namespaces][ns] within a single or multiple +of [DataSquare][square] rows. It MAY contain [shares][shares] and [NMT][nmt] proof of share inclusion or proof only. + +RangeNamespaceData are protobuf formatted using the following proto3 schema: + +```protobuf +syntax = "proto3"; + +message RangeNamespaceData{ + repeated RowNamespaceData namespaceData = 1; +} +``` + +The fields with validity rules that form [RowNamespaceData](#rownamespacedata-container) container. + ### Core Structures This section is purposed for messages that do not fit into [Identifier](#share-identifiers) or [Container](#share-containers)