Skip to content

Conversation

@ch1bo
Copy link
Member

@ch1bo ch1bo commented Nov 19, 2025

  • Drop yarn/bun setup and simplify getting started. Also add instructions on how to (re-)create example traces. Also add a dev shell that contains tools for development on ui/
  • Format codebase with prettier (Sorry, but that needed to be done)
  • Add small topology, 120s linear leios examples. One with 1 TxkB/s and one with 200 TxkB/s throughput. Also link topologies with existing files in repo.
  • Add full playback control and time traveling visualization
    • Visualize Leios messages traveling between nodes
    • Uses topology latencies for animation when available
    • Rewrote large parts of state management
    • Performance is good for at least 1M events (200 TxkB/s example scenario)
      • TBD: improve (playback / seeking) performance using incremental aggregation
    • Seek forward/backward and do 1ms / 10ms steps, as well as playback at multiple speeds
    • Key bindings for easy navigation
  • BREAKING Drop support for pre-aggregated data (aggregated: true flag and -a option in sim)
  • Add option to not load transactions from a scenario
  • Show node stats on the top right (to not occlude much from the graph)
  • BREAKING Drop block/transaction graphs visualization. We have Ipython notebooks (using R) and also going to use Grafana dashboards instead.
  • BREAKING Drop support for IBs. Only the relevant events of the CIP-164 protocol version are supported now.

Demo

Loading and playing a 120s simulation of 200 TxkB/s linear leios traffic. Mostly used key bindings to navigate the timeline and change speed.

simplescreenrecorder-2025-11-19_22.56.28.mp4

Follow-up / ideas

  • network topology summary
  • visualize upstream/downstream edges
  • only draw connection when active
  • indicate message sizes (length of rects) in visualization
  • use varying colors per RB/EB id (to see propagation)
  • bandwidth in topology? (width of rects)
  • Dynamic topology (links and their latency) based on seen events

@ch1bo ch1bo linked an issue Nov 19, 2025 that may be closed by this pull request
2 tasks
@ch1bo ch1bo force-pushed the ch1bo/revive-ui branch 2 times, most recently from 743fa74 to 25bde3f Compare November 19, 2025 18:55
@ch1bo ch1bo requested review from a team, SupernaviX and will-break-it November 19, 2025 20:45
@ch1bo ch1bo marked this pull request as ready for review November 19, 2025 20:45
@ch1bo ch1bo force-pushed the ch1bo/revive-ui branch 2 times, most recently from 735515a to eb30fa0 Compare November 19, 2025 21:18
ch1bo added 20 commits November 19, 2025 22:19
This can be run via nix-shell ui/shell.nix, nix-develop -f ui/shell.nix or nix develop .#ui
Just suggest using npm and drop bun/yarn lock files
…ontrol

This is obviously going to break down at later, big scenarios.
Also re-introduce batching to have less state dispatch calls. These
turned out to be the bottleneck (with the processMessage induced copying
between threads being another small one).
Introduces a play/pause separate from load/unload
This avoids recomputation and provides a single source of truth.
Performance is also better now.
This seems to match surprisingly well with simulation data. No variance
in the simulation?
Both are not as useful and detailed analysis on (long) simulation traces
is made through either IPython notebooks (using R) and future live
visualization using normal graphs is easier done through Grafana.
Those are not part of the protocol anymore, but could easily be added
later if needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Visualize Leios prototype network traffic with updated web application

2 participants