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 : typedef struct fd_exec_txn_exec_msg fd_exec_txn_exec_msg_t; 26 : 27 : struct fd_exec_txn_sigverify_msg { 28 : ulong bank_idx; 29 : ulong txn_idx; 30 : fd_txn_p_t txn; 31 : }; 32 : typedef struct fd_exec_txn_sigverify_msg fd_exec_txn_sigverify_msg_t; 33 : 34 : union fd_exec_task_msg { 35 : fd_exec_txn_exec_msg_t txn_exec; 36 : fd_exec_txn_sigverify_msg_t txn_sigverify; 37 : }; 38 : typedef union fd_exec_task_msg fd_exec_task_msg_t; 39 : 40 : /* Sent from exec tiles to the replay tile, notifying the replay tile 41 : that a task has been completed. That is, if the task has any 42 : observable side effects, such as updates to accounts, then those side 43 : effects are fully visible on any other exec tile. */ 44 : 45 : struct fd_exec_txn_exec_done_msg { 46 : ulong txn_idx; 47 : int err; 48 : }; 49 : typedef struct fd_exec_txn_exec_done_msg fd_exec_txn_exec_done_msg_t; 50 : 51 : struct fd_exec_txn_sigverify_done_msg { 52 : ulong txn_idx; 53 : int err; 54 : }; 55 : typedef struct fd_exec_txn_sigverify_done_msg fd_exec_txn_sigverify_done_msg_t; 56 : 57 : struct fd_exec_task_done_msg { 58 : ulong bank_idx; 59 : union { 60 : fd_exec_txn_exec_done_msg_t txn_exec[ 1 ]; 61 : fd_exec_txn_sigverify_done_msg_t txn_sigverify[ 1 ]; 62 : }; 63 : }; 64 : typedef struct fd_exec_task_done_msg fd_exec_task_done_msg_t; 65 : 66 : #endif /* HEADER_fd_src_discof_replay_fd_exec_h */