Skip to content

Commit 66914e0

Browse files
committed
trace schema: split NetworkEvent to give more precise schemas
1 parent 2f8c250 commit 66914e0

File tree

5 files changed

+122
-81
lines changed

5 files changed

+122
-81
lines changed

data/simulation/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ trace.shared.schema.json: trace.shared.d.ts
1414
npx typescript-json-schema $(TRACE_SCHEMA_OPTS) $< TraceEvent > $@
1515
npx prettier -w $@
1616

17-
trace.haskell.schema.json: trace.haskell.d.ts
17+
trace.haskell.schema.json: trace.haskell.d.ts trace.shared.d.ts
1818
npx typescript-json-schema $(TRACE_SCHEMA_OPTS) trace.haskell.d.ts HaskellTraceEvent > trace.haskell.schema.json
1919
npx prettier -w trace.haskell.schema.json
2020

21-
trace.rust.schema.json: trace.rust.d.ts
21+
trace.rust.schema.json: trace.rust.d.ts trace.shared.d.ts
2222
npx typescript-json-schema $(TRACE_SCHEMA_OPTS) trace.rust.d.ts RustTraceEvent > trace.rust.schema.json
2323
npx prettier -w trace.rust.schema.json
2424

data/simulation/trace.haskell.schema.json

Lines changed: 52 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@
8484
"$ref": "#/definitions/GeneratedVote"
8585
},
8686
{
87-
"$ref": "#/definitions/NetworkEvent"
87+
"$ref": "#/definitions/SentEvent"
88+
},
89+
{
90+
"$ref": "#/definitions/ReceivedEvent"
8891
},
8992
{
9093
"$ref": "#/definitions/SlotEvent"
@@ -274,7 +277,26 @@
274277
],
275278
"type": "object"
276279
},
277-
"NetworkEvent": {
280+
"NoBlockEvent": {
281+
"properties": {
282+
"node": {
283+
"type": "string"
284+
},
285+
"slot": {
286+
"type": "number"
287+
},
288+
"type": {
289+
"$ref": "#/definitions/NoBlockEventType"
290+
}
291+
},
292+
"required": ["node", "slot", "type"],
293+
"type": "object"
294+
},
295+
"NoBlockEventType": {
296+
"enum": ["NoEBGenerated", "NoIBGenerated", "NoVTBundleGenerated"],
297+
"type": "string"
298+
},
299+
"ReceivedEvent": {
278300
"properties": {
279301
"id": {
280302
"type": "string"
@@ -285,57 +307,56 @@
285307
},
286308
"type": "array"
287309
},
288-
"msg_size_bytes": {
289-
"type": "number"
290-
},
291310
"recipient": {
292311
"type": "string"
293312
},
294313
"sender": {
295314
"type": "string"
296315
},
297-
"sending_s": {
298-
"type": "number"
299-
},
300316
"type": {
301-
"$ref": "#/definitions/NetworkEventType"
317+
"enum": [
318+
"EBReceived",
319+
"IBReceived",
320+
"RBReceived",
321+
"VTBundleReceived"
322+
],
323+
"type": "string"
302324
}
303325
},
304326
"required": ["id", "recipient", "type"],
305327
"type": "object"
306328
},
307-
"NetworkEventType": {
308-
"enum": [
309-
"EBReceived",
310-
"EBSent",
311-
"IBReceived",
312-
"IBSent",
313-
"RBReceived",
314-
"RBSent",
315-
"VTBundleReceived",
316-
"VTBundleSent"
317-
],
318-
"type": "string"
319-
},
320-
"NoBlockEvent": {
329+
"SentEvent": {
321330
"properties": {
322-
"node": {
331+
"id": {
323332
"type": "string"
324333
},
325-
"slot": {
334+
"ids": {
335+
"items": {
336+
"type": "string"
337+
},
338+
"type": "array"
339+
},
340+
"msg_size_bytes": {
341+
"type": "number"
342+
},
343+
"recipient": {
344+
"type": "string"
345+
},
346+
"sender": {
347+
"type": "string"
348+
},
349+
"sending_s": {
326350
"type": "number"
327351
},
328352
"type": {
329-
"$ref": "#/definitions/NoBlockEventType"
353+
"enum": ["EBSent", "IBSent", "RBSent", "VTBundleSent"],
354+
"type": "string"
330355
}
331356
},
332-
"required": ["node", "slot", "type"],
357+
"required": ["id", "msg_size_bytes", "recipient", "sender", "type"],
333358
"type": "object"
334359
},
335-
"NoBlockEventType": {
336-
"enum": ["NoEBGenerated", "NoIBGenerated", "NoVTBundleGenerated"],
337-
"type": "string"
338-
},
339360
"SlotEvent": {
340361
"properties": {
341362
"node": {

data/simulation/trace.rust.schema.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -321,18 +321,12 @@
321321
},
322322
"type": "array"
323323
},
324-
"msg_size_bytes": {
325-
"type": "number"
326-
},
327324
"recipient": {
328325
"type": "string"
329326
},
330327
"sender": {
331328
"type": "string"
332329
},
333-
"sending_s": {
334-
"type": "number"
335-
},
336330
"type": {
337331
"$ref": "#/definitions/NetworkEventType"
338332
}

data/simulation/trace.shared.d.ts

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,7 @@ type Event =
1515
| SlotEvent
1616
| NoBlockEvent;
1717

18-
type EventType =
19-
| CpuEventType
20-
| BlockEventType
21-
| NetworkEventType
22-
| SlotEventType
23-
| NoBlockEventType;
18+
type EventType = Event["type"];
2419

2520
type SlotEventType = "Slot"
2621
interface SlotEvent {
@@ -100,18 +95,28 @@ type BlockEvent =
10095

10196

10297
type NetworkAction = "Sent" | "Received"
103-
type NetworkEventType = `${BlockKind}${NetworkAction}`
10498

105-
interface NetworkEvent {
106-
type: NetworkEventType;
107-
sender?: string;
99+
type NetworkEvent = SentEvent | ReceivedEvent;
100+
type NetworkEventType = NetworkEvent["type"];
101+
102+
interface SentEvent {
103+
type: `${BlockKind}Sent`;
104+
sender: string;
108105
recipient: string;
109-
msg_size_bytes?: number;
106+
msg_size_bytes: number;
110107
sending_s?: number;
111108
id: string;
112109
ids?: string[];
113110
}
114111

112+
interface ReceivedEvent {
113+
type: `${BlockKind}Received`;
114+
sender?: string;
115+
recipient: string;
116+
id: string;
117+
ids?: string[];
118+
}
119+
115120
export interface UnknownEvent {
116121
time_s: number;
117122
message: UnknownMessage;

data/simulation/trace.shared.schema.json

Lines changed: 52 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@
8484
"$ref": "#/definitions/GeneratedVote"
8585
},
8686
{
87-
"$ref": "#/definitions/NetworkEvent"
87+
"$ref": "#/definitions/SentEvent"
88+
},
89+
{
90+
"$ref": "#/definitions/ReceivedEvent"
8891
},
8992
{
9093
"$ref": "#/definitions/SlotEvent"
@@ -274,7 +277,26 @@
274277
],
275278
"type": "object"
276279
},
277-
"NetworkEvent": {
280+
"NoBlockEvent": {
281+
"properties": {
282+
"node": {
283+
"type": "string"
284+
},
285+
"slot": {
286+
"type": "number"
287+
},
288+
"type": {
289+
"$ref": "#/definitions/NoBlockEventType"
290+
}
291+
},
292+
"required": ["node", "slot", "type"],
293+
"type": "object"
294+
},
295+
"NoBlockEventType": {
296+
"enum": ["NoEBGenerated", "NoIBGenerated", "NoVTBundleGenerated"],
297+
"type": "string"
298+
},
299+
"ReceivedEvent": {
278300
"properties": {
279301
"id": {
280302
"type": "string"
@@ -285,57 +307,56 @@
285307
},
286308
"type": "array"
287309
},
288-
"msg_size_bytes": {
289-
"type": "number"
290-
},
291310
"recipient": {
292311
"type": "string"
293312
},
294313
"sender": {
295314
"type": "string"
296315
},
297-
"sending_s": {
298-
"type": "number"
299-
},
300316
"type": {
301-
"$ref": "#/definitions/NetworkEventType"
317+
"enum": [
318+
"EBReceived",
319+
"IBReceived",
320+
"RBReceived",
321+
"VTBundleReceived"
322+
],
323+
"type": "string"
302324
}
303325
},
304326
"required": ["id", "recipient", "type"],
305327
"type": "object"
306328
},
307-
"NetworkEventType": {
308-
"enum": [
309-
"EBReceived",
310-
"EBSent",
311-
"IBReceived",
312-
"IBSent",
313-
"RBReceived",
314-
"RBSent",
315-
"VTBundleReceived",
316-
"VTBundleSent"
317-
],
318-
"type": "string"
319-
},
320-
"NoBlockEvent": {
329+
"SentEvent": {
321330
"properties": {
322-
"node": {
331+
"id": {
323332
"type": "string"
324333
},
325-
"slot": {
334+
"ids": {
335+
"items": {
336+
"type": "string"
337+
},
338+
"type": "array"
339+
},
340+
"msg_size_bytes": {
341+
"type": "number"
342+
},
343+
"recipient": {
344+
"type": "string"
345+
},
346+
"sender": {
347+
"type": "string"
348+
},
349+
"sending_s": {
326350
"type": "number"
327351
},
328352
"type": {
329-
"$ref": "#/definitions/NoBlockEventType"
353+
"enum": ["EBSent", "IBSent", "RBSent", "VTBundleSent"],
354+
"type": "string"
330355
}
331356
},
332-
"required": ["node", "slot", "type"],
357+
"required": ["id", "msg_size_bytes", "recipient", "sender", "type"],
333358
"type": "object"
334359
},
335-
"NoBlockEventType": {
336-
"enum": ["NoEBGenerated", "NoIBGenerated", "NoVTBundleGenerated"],
337-
"type": "string"
338-
},
339360
"SlotEvent": {
340361
"properties": {
341362
"node": {

0 commit comments

Comments
 (0)