Line data Source code
1 : #ifndef HEADER_fd_src_discof_genesis_fd_genesi_tile_h 2 : #define HEADER_fd_src_discof_genesis_fd_genesi_tile_h 3 : 4 : /* The genesis tile publishes a single message type: 5 : 6 : A 'fd_genesis_meta_t' struct, followed by a Bincode-encoded genesis 7 : blob. */ 8 : 9 : #include "../../ballet/lthash/fd_lthash.h" 10 : #include "../../flamenco/fd_flamenco_base.h" 11 : 12 : /* Worst case bound for a genesis TAR and bzip2's output size in MiB can 13 : fit in a uint (in bytes). */ 14 : #define FD_GENESIS_MAX_FILE_SIZE_MIB (4055UL) 15 : 16 : struct fd_genesis_meta { 17 : ulong bootstrap : 1; 18 : ulong has_lthash : 1; 19 : 20 : fd_hash_t genesis_hash; 21 : ulong creation_time_seconds; 22 : fd_lthash_value_t lthash; 23 : 24 : ulong blob_sz; 25 : /* uchar[ blob_sz ] follows immediately after this struct */ 26 : }; 27 : 28 : typedef struct fd_genesis_meta fd_genesis_meta_t; 29 : 30 : FD_FN_CONST static inline ulong 31 0 : fd_genesi_tile_mtu( ulong max_message_size ) { 32 0 : return sizeof(fd_genesis_meta_t) + max_message_size; 33 0 : } 34 : 35 : #endif /* HEADER_fd_src_discof_genesis_fd_genesi_tile_h */