Line data Source code
1 : #ifndef HEADER_fd_src_disco_plugin_fd_plugin_h 2 : #define HEADER_fd_src_disco_plugin_fd_plugin_h 3 : 4 0 : #define FD_PLUGIN_MSG_SLOT_ROOTED ( 0UL) 5 0 : #define FD_PLUGIN_MSG_SLOT_OPTIMISTICALLY_CONFIRMED ( 1UL) 6 0 : #define FD_PLUGIN_MSG_SLOT_COMPLETED ( 2UL) 7 0 : #define FD_PLUGIN_MSG_SLOT_ESTIMATED ( 3UL) 8 0 : #define FD_PLUGIN_MSG_GOSSIP_UPDATE ( 4UL) 9 0 : #define FD_PLUGIN_MSG_VOTE_ACCOUNT_UPDATE ( 5UL) 10 0 : #define FD_PLUGIN_MSG_LEADER_SCHEDULE ( 6UL) 11 0 : #define FD_PLUGIN_MSG_VALIDATOR_INFO ( 7UL) 12 0 : #define FD_PLUGIN_MSG_SLOT_START ( 8UL) 13 : 14 : typedef struct { 15 : ulong slot; 16 : ulong parent_slot; 17 : } fd_plugin_msg_slot_start_t; 18 : 19 0 : #define FD_PLUGIN_MSG_SLOT_END ( 9UL) 20 : 21 : typedef struct { 22 : ulong slot; 23 : ulong cus_used; 24 : } fd_plugin_msg_slot_end_t; 25 : 26 0 : #define FD_PLUGIN_MSG_SLOT_RESET (10UL) 27 0 : #define FD_PLUGIN_MSG_BALANCE (11UL) 28 0 : #define FD_PLUGIN_MSG_START_PROGRESS (12UL) 29 : 30 : struct __attribute__((packed, aligned(8))) fd_replay_complete_msg { 31 : ulong slot; 32 : ulong total_txn_count; 33 : ulong nonvote_txn_count; 34 : ulong failed_txn_count; 35 : ulong nonvote_failed_txn_count; 36 : ulong compute_units; 37 : ulong transaction_fee; 38 : ulong priority_fee; 39 : ulong parent_slot; 40 : }; 41 : typedef struct fd_replay_complete_msg fd_replay_complete_msg_t; 42 : 43 : #define FD_CLUSTER_NODE_CNT (200U*201U - 1U) 44 0 : #define FD_GOSSIP_LINK_MSG_SIZE (58U + 12U * 6U) 45 : 46 : struct __attribute__((packed)) fd_gossip_update_msg { 47 : uchar pubkey[32]; // 0..31 48 : ulong wallclock; // 32..39 49 : ushort shred_version; // 40..41 50 : uchar version_type; // 42 51 : ushort version_major; // 43..44 52 : ushort version_minor; // 45..46 53 : ushort version_patch; // 47..48 54 : uchar version_commit_type; // 49 55 : uint version_commit; // 50..53 56 : uint version_feature_set; // 54..57 57 : /* gossip_socket, 58 : rpc_socket, 59 : rpc_pubsub_socket, 60 : serve_repair_socket_udp, 61 : serve_repair_socket_quic, 62 : tpu_socket_udp, 63 : tpu_socket_quic, 64 : tvu_socket_udp, 65 : tvu_socket_quic, 66 : tpu_forwards_socket_udp, 67 : tpu_forwards_socket_quic, 68 : tpu_vote_socket, */ 69 : struct __attribute__((packed)) { 70 : uint ip; // 0..3 71 : ushort port; // 4..5 72 : } addrs[12]; 73 : }; 74 : typedef struct fd_gossip_update_msg fd_gossip_update_msg_t; 75 : 76 : FD_STATIC_ASSERT( sizeof(fd_gossip_update_msg_t) == FD_GOSSIP_LINK_MSG_SIZE, fd_gossip_update_msg ); 77 : 78 : struct __attribute__((packed)) fd_vote_update_msg { 79 : uchar vote_pubkey[32]; // 0..31 80 : uchar node_pubkey[32]; // 32..63 81 : ulong activated_stake; // 64..71 82 : ulong last_vote; // 72..79 83 : ulong root_slot; // 80..87 84 : ulong epoch_credits; // 88..95 85 : uchar commission; // 96 86 : uchar is_delinquent; // 97 87 : }; 88 : typedef struct fd_vote_update_msg fd_vote_update_msg_t; 89 : 90 : FD_STATIC_ASSERT( sizeof(fd_vote_update_msg_t) <= FD_GOSSIP_LINK_MSG_SIZE, fd_vote_update_msg ); 91 : 92 : #endif /* HEADER_fd_src_disco_plugin_fd_plugin_h */