erigon-pulse/interfaces/downloader/downloader.proto

47 lines
1.1 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
import "google/protobuf/empty.proto";
import "types/types.proto";
option go_package = "./downloader;downloader";
package downloader;
service Downloader {
rpc Download (DownloadRequest) returns (google.protobuf.Empty) {}
rpc Stats (StatsRequest) returns (StatsReply) {}
}
message DownloadItem {
string path = 1;
types.H160 torrent_hash = 2; // single hash will be resolved as magnet link
}
message DownloadRequest {
repeated DownloadItem items = 1; // single hash will be resolved as magnet link
}
message StatsRequest {
}
message StatsReply {
// First step on startup - "resolve metadata":
// - understand total amount of data to download
// - ensure all pieces hashes available
// - validate files after crush
// - when all metadata ready - can start download/upload
int32 metadataReady = 1;
int32 filesTotal = 2;
int32 peersUnique = 4;
uint64 connectionsTotal = 5;
bool completed = 6;
float progress = 7;
uint64 bytesCompleted = 8;
uint64 bytesTotal = 9;
uint64 uploadRate = 10; // bytes/sec
uint64 downloadRate = 11; // bytes/sec
}