64 lines
1.9 KiB
Protocol Buffer
64 lines
1.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package mpc.router.v1;
|
|
|
|
option go_package = "github.com/rwadurian/mpc-system/api/grpc/router/v1;router";
|
|
|
|
// MessageRouter service handles MPC message routing
|
|
service MessageRouter {
|
|
// RouteMessage routes a message from one party to others
|
|
rpc RouteMessage(RouteMessageRequest) returns (RouteMessageResponse);
|
|
|
|
// SubscribeMessages subscribes to messages for a party (streaming)
|
|
rpc SubscribeMessages(SubscribeMessagesRequest) returns (stream MPCMessage);
|
|
|
|
// GetPendingMessages retrieves pending messages (polling alternative)
|
|
rpc GetPendingMessages(GetPendingMessagesRequest) returns (GetPendingMessagesResponse);
|
|
}
|
|
|
|
// RouteMessageRequest routes an MPC message
|
|
message RouteMessageRequest {
|
|
string session_id = 1;
|
|
string from_party = 2;
|
|
repeated string to_parties = 3; // Empty for broadcast
|
|
int32 round_number = 4;
|
|
string message_type = 5;
|
|
bytes payload = 6; // Encrypted MPC message
|
|
}
|
|
|
|
// RouteMessageResponse confirms message routing
|
|
message RouteMessageResponse {
|
|
bool success = 1;
|
|
string message_id = 2;
|
|
}
|
|
|
|
// SubscribeMessagesRequest subscribes to messages for a party
|
|
message SubscribeMessagesRequest {
|
|
string session_id = 1;
|
|
string party_id = 2;
|
|
}
|
|
|
|
// MPCMessage represents an MPC protocol message
|
|
message MPCMessage {
|
|
string message_id = 1;
|
|
string session_id = 2;
|
|
string from_party = 3;
|
|
bool is_broadcast = 4;
|
|
int32 round_number = 5;
|
|
string message_type = 6;
|
|
bytes payload = 7;
|
|
int64 created_at = 8; // Unix timestamp milliseconds
|
|
}
|
|
|
|
// GetPendingMessagesRequest retrieves pending messages
|
|
message GetPendingMessagesRequest {
|
|
string session_id = 1;
|
|
string party_id = 2;
|
|
int64 after_timestamp = 3; // Get messages after this timestamp
|
|
}
|
|
|
|
// GetPendingMessagesResponse contains pending messages
|
|
message GetPendingMessagesResponse {
|
|
repeated MPCMessage messages = 1;
|
|
}
|