Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
bf95203
chore(config): rename repair_intake_listen_port in toml (#10218)
lidatong Jun 12, 2026
3e093d8
fd_alloc updates
kbowers-jump Apr 24, 2026
5dd5d1a
fd_alloc: minor follow-up upgrades
jvarela-jump Jun 11, 2026
53f4fdc
config: language and documentation tweaks
mmcgee-jump Jun 12, 2026
0bb8a2a
progcache: update stale comment on non-exec entries
two-heart Jun 12, 2026
de3bba9
fix(tower): remove incorrect FD_TEST (#10205)
lidatong Jun 12, 2026
8dcd416
events: use clock_tile for tickcount-to-wallclock conversion
riptl Jun 12, 2026
215d213
events: add signed_vote
riptl Jun 12, 2026
62a79da
events: add tower to signed_vote event
riptl Jun 12, 2026
9c3b708
update fd_vinyl_data sizeclasses
kbowers-jump Apr 24, 2026
a033f93
events: generate schema structs and serializers
mmcgee-jump Jun 12, 2026
0860e52
events: simplify signing domain
riptl Jun 12, 2026
a229ba9
fix(secp256r1): add one more point (#10170)
publicqi Jun 12, 2026
efab753
README: use full Firedancer in dev section
riptl Jun 4, 2026
c1df241
fddev: remove legacy Make targets
riptl Jun 4, 2026
801d93d
config: reduce verbosity
riptl Jun 5, 2026
838438b
config: add 'source activate' script
riptl Jun 5, 2026
52ccc28
fixup .gitignore
Rexicon226 Jun 13, 2026
43174e2
gui: split disco/gui and discoh/guih (#10113)
jherrera-jump Jun 13, 2026
6fd80f2
gui: reorder overview tiles card (#10217)
jherrera-jump Jun 14, 2026
8c1705e
rserve: drop startup log to INFO
riptl Jun 14, 2026
9ad8de5
rpc: add WebSocket support (voteSubscribe)
riptl Jun 14, 2026
fbce935
http: use sendmsg instead of sendmmsg
riptl Jun 14, 2026
4604d46
rpc: serve raw txns for voteSubscribe
riptl Jun 14, 2026
28d1a1f
rpc: implement slotSubscribe
riptl Jun 14, 2026
5eefd79
rpc: fix double memcpy on WebSocket send
riptl Jun 14, 2026
8000ce7
events: generate bounds checks
mmcgee-jump Jun 14, 2026
d4f869a
events: wire event reporting topology automatically
mmcgee-jump Jun 14, 2026
4d84396
feature: clean up warp_timestamp_again (#10234)
mjain-jump Jun 15, 2026
cbe13be
loader v3: fix non-conformant logs (#10235)
mjain-jump Jun 15, 2026
7809f37
agave: upgrade submodule to v4.1.0-rc.0 (#10233)
alpeng-jump Jun 15, 2026
739d8df
fuzz(txn): only capture writable accounts (#10238)
mjain-jump Jun 15, 2026
50b0024
gui: add rserve ema metrics
Rexicon226 Jun 15, 2026
f715e32
fuzz: move sched/rdisp fuzzer to pre/lazy-allocations
two-heart Jun 15, 2026
bd51584
quic: use correct type for tpu_reasm allocations
two-heart Jun 15, 2026
d36c179
fuzz: split sched/rdisp fuzzer unit-test+fuzzer
two-heart Jun 15, 2026
640c802
repair: fix tile union member type confusion
two-heart Jun 15, 2026
1a92ae4
diag: add TLB shootdowns to metrics
riptl Jun 15, 2026
31a687b
backtest: better warning if RocksDB missing
riptl Jun 15, 2026
31d8334
codeql: reduce noise in Security and Quality
two-heart Jun 15, 2026
c145ee8
seccomp: actually fail if filter generation failed
intrigus-lgtm Jun 15, 2026
bd4e22b
guih: fix and regenerate seccomp policy
intrigus-lgtm Jun 15, 2026
08cb1a5
seccomp: align guih with gui seccomp policy
intrigus-lgtm Jun 15, 2026
fdd2a33
add diag tile to backtest and snapshot-load topos
riptl Jun 15, 2026
fcc3486
events: fix connection race
mmcgee-jump Jun 16, 2026
b58c597
restore: pipeline recovery under new accdb
jvarela-jump Jun 8, 2026
96126e8
ledgers: delay_commission_updates + validator_admission_ticket
kbhargava-jump Jun 16, 2026
f81f0c0
ledgers: clean up unused arg
kbhargava-jump Jun 16, 2026
c66cf27
tower: report confirmation event telemetry
mmcgee-jump Jun 16, 2026
7b2ccae
fuzz(shred): omit empty fec_set payload to match Agave harness bit fo…
yufeng-jump Jun 16, 2026
e97b091
sched: accept a whole batch of empty shreds as an empty batch
yufeng-jump Jun 16, 2026
d783bb1
events: minor client fixes
mmcgee-jump Jun 16, 2026
bffab8b
fuzz, gossip: gossip multi tile fuzzers (#10265)
two-heart Jun 16, 2026
0fe7e01
gossip: use local ip for outbound packet source
Rexicon226 Jun 16, 2026
2d29615
topo: fix enable_block_production=false
Rexicon226 Jun 16, 2026
c5fc5ea
sock: fix no rserve & repair socket
Rexicon226 Jun 16, 2026
e46d370
gui: add snapwr to summary.boot_progress, fix summary.live_network_me…
jherrera-jump Jun 16, 2026
1a726d7
bn254: cleanup unsafe poseidon API
Rexicon226 Jun 16, 2026
6bc72fc
txncache: support canceling fork trees
yufeng-jump Jun 16, 2026
5d6ca80
rpc: serve tpu, tpuForwards (#10270)
jherrera-jump Jun 16, 2026
a2ad0a0
restore: sspeer_selector cap on max slots behind
jvarela-jump Jun 15, 2026
830a695
merge with upstream
deeprnd Jun 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ bin
dump
unit-test
tmp
# frontend
frontend
.DS_Store

genhtml/
Expand Down
3 changes: 0 additions & 3 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,6 @@ ifndef MACHINE
MACHINE=native
endif

$(info Using MACHINE=$(MACHINE))
$(info Using EXTRAS=$(EXTRAS_PRE) $(EXTRAS))

# Default target
all:

Expand Down
85 changes: 85 additions & 0 deletions activate
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
for arg in "$@"; do
case "$arg" in
help|--help)
echo "Usage: source activate [CC=clang] [EXTRAS=...] [MACHINE=...] [BUILDDIR=...]"
exit 0
;;
esac
done

# Ignore variables set in existing environment.
unset BUILDDIR1
unset BUILDDIR
unset OBJDIR
unset MACHINE
unset EXTRAS
unset CC

# Auto-derive environment variables from the above 5 input variables.
_fd_env_make_env=$(make env "$@") || return
eval "$_fd_env_make_env"
unset _fd_env_make_env
if [ -z "${OBJDIR+x}" ] || [ -z "$OBJDIR" ]; then
printf '%s\n' 'activate: OBJDIR is not set' >&2
return
fi

# Re-export, so future `make` invocations match.
echo "Firedancer build directory is $OBJDIR"
export OBJDIR
export MACHINE
export EXTRAS
export CC
BUILDDIR1="$BUILDDIR"
export BUILDDIR1

# Update PATH to exclude stale build dirs,
# and include OBJDIR bin, unit-test, and fuzz-test

_fd_env_script=${BASH_SOURCE[0]:-$0}
_fd_env_script_dir=$(CDPATH= cd -- "$(dirname -- "$_fd_env_script")" 2>/dev/null && pwd -P)
_fd_env_root=$_fd_env_script_dir

_fd_env_old_path=${PATH-}
_fd_env_new_path=

while [ -n "$_fd_env_old_path" ]; do
case $_fd_env_old_path in
*:*)
_fd_env_path_entry=${_fd_env_old_path%%:*}
_fd_env_old_path=${_fd_env_old_path#*:}
;;
*)
_fd_env_path_entry=$_fd_env_old_path
_fd_env_old_path=
;;
esac

case $_fd_env_path_entry in
/*) _fd_env_path_match=$_fd_env_path_entry ;;
*) _fd_env_path_match=$PWD/$_fd_env_path_entry ;;
esac

if [ -d "$_fd_env_path_match" ]; then
_fd_env_path_match=$(CDPATH= cd -- "$_fd_env_path_match" 2>/dev/null && pwd -P)
fi

case $_fd_env_path_match in
"$_fd_env_root"| "$_fd_env_root"/*) continue ;;
esac

if [ -z "$_fd_env_new_path" ]; then
_fd_env_new_path=$_fd_env_path_entry
else
_fd_env_new_path=$_fd_env_new_path:$_fd_env_path_entry
fi
done

PATH=$OBJDIR/bin:$OBJDIR/fuzz-test:$OBJDIR/unit-test
if [ -n "$_fd_env_new_path" ]; then
PATH=$PATH:$_fd_env_new_path
fi
export PATH

unset _fd_env_old_path _fd_env_new_path _fd_env_path_entry
unset _fd_env_path_match _fd_env_root _fd_env_script _fd_env_script_dir
28 changes: 27 additions & 1 deletion book/api/metrics-generated.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 18 additions & 5 deletions book/api/websocket.md
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,9 @@ Some interesting transitions are,
"loading_full_snapshot_decompress_bytes_compressed": "826495323",
"loading_full_snapshot_insert_bytes_decompressed": "4864409599",
"loading_full_snapshot_insert_accounts": 10634591,
"loading_full_snapshot_snapwr_in_bytes_decompressed": "4864409599",
"loading_full_snapshot_snapwr_out_bytes_decompressed": "4892160000",
"loading_full_snapshot_snapwr_accounts": 10634591,
"loading_incremental_snapshot_elapsed_seconds": null,
"loading_incremental_snapshot_reset_count": null,
"loading_incremental_snapshot_slot": null,
Expand All @@ -545,6 +548,9 @@ Some interesting transitions are,
"loading_incremental_snapshot_decompress_bytes_compressed": null,
"loading_incremental_snapshot_insert_bytes_decompressed": null,
"loading_incremental_snapshot_insert_accounts": null,
"loading_incremental_snapshot_snapwr_in_bytes_decompressed": null,
"loading_incremental_snapshot_snapwr_out_bytes_decompressed": null,
"loading_incremental_snapshot_snapwr_accounts": null,
"wait_for_supermajority_bank_hash": "2CeCyRoYmcctDmbXWrSUfTT4aQkGVCnArAmbdmQ5dGFi",
"wait_for_supermajority_shred_version": "37500",
"wait_for_supermajority_attempt": 1,
Expand Down Expand Up @@ -574,7 +580,10 @@ Some interesting transitions are,
| loading_{full\|incremental}_snapshot_decompress_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (decompressed) number of bytes processed by decompress from the snapshot so far. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_decompress_bytes_compressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (compressed) number of bytes processed by decompress from the snapshot so far. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_insert_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (decompressed) number of bytes processed from the snapshot by the snapshot insert time so far. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_insert_accounts | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the current number of inserted accounts from the snapshot into the validator's accounts database. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_insert_accounts | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the current number of accounts inserted into the validator's accounts database from this snapshot. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_snapwr_in_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (decompressed) number of bytes consumed from the snapshot by the snapshot write (snapwr) stage so far. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_snapwr_out_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the number of bytes written to the on-disk account database by the snapshot write (snapwr) stage for this snapshot so far. Otherwise, `null` |
| loading_{full\|incremental}_snapshot_snapwr_accounts | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the current number of accounts written to the on-disk account database by the snapshot write (snapwr) stage for this snapshot so far. Otherwise, `null` |
| wait_for_supermajority_bank_hash | `string\|null` | If the client was configured to include the `waiting_for_supermajority` phase at startup, this is the expected bank hash of the snapshot bank. This ensures all validators join the cluster with the same starting state. `null` if wait for supermajority is not enabled |
| wait_for_supermajority_shred_version | `string\|null` | If the client was configured to include the `waiting_for_supermajority` phase at startup, this is the expected shred version it was configured with. Shred version is functionally a hash of (genesis_hash, cluster_restart_history) which ensures only nodes which explicitly agree on the restart slot and restart attempt count can communicate with each other. `null` if wait for supermajority is not configured |
| wait_for_supermajority_attempt | `number\|null` | If the client was configured to include the `waiting_for_supermajority` phase at startup, this is the number of times this cluster has been restarted onto the snapshot slot, including the current attempt. `null` if wait for supermajority is not configured |
Expand Down Expand Up @@ -901,6 +910,7 @@ uses to communicate with the internet.
"gossip",
"tpu",
"repair",
"rserve",
"metrics"
]
```
Expand All @@ -914,6 +924,9 @@ in a client used to consume and forward incoming Solana transactions for
their next leader slot.
- repair: a client subsystem which requests any missing block data
needed by the replay pipeline which may have been lost over the network
- rserve: "repair serve", a client subsystem which serves repair
requests from other nodes, responding with any block data they are
missing
- metrics: refers to the Firedancer metrics tile, which serves an http
Prometheus metrics endpoint

Expand All @@ -922,10 +935,10 @@ Prometheus metrics endpoint
"topic": "summary",
"key": "live_network_metrics",
"value": {
"ingress": [12345432, 5431234, 92345, ...],
"egress": [12345432, 5431234, 92345, ...],
"ingress_ema": [1234543.00, 543123.00, 9234.00, ...],
"egress_ema": [1234543.00, 543123.00, 9234.00, ...],
"ingress": [12345432, 5431234, 92345, 43210, 8765, ...],
"egress": [12345432, 5431234, 92345, 43210, 8765, ...],
"ingress_ema": [1234543.00, 543123.00, 9234.00, 4321.00, 876.00, ...],
"egress_ema": [1234543.00, 543123.00, 9234.00, 4321.00, 876.00, ...],
"ingress_max_5m": 15000000,
"egress_max_5m": 14500000,
}
Expand Down
3 changes: 3 additions & 0 deletions config/base.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
BASEDIR?=build
ifneq ($(BUILDDIR1),)
BUILDDIR:=$(BUILDDIR1)
endif

VERBOSE?=0
OPT?=opt
Expand Down
Loading
Loading