52#ifndef UDIF_MCEL_MANAGER_H
53#define UDIF_MCEL_MANAGER_H
75#define UDIF_MCEL_BLOCK_HASH_SIZE 32U
76#define UDIF_MCEL_KEYID_SIZE 32U
77#define UDIF_MCEL_DEFAULT_BLOCK_SIZE 100U
145 uint8_t
keyid[UDIF_MCEL_KEYID_SIZE];
146 uint8_t
sigkey[MCEL_ASYMMETRIC_SIGNING_KEY_SIZE];
147 uint8_t
verkey[MCEL_ASYMMETRIC_VERIFY_KEY_SIZE];
177udif_mcel_manager* udif_mcel_open(
const char* basepath,
bool readonly,
const uint8_t* sigkey,
const uint8_t* verkey);
223bool udif_mcel_add_record(
udif_mcel_manager* mgr,
const uint8_t* data,
size_t datalen,
bool encrypted, uint64_t* outseq);
238bool udif_mcel_read_record(
udif_mcel_manager* mgr, uint64_t sequence, uint8_t* data,
size_t datalen,
size_t* outread);
308bool udif_mcel_create_anchor(
udif_mcel_manager* mgr,
udif_anchor_record* anchor,
const uint8_t* childser, uint64_t sequence,
const uint8_t* sigkey,
bool (*rng_generate)(uint8_t*,
size_t));
341bool udif_mcel_get_keypair(
const udif_mcel_manager* mgr, uint8_t* sigkey, uint8_t* verkey);
UDIF anchor record operations.
UDIF file-based storage backend for MCEL integration.
udif_ledger_type
Ledger namespace identifiers.
Definition storage.h:108
Anchor record.
Definition anchor.h:158
Configuration for automatic checkpoint creation.
Definition mcelmanager.h:84
uint64_t membinterval
Definition mcelmanager.h:85
bool autocheckpointenabled
Definition mcelmanager.h:89
uint32_t blocksize
Definition mcelmanager.h:88
uint64_t transinterval
Definition mcelmanager.h:86
uint64_t reginterval
Definition mcelmanager.h:87
Coordinated checkpoint across all three ledgers.
Definition mcelmanager.h:97
uint64_t membershipseq
Definition mcelmanager.h:102
uint8_t membcommit[UDIF_MCEL_BLOCK_HASH_SIZE]
Definition mcelmanager.h:98
uint64_t timestamp
Definition mcelmanager.h:104
uint64_t height
Definition mcelmanager.h:101
uint64_t transactionseq
Definition mcelmanager.h:105
uint8_t transcommit[UDIF_MCEL_BLOCK_HASH_SIZE]
Definition mcelmanager.h:100
uint8_t regcommit[UDIF_MCEL_BLOCK_HASH_SIZE]
Definition mcelmanager.h:99
uint64_t registryseq
Definition mcelmanager.h:103
Per-ledger state tracking.
Definition mcelmanager.h:113
mcel_ledger_state mcelstate
Definition mcelmanager.h:114
uint64_t firstrecordincheckpoint
Definition mcelmanager.h:122
uint64_t nextblockseq
Definition mcelmanager.h:119
udif_ledger_type type
Definition mcelmanager.h:115
size_t commitscount
Definition mcelmanager.h:129
uint64_t firstrecordinblock
Definition mcelmanager.h:121
uint8_t * reccommits
Definition mcelmanager.h:124
uint8_t lastblockroot[MCEL_BLOCK_HASH_SIZE]
Definition mcelmanager.h:116
uint64_t totalcheckpoints
Definition mcelmanager.h:126
uint64_t nextrecordseq
Definition mcelmanager.h:123
uint64_t totalrecords
Definition mcelmanager.h:127
uint64_t nextcheckpointseq
Definition mcelmanager.h:120
uint8_t lastblockcommit[MCEL_BLOCK_HASH_SIZE]
Definition mcelmanager.h:117
size_t commitscap
Definition mcelmanager.h:128
char namespaceid[64U]
Definition mcelmanager.h:118
uint64_t totalblocks
Definition mcelmanager.h:125
bool haveblockroot
Definition mcelmanager.h:130
MCEL manager implementation.
Definition mcelmanager.h:138
udif_mcel_ledger * transaction
Definition mcelmanager.h:144
udif_mcel_ledger * registry
Definition mcelmanager.h:143
udif_ledger_type actledger
Definition mcelmanager.h:139
uint8_t sigkey[MCEL_ASYMMETRIC_SIGNING_KEY_SIZE]
Definition mcelmanager.h:146
udif_mcel_ledger * membership
Definition mcelmanager.h:142
uint8_t verkey[MCEL_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition mcelmanager.h:147
uint8_t keyid[UDIF_MCEL_KEYID_SIZE]
Definition mcelmanager.h:145
udif_storage_context storage
Definition mcelmanager.h:141
bool readonly
Definition mcelmanager.h:149
bool initialized
Definition mcelmanager.h:148
udif_checkpoint_config checkconfig
Definition mcelmanager.h:140
File-based storage context for MCEL integration.
Definition storage.h:134