gui: add wait for supermajority#8949
Conversation
2cd354d to
471b51d
Compare
There was a problem hiding this comment.
Pull request overview
This PR extends the Firedancer GUI/WebSocket API to expose “waiting for supermajority” (WFS) boot progress details, including a new boot phase, additional summary fields, and a new websocket topic that streams which staked peers are currently offline during WFS.
Changes:
- Add a new boot progress phase
waiting_for_supermajorityand export WFS-related progress/identity fields in thesummary.boot_progresswebsocket payload. - Wire snapshot manifest messages into the GUI tile so the GUI/peers view can derive restart-attempt information and build the staked-peer set for WFS offline tracking.
- Add a new websocket topic
wfs_offline_peers.updatethat emits edge-triggered add/remove updates for staked peers that are offline/online during WFS.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Adds GUI tile config fields for WFS bank hash and expected shred version. |
| src/disco/gui/fd_gui_tile.c | Adds a new GUI input link kind for snapshot manifests and initializes GUI WFS summary fields. |
| src/disco/gui/fd_gui_printf.h | Declares a new peers printf function for wfs_offline_peers updates. |
| src/disco/gui/fd_gui_printf.c | Emits WFS fields in summary.boot_progress and implements wfs_offline_peers.update serialization. |
| src/disco/gui/fd_gui_peers.h | Adds WFS offline peer tracking structures and manifest handler declaration. |
| src/disco/gui/fd_gui_peers.c | Builds WFS peer set from snapshot manifest, tracks online/offline transitions, and publishes websocket updates. |
| src/disco/gui/fd_gui.h | Adds WFS fields to GUI summary and declares snapshot manifest handler; adds new boot progress phase constant. |
| src/disco/gui/fd_gui.c | Integrates gossip WFS state into boot progress state machine; parses manifest to derive restart attempt. |
| src/app/firedancer/topology.c | Wires snapin_manif into the GUI tile and passes WFS config values into GUI tile config. |
| book/api/websocket.md | Documents new WFS summary fields, prev_stake, and the new wfs_offline_peers topic. |
471b51d to
fcf086f
Compare
There was a problem hiding this comment.
Pull request overview
Adds GUI/websocket support for a new boot phase (waiting_for_supermajority) and related cluster-restart telemetry, including per-peer offline tracking during that phase.
Changes:
- Introduces
waiting_for_supermajorityas a new boot progress phase and publisheswait_for_supermajority_*fields in thesummary.boot_progresswebsocket payload. - Plumbs
wait_for_supermajorityconfiguration (bank hash + expected shred version) into the GUI summary state. - Adds
wfs_offline_peerswebsocket topic and addsprev_staketo peer vote info.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Adds GUI tile config fields for WFS bank hash + expected shred version. |
| src/disco/gui/fd_gui_tile.c | Wires new snapin_manif input to GUI + peers handlers; propagates WFS config into GUI summary. |
| src/disco/gui/fd_gui_printf.h | Declares new websocket printer for wfs_offline_peers updates. |
| src/disco/gui/fd_gui_printf.c | Emits new boot phase + WFS fields; adds prev_stake; implements wfs_offline_peers update payload printing. |
| src/disco/gui/fd_gui_peers.h | Adds state for tracking WFS offline peers and a manifest handler API. |
| src/disco/gui/fd_gui_peers.c | Builds offline-peer set from snapshot manifest; tracks online/offline transitions and publishes websocket updates. |
| src/disco/gui/fd_gui.h | Adds boot phase constant + stores WFS configuration and WFS boot-progress fields. |
| src/disco/gui/fd_gui.c | Drives boot phase transitions using gossip WFS metrics; extracts restart attempt from snapshot manifest. |
| src/app/firedancer/topology.c | Connects snapin_manif to GUI tile and populates GUI WFS config from config. |
| book/api/websocket.md | Documents new wait_for_supermajority_* fields, prev_stake, and new wfs_offline_peers topic. |
fcf086f to
a6332d3
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new waiting_for_supermajority phase to the full-client GUI boot progress state machine and extends peer/snapshot-driven GUI telemetry to support cluster-restart workflows (including previous-epoch stake and offline-staked-peer tracking).
Changes:
- Extend boot progress with a
waiting_for_supermajorityphase and expose WFS-related fields over the websocketsummary.boot_progresstopic. - Plumb snapshot manifest messages into the GUI tile and use them to compute/report WFS attempt and staked-peer offline/online deltas.
- Add
prev_stakereporting for peers (previous epoch’s activated stake).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Adds GUI tile config fields for WFS bank hash + expected shred version. |
| src/disco/gui/fd_gui_tile.c | Adds a new input kind for snapshot manifest and forwards it to GUI/peers subsystems; initializes WFS summary fields. |
| src/disco/gui/fd_gui_printf.h | Declares websocket printer for wfs_offline_peers updates. |
| src/disco/gui/fd_gui_printf.c | Adds new boot progress phase string + WFS boot fields; prints prev_stake; implements wfs_offline_peers update topic. |
| src/disco/gui/fd_gui_peers.h | Adds prev_stake storage and WFS offline-peer tracking structures/APIs. |
| src/disco/gui/fd_gui_peers.c | Implements manifest-driven WFS offline peer tracking and sets prev_stake from previous epoch stakes. |
| src/disco/gui/fd_gui.h | Adds WFS fields to GUI summary; adds new boot phase constant; declares manifest handler. |
| src/disco/gui/fd_gui.c | Adds WFS-aware boot progress transitions and sampling; extracts restart attempt from snapshot manifest. |
| src/app/firedancer/topology.c | Wires snapin_manif into GUI tile and plumbs WFS config into GUI tile config. |
| book/api/websocket.md | Documents new boot progress phase/fields, prev_stake, and wfs_offline_peers websocket topic. |
a6332d3 to
fca67b0
Compare
There was a problem hiding this comment.
Pull request overview
This PR extends the GUI/websocket surface area to support a new full-client boot phase (waiting_for_supermajority) and exposes additional cluster-restart and peer stake context (including previous-epoch stake and offline-staked-peer updates derived from the snapshot manifest).
Changes:
- Add
waiting_for_supermajorityto the GUI boot progress state machine and websocket output, including WFS configuration + progress metrics. - Plumb snapshot manifest messages into the GUI tile and peers subsystem, and add a
wfs_offline_peerswebsocket topic. - Add
prev_staketo peer vote-account JSON payloads (where available).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Adds GUI tile config fields for WFS bank hash and expected shred version. |
| src/disco/gui/fd_gui_tile.c | Adds snapin_manif input handling and routes snapshot manifest into GUI + peers. |
| src/disco/gui/fd_gui_printf.h | Declares websocket printer for wfs_offline_peers updates. |
| src/disco/gui/fd_gui_printf.c | Emits new boot_progress phase/fields; adds wfs_offline_peers.update formatting; adds prev_stake field to peer vote JSON. |
| src/disco/gui/fd_gui_peers.h | Adds WFS offline-peer tracking structures/state and manifest handler prototype; adds prev_stake to peer node model. |
| src/disco/gui/fd_gui_peers.c | Implements manifest-derived offline-peer tracking and sets prev_stake via epoch data; adds online/offline transitions. |
| src/disco/gui/fd_gui.h | Adds boot phase constant and summary fields for WFS config/metrics; declares snapshot manifest handler. |
| src/disco/gui/fd_gui.c | Integrates gossip WFS state into boot progress transitions; tracks WFS metrics/attempt from snapshot manifest. |
| src/app/firedancer/topology.c | Wires snapin_manif into GUI tile and passes WFS config into GUI tile. |
| book/api/websocket.md | Documents new boot progress phase/fields, prev_stake, and the new wfs_offline_peers topic. |
fca67b0 to
5098d3b
Compare
There was a problem hiding this comment.
Pull request overview
Adds GUI support for Solana “wait for supermajority” (WFS) during full-client boot, including a new boot phase, WFS metrics surfaced over websocket, and a new websocket topic to show which staked peers are offline during cluster restart. Also extends peer payloads to include previous-epoch stake.
Changes:
- Extend full-client boot progress state machine with
waiting_for_supermajorityand emit WFS-related fields/metrics over websocket. - Wire snapshot manifest (
snapin_manif) into the GUI tile and use it to derive restart attempt + offline staked-peer tracking. - Add
prev_stakefor peers (previous epoch) and document the new websocket fields/topics.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Adds GUI tile config fields for WFS bank hash + expected shred version. |
| src/disco/gui/fd_gui_tile.c | Adds snapin_manif input handling and passes WFS config into GUI/peers subsystems. |
| src/disco/gui/fd_gui_printf.h | Declares websocket printer for wfs_offline_peers updates. |
| src/disco/gui/fd_gui_printf.c | Adds boot phase string + WFS fields to boot_progress JSON; implements offline-peer update message formatting. |
| src/disco/gui/fd_gui_peers.h | Adds peer prev_stake and data structures for tracking offline staked peers during WFS. |
| src/disco/gui/fd_gui_peers.c | Computes prev_stake from prior epoch data and implements offline-peer tracking fed by snapshot manifests + gossip activity. |
| src/disco/gui/fd_gui.h | Adds boot phase constant, WFS summary fields, and snapshot manifest handler prototype. |
| src/disco/gui/fd_gui.c | Wires WFS into boot-progress state transitions and extracts restart attempt from snapshot manifest hard forks. |
| src/app/firedancer/topology.c | Connects snapin_manif to GUI tile and propagates WFS bank hash / shred version from config. |
| book/api/websocket.md | Documents new boot phase/fields, prev_stake, and the wfs_offline_peers topic. |
5098d3b to
144ee09
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new GUI boot-progress phase for “waiting for supermajority” (cluster-restart/WFS) in the full-client startup state machine, and extends peer data surfaced to the frontend (previous epoch stake + WFS offline peer tracking).
Changes:
- Add
waiting_for_supermajorityboot phase and emit WFS progress fields (bank hash, shred version, stake/peer counts, attempt). - Add
prev_staketo peer vote-account JSON and compute it from the previous epoch’s stake table. - Add snapshot-manifest ingestion path and a
wfs_offline_peerswebsocket topic to track staked peers that are offline during WFS.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Extend GUI tile config with WFS bank hash + expected shred version. |
| src/disco/gui/fd_gui_tile.c | Add snapin_manif input handling and route manifest messages into GUI + peers. |
| src/disco/gui/fd_gui_printf.h | Declare new websocket printer for wfs_offline_peers updates. |
| src/disco/gui/fd_gui_printf.c | Emit new boot-progress fields; add prev_stake; implement wfs_offline_peers update printing. |
| src/disco/gui/fd_gui_peers.h | Add prev_stake to peer model; add WFS offline-peer tracking structures and manifest handler API. |
| src/disco/gui/fd_gui_peers.c | Compute prev_stake; ingest snapshot manifest into WFS peer set; maintain online/offline tracking + broadcasts. |
| src/disco/gui/fd_gui.h | Add new boot phase enum and WFS-related summary + boot-progress fields; add manifest handler prototype. |
| src/disco/gui/fd_gui.c | Drive new boot phase via gossip WFS metrics; set WFS fields; derive restart attempt from manifest hard-forks. |
| src/app/firedancer/topology.c | Wire snapin_manif into GUI and pass WFS config into the GUI tile. |
| book/api/websocket.md | Document new boot phase + WFS fields, new wfs_offline_peers topic, and prev_stake. |
144ee09 to
628f37f
Compare
There was a problem hiding this comment.
Pull request overview
Adds GUI support for Firedancer’s “wait for supermajority” (WFS) startup behavior and exposes additional restart/epoch context to the frontend.
Changes:
- Extend the full-client boot progress state machine with a
waiting_for_supermajorityphase and associated websocket fields. - Add snapshot-manifest plumbing into the GUI tile to surface WFS attempt metadata and to derive/report offline staked peers during WFS.
- Include previous epoch stake (
prev_stake) in peer vote-account JSON output (when available).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/disco/topo/fd_topo.h | Adds GUI tile config fields for WFS bank hash and expected shred version |
| src/disco/gui/fd_gui_tile.c | Wires new snapin_manif input and routes snapshot manifest messages to GUI/peers logic |
| src/disco/gui/fd_gui_printf.h | Declares websocket printer for WFS offline peer updates |
| src/disco/gui/fd_gui_printf.c | Emits WFS boot progress fields, prev_stake, and new wfs_offline_peers topic updates |
| src/disco/gui/fd_gui_peers.h | Adds data structures and APIs for WFS offline peer tracking and prev_stake storage |
| src/disco/gui/fd_gui_peers.c | Implements manifest-driven offline-peer tracking and computes per-peer prev_stake from prior epoch info |
| src/disco/gui/fd_gui.h | Adds boot phase enum value and WFS-related fields to GUI summary/boot progress |
| src/disco/gui/fd_gui.c | Implements WFS boot phase transitions, metric sampling, and snapshot manifest handling for WFS attempt |
| src/app/firedancer/topology.c | Adds snapin_manif link to gui inputs and plumbs WFS config into GUI tile config |
| book/api/websocket.md | Documents new boot phase/fields, prev_stake, and the wfs_offline_peers websocket topic |
628f37f to
b5a391c
Compare
There was a problem hiding this comment.
Pull request overview
This PR extends Firedancer’s GUI-facing boot state machine and peer reporting to support a new wait-for-supermajority startup phase (driven by gossip WFS metrics and snapshot manifest data), and augments peer JSON with previous epoch stake.
Changes:
- Add
waiting_for_supermajorityas a new GUI boot-progress phase and expose related WFS fields over the websocket API. - Wire snapshot manifest messages into the GUI tile to derive WFS restart attempt and publish per-peer offline/online deltas.
- Include
prev_stakein peer vote-account payloads and update websocket API docs accordingly.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
src/disco/topo/fd_topo.h |
Adds GUI tile config fields for expected WFS bank hash and shred version. |
src/disco/gui/fd_gui_tile.c |
Adds a new input link kind for snapshot manifest and forwards manifest/DONE to GUI + peers subsystems. |
src/disco/gui/fd_gui_printf.h / src/disco/gui/fd_gui_printf.c |
Adds new boot-progress JSON fields and a new wfs_offline_peers update printer; adds prev_stake output. |
src/disco/gui/fd_gui_peers.h / src/disco/gui/fd_gui_peers.c |
Adds WFS offline peer tracking and snapshot-manifest staging/commit; computes and exposes prev_stake. |
src/disco/gui/fd_gui.h / src/disco/gui/fd_gui.c |
Introduces the new boot-progress phase and WFS metrics sampling; stages restart attempt from manifest hard-forks. |
src/app/firedancer/topology.c |
Wires the new snapin_manif link to the GUI and passes WFS config into the GUI tile. |
book/api/websocket.md |
Documents new boot-progress fields, wfs_offline_peers topic, and prev_stake / vote_account schema updates. |
f45a70f to
883adb6
Compare
883adb6 to
ba494a4
Compare
ba494a4 to
d887088
Compare
d887088 to
6a4a0d7
Compare
6a4a0d7 to
48715e4
Compare
48715e4 to
031d505
Compare
031d505 to
7a2a154
Compare
Uh oh!
There was an error while loading. Please reload this page.