Response Headers
Specification for RAIDA response header formats, fields, and implementation details.
Key Points
- • Response Headers are always 32 bytes long.
- • Response Headers are never encrypted.
- • Response Headers have 10 parts.
| Part No. | Code | Name | Byte Count |
|---|---|---|---|
| 1 | RI | Responding RAIDA ID | 1 |
| 2 | SH | Responding Shard ID | 1 |
| 3 | SS | Response Status | 1 |
| 4 | CG | Command Group | 1 |
| 5 | UD | UDP Frame Count | 2 |
| 6 | CE | Client's echo | 2 |
| 7 | EX | Extensible | 1 |
| 8 | SZ | Bytes in Body | 3 |
| 9 | ET | Execution Time in Nano Seconds | 4 |
| 10 | HC | Challenge Response | 16 |
Response Header Layout (32 bytes fixed):
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 RI SH SS CG UD UD EC EC RE SZ SZ SZ EX EX EX EX
01 HS HS HS HS HS HS HS HS HS HS HS HS HS HS HS HS
Response Header Codes
| Index | Code | Name | Info |
|---|---|---|---|
| 00 | RI | RAIDA ID | Integer 0 through 24. If the response is from RAIDA 3 it will be 3 |
| 01 | SH | SHARD ID | Zero unless sharding is implemented |
| 02 | SS | Status | That status code that is returned. See return Status codes. |
| 03 | CG | Command Group | This may effect the meaning of the status. See the group codes. |
| 04 | UD | UDP Frame Count 0 | This allows the client to know how to put the returned packets together in order. |
| 05 | UD | UDP Frame Count 1 | Lower Order Byte. |
| 06 | EC | Client Echo 0 | Returns exact info that Client supplied in the Request Header. |
| 07 | EC | Client Echo 1 | last byte of the request header. |
| 08 | RE | Reserved | Reserved for future use. Use zero for now. |
| 09 | SZ | Size of body 0 | The length in bytes of the response packet excluding the Response Header. Only used with... |
| 10 | SZ | Size of body 1 | TCP. (This is not needed with UDP) |
| 11 | SZ | Size of body 2 | |
| 12 | EX | Execution Time 0 | Nano seconds the RAIDA needed to process the request. Up to 4,294,967,295... |
| 13 | EX | Execution Time 1 | helps evaluation server performance. |
| 14 | EX | Execution Time 2 | |
| 15 | EX | Execution Time 3 | |
| 16 | HS | Signature 0 | 16 bytes Client's challenge is XOR'ed with the Encryption AN. |
| 17 | HS | Signature 1 | 1. Take the clients challenge and unencrypt it. |
| 18 | HS | Signature 2 | 2. XOR the unencrypted challenge with the AN used to encrypt it. |
| 19 | HS | Signature 3 | 3. Put this in the Header. |
| 20 | HS | Signature 4 | Example: |
| 21 | HS | Signature 5 | Challenge is eb159806b4024f65af86dc25edbe3a1d |
| 22 | HS | Signature 6 | Encryption AN is 66689ef5bde040479416b4f6d9576172 |
| 23 | HS | Signature 7 | XOR is 8d7d06f309e20f223b9068d334e95b6f |
| 24 | HS | Signature 8 | |
| 25 | HS | Signature 9 | |
| 26 | HS | Signature A | |
| 27 | HS | Signature B | |
| 28 | HS | Signature C | |
| 29 | HS | Signature D | |
| 30 | HS | Signature E | |
| 31 | HS | Signature F |
STATUS CODES
All-Command Header Errors
| Name | Code | Description |
|---|---|---|
| NO_ERROR | 0 | No error |
| ERROR_INVALID_CLOUD_ID | 1 | |
| ERROR_INVALID_SPLIT_ID | 2 | |
| ERROR_INVALID_RAIDA_ID | 3 | |
| ERROR_INVALID_SHARD_ID | 4 | |
| ERROR_INVALID_COMMAND_GROUP | 5 | |
| ERROR_INVALID_COMMAND | 6 | Command or command group not found |
| ERROR_INVALID_TOKEN_ID | 7 | CoinID is not supported by this RAIDA |
| ERROR_INVALID_UDP_FRAME_COUNT | 15 | |
| ERROR_INVALID_PACKET_LENGTH | 16 | Packet length is too small |
| ERROR_UDP_FRAME_TIMEOUT | 17 | |
| ERROR_WRONG_RAIDA | 18 | The request is sent to the wrong raida |
| ERROR_SHARD_NOT_AVAILABLE | 20 | |
| ERROR_ENCRYPTION_TOKEN_NOT_FOUND | 25 | |
| ERROR_INVALID_ENCRYPTION_CODE | 27 | |
| ERROR_INVALID_EOF | 33 | Two last bytes can't be found 0xff 0xff |
| ERROR_INVALID_ENCRYPTION | 34 | |
| ERROR_EMPTY_REQUEST | 36 | |
| ERROR_INVALID_CRC | 37 | CRC32 in the challenge doesn't match |
| ERROR_ADMIN_AUTH | 38 | Wrong admin key |
| ERROR_TOKENS_NOT_DIV | 39 | The number of tokens in the request is not multiple of the required number |
| ERROR_INVALID_SN_OR_DENOMINATION | 40 | Invalid serial number of denomination |
| ERROR_PAGE_IS_NOT_RESERVED | 41 | |
| ERROR_NO_TICKET_SLOT | 42 | |
| ERROR_NO_TICKET_FOUND | 43 | |
| ERROR_TICKET_CLAIMED_ALREADY | 44 | Ticket has been used |
| ERROR_TOO_MANY_TOKENS | 45 | The server can't process so many tokens |
| ERROR_INVALID_SHARD | 46 | Invalid shard. We only support 0 until future use |
| ERROR_DELETE_TOKENS | 47 | Failed to delete legacy tokens |
| ERROR_LEGACY_DB | 48 | Problems with MySQL |
| ERROR_CHANGE_LIMIT | 160 | Too many change requests in 6 hours |
| ERROR_INVALID_KEY_START | 195 | Invalid keyStart parameter |
| ERROR_INVALID_KEY_LENGTH | 196 | Invalid keyLength parameter |
| ERROR_TOKEN_LOAD | 197 | Failed to load RAIDA encryption token |
| ERROR_INVALID_PARAMETER | 198 | Invalid parameter passed to the service |
| ERROR_INVALID_PAN | 199 | |
| STATUS_FIND_NEITHER | 208 | Find: Neither |
| STATUS_FIND_ALL_AN | 209 | Find: ALL_AN. The ANs were all good. |
| STATUS_FIND_ALL_PAN | 210 | Find: ALL_PAN. The PANs were all good. |
| STATUS_FIND_MIXED | 211 | Find: Mixed. Some ANs were good. |
| STATUS_ALL_PASS | 241 | All tokens are authentic |
| STATUS_ALL_FAIL | 242 | All tokens are counterfeit |
| STATUS_MIXED | 243 | Mixed response |
| STATUS_SUCCESS | 250 | Common success status for all commands |
| ERROR_INTERNAL | 252 | Internal error |
| ERROR_NETWORK | 253 | Network error |
| ERROR_MEMORY_ALLOC | 254 | Memory allocation error |
| ERROR_INVALID_ROUTING | 255 | Routing in the request header is not supported |
Authentication Statuses
| Code | Meaning |
|---|---|
| 00 | All Failed |
| 01 | All Success |
| 02 | Mixed Results |
| 26 | Coin limit exceeded |
Health Statuses
| Code | Meaning |
|---|---|
| 200 | All Failed |
| 201 | All Success |
| 202 | Mixed Results |
| 21 | Validate - Ticket found |
| 22 | Validate - Ticket not found |
| 23 | Validate - Invalid Raida |
| 26 | Coin limit exceeded |
| 37 | Validate - Ticket claimed earlier |
| 38 | Validate - Ticket claimed |
| 208 | Find all none |
| 209 | Find all AN |
| 210 | Find all PA |
| 211 | Find mixed |
| 90 | Fix All Tickets Zero |
| 31 | Packet is lost or re-ordered |
| 32 | Len Of body Cant Div in tokens |
RKE Statuses
| Code | Meaning |
|---|---|
| 200 | Failed: Key not found. |
| 201 | Success: Key Returned |
| 40 | Free ID: SN already in use |
| 41 | Free ID: Service Locked |
| 42 | Free ID: SN was not in range |
| 192 | Identify token found |
| 193 | Identify token not found |
| 28 | Key Requester SN was not found |
| 28 | Key Requester AN was not found |
| 30 | Pown - AN and PAN are Same |
Important Notes on Response Headers
- • Response headers are critical for determining the success or failure of RAIDA operations.
- • The status code in byte 02 should always be checked first to determine the overall result.
- • For authentication operations, specific authentication statuses should be checked.
- • The Execution Time field provides valuable information for performance monitoring.
- • Challenge Response bytes (16-31) provide cryptographic verification of the response.