pub struct ChunkRequest {
pub content_cid: ContentCid,
pub chunk_index: u64,
pub challenge_nonce: [u8; 32],
pub requester_peer_id: PeerIdString,
pub requester_public_key: [u8; 32],
pub timestamp_ms: i64,
}Expand description
Chunk request for bandwidth proof protocol.
Fields§
§content_cid: ContentCidIPFS CID of the content.
chunk_index: u64Index of the requested chunk.
challenge_nonce: [u8; 32]Random nonce to prevent replay attacks.
requester_peer_id: PeerIdStringRequester’s peer ID.
requester_public_key: [u8; 32]Requester’s public key for verification.
timestamp_ms: i64Request timestamp (Unix timestamp milliseconds).
Implementations§
Source§impl ChunkRequest
impl ChunkRequest
Sourcepub fn new(
content_cid: impl Into<String>,
chunk_index: u64,
challenge_nonce: [u8; 32],
requester_peer_id: impl Into<String>,
requester_public_key: [u8; 32],
) -> Self
pub fn new( content_cid: impl Into<String>, chunk_index: u64, challenge_nonce: [u8; 32], requester_peer_id: impl Into<String>, requester_public_key: [u8; 32], ) -> Self
Create a new chunk request with current timestamp.
§Example
use chie_shared::types::bandwidth::ChunkRequest;
let nonce = [42u8; 32];
let pubkey = [1u8; 32];
let request = ChunkRequest::new(
"bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
0,
nonce,
"12D3KooWRequesterPeerID",
pubkey,
);
assert_eq!(request.content_cid, "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi");
assert_eq!(request.chunk_index, 0);
assert!(request.is_timestamp_valid());Sourcepub fn is_timestamp_valid(&self) -> bool
pub fn is_timestamp_valid(&self) -> bool
Check if the request timestamp is still valid.
Trait Implementations§
Source§impl Clone for ChunkRequest
impl Clone for ChunkRequest
Source§fn clone(&self) -> ChunkRequest
fn clone(&self) -> ChunkRequest
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 ChunkRequest
impl Debug for ChunkRequest
Source§impl<'de> Deserialize<'de> for ChunkRequest
impl<'de> Deserialize<'de> for ChunkRequest
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ChunkRequest
impl RefUnwindSafe for ChunkRequest
impl Send for ChunkRequest
impl Sync for ChunkRequest
impl Unpin for ChunkRequest
impl UnwindSafe for ChunkRequest
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