bdledger-apis/docs/apis.md

750 lines
24 KiB
Markdown
Raw Normal View History

2020-04-07 13:56:57 +00:00
# Protocol Documentation
<a name="top"></a>
## Table of Contents
- [bdware/bdledger/api/common.proto](#bdware/bdledger/api/common.proto)
- [Block](#bdware.bdledger.api.Block)
- [Contract](#bdware.bdledger.api.Contract)
- [Transaction](#bdware.bdledger.api.Transaction)
- [Contract.ContractUnitRequestType](#bdware.bdledger.api.Contract.ContractUnitRequestType)
- [TransactionType](#bdware.bdledger.api.TransactionType)
- [bdware/bdledger/api/error_details.proto](#bdware/bdledger/api/error_details.proto)
- [InvalidArgument](#bdware.bdledger.api.InvalidArgument)
- [InvalidArgument.FieldViolation](#bdware.bdledger.api.InvalidArgument.FieldViolation)
- [bdware/bdledger/api/ledger.proto](#bdware/bdledger/api/ledger.proto)
- [CreateLedgerRequest](#bdware.bdledger.api.CreateLedgerRequest)
- [CreateLedgerResponse](#bdware.bdledger.api.CreateLedgerResponse)
- [GetLedgersResponse](#bdware.bdledger.api.GetLedgersResponse)
- [SendTransactionRequest](#bdware.bdledger.api.SendTransactionRequest)
- [SendTransactionRequest.Transaction](#bdware.bdledger.api.SendTransactionRequest.Transaction)
- [SendTransactionResponse](#bdware.bdledger.api.SendTransactionResponse)
- [Ledger](#bdware.bdledger.api.Ledger)
- [bdware/bdledger/api/node.proto](#bdware/bdledger/api/node.proto)
- [ClientVersionResponse](#bdware.bdledger.api.ClientVersionResponse)
- [Node](#bdware.bdledger.api.Node)
- [bdware/bdledger/api/query.proto](#bdware/bdledger/api/query.proto)
- [BlockFilter](#bdware.bdledger.api.BlockFilter)
- [BlocksRequest](#bdware.bdledger.api.BlocksRequest)
- [CountBlocksResponse](#bdware.bdledger.api.CountBlocksResponse)
- [CountTransactionsResponse](#bdware.bdledger.api.CountTransactionsResponse)
- [GetBlockByHashRequest](#bdware.bdledger.api.GetBlockByHashRequest)
- [GetBlockByHashResponse](#bdware.bdledger.api.GetBlockByHashResponse)
- [GetBlocksResponse](#bdware.bdledger.api.GetBlocksResponse)
- [GetTransactionByBlockHashAndIndexRequest](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexRequest)
- [GetTransactionByBlockHashAndIndexResponse](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexResponse)
- [GetTransactionByHashRequest](#bdware.bdledger.api.GetTransactionByHashRequest)
- [GetTransactionByHashResponse](#bdware.bdledger.api.GetTransactionByHashResponse)
- [GetTransactionsResponse](#bdware.bdledger.api.GetTransactionsResponse)
2020-09-04 04:29:54 +00:00
- [RecentBlocksRequest](#bdware.bdledger.api.RecentBlocksRequest)
2020-04-07 13:56:57 +00:00
- [TransactionFilter](#bdware.bdledger.api.TransactionFilter)
- [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest)
2020-09-04 04:29:54 +00:00
- [IncludeTransactions](#bdware.bdledger.api.IncludeTransactions)
2020-04-07 13:56:57 +00:00
- [Query](#bdware.bdledger.api.Query)
- [google/protobuf/empty.proto](#google/protobuf/empty.proto)
- [Empty](#google.protobuf.Empty)
- [Scalar Value Types](#scalar-value-types)
<a name="bdware/bdledger/api/common.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## bdware/bdledger/api/common.proto
<a name="bdware.bdledger.api.Block"></a>
### Block
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| hash | [bytes](#bytes) | | 区块的哈希,当区块处于待确认状态时为`null` |
2020-04-20 16:46:04 +00:00
| creator | [bytes](#bytes) | | 产块者账户地址 |
| nonce | [uint64](#uint64) | | 这个区块之前产块者产生的区块数量 |
2020-04-07 13:56:57 +00:00
| parent_hashes | [bytes](#bytes) | repeated | 父区块的哈希 |
| witnesses | [bytes](#bytes) | repeated | 见证者账户地址 |
| timestamp | [int64](#int64) | | 区块产生时的 UNIX 时间戳,单位为秒 |
| size | [uint64](#uint64) | | 区块大小的字节数 |
| transaction_count | [uint32](#uint32) | | 区块包含的事务数量 |
| transactions_root | [bytes](#bytes) | | 区块的事务默克尔树根 |
| transactions | [Transaction](#bdware.bdledger.api.Transaction) | repeated | 事务对象的数组,或为空 |
2021-07-20 01:36:57 +00:00
| transaction_hashes | [bytes](#bytes) | repeated | 20字节的事务哈希的数组或为空 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.Contract"></a>
### Contract
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| contractName | [bytes](#bytes) | | 合约名称 |
| randomNum | [uint32](#uint32) | | 合约执行的节点数量 |
| operation | [bytes](#bytes) | | 合约方法 |
| arg | [bytes](#bytes) | | 合约方法参数 |
| path | [bytes](#bytes) | | 合约文件路径(合约在IDE工程的相对路径) |
| content | [bytes](#bytes) | | 合约内容(可为合约文件相对路径/合约脚本) |
| pubkey | [bytes](#bytes) | | 用户公钥 |
<a name="bdware.bdledger.api.Transaction"></a>
### Transaction
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| block_hash | [bytes](#bytes) | | 事务所在的区块的哈希,当事务处于待确认状态时为`null` |
2020-09-04 04:29:54 +00:00
| block_timestamp | [int64](#int64) | | 事务所在的区块产生时的 UNIX 时间戳,单位为秒 |
2020-04-07 13:56:57 +00:00
| index | [uint32](#uint32) | | 事务在区块中的位置 index当事务处于待确认状态时为`null` |
| hash | [bytes](#bytes) | | 事务的哈希 |
| type | [TransactionType](#bdware.bdledger.api.TransactionType) | | 事务类型 |
| from | [bytes](#bytes) | | 发送账户地址 |
| nonce | [uint64](#uint64) | | 这条事务之前发送者所发送的事务数量 |
| to | [bytes](#bytes) | | 接收账户地址,或者调用的合约地址,或者`null`如为合约创建 |
| data | [bytes](#bytes) | | 数据或合约代码 |
| v | [bytes](#bytes) | | ECDSA recovery id |
| r | [bytes](#bytes) | | ECDSA signature r |
| s | [bytes](#bytes) | | ECDSA signature s |
<a name="bdware.bdledger.api.Contract.ContractUnitRequestType"></a>
### Contract.ContractUnitRequestType
| Name | Number | Description |
| ---- | ------ | ----------- |
| START | 0 | |
| STOP | 1 | |
| EXECUTE | 2 | |
| REPLY | 3 | |
| REQUEST | 4 | |
| PREPREPARE | 5 | |
| PREPARE | 6 | |
| COMMIT | 7 | |
| ADDPEER | 8 | |
| DROPPEER | 9 | |
| STATESYNC | 10 | |
<a name="bdware.bdledger.api.TransactionType"></a>
### TransactionType
事务类型
| Name | Number | Description |
| ---- | ------ | ----------- |
| RECORD | 0 | 通用数据记录 |
| MESSAGE | 1 | 消息 |
| CONTRACT_CREATION | 2 | 合约创建 |
| CONTRACT_INVOCATION | 3 | 合约调用 |
| CONTRACT_STATUS | 4 | 合约状态 |
<a name="bdware/bdledger/api/error_details.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## bdware/bdledger/api/error_details.proto
<a name="bdware.bdledger.api.InvalidArgument"></a>
### InvalidArgument
InvalidArgument indicates client specified an invalid argument.
Note that this differs from FailedPrecondition. It indicates arguments
that are problematic regardless of the state of the system
(e.g., a malformed file name).
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| field_violations | [InvalidArgument.FieldViolation](#bdware.bdledger.api.InvalidArgument.FieldViolation) | repeated | Describes all violations in a client request. |
<a name="bdware.bdledger.api.InvalidArgument.FieldViolation"></a>
### InvalidArgument.FieldViolation
A message type used to describe a single invalid field.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| field | [string](#string) | | A path leading to a field in the request body. The value will be a sequence of dot-separated identifiers that identify a protocol buffer field. E.g., &#34;field_violations.field&#34; would identify this field. |
| description | [string](#string) | | A description of why the request element is bad. |
<a name="bdware/bdledger/api/ledger.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## bdware/bdledger/api/ledger.proto
<a name="bdware.bdledger.api.CreateLedgerRequest"></a>
### CreateLedgerRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| name | [string](#string) | | 账本名称 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.CreateLedgerResponse"></a>
### CreateLedgerResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ok | [bool](#bool) | | 是否创建成功 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetLedgersResponse"></a>
### GetLedgersResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledgers | [string](#string) | repeated | 帐本名称列表 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.SendTransactionRequest"></a>
### SendTransactionRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| transaction | [SendTransactionRequest.Transaction](#bdware.bdledger.api.SendTransactionRequest.Transaction) | | 事务信息 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.SendTransactionRequest.Transaction"></a>
### SendTransactionRequest.Transaction
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| type | [TransactionType](#bdware.bdledger.api.TransactionType) | | 事务类型目前仅支持通用数据记录即type为RECORD (0) |
| from | [bytes](#bytes) | | 任意20字节的地址用于区分使用同一节点的事务发起者 |
| nonce | [uint64](#uint64) | | 正整数同一from每个nonce应只使用一次防止重复的事务可以每次发送事务&#43;1 |
| to | [bytes](#bytes) | | 对于通用数据记录不需传递,无意义 |
| data | [bytes](#bytes) | | 事务数据内容,字节数组 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.SendTransactionResponse"></a>
### SendTransactionResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| hash | [bytes](#bytes) | | 事务哈希 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.Ledger"></a>
### Ledger
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| CreateLedger | [CreateLedgerRequest](#bdware.bdledger.api.CreateLedgerRequest) | [CreateLedgerResponse](#bdware.bdledger.api.CreateLedgerResponse) | Create a new ledger 创建一个新账本 |
| GetLedgers | [.google.protobuf.Empty](#google.protobuf.Empty) | [GetLedgersResponse](#bdware.bdledger.api.GetLedgersResponse) | Get all ledgers 查询所有帐本列表 |
| SendTransaction | [SendTransactionRequest](#bdware.bdledger.api.SendTransactionRequest) | [SendTransactionResponse](#bdware.bdledger.api.SendTransactionResponse) | Send a new transaction 发送一个新事务 |
<a name="bdware/bdledger/api/node.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## bdware/bdledger/api/node.proto
<a name="bdware.bdledger.api.ClientVersionResponse"></a>
### ClientVersionResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| version | [string](#string) | | 节点客户端版本 |
<a name="bdware.bdledger.api.Node"></a>
### Node
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| ClientVersion | [.google.protobuf.Empty](#google.protobuf.Empty) | [ClientVersionResponse](#bdware.bdledger.api.ClientVersionResponse) | Get BDLedger node version 查询BDLedger节点版本 |
<a name="bdware/bdledger/api/query.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## bdware/bdledger/api/query.proto
<a name="bdware.bdledger.api.BlockFilter"></a>
### BlockFilter
2021-07-20 01:36:57 +00:00
暂不支持
2020-04-07 13:56:57 +00:00
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| hash | [bytes](#bytes) | | |
| timestamp | [int64](#int64) | | |
<a name="bdware.bdledger.api.BlocksRequest"></a>
### BlocksRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| start_timestamp | [int64](#int64) | | 查询范围开始时间戳 |
| end_timestamp | [int64](#int64) | | 查询范围结束时间戳 |
| filters | [BlockFilter](#bdware.bdledger.api.BlockFilter) | repeated | 暂不支持 |
| include_transactions | [IncludeTransactions](#bdware.bdledger.api.IncludeTransactions) | | 包含事务信息详细程度 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.CountBlocksResponse"></a>
### CountBlocksResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| count | [uint64](#uint64) | | 区块数量 |
| start_timestamp | [int64](#int64) | | 本次查询有效的查询范围开始时间戳 |
| end_timestamp | [int64](#int64) | | 本次查询有效的查询范围结束时间戳 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.CountTransactionsResponse"></a>
### CountTransactionsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| count | [uint64](#uint64) | | 事务数量 |
| start_timestamp | [int64](#int64) | | 本次查询有效的查询范围开始时间戳 |
| end_timestamp | [int64](#int64) | | 本次查询有效的查询范围结束时间戳 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetBlockByHashRequest"></a>
### GetBlockByHashRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| hash | [bytes](#bytes) | | 区块哈希 |
| full_transactions | [bool](#bool) | | 是否返回完整事务列表,而不是事务哈希列表 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetBlockByHashResponse"></a>
### GetBlockByHashResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| block | [Block](#bdware.bdledger.api.Block) | | 区块信息 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetBlocksResponse"></a>
### GetBlocksResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| blocks | [Block](#bdware.bdledger.api.Block) | repeated | 区块列表 |
| start_timestamp | [int64](#int64) | | 本次查询有效的查询范围开始时间戳 |
| end_timestamp | [int64](#int64) | | 本次查询有效的查询范围结束时间戳 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetTransactionByBlockHashAndIndexRequest"></a>
### GetTransactionByBlockHashAndIndexRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| block_hash | [bytes](#bytes) | | 事务所属区块哈希 |
| index | [uint32](#uint32) | | 事务在区块中的位置 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetTransactionByBlockHashAndIndexResponse"></a>
### GetTransactionByBlockHashAndIndexResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| transaction | [Transaction](#bdware.bdledger.api.Transaction) | | 事务信息 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetTransactionByHashRequest"></a>
### GetTransactionByHashRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| hash | [bytes](#bytes) | | 事务哈希 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetTransactionByHashResponse"></a>
### GetTransactionByHashResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| transaction | [Transaction](#bdware.bdledger.api.Transaction) | | 事务信息 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.GetTransactionsResponse"></a>
### GetTransactionsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| transactions | [Transaction](#bdware.bdledger.api.Transaction) | repeated | 事务列表 |
| start_timestamp | [int64](#int64) | | 本次查询有效的查询范围开始时间戳 |
| end_timestamp | [int64](#int64) | | 本次查询有效的查询范围结束时间戳 |
2020-04-07 13:56:57 +00:00
2020-09-04 04:29:54 +00:00
<a name="bdware.bdledger.api.RecentBlocksRequest"></a>
### RecentBlocksRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| count | [int64](#int64) | | 查询区块数量 |
| include_transactions | [IncludeTransactions](#bdware.bdledger.api.IncludeTransactions) | | 包含事务信息详细程度 |
2020-09-04 04:29:54 +00:00
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.TransactionFilter"></a>
### TransactionFilter
repeated Transaction/BlockFilters are combined by &#34;&amp;&amp;&#34;(and) operator;
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| hash | [bytes](#bytes) | | |
| from | [bytes](#bytes) | | |
| to | [bytes](#bytes) | | |
| timestamp | [bytes](#bytes) | | |
<a name="bdware.bdledger.api.TransactionsRequest"></a>
### TransactionsRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2021-07-20 01:36:57 +00:00
| ledger | [string](#string) | | 账本名称 |
| start_timestamp | [int64](#int64) | | 查询范围开始时间戳 |
| end_timestamp | [int64](#int64) | | 查询范围结束时间戳 |
| filters | [TransactionFilter](#bdware.bdledger.api.TransactionFilter) | repeated | 暂不支持 |
2020-04-07 13:56:57 +00:00
2020-09-04 04:29:54 +00:00
<a name="bdware.bdledger.api.IncludeTransactions"></a>
2020-04-07 13:56:57 +00:00
2020-09-04 04:29:54 +00:00
### IncludeTransactions
2021-07-20 01:36:57 +00:00
包含事务信息详细程度
2020-04-07 13:56:57 +00:00
| Name | Number | Description |
| ---- | ------ | ----------- |
2021-07-20 01:36:57 +00:00
| NONE | 0 | 不包含事务数据 |
| HASH | 1 | 包含事务哈希列表 |
| FULL | 2 | 包含完整事务列表 |
2020-04-07 13:56:57 +00:00
<a name="bdware.bdledger.api.Query"></a>
### Query
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetBlockByHash | [GetBlockByHashRequest](#bdware.bdledger.api.GetBlockByHashRequest) | [GetBlockByHashResponse](#bdware.bdledger.api.GetBlockByHashResponse) | Get a block identified by its hash 查询哈希所指定的区块 |
2021-07-20 01:36:57 +00:00
| GetBlocks | [BlocksRequest](#bdware.bdledger.api.BlocksRequest) | [GetBlocksResponse](#bdware.bdledger.api.GetBlocksResponse) | Get blocks in a timestamp range 查询时间范围内的区块 Requirement: start_timestamp &lt;= end_timestamp If neither &#39;start_timestamp&#39; nor &#39;end_timestamp&#39; is specified, then &#39;start_timestamp&#39; will be set to the genesis block&#39;s timestamp, and &#39;end_timestamp&#39; will be set to (start_timestamp &#43; query.maxDuration) (query.maxDuration is specified in go-bdledger&#39;s config file). If only &#39;end_timestamp&#39; is not specified, or (end_timestamp - start_timestamp &gt; query.maxDuration), then &#39;end_timestamp&#39; will be set to (start_timestamp &#43; query.maxDuration). If only &#39;start_timestamp&#39; is not specified, then &#39;start_timestamp&#39; will be set to (end_timestamp - query.maxDuration). In all cases, &#39;start_timestamp&#39; will never be earlier than the genesis block&#39;s timestamp, and &#39;end_timestamp&#39; will never be later than the current timestamp when the node process the query request. |
| CountBlocks | [BlocksRequest](#bdware.bdledger.api.BlocksRequest) | [CountBlocksResponse](#bdware.bdledger.api.CountBlocksResponse) | Count all blocks in a ledger, or blocks in a timestamp range 查询帐本中的所有区块数量,或时间范围内的区块数量 Requirement: start_timestamp &lt;= end_timestamp If neither &#39;start_timestamp&#39; nor &#39;end_timestamp&#39; is specified, then count all blocks in the specified ledger. If only &#39;end_timestamp&#39; is not specified, then count all blocks with timestamps later than &#39;start_timestamp&#39;. If only &#39;start_timestamp&#39; is not specified, then count all blocks with timestamps earlier than &#39;end_timestamp&#39;. In all cases, &#39;start_timestamp&#39; will never be earlier than the genesis block&#39;s timestamp, and &#39;end_timestamp&#39; will never be later than the current timestamp when the node process the query request. |
| GetRecentBlocks | [RecentBlocksRequest](#bdware.bdledger.api.RecentBlocksRequest) | [GetBlocksResponse](#bdware.bdledger.api.GetBlocksResponse) | Get recent &#39;count&#39; blocks (Only support IncludeTransactions=NONE for now) 查询最新的 &#39;count&#39; 个区块 |
2020-04-07 13:56:57 +00:00
| GetTransactionByHash | [GetTransactionByHashRequest](#bdware.bdledger.api.GetTransactionByHashRequest) | [GetTransactionByHashResponse](#bdware.bdledger.api.GetTransactionByHashResponse) | Get a transaction identified by its hash 查询哈希所指定的事务 |
| GetTransactionByBlockHashAndIndex | [GetTransactionByBlockHashAndIndexRequest](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexRequest) | [GetTransactionByBlockHashAndIndexResponse](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexResponse) | Get a transaction identified by hash of the block it belongs to and its index inside the block 查询所在区块的哈希与其在区块中的index所指定的事务 |
2021-07-20 01:36:57 +00:00
| GetTransactions | [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest) | [GetTransactionsResponse](#bdware.bdledger.api.GetTransactionsResponse) | Get transactions in a timestamp range 查询时间范围内的事务 &#39;start_timestamp&#39; and &#39;end_timestamp&#39; follow the same requirements and rules as in &#39;GetBlocks&#39;. |
| CountTransactions | [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest) | [CountTransactionsResponse](#bdware.bdledger.api.CountTransactionsResponse) | Count all transactions in a ledger, or transactions in a timestamp range 查询帐本中的所有事务数量,或时间范围内的事务数量 &#39;start_timestamp&#39; and &#39;end_timestamp&#39; follow the same requirements and rules as in &#39;CountBlocks&#39;. |
2020-04-07 13:56:57 +00:00
<a name="google/protobuf/empty.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## google/protobuf/empty.proto
<a name="google.protobuf.Empty"></a>
### Empty
A generic empty message that you can re-use to avoid defining duplicated
empty messages in your APIs. A typical example is to use it as the request
or the response type of an API method. For instance:
service Foo {
rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
}
The JSON representation for `Empty` is empty JSON object `{}`.
## Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
| <a name="double" /> double | | double | double | float | float64 | double | float | Float |
| <a name="float" /> float | | float | float | float | float32 | float | float | Float |
| <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| <a name="bool" /> bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |