2.4 KiB
- UUID-identifier with data
- Data binary- or hex-encoded
- Client <-> Host negotiating what to do => Task queue synchronization
=> Two seperate ways of communicating: One for neogtioating task queue stuff and one for data (Linked with UUID)
Conn-Status
Login
Request:
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"transaction_uuid":<transaction_uuid>,
"specs": {
"threads":<threads:u64>,
"clock":<clock:f64>,
"mem":<mem:u64>,
"net_speed_kib":<net_speed:f64>
}
}
Response:
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"transaction_uuid":<transaction_uuid>,
"status":<ACCEPTED|REJECTED>,
}
Alive Check
Request/Response:
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"transaction_uuid":<transaction_uuid>
}
Logout
Request:
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"transaction_uuid":<transaction_uuid>,
}
Response:
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"transaction_uuid":<transaction_uuid>,
"status":<ACK|OK|ERR>
}
If the re-scheduling fails trigger the worker-node to give all HashMap-data to the head-node
Pull
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"uuid":<uuid>,
"hashmap_id":<hashmap_id>,
}
Response
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"uuid":<uuid>,
"status":<OK|HASH_ERR|TIMEOUT_ERR>,
"uuid":<uuid>,
"hashmap_id":<hashmap_id>
}
Push
{
"protocol_id":<protocol_id>,
"node_id":<node_id>,
"uuid":<uuid>,
"hashmap_id":<hashmap_id>,
"length_decomp": <length_decomp>,
"length_comp": <length_comp>,
"comp_format":<comp_format>,
"attributes":{go wild :3}
"data":<data>
}
Possible Traffic-Sequences
PULL -> PUSH -> RESPONSE
PUSH -> RESPONSE
JSON-Field Descriptions
Data-Related
uuid
: sha-256 of decompressed data
hashmap_identifier
: identifier of associated HashMap
length_comp
: length of compressed data
length_decomp
: length of decompressed data
comp_format
: compression algorithm used
data
: compressed data
data_type
: either permutation
or state
(complete tree)
attributes
: Implementation specific EXTRAWURST
Control Flow
protocol_id
: data_push | data_pull | data_response | hash_push | hash_pull | hash_response
node_id
:unique identifier of nodes. (Hostnames)
status
: error codes indicating success of transmission