Skip to content
Snippets Groups Projects

Write `get-file` and commands to get the list of blocks from another node

2 files
+ 29
28
Compare changes
  • Side-by-side
  • Inline

Files

+ 22
21
@@ -9,7 +9,7 @@ use serde::{Deserialize, Serialize};
use std::collections::HashSet;
use std::error::Error;
use std::sync::Arc;
use tokio::sync::oneshot::{self, error::RecvError};
use tokio::sync::{mpsc, oneshot::{self, error::RecvError}};
use tracing::{error, info};
use crate::app::AppState;
@@ -41,35 +41,36 @@ pub(crate) enum EncodingMethod {
//
// - behaviour
pub(crate) type Sender<T> = oneshot::Sender<Result<T, Box<dyn Error + Send>>>;
pub(crate) type SenderOneS<T> = oneshot::Sender<Result<T, Box<dyn Error + Send>>>;
pub(crate) type SenderMPSC<T> = mpsc::Sender<Result<T, Box<dyn Error + Send>>>;
#[derive(Debug)]
pub(crate) enum DragoonCommand {
AddPeer {
multiaddr: String,
sender: Sender<()>,
sender: SenderOneS<()>,
},
Bootstrap {
sender: Sender<()>,
sender: SenderOneS<()>,
},
DecodeBlocks {
block_dir: String,
block_hashes: Vec<String>,
output_filename: String,
sender: Sender<()>,
sender: SenderOneS<()>,
},
Dial {
multiaddr: String,
sender: Sender<()>,
sender: SenderOneS<()>,
},
DragoonPeers {
sender: Sender<HashSet<PeerId>>,
sender: SenderOneS<HashSet<PeerId>>,
},
DragoonSend {
block_hash: String,
block_path: String,
peerid: String,
sender: Sender<()>,
sender: SenderOneS<()>,
},
EncodeFile {
file_path: String,
@@ -78,54 +79,54 @@ pub(crate) enum DragoonCommand {
encode_mat_k: usize,
encode_mat_n: usize,
powers_path: String,
sender: Sender<(String, String)>,
sender: SenderOneS<(String, String)>,
},
GetBlockFrom {
peer_id: PeerId,
file_hash: String,
block_hash: String,
sender: Sender<Vec<u8>>,
sender: SenderOneS<Vec<u8>>,
},
GetBlocksInfoFrom {
peer_id: PeerId,
file_hash: String,
sender: Sender<PeerBlockInfo>,
sender: SenderOneS<PeerBlockInfo>,
},
GetBlockList {
file_hash: String,
sender: Sender<Vec<String>>,
sender: SenderOneS<Vec<String>>,
},
GetConnectedPeers {
sender: Sender<Vec<PeerId>>,
sender: SenderOneS<Vec<PeerId>>,
},
GetFile {
file_hash: String,
sender: Sender<String>,
sender: SenderOneS<String>,
},
GetListeners {
sender: Sender<Vec<Multiaddr>>,
sender: SenderOneS<Vec<Multiaddr>>,
},
GetNetworkInfo {
sender: Sender<NetworkInfo>,
sender: SenderOneS<NetworkInfo>,
},
GetPeerId {
sender: Sender<PeerId>,
sender: SenderOneS<PeerId>,
},
GetProviders {
key: String,
sender: Sender<Vec<PeerId>>,
sender: SenderOneS<Vec<PeerId>>,
},
Listen {
multiaddr: String,
sender: Sender<u64>,
sender: SenderOneS<u64>,
},
RemoveListener {
listener_id: u64,
sender: Sender<bool>,
sender: SenderOneS<bool>,
},
StartProvide {
key: String,
sender: Sender<()>,
sender: SenderOneS<()>,
},
}
Loading