2.2.1.4.2 Delta Element Attributes

The protocol defines the following attributes for the delta element.

Gp (Int): This attribute MUST be present and MUST be the delta group number. This is used for delta ordering. If the sequence of the last delta in the creator’s delta log is higher than the sequence on the new delta, then this MUST be one more than the highest group number in the delta log. Otherwise this SHOULD <1> be the highest group number but can be one more than the highest group number in the creator’s delta log. This ensures that the newly created delta is ordered at the end of the creator’s delta log.

Version (String): This attribute MUST be present and MUST be "1,0,0,0".

Seq (Hex String): This attribute MUST be present on normal deltas. It MUST NOT be present on asynchronous or identity-disseminated deltas. It MUST be the delta sequence, which uniquely identifies the delta and is used for delta ordering. The value MUST be 24 characters. The first 12 characters MUST be the Endpoint UID for the creating endpoint. The next eight characters MUST be the creator identifier. The creator identifier MUST either be the same as on the delta most recently created by this endpoint or be a newly generated string that has not previously been used as a creator identifier by this endpoint. In the event that the final four characters of the sequence for the most recently created delta were "FFFF" the creator identifier MUST be newly generated. The final four characters are the hexadecimal representation of the sequence number. If a new creator identifier is used, the sequence number MUST be 0001. Otherwise the sequence number MUST be 1 more than the sequence number on the delta most recently generated by this endpoint.

SubSeq (Hex String): This attribute MUST be present on an asynchronous or identity-disseminated delta. It MUST NOT be present on a normal delta. This is the sequence of an asynchronous or identity-disseminated delta, which uniquely identifies the delta and is used for delta ordering. The value MUST be 32 characters. The first 12 characters MUST be the Endpoint UID for the creating endpoint. The next 8 characters MUST be the creator identifier. The creator identifier MUST either be the same as on the delta most recently created by this endpoint or be a newly generated string that has not previously been used as a creator identifier by this endpoint.

If this endpoint had previously created a normal delta with the same creator identifier, then the next 4 characters MUST be the sequence number from the last normal delta created by this endpoint. Otherwise the next four characters MUST be "0000". In either case, the final 8 characters are the sub-sequence number. This MUST be the hexadecimal representation of a number. This MUST be "00000001" for the first asynchronous or identity-disseminated delta created and for the first asynchronous or identity-disseminated delta which is created since a normal delta was created. It MUST be one more than the previous value sub-sequence value for all subsequent asynchronous and identity-disseminated deltas.

AssimilationPriority (Int): This attribute MUST be present if the delta has an explicit assimilation priority. It MUST NOT be present if the delta does not have an explicit assimilation priority. It MUST NOT be present on asynchronous or identity-disseminated deltas. The assimilation priority is used in delta ordering, as specified in section 3.1.5.2.  The value of this attribute MAY be 0.

BlkNum (Int): This attribute MUST be present if the delta has an explicit assimilation priority. It MUST NOT be present if the delta does not have an explicit assimilation priority. This is the block number. This is used for delta ordering. It MUST be set to one more than the block number of the highest block in the delta log. See section 3.1.5.2.

DLS (String): This attribute MUST be present if the delta has an explicit assimilation priority. It MUST NOT be present if the delta does not have an explicit assimilation priority. This is the delta log state. The value MUST be a comma-delimited string. There MUST be one field in the string for each endpoint in the space. Each field in the string MUST be a 32 character hexadecimal string. The first 8 characters of the field MUST be a hexadecimal representation of the group number of the last normal delta in the delta log created by that endpoint. The next 24 characters MUST be the sequence number of the last normal delta in the delta log created by that endpoint.

Async (Null): This attribute MUST be present if the delta is an async delta. This attribute MUST NOT be present if the delta is not an asynchronous delta.

DepSeq (String): This attribute MUST be present if the delta has explicit dependencies. It MUST NOT be present if the delta does not have explicit dependencies. The explicit dependencies are computed as follows. Find the set of all sources in the dependency graph (see section 3.1.1). These are the immediate dependencies. If the last four characters of the sequence of this delta are not 0001 then remove from the set of immediate dependencies the most recently created delta from this endpoint. The resulting set contains the explicit dependencies. If this set is not empty, then this attribute MUST be a comma-delimited string. The fields in the string MUST be the sequences of the explicit dependencies.

IdDiss (Null): This attribute MUST be present if the delta is an identity-disseminated delta. It MUST NOT be present if this is not an identity-disseminated delta.