Decentralised Art Server
High-performance C++ backend that exposes HTML interface and a secure REST API for managing Performative Transactions entities
 
Loading...
Searching...
No Matches
events_store.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <cstdint>
5#include <optional>
6#include <string>
7#include <vector>
8
9#include "decoded_event.hpp"
10#include "events_ingest.hpp"
11
12namespace dcn::events
13{
15 {
16 int chain_id = 1;
17 std::int64_t next_from_block = 0;
18 std::int64_t updated_at_ms = 0;
19 };
20
22 {
23 int chain_id = 1;
24 std::int64_t head_block = 0;
25 std::int64_t safe_block = 0;
26 std::int64_t finalized_block = 0;
27 std::int64_t updated_at_ms = 0;
28 };
29
31 {
32 int chain_id = 1;
33 std::int64_t block_number = 0;
34 std::string block_hash;
35 std::string parent_hash;
36 std::int64_t block_time = 0;
37 std::int64_t seen_at_ms = 0;
38 };
39
41 {
42 public:
43 virtual ~IHotEventStore() = default;
44
45 virtual std::optional<std::int64_t> loadNextFromBlock(int chain_id) = 0;
46
47 virtual bool ingestBatch(
48 int chain_id,
49 const std::vector<RawChainLog> & raw_events,
50 const std::vector<DecodedEvent> & decoded_events,
51 const std::vector<ChainBlockInfo> & block_infos,
52 std::int64_t next_from_block,
53 std::int64_t now_ms,
54 std::optional<std::uint64_t> next_local_seq = std::nullopt) = 0;
55
56 virtual bool applyFinality(
57 int chain_id,
58 const FinalityHeights & heights,
59 std::int64_t now_ms,
60 std::size_t reorg_window_blocks) = 0;
61
62 virtual std::size_t projectBatch(std::size_t limit, std::int64_t now_ms) = 0;
63
64 virtual bool runArchiveCycle(int chain_id, std::size_t hot_window_days, std::int64_t now_ms) = 0;
65 };
66}
Definition events_store.hpp:41
virtual bool ingestBatch(int chain_id, const std::vector< RawChainLog > &raw_events, const std::vector< DecodedEvent > &decoded_events, const std::vector< ChainBlockInfo > &block_infos, std::int64_t next_from_block, std::int64_t now_ms, std::optional< std::uint64_t > next_local_seq=std::nullopt)=0
virtual std::size_t projectBatch(std::size_t limit, std::int64_t now_ms)=0
virtual std::optional< std::int64_t > loadNextFromBlock(int chain_id)=0
virtual ~IHotEventStore()=default
virtual bool applyFinality(int chain_id, const FinalityHeights &heights, std::int64_t now_ms, std::size_t reorg_window_blocks)=0
virtual bool runArchiveCycle(int chain_id, std::size_t hot_window_days, std::int64_t now_ms)=0
Definition decoded_event.hpp:11
Definition events_store.hpp:31
int chain_id
Definition events_store.hpp:32
std::string parent_hash
Definition events_store.hpp:35
std::int64_t seen_at_ms
Definition events_store.hpp:37
std::string block_hash
Definition events_store.hpp:34
std::int64_t block_number
Definition events_store.hpp:33
std::int64_t block_time
Definition events_store.hpp:36
Definition events_ingest.hpp:12
Definition events_store.hpp:22
std::int64_t head_block
Definition events_store.hpp:24
std::int64_t updated_at_ms
Definition events_store.hpp:27
std::int64_t safe_block
Definition events_store.hpp:25
int chain_id
Definition events_store.hpp:23
std::int64_t finalized_block
Definition events_store.hpp:26
Definition events_store.hpp:15
int chain_id
Definition events_store.hpp:16
std::int64_t updated_at_ms
Definition events_store.hpp:18
std::int64_t next_from_block
Definition events_store.hpp:17