casper-network / casper-network/casper-node

NODE :: SSE :: Binary encoding responses

Open
#5,062 1 comment 0 reactions 1 assignee Claimed by @EdHastingsCasperAssociation View on GitHub
api enhancement
Dominant language
Rust
Stars
399
Forks
224
Avg merge
15h 44m
Merged PRs (30d)
2

Description

The node's SSE port emits a set of events:

```
pub enum SseEventType {
ApiVersion,
BlockAdded,
Fault,
FinalitySignature,
Shutdown,
SidecarVersion,
Step,
TransactionAccepted,
TransactionExpired,
TransactionProcessed,
}
```

Event types are associated with event data:

```
use serde_json::Value as JsonValue;

pub enum SseEventData {
ApiVersion(JsonValue),
BlockAdded(JsonValue),
Fault(JsonValue),
FinalitySignature(JsonValue),
Shutdown,
SidecarVersion(JsonValue),
Step(JsonValue),
TransactionAccepted(JsonValue),
TransactionExpired(JsonValue),
TransactionProcessed(JsonValue),
}
```

The SSE server **should also support binary** encoded event data. Upon connection, the client would specify which codec they wished to consume. SDK authors then have choice whether to support one or both codecs.

```
use serde_json::Value as JsonValue;

pub enum SseEventPayload {
Json(JsonValue),
Binary(Vec),
}
```

```
pub enum SseEventData {
ApiVersion(SseEventPayload),
BlockAdded(SseEventPayload),
Fault(SseEventPayload),
FinalitySignature(SseEventPayload),
Shutdown,
SidecarVersion(SseEventPayload),
Step(SseEventPayload),
TransactionAccepted(SseEventPayload),
TransactionExpired(SseEventPayload),
TransactionProcessed(SseEventPayload),
}
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.