syntax = "proto3"; package signer; service Signer { // This API accepts rows of encoded blobs to sign from clients. The node will verify the blobs existance in `DAEntrance` contract and validate the received rows. rpc BatchSign(BatchSignRequest) returns (BatchSignReply) {} // This retrieves the requested encoded rows from the DA node database. rpc BatchRetrieve(BatchRetrieveRequest) returns (BatchRetrieveReply) {} rpc GetStatus(Empty) returns (StatusReply) {} } message SignRequest { // epoch number of DASigners internal contract uint64 epoch = 1; // quorum id of DASigners internal contract uint64 quorum_id = 2; // erasure commitment generated by encoder bytes erasure_commitment = 3; // merkle root of data bytes storage_root = 4; // encoded slices of data repeated bytes encoded_slice = 5; } message BatchSignRequest { repeated SignRequest requests = 1; } message BatchSignReply { // signatures for requests repeated bytes signatures = 1; } message RetrieveRequest { // epoch number of DASigners internal contract uint64 epoch = 1; // quorum id of DASigners internal contract uint64 quorum_id = 2; // merkle root of data bytes storage_root = 3; // required row indexes repeated uint32 row_indexes = 4; } message BatchRetrieveRequest { repeated RetrieveRequest requests = 1; } message Slices { repeated bytes encoded_slice = 1; } message BatchRetrieveReply { // required encoded slices repeated Slices encoded_slice = 1; } message StatusReply { uint64 status_code = 1; string entrance_contract = 2; } message Empty {}