bdledger-apis/bg/api/ac_chain.proto

98 lines
3.2 KiB
Protocol Buffer
Raw Normal View History

2018-09-06 10:36:06 +00:00
syntax = "proto3";
2018-09-07 02:28:07 +00:00
2018-09-07 04:53:15 +00:00
package bg.api;
2018-09-06 10:36:06 +00:00
2018-09-07 04:53:15 +00:00
import "bg/api/common.proto";
option go_package = "bg/api/protobuf/ac_chain";
option java_package = "bg.protobuf";
option java_outer_classname = "AcChainProto";
option java_multiple_files = true;
2018-09-06 10:36:06 +00:00
service AcChain {
rpc BlockNumber (BlockNumberRequest) returns (BlockNumberResponse);
rpc GetBlockByNumber (GetBlockByNumberRequest) returns (GetBlockByNumberResponse);
rpc GetBlockByHash (GetBlockByHashRequest) returns (GetBlockByHashResponse);
rpc GetMessageByHash (GetMessageByHashRequest) returns (GetMessageByHashResponse);
rpc GetMessageByBlockNumberAndIndex (GetMessageByBlockNumberAndIndexRequest) returns (GetMessageByBlockNumberAndIndexResponse);
rpc GetMessageByBlockHashAndIndex (GetMessageByBlockHashAndIndexRequest) returns (GetMessageByBlockHashAndIndexResponse);
}
message Message {
uint64 block_number = 1; // 消息所在的区块的区块号,当消息处于待确认状态时为`null`
bytes block_hash = 2; // 消息所在的区块的哈希,当消息处于待确认状态时为`null`
uint32 index = 3; // 消息在区块中的位置index当消息处于待确认状态时为`null`
bytes hash = 4; // 消息的哈希
MessageType type = 5; // 消息类型
bytes from = 6; // 发送账户地址
uint64 nonce = 7; // 这条消息之前发送者所发送的消息数量
bytes to = 8; // 接收账户地址,或者调用的合约地址,或者`null`如为合约创建
bytes data = 9; // 数据或合约代码
bytes v = 10; // ECDSA recovery id
bytes r = 11; // ECDSA signature r
bytes s = 12; // ECDSA signature s
}
message Block {
uint64 number = 1; // 区块号,当区块处于待确认状态时为`null`
bytes hash = 2; // 区块的哈希,当区块处于待确认状态时为`null`
bytes parent_hash = 3; // 父区块的哈希
bytes witness = 4; // 见证者账户地址
uint64 timestamp = 5; // 区块产生时的UNIX时间戳
uint64 size = 6; // 区块大小的字节数
bytes message_root = 7; // 区块的消息树根
repeated Message messages = 8; // 消息对象的数组,或为空
repeated bytes message_hashes = 9; // 32字节的交易哈希的数组或为空
}
message BlockNumberRequest {
string ledger = 1;
}
message BlockNumberResponse {
uint64 block_number = 1;
}
message GetBlockByNumberRequest {
string ledger = 1;
uint64 number = 2;
bool full_transaction = 3;
}
message GetBlockByNumberResponse {
Block block = 1;
}
message GetBlockByHashRequest {
string ledger = 1;
bytes hash = 2;
bool full_transaction = 3;
}
message GetBlockByHashResponse {
Block block = 1;
}
message GetMessageByHashRequest {
string ledger = 1;
bytes hash = 2;
}
message GetMessageByHashResponse {
Message message = 1;
}
message GetMessageByBlockNumberAndIndexRequest {
string ledger = 1;
uint64 block_number = 2;
uint32 index = 3;
}
message GetMessageByBlockNumberAndIndexResponse {
Message message = 1;
}
message GetMessageByBlockHashAndIndexRequest {
string ledger = 1;
bytes block_hash = 2;
uint32 index = 3;
}
message GetMessageByBlockHashAndIndexResponse {
Message message = 1;
}