# DAG Storage Layer ## Event Block structure Event block (or simply DAG Event) represent completed representation of event that is main part of DAG chain topologic. #### Main components: Multisig Event creators Hashes [32]u8 `creator: [Hash]` Current Height `height: u128` Graph of parent Nodes (Hashes) `parents: [Hash]` Lamport timestamp for Avalanche consensus `lamport_timestamp: u64 ` Event Transactions `transactions: [Data]` Event Hash `hash: Hash` Map of signatures for current Event that including Multisig flow `signatures: HashMap[Hash, Signature]` Current Frame of Events `frame_number: u64 ` #### Event block example: ``` { creator: [ "2b162a7cd20653f12760abf517cdeffa", "3c162a7cd20653f12760abf517cda5f1" ] height: 20041, parents: [ "5d162a7cd20653f12760abf517cdeffa", "8a162a7cd20653f12760abf517cda5f1" ] lamport_timestamp: 155333126, transactions: [{ hash: "8a162a7cd20653f12760abf517cda1f4", signature: "90a62a7cd20653f12760abf517cda1f4", type: "Deploy", file_hash: "ac02fa7cd20653f12760abf517cda101" }], hash: "13a62a7cd20653f12760abf517cda5f3", signatures: [{ signer: "03c62a7cd20653f12760abf517cda5f2", signarure: "10c62a7cd20653f12760abf517cda5f0" }], frame_number: 1052 } ``` ## DAG Frame record DAG Frame is part of Events for finilizing Event Block by Avalanche Consensus #### Frame structure `events: [FrameRecord]` and single `FrameRecord` is: Event Hash `hash: Hash` Lamport time of Event `lamport_time: u64` #### Frame example: { events: [{ hash: "a23653287654ab216cd3125753212341", lamport_time: 3441 }] } ## DAG Storage Storage save basic data: * Events * Frames for Frame key/value property is: * `key` - Frame number * `value` - Specific serialized Frame data for Evene key/value property is: * `key` - Hash of Event * `value` - Specific serialized Event data