mirror of
https://github.com/status-im/simulation.git
synced 2025-02-23 20:38:07 +00:00
29 lines
1.0 KiB
Markdown
29 lines
1.0 KiB
Markdown
|
# Propagation
|
||
|
|
||
|
## Plog
|
||
|
---
|
||
|
PLog describes messages propagation data in the concise and streamable form, to be used as a main data format for representing simulated message propagation data.
|
||
|
|
||
|
### Format
|
||
|
|
||
|
Currently a single plog record holds information about nodes and edges active per timestamp. Both nodes and edges are identified by their indicies (this should match the original graph indicies).
|
||
|
|
||
|
For example, if network graph has 3 nodes, recorded indicies should be 0,1 and 2 respectively.
|
||
|
|
||
|
Current structure:
|
||
|
|
||
|
```go
|
||
|
package plog
|
||
|
|
||
|
type Data struct {
|
||
|
Timestamps []int // timestamps in milliseconds starting from T0
|
||
|
Indices [][]int // indices of links for each step, len should match Timestamps
|
||
|
Nodes [][]int // indices of nodes involved in each step, len should match Timestamps
|
||
|
|
||
|
```
|
||
|
|
||
|
So, if you have nodes 0 and 1 activated on first timestamp step, and nodes 1 and 2 on second, it'll be:
|
||
|
|
||
|
plog.Timestamps = []int{10, 20} // say, 10 and 20 ms timestamps
|
||
|
plog.Nodes = [][]int{[]int{0, 1}, []int{1, 2}}
|