| Field | Type | Label | Description |
| addresses | bytes | repeated |
|
| Field | Type | Label | Description |
| address | bytes |
|
|
| balance | uint64 |
|
|
| nonce | uint64 | FIXME: Discuss. 32 or 64 bits? |
|
| pubhashes | bytes | repeated |
|
| transaction_hashes | bytes | repeated |
|
| Field | Type | Label | Description |
| header | BlockHeader |
|
|
| transactions | Transaction | repeated |
|
| dup_transactions | Transaction | repeated | TODO: Review this |
| vote | Transaction | repeated |
|
| genesis_balance | GenesisBalance | repeated | This is only applicable to genesis blocks |
| Field | Type | Label | Description |
| block | Block |
|
|
| voted_weight | uint64 |
|
|
| total_stake_weight | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 | Header |
|
| epoch | uint64 |
|
|
| timestamp | Timestamp | FIXME: Temporary |
|
| hash_header | bytes |
|
|
| hash_header_prev | bytes |
|
|
| reward_block | uint64 |
|
|
| reward_fee | uint64 |
|
|
| merkle_root | bytes |
|
|
| hash_reveal | bytes |
|
|
| stake_selector | bytes |
|
| Field | Type | Label | Description |
| header | BlockHeader |
|
|
| transaction_count | TransactionCount |
|
|
| voted_weight | uint64 |
|
|
| total_stake_weight | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 |
|
|
| hash_header | bytes |
|
| Field | Type | Label | Description |
| block_number_hashes | BlockMetaData | repeated |
|
| Field | Type | Label | Description |
| id | bytes |
|
|
| ttl | uint64 |
|
| Field | Type | Label | Description |
| aes256_symkey | bytes |
|
|
| data | bytes | Encrypted String containing aes256_symkey, prf512_seed, xmss_address, signature |
| Field | Type | Label | Description |
| address | string | Address is string only here to increase visibility |
|
| balance | uint64 |
|
| Field | Type | Label | Description |
| address | bytes |
|
| Field | Type | Label | Description |
| state | AddressState |
|
| Field | Type | Label | Description |
| index | uint64 | Indicates the index number in mainchain |
|
| after_hash | bytes | request the node that comes after hash |
| Field | Type | Label | Description |
| node_info | NodeInfo |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| node_info | NodeInfo |
|
|
| known_peers | Peer | repeated |
|
| Field | Type | Label | Description |
| filter | GetLatestDataReq.Filter |
|
|
| offset | uint32 | Offset in the result list (works backwards in this case) |
|
| quantity | uint32 | Number of items to retrive. Capped at 100 |
| Field | Type | Label | Description |
| blockheaders | BlockHeaderExtended | repeated |
|
| transactions | TransactionExtended | repeated |
|
| transactions_unconfirmed | TransactionExtended | repeated |
|
| Field | Type | Label | Description |
| addresses | bytes | repeated |
|
| Field | Type | Label | Description |
| info | NodeInfo |
|
| Field | Type | Label | Description |
| query | bytes |
|
| Field | Type | Label | Description |
| found | bool |
|
|
| address_state | AddressState |
|
|
| transaction | TransactionExtended |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| filter | GetStakersReq.Filter | Indicates which group of stakers (current / next) |
|
| offset | uint32 | Offset in the staker list |
|
| quantity | uint32 | Number of stakers to retrive. Capped at 100 |
| Field | Type | Label | Description |
| stakers | StakerData | repeated |
|
| Field | Type | Label | Description |
| node_info | NodeInfo |
|
|
| epoch | uint64 | Current epoch |
|
| uptime_network | uint64 | Indicates uptime in seconds |
|
| stakers_count | uint64 | Number of active stakers |
|
| block_last_reward | uint64 |
|
|
| block_time_mean | uint64 |
|
|
| block_time_sd | uint64 |
|
|
| coins_total_supply | uint64 |
|
|
| coins_emitted | uint64 |
|
|
| coins_atstake | uint64 |
|
| Field | Type | Label | Description |
| address | bytes |
|
| Field | Type | Label | Description |
| wallet | Wallet | FIXME: Encrypt |
| Field | Type | Label | Description |
| address_from | bytes |
|
|
| kyber_pk | bytes |
|
|
| dilithium_pk | bytes |
|
|
| xmss_pk | bytes |
|
|
| xmss_ots_index | uint64 |
|
FIXME: This is legacy. Plan removal
| Field | Type | Label | Description |
| hash | bytes | FIXME: rename this to block_headerhash |
|
| type | string | FIXME: type/string what is this |
|
| stake_selector | bytes |
|
|
| block_number | uint64 |
|
|
| prev_headerhash | bytes |
|
|
| reveal_hash | bytes |
|
| Field | Type | Label | Description |
| ephemeral | EphemeralMessage | Overlapping - objects used for 2-way exchanges P2PRequest request = 1; P2PResponse response = 2; |
| Field | Type | Label | Description |
| version | string |
|
|
| state | NodeInfo.State |
|
|
| num_connections | uint32 |
|
|
| num_known_peers | uint32 |
|
|
| uptime | uint64 | Uptime in seconds |
|
| block_height | uint64 |
|
|
| block_last_hash | bytes |
|
|
| stake_enabled | bool |
|
|
| network_id | string |
|
| Field | Type | Label | Description |
| ip | string |
|
| Field | Type | Label | Description |
| transaction_signed | Transaction |
|
| Field | Type | Label | Description |
| some_response | string |
|
| Field | Type | Label | Description |
| address | bytes |
|
|
| slave_public_key | bytes |
|
|
| terminator_hash | bytes |
|
|
| balance | uint64 |
|
|
| activation_blocknumber | uint64 |
|
|
| nonce | uint64 |
|
|
| is_banned | bool |
|
|
| is_active | bool |
|
| Field | Type | Label | Description |
| stake_validators | StakeValidator | repeated |
|
| Field | Type | Label | Description |
| sv_dict | StakeValidatorsTracker.SvDictEntry | repeated |
|
| future_stake_addresses | StakeValidatorsTracker.FutureStakeAddressesEntry | repeated |
|
| expiry | StakeValidatorsTracker.ExpiryEntry | repeated |
|
| future_sv_dict | StakeValidatorsTracker.FutureSvDictEntry | repeated |
|
| total_stake_amount | uint64 |
|
| Field | Type | Label | Description |
| key | uint64 |
|
|
| value | AddressList |
|
| Field | Type | Label | Description |
| key | string |
|
|
| value | StakeValidator |
|
| Field | Type | Label | Description |
| key | uint64 |
|
|
| value | StakeValidatorsList |
|
| Field | Type | Label | Description |
| key | string |
|
|
| value | StakeValidator |
|
| Field | Type | Label | Description |
| address_state | AddressState |
|
|
| terminator_hash | bytes |
|
| Field | Type | Label | Description |
| peers | Peer | repeated |
|
TODO: Avoid using timestamp until the github issue is fixed
import "google/protobuf/timestamp.proto";
| Field | Type | Label | Description |
| seconds | int64 |
|
|
| nanos | int32 |
|
| Field | Type | Label | Description |
| type | Transaction.Type |
|
|
| nonce | uint64 |
|
|
| addr_from | bytes |
|
|
| public_key | bytes |
|
|
| transaction_hash | bytes |
|
|
| ots_key | uint32 |
|
|
| signature | bytes |
|
|
| transfer | Transaction.Transfer |
|
|
| stake | Transaction.Stake |
|
|
| coinbase | Transaction.CoinBase |
|
|
| latticePK | Transaction.LatticePublicKey |
|
|
| duplicate | Transaction.Duplicate |
|
|
| vote | Transaction.Vote |
|
| Field | Type | Label | Description |
| addr_to | bytes |
|
|
| amount | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 |
|
|
| prev_header_hash | uint64 |
|
|
| coinbase1_hhash | bytes |
|
|
| coinbase2_hhash | bytes |
|
|
| coinbase1 | Transaction |
|
|
| coinbase2 | Transaction |
|
| Field | Type | Label | Description |
| kyber_pk | bytes |
|
|
| dilithium_pk | bytes |
|
| Field | Type | Label | Description |
| activation_blocknumber | uint64 |
|
|
| slavePK | bytes |
|
|
| hash | bytes |
|
| Field | Type | Label | Description |
| addr_to | bytes |
|
|
| amount | uint64 |
|
|
| fee | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 |
|
|
| hash_header | bytes |
|
| Field | Type | Label | Description |
| count | TransactionCount.CountEntry | repeated |
|
| Field | Type | Label | Description |
| key | uint32 |
|
|
| value | uint32 |
|
| Field | Type | Label | Description |
| header | BlockHeader |
|
|
| tx | Transaction |
|
| Field | Type | Label | Description |
| address_from | bytes | Transaction source address |
|
| address_to | bytes | Transaction destination address |
|
| amount | uint64 | Amount. It should be expressed in Shor |
|
| fee | uint64 | Fee. It should be expressed in Shor |
|
| xmss_pk | bytes | XMSS Public key |
|
| xmss_ots_index | uint64 | XMSS One time signature index |
| Field | Type | Label | Description |
| transaction_unsigned | Transaction |
|
| Field | Type | Label | Description |
| address | string | FIXME move to bytes |
|
| mnemonic | string |
|
|
| xmss_index | int32 |
|
| Field | Type | Label | Description |
| wallets | Wallet | repeated |
|
| Name | Number | Description |
| ALL | 0 | |
| BLOCKHEADERS | 1 | |
| TRANSACTIONS | 2 | |
| TRANSACTIONS_UNCONFIRMED | 3 |
| Name | Number | Description |
| CURRENT | 0 | |
| NEXT | 1 |
| Name | Number | Description |
| UNKNOWN | 0 | |
| UNSYNCED | 1 | |
| SYNCING | 2 | |
| SYNCED | 3 | |
| FORKED | 4 |
| Name | Number | Description |
| UNKNOWN | 0 | |
| TRANSFER | 1 | |
| STAKE | 2 | |
| DESTAKE | 3 | |
| COINBASE | 4 | |
| LATTICE | 5 | |
| DUPLICATE | 6 | |
| VOTE | 7 |
This is a place holder for testing/instrumentation APIs
| Method Name | Request Type | Response Type | Description |
| GetLocalAddresses | GetLocalAddressesReq | GetLocalAddressesResp | FIXME: Use TLS and some signature scheme to validate the cli? At the moment, it will run locally |
This service describes the P2P API
| Method Name | Request Type | Response Type | Description |
| GetNodeState | GetNodeStateReq | GetNodeStateResp | |
| GetKnownPeers | GetKnownPeersReq | GetKnownPeersResp | |
| GetBlock | GetBlockReq | GetBlockResp | rpc PublishBlock(PublishBlockReq) returns (PublishBlockResp); |
| ObjectExchange | MsgObject | MsgObject | A bidirectional streaming channel is used to avoid any firewalling/NAT issues. |
This service describes the Public API used by clients (wallet/cli/etc)
| Method Name | Request Type | Response Type | Description |
| GetNodeState | GetNodeStateReq | GetNodeStateResp | |
| GetKnownPeers | GetKnownPeersReq | GetKnownPeersResp | |
| GetStats | GetStatsReq | GetStatsResp | |
| GetAddressState | GetAddressStateReq | GetAddressStateResp | |
| GetObject | GetObjectReq | GetObjectResp | |
| GetLatestData | GetLatestDataReq | GetLatestDataResp | |
| GetStakers | GetStakersReq | GetStakersResp | |
| TransferCoins | TransferCoinsReq | TransferCoinsResp | |
| PushTransaction | PushTransactionReq | PushTransactionResp | |
| GetLatticePublicKeyTxn | LatticePublicKeyTxnReq | TransferCoinsResp |
| Field | Type | Label | Description |
| version | string |
|
|
| grpcProto | string |
|
| Method Name | Request Type | Response Type | Description |
| GetNodeInfo | GetNodeInfoReq | GetNodeInfoResp |
| Field | Type | Label | Description |
| mrData | MRData |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| index | uint64 |
|
Adding old code to refactor while keeping things working
| Field | Type | Label | Description |
| func_name | LegacyMessage.FuncName |
|
|
| noData | NoData |
|
|
| veData | VEData |
|
|
| pongData | PONGData |
|
|
| mrData | MRData |
|
|
| sfmData | MRData |
|
|
| bkData | BKData |
|
|
| fbData | FBData |
|
|
| pbData | PBData |
|
|
| pbbData | PBData |
|
|
| syncData | SYNCData |
|
| Field | Type | Label | Description |
| hash | bytes | FIXME: rename this to block_headerhash |
|
| type | LegacyMessage.FuncName | FIXME: type/string what is this |
|
| stake_selector | bytes |
|
|
| block_number | uint64 |
|
|
| prev_headerhash | bytes |
|
|
| reveal_hash | bytes |
|
| Field | Type | Label | Description |
| index | uint64 |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| peer_ips | string | repeated |
|
| Field | Type | Label | Description |
| version | string |
|
|
| genesis_prev_hash | bytes |
|
| Name | Number | Description |
| VE | 0 | Version |
| PL | 1 | Peers List |
| PONG | 2 | Pong |
| MR | 3 | Message received |
| SFM | 4 | Send Full Message |
| BK | 5 | Block |
| FB | 6 | Fetch request for block |
| PB | 7 | Push Block |
| PBB | 8 | Push Block Buffer |
| ST | 9 | Stake Transaction |
| DST | 10 | Destake Transaction |
| DT | 11 | Duplicate Transaction |
| TX | 12 | Transfer Transaction |
| VT | 13 | Vote |
| SYNC | 14 | Add into synced list, if the node replies |
| .proto Type | Notes | C++ Type | Java Type | Python Type |
| double | double | double | float | |
| float | float | float | float | |
| 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 |
| 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 |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
| sfixed32 | Always four bytes. | int32 | int | int |
| sfixed64 | Always eight bytes. | int64 | long | int/long |
| bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |