Radioactive Protocol
Radioactive
What is Radioactive?
Radioactive is an alternative protocol, made to be an alternative for Wisp.
Radioactive Specifications
This document outlines the communication protocol used by the Radioactive Protocol through the WebSocket server. (HIGHLY UNFINISHED LARGE CHANGES MAY COME ABOUT AND MAJORITY HAS YET TO BE FINISHED OR DOCUMENTED)
Aproximate Progress: ▓▓▓░░░░░░░░░░░░░░░░░ 15%
Message Header Types
<BEGIN>
(<#BEGIN>
)<START>
(<#START>
)<END>
(<#END>
)<INFO>
(<#INFO>
)<ERROR>
(<#ERROR>
)<P2P>
(<#P2P>
)<DISCONNECT>
(<#DISCONNECT>
)<CONTINUE>
(<#CONTINUE>
)
Message Header Information
<BEGIN>
: Only used durring inital connection, used to confirm connection and start AES encryption.<START>
: Used to initate a task, depending on the header data TYPE it can be used to intialize rewritting, p2p, etc.<END>
: Server Closing packet that safetly closes the communication between server and client.<INFO>
: Never sent by itself, always sent above another message header that contains information about the following packet that the server can use.<ERROR>
: Only sent if a critical error was found and sending the packet that was ment to be sent isnt an option.<P2P>
: Used to send P2P messages to peers and other servers.<DISCONNECT>
: Client Closing packet that safetly closes the communication between server and client.<CONTINUE>
: Keep alive packet that informs the server that the client is still alive if no messages are sent after x interval.
Header Data Types
’*’ Means data isnt specific to a type of value or all types havent been documented/finished.
- ID (UUID)
- TYPE (*)
- ESTABLISHED (TRUE/FALSE/AWAITING)
- DATA (*)
- PARSEDDATA (*)
- ERROR (*), (ERROR CODE)
- PEER (*)
- CLIENT (*)
- PEER DATA (*)
- ENCRYPT: (AES128SHAREDKEY*)
- VERIFY: (ENCRYPTED TEST DATA*)
- VERIFIED: (TRUE/FALSE)
Note that some of these data types are exclusive to specific message headers, as detailed further below.
Header Data Types Information
- ID: UUIDv6 used to identify communication for a specific instance.
- TYPE: Determines the type of message (e.g., P2P, REWRITE).
- ESTABLISHED:
<BEGIN>
only, indicates if the connection was properly established. - DATA: Varies based on
TYPE
. - PARSEDDATA: For REWRITE type only, returns rewritten data (JavaScript).
- ERROR: For
<ERROR>
only, includes the error message followed by the error code. - PEER: For
<INFO>
and<P2P>
types, indicates peer IP/domain. - CLIENT: For
<INFO>
only, used to send specific client information, depends onTYPE
. - PEER DATA: For
<P2P>
only, includes data sent by the peer. - ENCRYPT: For
<BEGIN>
only, includes the key for AES128 encryption before it is enabled. - VERIFY: For
<BEGIN>
only, includes dummy data (e.g., test) AES128 encrypted with the key fromENCRYPT
. - VERIFIED: For
<BEGIN>
only, indicates if the data fromVERIFY
was decoded successfully and the message was understood.
Establishing Communication
Example: Server Initiates Communication
Example, Sent from server, * means more information later/below/above, it will not be included in a real request
Example Client Response
Example Server Response
Once the communication is established, all messages are encrypted using AES128 with the pre-shared key.