Skip to content

Commit 3db977d

Browse files
sender: landing UDP votes
and (tmp) init poh_slot from repair
1 parent 9ba7ec8 commit 3db977d

19 files changed

Lines changed: 383 additions & 347 deletions

File tree

book/api/metrics-generated.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,3 +584,11 @@
584584
| repair_​sent_​pkt_​types_​needed_​window | `counter` | What types of client messages are we sending (Need Window) |
585585
| repair_​sent_​pkt_​types_​needed_​highest_​window | `counter` | What types of client messages are we sending (Need Highest Window) |
586586
| repair_​sent_​pkt_​types_​needed_​orphan | `counter` | What types of client messages are we sending (Need Orphans) |
587+
588+
## Sender Tile
589+
| Metric | Type | Description |
590+
|--------|------|-------------|
591+
| sender_​txns_​sent_​to_​leader | `counter` | Total count of transactions sent to leader |
592+
| sender_​leader_​sched_​not_​found | `counter` | Total count of times leader schedule not found |
593+
| sender_​leader_​not_​found | `counter` | Total count of times leader not found for given slot |
594+
| sender_​leader_​contact_​not_​found | `counter` | Total count of times leader contact info not found |

src/app/firedancer-dev/config/default.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
prometheus_listen_address = "0.0.0.0"
3030
prometheus_listen_port = 7999
3131
[consensus]
32-
vote = false
32+
vote = true
3333
expected_shred_version = 64475
3434
[paths]
3535
identity_key = "${KEYS}/fd-identity-keypair.json"

src/app/firedancer-dev/config/private.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
prometheus_listen_address = "0.0.0.0"
2525
prometheus_listen_port = 7999
2626
[consensus]
27-
vote = false
27+
vote = true
2828
expected_shred_version = 27972
2929
[paths]
3030
identity_key = "${KEYS}/fd-identity-keypair.json"

src/app/firedancer/topology.c

Lines changed: 51 additions & 54 deletions
Large diffs are not rendered by default.

src/disco/dedup/fd_dedup_tile.c

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
them out. */
1818

1919
#define IN_KIND_GOSSIP (0UL)
20-
#define IN_KIND_VOTER (1UL)
21-
#define IN_KIND_VERIFY (2UL)
20+
#define IN_KIND_VERIFY (1UL)
2221

