syntax = "proto3"; package vmproto; message InitializeRequest { uint32 dbServer = 1; bytes genesisBytes = 2; uint32 engineServer = 3; } message InitializeResponse {} message BootstrappingRequest {} message BootstrappingResponse {} message BootstrappedRequest {} message BootstrappedResponse {} message ShutdownRequest {} message ShutdownResponse {} message CreateHandlersRequest {} message CreateHandlersResponse { repeated Handler handlers = 1; } message Handler { string prefix = 1; uint32 lockOptions = 2; uint32 server = 3; } message BuildBlockRequest {} message BuildBlockResponse { bytes id = 1; bytes parentID = 2; bytes bytes = 3; // status is always processing } message ParseBlockRequest { bytes bytes = 1; } message ParseBlockResponse { bytes id = 1; bytes parentID = 2; uint32 status = 3; } message GetBlockRequest { bytes id = 1; } message GetBlockResponse { bytes parentID = 1; bytes bytes = 2; uint32 status = 3; } message SetPreferenceRequest { bytes id = 1; } message SetPreferenceResponse {} message LastAcceptedRequest {} message LastAcceptedResponse { bytes id = 1; } message BlockVerifyRequest { bytes id = 1; } message BlockVerifyResponse {} message BlockAcceptRequest { bytes id = 1; } message BlockAcceptResponse {} message BlockRejectRequest { bytes id = 1; } message BlockRejectResponse {} service VM { rpc Initialize(InitializeRequest) returns (InitializeResponse); rpc Bootstrapping(BootstrappingRequest) returns (BootstrappingResponse); rpc Bootstrapped(BootstrappedRequest) returns (BootstrappedResponse); rpc Shutdown(ShutdownRequest) returns (ShutdownResponse); rpc CreateHandlers(CreateHandlersRequest) returns (CreateHandlersResponse); rpc BuildBlock(BuildBlockRequest) returns (BuildBlockResponse); rpc ParseBlock(ParseBlockRequest) returns (ParseBlockResponse); rpc GetBlock(GetBlockRequest) returns (GetBlockResponse); rpc SetPreference(SetPreferenceRequest) returns (SetPreferenceResponse); rpc LastAccepted(LastAcceptedRequest) returns (LastAcceptedResponse); rpc BlockVerify(BlockVerifyRequest) returns (BlockVerifyResponse); rpc BlockAccept(BlockAcceptRequest) returns (BlockAcceptResponse); rpc BlockReject(BlockRejectRequest) returns (BlockRejectResponse); }