Line data Source code
1 : #ifndef HEADER_fd_src_discof_replay_fd_exec_h 2 : #define HEADER_fd_src_discof_replay_fd_exec_h 3 : 4 : /* FIXME: SIMD-0180 - set the correct epochs */ 5 0 : #define FD_SIMD0180_ACTIVE_EPOCH_TESTNET (829) 6 0 : #define FD_SIMD0180_ACTIVE_EPOCH_MAINNET (841) 7 : 8 : 9 : /* Exec tile task types. */ 10 0 : #define FD_EXEC_TT_TXN_EXEC (1UL) /* Transaction execution. */ 11 0 : #define FD_EXEC_TT_TXN_SIGVERIFY (2UL) /* Transaction sigverify. */ 12 : #define FD_EXEC_TT_LTHASH (3UL) /* Account lthash. */ 13 : #define FD_EXEC_TT_POH_VERIFY (4UL) /* PoH hash verification. */ 14 : 15 : /* Sent from the replay tile to the exec tiles. These describe one of 16 : several types of tasks for an exec tile. An idx to the bank in the 17 : bank pool must be sent over because the key of the bank will change 18 : as FEC sets are processed. */ 19 : 20 : struct fd_exec_txn_exec_msg { 21 : ulong bank_idx; 22 : ulong txn_idx; 23 : fd_txn_p_t txn; 24 : 25 : /* Used currently by solcap to maintain ordering of messages 26 : this will change to using txn sigs eventually */ 27 : ulong capture_txn_idx; 28 : }; 29 : typedef struct fd_exec_txn_exec_msg fd_exec_txn_exec_msg_t; 30 : 31 : struct fd_exec_txn_sigverify_msg { 32 : ulong bank_idx; 33 : ulong txn_idx; 34 : fd_txn_p_t txn; 35 : }; 36 : typedef struct fd_exec_txn_sigverify_msg fd_exec_txn_sigverify_msg_t; 37 : 38 : union fd_exec_task_msg { 39 : fd_exec_txn_exec_msg_t txn_exec; 40 : fd_exec_txn_sigverify_msg_t txn_sigverify; 41 : }; 42 : typedef union fd_exec_task_msg fd_exec_task_msg_t; 43 : 44 : /* Sent from exec tiles to the replay tile, notifying the replay tile 45 : that a task has been completed. That is, if the task has any 46 : observable side effects, such as updates to accounts, then those side 47 : effects are fully visible on any other exec tile. */ 48 : 49 : struct fd_exec_txn_exec_done_msg { 50 : ulong txn_idx; 51 : int err; 52 : 53 : /* used by monitoring tools */ 54 : ulong slot; 55 : ushort start_shred_idx; 56 : ushort end_shred_idx; 57 : }; 58 : typedef struct fd_exec_txn_exec_done_msg fd_exec_txn_exec_done_msg_t; 59 : 60 : struct fd_exec_txn_sigverify_done_msg { 61 : ulong txn_idx; 62 : int err; 63 : }; 64 : typedef struct fd_exec_txn_sigverify_done_msg fd_exec_txn_sigverify_done_msg_t; 65 : 66 : struct fd_exec_task_done_msg { 67 : ulong bank_idx; 68 : union { 69 : fd_exec_txn_exec_done_msg_t txn_exec[ 1 ]; 70 : fd_exec_txn_sigverify_done_msg_t txn_sigverify[ 1 ]; 71 : }; 72 : }; 73 : typedef struct fd_exec_task_done_msg fd_exec_task_done_msg_t; 74 : 75 : #endif /* HEADER_fd_src_discof_replay_fd_exec_h */