Status Services (Command Group 0)

Explains the Status Services of the RAIDA protocol.

Status Services (Command Group 0)

Status Services provide information about the RAIDA and its operations. These services allow for basic interaction with the RAIDA network to check connectivity, version information, and diagnostic data.

Command Code Service Description
00 Echo Sends a challenge handshake to test connection, encryption and mutual authenticate.
01 Version Returns the version of the protocol
02 Status Returns status and performance indicators for diagnostics (Not Implemented)
03 Count Coins Returns the number of tokens on the RAIDA

Byte Codes Used in Status Services

Byte Code Meaning
CH Challenge. Client's encrypted challenge that the servers must decrypt. Used for mutual authentication.
3E Ending bytes
VE Version of the code
TO Total coins
AU Authentication (Password)

Echo

Echo tests connection and the encryption to ensure it is working. This echo is more for debugging than production work.

Typically it is enough to send 18 bytes in the body. But echo can accept more bytes between CH and 3E if necessary. For example if we want to test big packets we may want to send a bigger packet.

Request Body (18 bytes):

CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH 3E 3E //Not Encrypted

Reponse will have no body. The status code in the response header will be:

0xFA //Decimal code 250

Version

Command Group: 0

Command Number: 1

Request (no parameters)

CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH 3E 3E

Response: Success Status 250

Version (8 bytes)

VE VE VE VE VE VE VE VE 3E 3E

Count Coins

Returns the total number of coins the RAIDA has. This value is not updated in real time but only once every 20 minutes. This time can be changed in the future.

Example Request Body:

CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH 00 00 00 00 //for future use AU AU AU AU AU AU AU AU AU AU AU AU AU AU AU AU //Optional password. All zeros if not used. 3E 3E
Response Status Code
Success 250
Failure 251

Response

CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH TO TO TO TO TO TO //Six Byte total amount of coins 3E 3E

Status

We can create a custom dashboard that will display the data as required. The raw data can be imported to a database such as MySQL or into a platform such as DataDog so that meaningful graphic reports can be generated for the purpose of marketing metrics, system tuning, planning and PR. These reports will be generated based on the "Standard Report Records" as shown below:

Sample Standard Reporting Record:

Date Time IP Address User Key Service Command Number Service Details Execution Time Nanoseconds Response Status
6/18/2024, 9:04:25 AM 189.23.98.223 e004af90-7a34-454d-af17-6aec64584fe7 8 10 TOKENS * 5773 241
4 Bytes 16 Bytes 16 Bytes 1 Byte 23 Bytes 2 Bytes 2 Byte

Note about Service Details

The first byte of the Service Details specifies if the Service Details are 8 bit or 5 bit. If the first byte is a zero, it uses 8 bit otherwise it uses 5 bit. See the 5 bit table below.

Data Collection Categories

Data is collected on the following subjects:

  1. Chronology. Such as the day and time when the most authentication requests occur.
  2. IP Address. Where in the world are authentications happening.
  3. Service Use. How many tokens were authenticated.
  4. Customer Key Use. What did a specific user do.
  5. Technical. Transaction completion times, number of transactions per second, etc.

Implementation

We have not implemented this yet because we do not know the specific needs for data. Each of the 25 RAIDA will be tasked with logging different commands. There are about 28 commands and each RAIDA can monitor one or two of them. This is one of the few services where the RAIDA returns more data than it receives. Thus it could be a target for a DDOS attack. To prevent any DDOS attacks, this service can only be accessed by Treasurers and Administrators.

Example Request Body:

CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH 00 00 00 00 //Time to start the status return used in the C programming language 00 00 00 00 // Time to end the status. Zero means until now. 00 00 // Service to return. Zero means all of them. AU AU AU AU AU AU AU AU AU AU AU AU AU AU AU AU //Authorization Password. User keys cannot access this service. 3E 3E
Response Status Code
Success 250
Failure 251

Five Bit Table

Dec Letter
0 0/O
1 1/I
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 J
19 K
20 L
21 M
22 N
23 P
24 Q
25 R
26 S
27 T
28 U
29 V
30 W
31 X
32 Y
33 Z

Response Format

CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CH CT CT //Number of rows returned RC RC .. //Standard response record #1. 64 bytes fixed for each record. RC RC .. //Standard response record #2. 64 bytes fixed for each record. ... RC RC .. //Standard response record #N. 64 bytes fixed for each record. 3E 3E

Implementation Status

This service is not fully implemented yet. The full functionality will be available in future updates of the RAIDA protocol.