bdledger-apis/bdchain/api/ac_chain.proto
2018-09-11 21:56:25 +08:00

83 lines
2.8 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package bdchain.api;
import "bdchain/api/common.proto";
option go_package = "bdchain/api/ac_chain";
option java_package = "bdchain.api";
option java_outer_classname = "AccountingChainProto";
option java_multiple_files = true;
service AccountingChain {
rpc BlockNumber (BlockNumberRequest) returns (BlockNumberResponse);
rpc GetBlockByNumber (GetBlockByNumberRequest) returns (Block);
rpc GetBlockByHash (GetBlockByHashRequest) returns (Block);
rpc GetTransactionByHash (GetTransactionByHashRequest) returns (Block);
rpc GetTransactionByBlockNumberAndIndex (GetTransactionByBlockNumberAndIndexRequest) returns (Transaction);
rpc GetTransactionByBlockHashAndIndex (GetTransactionByBlockHashAndIndexRequest) returns (Transaction);
}
message Transaction {
uint64 block_number = 1; // 事务所在的区块的区块号,当事务处于待确认状态时为`null`
bytes block_hash = 2; // 事务所在的区块的哈希,当事务处于待确认状态时为`null`
uint32 index = 3; // 事务在区块中的位置index当事务处于待确认状态时为`null`
bytes hash = 4; // 事务的哈希
TransactionType 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 transactions_root = 7; // 区块的事务树根
repeated Transaction transactions = 8; // 事务对象的数组,或为空
repeated bytes transaction_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 GetBlockByHashRequest {
string ledger = 1;
bytes hash = 2;
bool full_transaction = 3;
}
message GetTransactionByHashRequest {
string ledger = 1;
bytes hash = 2;
}
message GetTransactionByBlockNumberAndIndexRequest {
string ledger = 1;
uint64 block_number = 2;
uint32 index = 3;
}
message GetTransactionByBlockHashAndIndexRequest {
string ledger = 1;
bytes block_hash = 2;
uint32 index = 3;
}