pub struct DeltaPayload {
pub id: [u8; 32],
pub parents: Vec<[u8; 32]>,
pub payload: Vec<u8>,
pub hlc_timestamp: u64,
pub expected_root_hash: [u8; 32],
}Expand description
A delta payload for transport.
Contains the delta data and metadata needed for application.
Fields§
§id: [u8; 32]Unique delta ID (content hash).
parents: Vec<[u8; 32]>Parent delta IDs (for causal ordering).
payload: Vec<u8>Serialized delta operations (Borsh-encoded).
hlc_timestamp: u64HLC timestamp when the delta was created.
expected_root_hash: [u8; 32]Expected root hash after applying this delta.
This hash is captured by the originating node at delta creation time. It serves two purposes:
- Linear history: When deltas are applied in sequence without concurrent branches, receivers can verify they reach the same state.
- DAG consistency: When concurrent deltas exist, this hash ensures nodes build identical DAG structures even if their local root hashes differ due to different merge ordering. The hash reflects the originator’s state, not a universal truth.
Verification strategy: Compare against this hash only when applying deltas from a single linear chain. For concurrent/merged deltas, use the Merkle tree reconciliation protocol instead.
Implementations§
Source§impl DeltaPayload
impl DeltaPayload
Sourcepub fn is_genesis(&self) -> bool
pub fn is_genesis(&self) -> bool
Check if this delta has no parents (genesis delta).
Trait Implementations§
Source§impl BorshDeserialize for DeltaPayload
impl BorshDeserialize for DeltaPayload
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for DeltaPayload
impl BorshSerialize for DeltaPayload
Source§impl Clone for DeltaPayload
impl Clone for DeltaPayload
Source§fn clone(&self) -> DeltaPayload
fn clone(&self) -> DeltaPayload
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DeltaPayload
impl Debug for DeltaPayload
Source§impl PartialEq for DeltaPayload
impl PartialEq for DeltaPayload
impl StructuralPartialEq for DeltaPayload
Auto Trait Implementations§
impl Freeze for DeltaPayload
impl RefUnwindSafe for DeltaPayload
impl Send for DeltaPayload
impl Sync for DeltaPayload
impl Unpin for DeltaPayload
impl UnsafeUnpin for DeltaPayload
impl UnwindSafe for DeltaPayload
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more