|
1 | 1 | #include "topology.h" |
2 | 2 |
|
3 | 3 | #include "../../ballet/lthash/fd_lthash.h" |
| 4 | +#include "../../choreo/fd_choreo_base.h" |
4 | 5 | #include "../../discof/reasm/fd_reasm.h" |
5 | 6 | #include "../../discof/poh/fd_poh.h" |
6 | 7 | #include "../../discof/replay/fd_exec.h" |
@@ -347,6 +348,7 @@ fd_topo_initialize( config_t * config ) { |
347 | 348 |
|
348 | 349 | /* TODO: Explain this .... USHORT_MAX is not dcache max */ |
349 | 350 | ulong pending_fec_shreds_depth = fd_ulong_min( fd_ulong_pow2_up( config->tiles.shred.max_pending_shred_sets * FD_REEDSOL_DATA_SHREDS_MAX ), USHORT_MAX + 1 /* dcache max */ ); |
| 351 | + ulong max_unrooted_slots = config->firedancer.consensus.max_unrooted_slots; |
350 | 352 |
|
351 | 353 | /* topo, link_name, wksp_name, depth, mtu, burst */ |
352 | 354 | /**/ fd_topob_link( topo, "gossip_net", "net_gossip", config->net.ingress_buffer_size, FD_NET_MTU, 1UL ); |
@@ -405,7 +407,7 @@ fd_topo_initialize( config_t * config ) { |
405 | 407 |
|
406 | 408 | FOR(shred_tile_cnt) fd_topob_link( topo, "shred_out", "shred_out", pending_fec_shreds_depth, FD_SHRED_OUT_MTU, 3UL ); /* TODO: Pretty sure burst of 3 is incorrect here */ |
407 | 409 | FOR(shred_tile_cnt) fd_topob_link( topo, "repair_shred", "shred_out", pending_fec_shreds_depth, sizeof(fd_ed25519_sig_t), 1UL ); /* TODO: Also pending_fec_shreds_depth? Seems wrong */ |
408 | | - /**/ fd_topob_link( topo, "tower_out", "tower_out", 1024UL, sizeof(fd_tower_slot_done_t), 1UL ); |
| 410 | + /**/ fd_topob_link( topo, "tower_out", "tower_out", max_unrooted_slots, sizeof(fd_tower_msg_t), 1UL ); |
409 | 411 | /**/ fd_topob_link( topo, "send_out", "send_out", 128UL, FD_TPU_RAW_MTU, 1UL ); |
410 | 412 |
|
411 | 413 | fd_topob_link( topo, "replay_exec", "replay_exec", 16384UL, sizeof(fd_exec_task_msg_t), 1UL ); |
@@ -558,6 +560,7 @@ fd_topo_initialize( config_t * config ) { |
558 | 560 | /**/ fd_topob_tile_in( topo, "replay", 0UL, "metric_in", "poh_replay", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); |
559 | 561 | FOR(exec_tile_cnt) fd_topob_tile_in( topo, "exec", i, "metric_in", "replay_exec", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); |
560 | 562 | /**/ fd_topob_tile_in ( topo, "tower", 0UL, "metric_in", "genesi_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); |
| 563 | + /**/ fd_topob_tile_in ( topo, "tower", 0UL, "metric_in", "gossip_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); |
561 | 564 | /**/ fd_topob_tile_in ( topo, "tower", 0UL, "metric_in", "replay_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); |
562 | 565 | if( snapshots_enabled ) { |
563 | 566 | fd_topob_tile_in ( topo, "tower", 0UL, "metric_in", "snapin_manif", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); |
@@ -1017,8 +1020,9 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, |
1017 | 1020 |
|
1018 | 1021 | } else if( FD_UNLIKELY( !strcmp( tile->name, "tower" ) ) ) { |
1019 | 1022 |
|
1020 | | - strncpy( tile->tower.identity_key_path, config->paths.identity_key, sizeof(tile->tower.identity_key_path) ); |
1021 | | - strncpy( tile->tower.vote_acc_path, config->paths.vote_account, sizeof(tile->tower.vote_acc_path) ); |
| 1023 | + tile->tower.slot_max = config->firedancer.consensus.max_unrooted_slots; |
| 1024 | + strncpy( tile->tower.identity_key, config->paths.identity_key, sizeof(tile->tower.identity_key) ); |
| 1025 | + strncpy( tile->tower.vote_account, config->paths.vote_account, sizeof(tile->tower.vote_account) ); |
1022 | 1026 | strncpy( tile->tower.ledger_path, config->paths.ledger, sizeof(tile->tower.ledger_path) ); |
1023 | 1027 |
|
1024 | 1028 | } else if( FD_UNLIKELY( !strcmp( tile->name, "send" ) ) ) { |
|
0 commit comments