mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-25 04:57:17 +00:00
6e56097056
* Initial commit * Add sentry gRPC interface * p2psentry directory * Update README.md * Update README.md * Update README.md * Add go package * Correct syntax * add external downloader interface (#2) * Add txpool (#3) * Add private API (#4) * Invert control.proto, add PeerMinBlock, Separare incoming Tx message into a separate stream (#5) Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local> * Use new p2psentry interface * Remove * Fix lint * Fix lint * Separate upload messages into its own stream (#6) Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local> * Add header upload * Remove * Add upload of block headers * Add block bodies upload * Fix lint * Bugfix for blockBodies * Fix for body upload logging * Print peerId for GetBlockHeaders * Invoke block hashes stage to enable block body upload * Fix test * Fix stuck bodies download Co-authored-by: Artem Vorotnikov <artem@vorotnikov.me> Co-authored-by: b00ris <b00ris@mail.ru> Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
80 lines
1.9 KiB
Protocol Buffer
80 lines
1.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "google/protobuf/empty.proto";
|
|
|
|
package sentry;
|
|
|
|
option go_package = "./sentry;sentry";
|
|
|
|
enum MessageId {
|
|
GetBlockHeaders = 0; GetBlockBodies = 1; GetNodeData = 2;
|
|
NewBlockHashes = 3; BlockHeaders = 4; BlockBodies = 5; NewBlock = 6;
|
|
NodeData = 7;
|
|
}
|
|
|
|
message OutboundMessageData {
|
|
MessageId id = 1;
|
|
bytes data = 2;
|
|
}
|
|
|
|
message SendMessageByMinBlockRequest {
|
|
OutboundMessageData data = 1;
|
|
uint64 min_block = 2;
|
|
}
|
|
|
|
message SendMessageByIdRequest {
|
|
OutboundMessageData data = 1;
|
|
bytes peer_id = 2;
|
|
}
|
|
|
|
message SendMessageToRandomPeersRequest {
|
|
OutboundMessageData data = 1;
|
|
uint64 max_peers = 2;
|
|
}
|
|
|
|
message SentPeers { repeated bytes peers = 1; }
|
|
|
|
enum PenaltyKind { Kick = 0; }
|
|
|
|
message PenalizePeerRequest {
|
|
bytes peer_id = 1;
|
|
PenaltyKind penalty = 2;
|
|
}
|
|
|
|
message PeerMinBlockRequest {
|
|
bytes peer_id = 1;
|
|
uint64 min_block = 2;
|
|
}
|
|
|
|
message InboundMessage {
|
|
MessageId id = 1;
|
|
bytes data = 2;
|
|
bytes peer_id = 3;
|
|
}
|
|
|
|
message Forks {
|
|
bytes genesis = 1;
|
|
repeated uint64 forks = 2;
|
|
}
|
|
|
|
message StatusData {
|
|
uint64 network_id = 1;
|
|
bytes total_difficulty = 2;
|
|
bytes best_hash = 3;
|
|
Forks fork_data = 4;
|
|
}
|
|
|
|
service Sentry {
|
|
rpc PenalizePeer(PenalizePeerRequest) returns(google.protobuf.Empty);
|
|
rpc PeerMinBlock(PeerMinBlockRequest) returns(google.protobuf.Empty);
|
|
rpc SendMessageByMinBlock(SendMessageByMinBlockRequest) returns(SentPeers);
|
|
rpc SendMessageById(SendMessageByIdRequest) returns(SentPeers);
|
|
rpc SendMessageToRandomPeers(SendMessageToRandomPeersRequest)
|
|
returns(SentPeers);
|
|
rpc SendMessageToAll(OutboundMessageData) returns(SentPeers);
|
|
rpc SetStatus(StatusData) returns (google.protobuf.Empty);
|
|
rpc ReceiveMessages(google.protobuf.Empty) returns (stream InboundMessage);
|
|
rpc ReceiveUploadMessages(google.protobuf.Empty) returns (stream InboundMessage);
|
|
rpc ReceiveTxMessages(google.protobuf.Empty) returns (stream InboundMessage);
|
|
}
|