2322
/* fd_dedup_in_ctx_t is a context object for each in (producer) mcache
2423
connected to the dedup tile. */
@@ -113,8 +112,8 @@ during_frag( fd_dedup_ctx_t * ctx,
113112
uchar * src = (uchar *)fd_chunk_to_laddr( ctx->in[ in_idx ].mem, chunk );
114113
uchar * dst = (uchar *)fd_chunk_to_laddr( ctx->out_mem, ctx->out_chunk );
115114

116-
if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_GOSSIP || ctx->in_kind[ in_idx ]==IN_KIND_VOTER ) ) {
117-
if( FD_UNLIKELY( sz>FD_TPU_MTU ) ) FD_LOG_ERR(( "received a gossip or voter transaction that was too large" ));
115+
if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_GOSSIP ) ) {
116+
if( FD_UNLIKELY( sz>FD_TPU_MTU ) ) FD_LOG_ERR(( "received a gossip transaction that was too large" ));
118117

119118
fd_txn_m_t * txnm = (fd_txn_m_t *)dst;
120119
txnm->payload_sz = (ushort)sz;
@@ -161,7 +160,7 @@ after_frag( fd_dedup_ctx_t * ctx,
161160
return;
162161
}
163162

164-
if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_GOSSIP || ctx->in_kind[ in_idx]==IN_KIND_VOTER ) ) {
163+
if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_GOSSIP ) ) {
165164
/* Transactions coming in from these links are not parsed.
166165
167166
We'll need to parse it so it's ready for downstream consumers.
@@ -170,7 +169,7 @@ after_frag( fd_dedup_ctx_t * ctx,
170169
txnm->txn_t_sz = (ushort)fd_txn_parse( fd_txn_m_payload( txnm ), txnm->payload_sz, txn, NULL );
171170
if( FD_UNLIKELY( !txnm->txn_t_sz ) ) FD_LOG_ERR(( "fd_txn_parse failed for vote transactions that should have been sigverified" ));
172171

173-
if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_GOSSIP ) ) FD_MCNT_INC( DEDUP, GOSSIPED_VOTES_RECEIVED, 1UL );
172+
FD_MCNT_INC( DEDUP, GOSSIPED_VOTES_RECEIVED, 1UL );
174173
}
175174

176175
int is_dup = 0;
@@ -251,8 +250,6 @@ unprivileged_init( fd_topo_t * topo,
251250

252251
if( !strcmp( link->name, "gossip_dedup" ) ) {
253252
ctx->in_kind[ i ] = IN_KIND_GOSSIP;
254-
} else if( !strcmp( link->name, "voter_dedup" ) ) {
255-
ctx->in_kind[ i ] = IN_KIND_VOTER;
256253
} else if( !strcmp( link->name, "verify_dedup" ) ) {
257254
ctx->in_kind[ i ] = IN_KIND_VERIFY;
258255
} else {

src/disco/metrics/generate/types.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class Tile(Enum):
2525
GOSSIP = 19
2626
NETLNK = 20
2727
SOCK = 21,
28-
REPAIR = 22
28+
REPAIR = 22,
29+
SENDER = 23
2930

3031
class MetricType(Enum):
3132
COUNTER = 0

src/disco/metrics/generated/fd_metrics_all.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ const char * FD_METRICS_TILE_KIND_NAMES[FD_METRICS_TILE_KIND_CNT] = {
5353
"netlnk",
5454
"sock",
5555
"repair",
56+
"sender",
5657
};
5758

5859
const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT] = {
@@ -73,6 +74,7 @@ const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT] = {
7374
FD_METRICS_NETLNK_TOTAL,
7475
FD_METRICS_SOCK_TOTAL,
7576
FD_METRICS_REPAIR_TOTAL,
77+
FD_METRICS_SENDER_TOTAL,
7678
};
7779
const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT] = {
7880
FD_METRICS_NET,
@@ -92,4 +94,5 @@ const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT]
9294
FD_METRICS_NETLNK,
9395
FD_METRICS_SOCK,
9496
FD_METRICS_REPAIR,
97+
FD_METRICS_SENDER,
9598
};

src/disco/metrics/generated/fd_metrics_all.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "fd_metrics_net.h"
66
#include "fd_metrics_sock.h"
77
#include "fd_metrics_quic.h"
8+
#include "fd_metrics_sender.h"
89
#include "fd_metrics_bundle.h"
910
#include "fd_metrics_verify.h"
1011
#include "fd_metrics_dedup.h"
@@ -155,7 +156,7 @@ extern const fd_metrics_meta_t FD_METRICS_ALL_LINK_OUT[FD_METRICS_ALL_LINK_OUT_T
155156

156157
#define FD_METRICS_TOTAL_SZ (8UL*246UL)
157158

158-
#define FD_METRICS_TILE_KIND_CNT 17
159+
#define FD_METRICS_TILE_KIND_CNT 18
159160
extern const char * FD_METRICS_TILE_KIND_NAMES[FD_METRICS_TILE_KIND_CNT];
160161
extern const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT];
161162
extern const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT];
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/* THIS FILE IS GENERATED BY gen_metrics.py. DO NOT HAND EDIT. */
2+
#include "fd_metrics_sender.h"
3+
4+
const fd_metrics_meta_t FD_METRICS_SENDER[FD_METRICS_SENDER_TOTAL] = {
5+
DECLARE_METRIC( SENDER_TXNS_SENT_TO_LEADER, COUNTER ),
6+
DECLARE_METRIC( SENDER_LEADER_SCHED_NOT_FOUND, COUNTER ),
7+
DECLARE_METRIC( SENDER_LEADER_NOT_FOUND, COUNTER ),
8+
DECLARE_METRIC( SENDER_LEADER_CONTACT_NOT_FOUND, COUNTER ),
9+
};
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/* THIS FILE IS GENERATED BY gen_metrics.py. DO NOT HAND EDIT. */
2+
3+
#include "../fd_metrics_base.h"
4+
#include "fd_metrics_enums.h"
5+
6+
#define FD_METRICS_COUNTER_SENDER_TXNS_SENT_TO_LEADER_OFF (16UL)
7+
#define FD_METRICS_COUNTER_SENDER_TXNS_SENT_TO_LEADER_NAME "sender_txns_sent_to_leader"
8+
#define FD_METRICS_COUNTER_SENDER_TXNS_SENT_TO_LEADER_TYPE (FD_METRICS_TYPE_COUNTER)
9+
#define FD_METRICS_COUNTER_SENDER_TXNS_SENT_TO_LEADER_DESC "Total count of transactions sent to leader"
10+
#define FD_METRICS_COUNTER_SENDER_TXNS_SENT_TO_LEADER_CVT (FD_METRICS_CONVERTER_NONE)
11+
12+
#define FD_METRICS_COUNTER_SENDER_LEADER_SCHED_NOT_FOUND_OFF (17UL)
13+
#define FD_METRICS_COUNTER_SENDER_LEADER_SCHED_NOT_FOUND_NAME "sender_leader_sched_not_found"
14+
#define FD_METRICS_COUNTER_SENDER_LEADER_SCHED_NOT_FOUND_TYPE (FD_METRICS_TYPE_COUNTER)
15+
#define FD_METRICS_COUNTER_SENDER_LEADER_SCHED_NOT_FOUND_DESC "Total count of times leader schedule not found"
16+
#define FD_METRICS_COUNTER_SENDER_LEADER_SCHED_NOT_FOUND_CVT (FD_METRICS_CONVERTER_NONE)
17+
18+
#define FD_METRICS_COUNTER_SENDER_LEADER_NOT_FOUND_OFF (18UL)
19+
#define FD_METRICS_COUNTER_SENDER_LEADER_NOT_FOUND_NAME "sender_leader_not_found"
20+
#define FD_METRICS_COUNTER_SENDER_LEADER_NOT_FOUND_TYPE (FD_METRICS_TYPE_COUNTER)
21+
#define FD_METRICS_COUNTER_SENDER_LEADER_NOT_FOUND_DESC "Total count of times leader not found for given slot"
22+
#define FD_METRICS_COUNTER_SENDER_LEADER_NOT_FOUND_CVT (FD_METRICS_CONVERTER_NONE)
23+
24+
#define FD_METRICS_COUNTER_SENDER_LEADER_CONTACT_NOT_FOUND_OFF (19UL)
25+
#define FD_METRICS_COUNTER_SENDER_LEADER_CONTACT_NOT_FOUND_NAME "sender_leader_contact_not_found"
26+
#define FD_METRICS_COUNTER_SENDER_LEADER_CONTACT_NOT_FOUND_TYPE (FD_METRICS_TYPE_COUNTER)
27+
#define FD_METRICS_COUNTER_SENDER_LEADER_CONTACT_NOT_FOUND_DESC "Total count of times leader contact info not found"
28+
#define FD_METRICS_COUNTER_SENDER_LEADER_CONTACT_NOT_FOUND_CVT (FD_METRICS_CONVERTER_NONE)
29+
30+
#define FD_METRICS_SENDER_TOTAL (4UL)
31+
extern const fd_metrics_meta_t FD_METRICS_SENDER[FD_METRICS_SENDER_TOTAL];

0 commit comments

Comments
 (0)