pub struct OuterGradient {
pub task_id: String,
pub round: u32,
pub fragment: u32,
pub trainer_did: String,
pub trainer_address: Address,
pub safetensors_hash: Hash,
pub payload_bytes: u64,
pub inner_step_count: u64,
pub submitted_at: Timestamp,
pub signature: Signature,
pub attestation: Option<TrainingAttestation>,
}Expand description
A trainer’s outer gradient submission for one fragment in one round.
The actual tensor payload is referenced by safetensors_hash and lives
off-chain (gossip topic + content-addressed object store). The Rust
protocol layer aggregates over ndarray views of the decoded payload;
it never holds the raw tensor in memory.
Fields§
§task_id: StringTask this submission is for.
round: u32Outer round number (0-indexed).
fragment: u32Fragment index within the architecture (0..fragment_count).
trainer_did: StringTrainer DID.
trainer_address: AddressAddress bound to the trainer’s TDIP identity.
safetensors_hash: HashSHA-256 of the safetensors payload. Aggregator pulls the payload by this hash; if it doesn’t match, the submission is rejected.
payload_bytes: u64Payload size in bytes (for bandwidth accounting).
inner_step_count: u64Vector clock entry: number of inner SGD steps the trainer had completed when this gradient was emitted. Decoupled DiLoCo’s asynchronous learner support hinges on this.
submitted_at: TimestampSubmission timestamp.
signature: SignatureTrainer’s signature over the canonical bytes of all fields above.
attestation: Option<TrainingAttestation>Optional TEE attestation (Verified and Confidential tiers).
Trait Implementations§
Source§impl Clone for OuterGradient
impl Clone for OuterGradient
Source§fn clone(&self) -> OuterGradient
fn clone(&self) -> OuterGradient
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OuterGradient
impl Debug for OuterGradient
Source§impl<'de> Deserialize<'de> for OuterGradient
impl<'de> Deserialize<'de> for OuterGradient
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for OuterGradient
impl PartialEq for OuterGradient
Source§fn eq(&self, other: &OuterGradient) -> bool
fn eq(&self, other: &OuterGradient) -> bool
self and other values to be equal, and is used by ==.