diff --git a/.qoder/docs/shared-memory.md b/.qoder/docs/shared-memory.md index faa98bd26b..8bd537ada0 100644 --- a/.qoder/docs/shared-memory.md +++ b/.qoder/docs/shared-memory.md @@ -42,6 +42,8 @@ The VIZ node stores all blockchain state in a memory-mapped file (`shared_memory | `libraries/chain/database.cpp` | Chain-level `open()`, `_resize()`, `check_free_memory()`, `push_block()`, `_generate_block()` | | `libraries/chain/include/graphene/chain/database.hpp` | Chain database class declaration, resize/memory parameters | | `plugins/chain/plugin.cpp` | Config option definitions, initialization, snapshot loading | +| `plugins/witness/witness.cpp` | Lockless reads in `maybe_produce_block()` and `is_witness_scheduled_soon()`, guarded by `operation_guard` | +| `plugins/p2p/p2p_plugin.cpp` | Lockless reads in block post-validation (`get_witness_key()`), guarded by `operation_guard` | --- @@ -204,21 +206,63 @@ The resize is implemented in `chainbase::database::resize()` (`thirdparty/chainb index_type->add_index(*this) ← Rebuild index pointers from new mapping ``` -### Critical Race Condition +### Resize Barrier -**The resize operation is inherently dangerous in a multi-threaded environment.** When `_segment.reset()` destroys the old mapping: +Because `_segment.reset()` invalidates **all** pointers/references into shared memory, the resize must ensure that **no thread** — whether holding a lock or reading locklessly — has any live reference into the mapped segment. A simple write lock is insufficient because several code paths read chainbase indices without holding any lock ("lockless reads"). -- All pointers/references into the old segment become **dangling** -- `boost::shared_mutex` does **not** protect against this — a read lock only prevents concurrent writes, but the resize **is** the write -- If any thread holds a read lock and has cached a reference/pointer to an object in the old mapping, that reference becomes invalid after `_segment.reset()` +The **resize barrier** (`chainbase::database`) solves this with an atomic operation counter, a flag, and a condition variable: -The `resize()` function checks `_undo_session_count` but does **not** check for active read locks. The write lock held during `push_block()` prevents other threads from acquiring **new** read locks during the resize, but threads that already hold read locks can still be accessing the old mapping. +``` +┌──────────────────────────────────────────────────────────────────┐ +│ Resize Barrier Protocol │ +│ │ +│ Normal operation: │ +│ enter_operation() ── wait while _resize_in_progress │ +│ ── increment _active_operations │ +│ ... access shared memory ... │ +│ exit_operation() ── decrement _active_operations │ +│ ── notify resize thread if last op │ +│ │ +│ Resize: │ +│ begin_resize_barrier() ── set _resize_in_progress = true │ +│ ── wait until _active_operations == 0 │ +│ ... _segment.reset() + open() + rebuild indices ... │ +│ end_resize_barrier() ── set _resize_in_progress = false │ +│ ── notify all waiting threads │ +└──────────────────────────────────────────────────────────────────┘ +``` + +**Participation points:** + +| Code Path | How It Participates | +|-----------|--------------------| +| `with_read_lock()` / `with_write_lock()` | `operation_guard` acquired automatically inside the lock wrapper before the `boost::shared_mutex` lock | +| `_generate_block()` lockless reads (pre-write-lock) | Explicit scoped `operation_guard` around `get_slot_at_time()`, `get_scheduled_witness()`, `get_witness()`, `find_account()` | +| `_generate_block()` lockless reads (post-write-lock) | Second `operation_guard` (`op_guard2`) around `get_dynamic_global_properties()`, `head_block_id()`, `get_witness()`, `get_hardfork_property_object()`; released via `release()` before `push_block()` | +| Witness plugin `maybe_produce_block()` | Explicit `operation_guard` around `get_slot_at_time()`, `get_scheduled_witness()`, index lookups; released via `release()` before `generate_block()` | +| Witness plugin `is_witness_scheduled_soon()` | Explicit `operation_guard` around `get_slot_at_time()`, `get_scheduled_witness()`, index lookups; released via `release()` before return | +| P2P plugin block post-validation | Explicit `operation_guard` around `get_witness_key()` calls; released via `release()` before `apply_block_post_validation()` | + +**Key classes:** + +- `chainbase::database::operation_guard` — RAII guard that calls `enter_operation()` on construction and `exit_operation()` on destruction. Supports early release via `release()`. Move-only (non-copyable). +- `chainbase::database::make_operation_guard()` — Factory method returning an `operation_guard`. +- `chainbase::database::begin_resize_barrier()` / `end_resize_barrier()` — Called by `apply_pending_resize()` to establish exclusive access for the resize. + +**Immediate resize (reindex) does NOT use the barrier.** During reindex, the caller already holds an exclusive write lock and no API threads are running. Using the barrier would deadlock because the write lock itself holds an operation guard. -**This is the root cause of shared memory corruption** when resize occurs while API threads are reading. +### Historical Context: Pre-Barrier Race Condition + +Before the resize barrier was added, the resize used `with_strong_write_lock()` which only blocked threads holding or waiting for a `boost::shared_mutex` lock. This left lockless reads unprotected: + +- `boost::shared_mutex` does **not** protect against segment destruction — a read lock only prevents concurrent writes, but the resize **is** the write +- Threads performing lockless reads (witness plugin, `_generate_block()`) could hold stale pointers into the old mapping after `_segment.reset()` + +This was the root cause of shared memory corruption symptoms like `CRITICAL: Witness X account object MISSING from database!`. ### Corruption Symptoms -Typical corruption indicators: +Typical corruption indicators (should not occur with the resize barrier in place, but listed for historical reference and diagnostics): - `CRITICAL: Witness X account object MISSING from database!` — account index entry not found despite `account_index_size` showing entries exist - `Could not modify object, most likely a uniqueness constraint was violated` — internal index pointers corrupted, uniqueness check fails @@ -233,7 +277,7 @@ inc-shared-file-size = 500M min-free-shared-file-size = 1000M ← THRESHOLD > INCREMENT! ``` -After one resize (500M → 1000M), free space is still below 1000M, triggering **another resize on the next check**, causing cascading resizes that dramatically increase the chance of corruption. +After one resize (500M → 1000M), free space is still below 1000M, triggering **another resize on the next check**, causing cascading resizes. While the resize barrier prevents corruption, frequent resizes still cause latency spikes as all operations are paused during each resize. --- @@ -255,12 +299,12 @@ Most `database_api` methods use `with_weak_read_lock()`: ```cpp // Example: get_accounts auto result = with_weak_read_lock([&]() { - // Read from chainbase indices + // Read from chainbase indices — operation_guard acquired automatically return accounts; }); ``` -If the read lock cannot be acquired within `read-wait-micro × max-read-wait-retries`, the API returns error: `"Unable to acquire READ lock"`. +If the read lock cannot be acquired within `read-wait-micro × max-read-wait-retries`, the API returns error: `"Unable to acquire READ lock"`. If a resize barrier is active, the `operation_guard` inside `with_weak_read_lock()` will block until the resize completes before attempting the lock. ### Write Path (Block Application) @@ -268,12 +312,65 @@ All state modifications go through `with_strong_write_lock()`: ```cpp // push_block -with_strong_write_lock([&]() { +apply_pending_resize(); // uses resize barrier (begin/end) +with_strong_write_lock([&]() { // operation_guard acquired inside _push_block(new_block, skip); check_free_memory(false, new_block.block_num()); }); ``` +### Lockless Reads (Witness Plugin, Block Generation, P2P) + +Some code paths read from chainbase indices **without** holding a `boost::shared_mutex` lock. These must explicitly use an `operation_guard` to participate in the resize barrier: + +```cpp +// witness.cpp — maybe_produce_block() +auto op_guard = db.make_operation_guard(); +uint32_t slot = db.get_slot_at_time(now); // lockless read +string scheduled = db.get_scheduled_witness(slot); // lockless read +// ... more lockless reads ... +op_guard.release(); // release before generate_block() which has its own guard +``` + +```cpp +// witness.cpp — is_witness_scheduled_soon() +auto op_guard = db.make_operation_guard(); +uint32_t slot = db.get_slot_at_time(now); +string scheduled = db.get_scheduled_witness(s); +// ... +op_guard.release(); // release before returning true +``` + +```cpp +// database.cpp — _generate_block() (pre-write-lock reads) +{ + auto op_guard = make_operation_guard(); + uint32_t slot_num = get_slot_at_time(when); + string scheduled_witness = get_scheduled_witness(slot_num); + const auto& witness_obj = get_witness(witness_owner); + const auto* witness_acct = find_account(witness_owner); +} // op_guard released before with_strong_write_lock +``` + +```cpp +// database.cpp — _generate_block() (post-write-lock reads) +auto op_guard2 = make_operation_guard(); +auto maximum_block_size = get_dynamic_global_properties().maximum_block_size; +// ... with_strong_write_lock, then post-lock reads ... +pending_block.previous = head_block_id(); +const auto& witness = get_witness(witness_owner); +const auto& hfp = get_hardfork_property_object(); +const auto& dgp_block = get_dynamic_global_properties(); +op_guard2.release(); // release before push_block() +``` + +```cpp +// p2p_plugin.cpp — block post-validation +auto op_guard = chain.db().make_operation_guard(); +fc::ecc::public_key w_signing_key = chain.db().get_witness_key(account); +op_guard.release(); // release before apply_block_post_validation() +``` + ### single-write-thread Mode When `single-write-thread = true`, all `push_block()` and `push_transaction()` calls are serialized through a single `fc::async()` queue. This: @@ -393,9 +490,10 @@ FATAL write lock timeout!!! ## Safety Rules -1. **`min-free-shared-file-size` must be less than `inc-shared-file-size`** — otherwise cascading resizes occur, dramatically increasing corruption risk -2. **Pre-allocate generously** — set `shared-file-size` large enough that resize is rare. Resizing is the most dangerous operation. -3. **Use `single-write-thread = true`** in production — prevents write lock contention and reduces the window for resize race conditions -4. **Avoid resize during witness production** — a witness node should have enough pre-allocated memory that resize never triggers during block generation +1. **`min-free-shared-file-size` must be less than `inc-shared-file-size`** — otherwise cascading resizes occur, causing frequent operation pauses +2. **Pre-allocate generously** — set `shared-file-size` large enough that resize is rare. Each resize pauses all operations while the segment is remapped. +3. **Use `single-write-thread = true`** in production — prevents write lock contention +4. **Avoid resize during witness production** — a witness node should have enough pre-allocated memory that resize never triggers during block generation. The resize barrier guarantees safety but introduces latency. 5. **After corruption, always replay** — there is no safe way to repair a corrupted `shared_memory.bin`. Use `--replay-blockchain` or `--snapshot` to rebuild state from block_log/dlt_block_log. 6. **Backup before config changes** — changing `shared-file-size` to a larger value triggers `grow()` on next startup, which is safe. Reducing it has no effect (file doesn't shrink). +7. **Any new lockless read path must use `operation_guard`** — if you add code that reads from chainbase indices without `with_read_lock()`/`with_write_lock()`, wrap it with `make_operation_guard()` to participate in the resize barrier. Failing to do so can cause stale pointer access during resize. diff --git a/.qoder/plans/Fork_Collision_Resolution_Fix_24537a6e.md b/.qoder/plans/Fork_Collision_Resolution_Fix_24537a6e.md new file mode 100644 index 0000000000..6252b053c7 --- /dev/null +++ b/.qoder/plans/Fork_Collision_Resolution_Fix_24537a6e.md @@ -0,0 +1,328 @@ + +# Fork Collision Resolution Fix + +## Problem +When a witness node detects a fork collision (competing block at same height in fork_db), it defers block production forever. The competing block from the dead fork is never removed from fork_db, so `maybe_produce_block()` keeps returning `fork_collision` every 250ms. Meanwhile, blocks from the longer/healthier chain can't be applied because the head is stuck, creating a growing gap that eventually makes fork switching impossible. + +## Root Cause Analysis + +### How vote-weighted fork comparison works (existing HF12 code) + +`compute_branch_weight()` in `database.cpp:_push_block()` (lines 1300-1314): +1. `fetch_branch_from(tip_a, tip_b)` walks both chains back to their **common ancestor** +2. Returns two vectors: `branches.first` = all blocks from fork A's tip to common ancestor, `branches.second` = same for fork B +3. For each branch, iterates through **ALL blocks** in that branch +4. For each block, gets the `witness` name (who produced that block) +5. Looks up `witness_object.votes` from current DB state — this is **on-chain stake vote count** (how many VIZ tokens voted for that witness), NOT the scheduled slot +6. Uses `flat_set` to count each witness **only once** (even if it produced multiple blocks) +7. Skips `CHAIN_EMERGENCY_WITNESS_ACCOUNT` +8. The branch with higher total vote weight wins; ties broken by longer chain +9. **NEW: Longer chain gets +10% bonus on its vote weight** — each block produced is a consensus "vote" by the producing witness. Witnesses on the longer chain didn't defer and kept producing by consensus rules, which is strong evidence of network support. + +**Answer: it sums `wit_obj.votes` (on-chain stake) for ALL unique witnesses that produced blocks in the divergent portion of each fork, not just the top block. The longer chain gets a +10% bonus on its total weight.** + +### Where the witness plugin goes wrong +In `witness.cpp:maybe_produce_block()` (lines 549-577), the fork collision check does NOT use vote-weight comparison: +- It only checks "does any competing block exist at `head_block_num+1` with a different parent?" +- If yes -> blindly defers, no evaluation of which fork is better +- It never asks: "which fork has more vote weight? Should I produce on my fork or switch?" +- This creates a deadlock: the witness waits for fork resolution, but fork resolution only happens via `_push_block()` which can't run because the head is stuck + +### The deadlock sequence +1. Head at 79402010, competing block at 79402011 from dead fork in fork_db +2. Witness scheduled at 79402011 -> sees competing block -> defers +3. P2P blocks 79402012+ arrive but can't be pushed (gap, parent unknown in fork_db) +4. `_push_block()` never gets a chance to do vote-weight comparison +5. Witness keeps deferring every 250ms -> permanently stuck +6. Gap grows until fork_db window (2400 blocks) is exceeded -> no recovery possible + +### Critical constraint: `compute_branch_weight` CANNOT solve the stuck scenario +In your scenario (head at 79402010, network at 79404861+), the longer chain's blocks are NOT in fork_db — they were rejected because the parent was unknown (gap too large). So `fetch_branch_from()` cannot compute the branch for the longer chain. The existing vote-weight comparison **requires both chain tips to exist in fork_db**. + +This means we need TWO levels of fix: +- **Level 1 (immediate)**: When fork_db has competing blocks at `head+1`, use vote-weight comparison to decide whether to produce or switch. This handles the case where BOTH forks are in fork_db. +- **Level 2 (stuck recovery)**: When the witness has been deferring and head is stuck (not advancing), bypass the collision check entirely — the competing block is from a dead fork that clearly lost (the network moved on without it). Produce on our fork. + +## Fix Strategy: Two-Level Fork Decision in Witness Plugin + +### Level 1: Vote-weighted comparison (when both forks are in fork_db) +When a competing block at `head+1` exists in fork_db: +1. **Evaluate fork weights** using `compute_branch_weight()` logic (same as `_push_block()`) +2. **If our fork has more vote weight** -> produce on our fork (the competing block is from a losing fork) +3. **If the competing fork has more vote weight** -> switch to it first, then produce on it +4. **If tied** -> defer briefly (1-2 slots) + +### Level 2: Stuck-head timeout (when fork_db comparison is impossible) +When the witness has been deferring for N consecutive slots and head hasn't advanced: +1. The competing block is clearly from a dead fork (network moved on) +2. Remove the competing block(s) from fork_db +3. Produce on our fork +4. This handles the case where the longer chain's blocks aren't in fork_db + +### Level 3: Prune dead-fork entries on block apply (defensive) +When `_push_block()` successfully applies a block, remove competing blocks at that height from fork_db that are from dead forks + +## Detailed Changes + +### 1. `libraries/chain/include/graphene/chain/database.hpp` — Expose fork comparison as public method + +```cpp +/// Compare two fork branches by vote weight (HF12 logic). +/// Sums wit_obj.votes (on-chain stake) for all unique witnesses in each branch, +/// from the tip back to the common ancestor. +/// The longer chain gets a +10% bonus on its total weight (reflects that more +/// witnesses kept producing on it by consensus rules without deferring). +/// Returns: >0 if branch_a is heavier, <0 if branch_b is heavier, 0 if tied +/// Returns 0 if either tip is not in fork_db (cannot compare) +int compare_fork_branches(const block_id_type& branch_a_tip, const block_id_type& branch_b_tip) const; +``` + +### 2. `libraries/chain/database.cpp` — Implement `compare_fork_branches()` + +Extract `compute_branch_weight` lambda from lines 1300-1314 into the new public method. +Add +10% bonus to the longer chain's weight. +Wrap in try/catch to return 0 when `fetch_branch_from()` fails (one tip not in fork_db). +Refactor `_push_block()` to call `compare_fork_branches()` instead of inline code. + +```cpp +int database::compare_fork_branches(const block_id_type& branch_a_tip, const block_id_type& branch_b_tip) const { + try { + if (!_fork_db.is_known_block(branch_a_tip) || !_fork_db.is_known_block(branch_b_tip)) + return 0; // Cannot compare — one or both tips not in fork_db + + auto branches = _fork_db.fetch_branch_from(branch_a_tip, branch_b_tip); + + auto compute_branch_weight = [&](const fork_database::branch_type& branch) -> share_type { + flat_set seen_witnesses; + share_type total_weight = 0; + for (const auto& item : branch) { + const auto& wit_name = item->data.witness; + if (wit_name == CHAIN_EMERGENCY_WITNESS_ACCOUNT) continue; + if (seen_witnesses.insert(wit_name).second) { + try { + const auto& wit_obj = get_witness(wit_name); + total_weight += wit_obj.votes; + } catch (...) {} + } + } + return total_weight; + }; + + share_type weight_a = compute_branch_weight(branches.first); + share_type weight_b = compute_branch_weight(branches.second); + + // Longer chain gets +10% bonus on its vote weight. + // Each block produced is a consensus "vote" — witnesses on the longer + // chain didn't defer and kept producing by consensus rules. + // This reflects the stronger network support signal. + auto a_num = block_header::num_from_id(branch_a_tip); + auto b_num = block_header::num_from_id(branch_b_tip); + if (a_num > b_num) { + weight_a = weight_a + weight_a / 10; // +10% + } else if (b_num > a_num) { + weight_b = weight_b + weight_b / 10; // +10% + } + + if (weight_a > weight_b) return 1; // branch_a is heavier + if (weight_b > weight_a) return -1; // branch_b is heavier + return 0; // tied + } catch (...) { + return 0; // Cannot compare + } +} +``` + +### 3. `libraries/chain/include/graphene/chain/fork_database.hpp` — Add `remove_blocks_by_number()` + +```cpp +void remove_blocks_by_number(uint32_t num); +``` + +### 4. `libraries/chain/fork_database.cpp` — Implement `remove_blocks_by_number()` + +```cpp +void fork_database::remove_blocks_by_number(uint32_t num) { + auto blocks = fetch_block_by_number(num); + for (const auto& b : blocks) { + _index.get().erase(b->id); + } +} +``` + +### 5. `libraries/chain/database.cpp` — Prune dead-fork blocks after apply + +In `_push_block()`, after successfully applying a block that extends the current chain (no fork switch, around line 1417), add: + +```cpp +// Prune stale competing blocks from dead forks at this height +auto competing = _fork_db.fetch_block_by_number(new_block.block_num()); +for (const auto& cb : competing) { + if (cb->id != new_head->id && cb->data.previous != head_block_id()) { + wlog("Pruning stale competing block ${id} at height ${n} from fork_db (dead fork)", + ("id", cb->id)("n", new_block.block_num())); + _fork_db.remove(cb->id); + } +} +``` + +### 6. `plugins/witness/include/graphene/plugins/witness/witness.hpp` — Add config + +No header changes needed; the timeout is internal to `impl`. + +### 7. `plugins/witness/witness.cpp` — Two-level fork decision + +**Add to impl struct:** +```cpp +std::atomic fork_collision_defer_count_{0}; +uint32_t _fork_collision_timeout_blocks = 21; // safety timeout: one full witness round (21 blocks = 63s) +fc::time_point _fork_collision_start_time; // when we first started deferring +uint32_t _fork_collision_head_num = 0; // head_block_num when collision started +``` + +**Add CLI option:** `--fork-collision-timeout-blocks` (default: 21, i.e. one full witness schedule round = 63 seconds. After a full round, all scheduled witnesses have produced on the longer chain, confirming it's canonical.) + +**Replace the fork collision block (lines 545-578) with two-level logic:** + +```cpp +// Check if a competing block already exists in the fork database for this block height. +{ + auto existing_blocks = db.get_fork_db().fetch_block_by_number(db.head_block_num() + 1); + if (existing_blocks.size() > 0) { + bool has_competing_block = false; + item_ptr competing_block; + + if (dgp.emergency_consensus_active) { + has_competing_block = true; + competing_block = existing_blocks[0]; + } else { + for (const auto &eb : existing_blocks) { + if (eb->data.witness != scheduled_witness && + eb->data.previous != db.head_block_id()) { + has_competing_block = true; + competing_block = eb; + break; + } + } + } + + if (has_competing_block && competing_block) { + fork_collision_defer_count_++; + + // LEVEL 2: Stuck-head timeout + // If we've been deferring and the head hasn't advanced, the competing + // block is from a dead fork. The network has moved on without it. + // After 21 consecutive deferrals (one full witness round = 63s), + // we can be sure the longer chain had all scheduled witnesses + // produce on it — confirming it's the canonical chain. + if (fork_collision_defer_count_ > _fork_collision_timeout_blocks) { + wlog("Fork collision timeout exceeded (${n} deferrals, head stuck at ${h}). " + "Removing dead-fork competing block and producing on our chain.", + ("n", fork_collision_defer_count_.load())("h", db.head_block_num())); + db.get_fork_db().remove_blocks_by_number(db.head_block_num() + 1); + // Fall through to produce block + } + // LEVEL 1: Vote-weighted comparison (when both forks are in fork_db) + else if (db.has_hardfork(CHAIN_HARDFORK_12)) { + int weight_cmp = db.compare_fork_branches( + competing_block->id, db.head_block_id()); + + if (weight_cmp < 0) { + // Our fork has MORE vote weight -> produce on our fork + wlog("Our fork has more vote weight at height ${h}. " + "Producing despite competing block from weaker fork.", + ("h", db.head_block_num() + 1)); + // Remove the losing competing block + db.get_fork_db().remove(competing_block->id); + // Fall through to produce block + } else if (weight_cmp > 0) { + // Competing fork has MORE vote weight + // The competing branch is in fork_db and has more support. + // We should switch to it. The normal _push_block path will + // handle the switch when the competing block's children arrive. + // For now, defer to let the fork switch happen naturally. + capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); + wlog("Competing fork at height ${h} has more vote weight. " + "Deferring to allow fork switch to stronger chain.", + ("h", db.head_block_num() + 1)); + return block_production_condition::fork_collision; + } else { + // Tied (or comparison impossible — one tip not in fork_db) + // Defer briefly, timeout will kick in + capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); + wlog("Fork collision at height ${h} with tied/unknown vote weight. " + "Deferring (attempt ${n}/${max}).", + ("h", db.head_block_num() + 1) + ("n", fork_collision_defer_count_.load()) + ("max", _fork_collision_timeout_blocks)); + return block_production_condition::fork_collision; + } + } + // Pre-HF12: original defer behavior with timeout + else { + capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); + return block_production_condition::fork_collision; + } + } + } +} +``` + +**Reset `fork_collision_defer_count_`** to 0 in `block_production_loop()` when result is: +- `produced` — block was made, no collision +- `not_my_turn` / `not_time_yet` — normal skips, collision resolved +- Any result where `db.head_block_num()` has changed since last check + +## File Change Summary + +| File | Change | +|------|--------| +| `libraries/chain/include/graphene/chain/database.hpp` | Add `compare_fork_branches()` declaration | +| `libraries/chain/database.cpp` | Extract `compute_branch_weight` into `compare_fork_branches()`, prune dead fork blocks after apply | +| `libraries/chain/include/graphene/chain/fork_database.hpp` | Add `remove_blocks_by_number()` declaration | +| `libraries/chain/fork_database.cpp` | Implement `remove_blocks_by_number()` | +| `plugins/witness/witness.cpp` | Two-level fork decision: vote-weighted comparison + stuck-head timeout | + +## Key Design Decisions + +1. **`wit_obj.votes` = on-chain stake** — the vote-weight comparison sums the stake (VIZ tokens) that voted for each unique witness that produced blocks in the divergent portion of each fork. It is NOT the scheduled slot count. +2. **All blocks in the divergent branch count** — not just the top block. `fetch_branch_from()` walks from each tip back to the common ancestor, and all unique witnesses on each branch contribute their stake weight. +3. **Longer chain gets +10% bonus** — each block is a consensus "vote" by the producing witness. Witnesses on the longer chain didn't defer and kept producing by consensus rules. The +10% bonus ensures that a slightly shorter chain with slightly more stake cannot override a clearly longer chain that more witnesses kept building on. +4. **Our fork wins ties** — when vote weights (including bonus) are equal, we produce on our own chain (less disruptive) +5. **Competing fork with more weight -> defer for switch** — if the other chain has more support, we defer to allow `_push_block()` to naturally switch us when more blocks arrive +6. **Stuck-head timeout = 21 blocks (one full witness round)** — after 21 consecutive deferrals (63 seconds), all scheduled witnesses have had a chance to produce on the longer chain. We can be confident the longer chain is canonical. The competing block from the dead fork is removed and production resumes. +7. **Pruning on block apply** — when a block is applied, competing blocks from dead forks at that height are removed, preventing them from causing false collision detection in the future + +## Verification +- Short micro-forks (1-2 blocks): vote-weight comparison resolves quickly, no stuck +- Our fork has more votes: witness produces immediately +- Competing fork has more votes: witness defers for natural switch via `_push_block()` +- Stuck head (your scenario): timeout after 21 slots (one full witness round) removes dead-fork block, witness produces +- Stale fork_db entries pruned on each block apply +- Emergency mode: existing behavior preserved (any competing block = defer, timeout applies) + +--- + +## Implementation Status + +All planned changes have been implemented. Deviations from the original plan are noted below. + +| # | Planned Change | File | Status | Notes | +|---|---------------|------|--------|-------| +| 1 | Add `compare_fork_branches()` declaration | `database.hpp` | Done | Matches plan exactly | +| 2 | Implement `compare_fork_branches()` with +10% longer-chain bonus | `database.cpp` | Done | Matches plan; refactored `_push_block()` to use it instead of inline lambda | +| 3 | Refactor `_push_block()` HF12 fork-switch to use `compare_fork_branches()` | `database.cpp` | Done | Replaced 26-line inline lambda with 4-line call to `compare_fork_branches()` | +| 4 | Add `remove_blocks_by_number()` declaration | `fork_database.hpp` | Done | Matches plan exactly | +| 5 | Implement `remove_blocks_by_number()` | `fork_database.cpp` | Done | Matches plan exactly | +| 6 | Prune dead-fork blocks after block apply | `database.cpp` | Done | Slight deviation: uses `new_block.id()` instead of `new_head->id` (code is in the non-fork-switch path where `new_head` is out of scope) | +| 7 | Add fork collision state fields to `impl` struct | `witness.cpp` | Done | **Deviation**: removed `_fork_collision_head_num` (dead code) and `_fork_collision_start_time` (unused). Only `fork_collision_defer_count_` and `_fork_collision_timeout_blocks` remain | +| 8 | Add `--fork-collision-timeout-blocks` CLI option | `witness.cpp` | Done | Default 21, matches plan | +| 9 | Two-level fork decision in `maybe_produce_block()` | `witness.cpp` | Done | **Deviation**: Level 2 timeout runs BEFORE the HF12 check, so pre-HF12 nodes also benefit from the timeout. The plan had Level 2 inside the HF12 branch | +| 10 | Reset `fork_collision_defer_count_` in `block_production_loop()` | `witness.cpp` | Done | Reset on `produced`, `not_synced`, `not_my_turn`. **Not reset** on `not_time_yet` (timer hasn't fired yet, count should persist) | + +### Bugs Found and Fixed During Review + +| # | Severity | Bug | Fix | +|---|----------|-----|-----| +| 1 | Critical | Pre-HF12 path deferred forever (same as original bug) — Level 2 timeout was inside the `else if (has_hardfork(HF12))` branch | Moved Level 2 timeout check before the HF12 branch so all nodes benefit | +| 2 | Low | `_fork_collision_head_num` declared but never read or written | Removed the field | +| 3 | Info | `fork_collision_defer_count_` was planned as `std::atomic` but implemented as `uint32_t` | Kept as `uint32_t` — all access is single-threaded (block production loop) | diff --git a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Fork Resolution and Consensus.md b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Fork Resolution and Consensus.md index ce9b19cd1e..a547cd8db9 100644 --- a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Fork Resolution and Consensus.md +++ b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Fork Resolution and Consensus.md @@ -17,13 +17,13 @@ ## Update Summary **Changes Made** -- Enhanced early rejection logic in database.cpp with sophisticated block validation that distinguishes between different types of invalid blocks -- Improved fork database functionality with comprehensive duplicate detection and prevention mechanisms -- Added sophisticated block validation that prevents infinite synchronization loops through intelligent early rejection -- Enhanced error handling and exception management for unlinkable blocks and block too old scenarios -- Strengthened P2P fallback mechanisms to handle network partitions more effectively -- Implemented intelligent duplicate block prevention in fork_database with pre-insertion ID checks -- Enhanced tie-breaking mechanisms for emergency consensus stability with hash-based deterministic resolution +- Added comprehensive documentation for the new compare_fork_branches() function with vote-weighted fork comparison algorithm +- Documented the two-level fork collision resolution system with HF12 logic and stuck-head timeout mechanism +- Enhanced fork database pruning system documentation with automatic stale fork removal +- Updated witness scheduling integration to cover HF12 fork collision resolution and stuck-head timeout +- Added detailed explanation of vote-weighted chain comparison with +10% longer-chain bonus +- Documented automatic stale fork pruning and remove_blocks_by_number() functionality +- Enhanced emergency consensus recovery system with deterministic tie-breaking and stuck-head timeout ## Table of Contents 1. [Introduction](#introduction) @@ -32,23 +32,27 @@ 4. [Architecture Overview](#architecture-overview) 5. [Detailed Component Analysis](#detailed-component-analysis) 6. [Emergency Consensus Recovery System](#emergency-consensus-recovery-system) -7. [Dependency Analysis](#dependency-analysis) -8. [Performance Considerations](#performance-considerations) -9. [Troubleshooting Guide](#troubleshooting-guide) -10. [Conclusion](#conclusion) -11. [Appendices](#appendices) +7. [Two-Level Fork Collision Resolution](#two-level-fork-collision-resolution) +8. [Vote-Weighted Fork Comparison Algorithm](#vote-weighted-fork-comparison-algorithm) +9. [Automatic Stale Fork Pruning System](#automatic-stale-fork-pruning-system) +10. [Dependency Analysis](#dependency-analysis) +11. [Performance Considerations](#performance-considerations) +12. [Troubleshooting Guide](#troubleshooting-guide) +13. [Conclusion](#conclusion) +14. [Appendices](#appendices) ## Introduction -This document explains the Fork Resolution and Consensus system that maintains blockchain integrity and handles network partitions. The system has been significantly enhanced with sophisticated early rejection logic, comprehensive duplicate detection, improved block validation mechanisms, and enhanced error handling that prevents infinite synchronization loops. The fork_database implementation now supports intelligent block rejection, comprehensive duplicate prevention, and sophisticated tie-breaking mechanisms for emergency consensus scenarios. +This document explains the Fork Resolution and Consensus system that maintains blockchain integrity and handles network partitions. The system has been significantly enhanced with sophisticated early rejection logic, comprehensive duplicate detection, improved block validation mechanisms, and enhanced error handling that prevents infinite synchronization loops. The fork_database implementation now supports intelligent block rejection, comprehensive duplicate prevention, sophisticated tie-breaking mechanisms for emergency consensus scenarios, and advanced fork collision resolution with HF12 logic. ## Project Structure The fork resolution and consensus logic spans several core files with enhanced early rejection and validation: -- fork_database.hpp/cpp: In-memory fork chain storage, branch selection, common ancestor detection, duplicate detection, and emergency mode tie-breaking -- database.hpp/cpp: Blockchain database integration, block pushing with early rejection logic, chain reorganization, DLT mode management, and sophisticated block validation +- fork_database.hpp/cpp: In-memory fork chain storage, branch selection, common ancestor detection, duplicate detection, emergency mode tie-breaking, and automatic stale fork pruning +- database.hpp/cpp: Blockchain database integration, block pushing with early rejection logic, chain reorganization, DLT mode management, sophisticated block validation, and vote-weighted fork comparison - block_log.hpp: Append-only persistence of blocks for recovery and irreversible state - dlt_block_log.hpp/cpp: Separate rolling block log for DLT nodes to serve recent irreversible blocks to P2P peers -- witness.cpp: Witness scheduling integration with emergency mode awareness and fork collision handling +- witness.cpp: Witness scheduling integration with emergency mode awareness, fork collision handling, two-level fork collision resolution, and stuck-head timeout mechanism - config.hpp: Emergency consensus configuration constants including timeout settings and emergency witness parameters +- 12.hf: Hardfork configuration defining HF12 parameters and activation time ```mermaid graph TB @@ -62,6 +66,8 @@ END["Early Rejection Logic"] END2["Duplicate Detection"] END3["Block Validation"] END4["Exception Handling"] +END5["HF12 Fork Comparison"] +END6["Stuck-Head Timeout"] end FD --> DBC DBH --> DBC @@ -72,7 +78,11 @@ DBC --> END DBC --> END2 DBC --> END3 DBC --> END4 +DBC --> END5 +DBC --> END6 FD --> END4 +FD --> END5 +FD --> END6 ``` **Diagram sources** @@ -82,29 +92,30 @@ FD --> END4 - [witness.cpp:521-544](file://plugins/witness/witness.cpp#L521-L544) **Section sources** -- [fork_database.hpp:1-138](file://libraries/chain/include/graphene/chain/fork_database.hpp#L1-L138) -- [fork_database.cpp:1-270](file://libraries/chain/fork_database.cpp#L1-L270) +- [fork_database.hpp:1-144](file://libraries/chain/include/graphene/chain/fork_database.hpp#L1-L144) +- [fork_database.cpp:1-278](file://libraries/chain/fork_database.cpp#L1-L278) - [database.hpp:1-200](file://libraries/chain/include/graphene/chain/database.hpp#L1-L200) -- [database.cpp:1-6131](file://libraries/chain/database.cpp#L1-L6131) +- [database.cpp:1-6480](file://libraries/chain/database.cpp#L1-L6480) - [dlt_block_log.hpp:1-76](file://libraries/chain/include/graphene/chain/dlt_block_log.hpp#L1-L76) - [dlt_block_log.cpp:1-454](file://libraries/chain/dlt_block_log.cpp#L1-L454) -- [witness.cpp:1-577](file://plugins/witness/witness.cpp#L1-L577) +- [witness.cpp:1-695](file://plugins/witness/witness.cpp#L1-L695) - [config.hpp:110-124](file://libraries/protocol/include/graphene/protocol/config.hpp#L110-L124) - [12.hf:1-7](file://libraries/chain/hardfork.d/12.hf#L1-L7) ## Core Components -- fork_database: Maintains a multi-indexed collection of fork items with enhanced out-of-order block caching, comprehensive duplicate detection, sophisticated tie-breaking mechanisms, and emergency mode integration -- database: Integrates fork resolution into block application with sophisticated early rejection logic, comprehensive block validation, performs chain reorganization when a better fork emerges, manages DLT mode for snapshot-based nodes, and implements emergency consensus mode activation/deactivation +- fork_database: Maintains a multi-indexed collection of fork items with enhanced out-of-order block caching, comprehensive duplicate detection, sophisticated tie-breaking mechanisms, emergency mode integration, and automatic stale fork pruning capabilities +- database: Integrates fork resolution into block application with sophisticated early rejection logic, comprehensive block validation, performs chain reorganization when a better fork emerges, manages DLT mode for snapshot-based nodes, implements emergency consensus mode activation/deactivation, and provides vote-weighted fork comparison for HF12 - block_log: Provides persistent storage for blocks, enabling recovery and serving as the source of irreversible blocks - dlt_block_log: Separate rolling block log for DLT nodes that maintains a sliding window of recent irreversible blocks for P2P synchronization -- witness: Integrates witness scheduling with emergency mode awareness, handles fork collisions, and manages emergency witness production +- witness: Integrates witness scheduling with emergency mode awareness, handles fork collisions through two-level resolution system, manages stuck-head timeout mechanism, and implements HF12 fork collision resolution - emergency consensus: Implements timeout-based emergency mode activation, hybrid witness scheduling, and deterministic tie-breaking mechanisms +- compare_fork_branches: New HF12 function that performs vote-weighted fork comparison with +10% bonus for longer chains Key responsibilities: -- Track reversible blocks in memory (fork DB) with enhanced caching for out-of-order blocks, comprehensive duplicate detection, and emergency mode tie-breaking +- Track reversible blocks in memory (fork DB) with enhanced caching for out-of-order blocks, comprehensive duplicate detection, emergency mode tie-breaking, and automatic stale fork pruning - Implement sophisticated early rejection logic to prevent unnecessary fork database operations and infinite synchronization loops -- Detect and select the best chain by comparing heads with improved validation and emergency mode awareness -- Reorganize the chain when a higher fork becomes active with better error recovery and emergency mode integration +- Detect and select the best chain by comparing heads with improved validation, emergency mode awareness, and HF12 vote-weighted comparison +- Reorganize the chain when a higher fork becomes active with better error recovery, emergency mode integration, and fork collision resolution - Manage DLT mode for snapshot-based nodes with automatic fork database seeding capabilities - Implement emergency consensus mode activation based on timeout thresholds - Provide hybrid witness scheduling during emergency periods with deterministic tie-breaking @@ -112,16 +123,19 @@ Key responsibilities: - Serve recent blocks to P2P peers through dlt_block_log for faster synchronization - Handle emergency witness account creation and key management for consensus recovery - Distinguish between different types of invalid blocks and handle them appropriately to prevent system degradation +- **New**: Perform vote-weighted fork comparisons using witness vote weights with +10% bonus for longer chains +- **New**: Implement two-level fork collision resolution with stuck-head timeout mechanism +- **New**: Automatically prune stale competing blocks from dead forks using remove_blocks_by_number() **Section sources** -- [fork_database.hpp:53-138](file://libraries/chain/include/graphene/chain/fork_database.hpp#L53-L138) +- [fork_database.hpp:53-144](file://libraries/chain/include/graphene/chain/fork_database.hpp#L53-L144) - [fork_database.cpp:33-92](file://libraries/chain/fork_database.cpp#L33-L92) -- [database.cpp:1204-1270](file://libraries/chain/database.cpp#L1204-L1270) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) - [dlt_block_log.hpp:13-33](file://libraries/chain/include/graphene/chain/dlt_block_log.hpp#L13-L33) - [witness.cpp:521-544](file://plugins/witness/witness.cpp#L521-L544) ## Architecture Overview -The fork resolution pipeline integrates with block application and persistence with enhanced early rejection, sophisticated block validation, DLT mode support, automatic seeding mechanisms, and emergency consensus recovery: +The fork resolution pipeline integrates with block application and persistence with enhanced early rejection, sophisticated block validation, DLT mode support, automatic seeding mechanisms, emergency consensus recovery, and advanced fork collision resolution: ```mermaid sequenceDiagram @@ -149,6 +163,7 @@ DB->>DB : "Skip LIB advancement during emergency" else "Normal mode" DB->>DB : "Check new_head vs head_block_id()" alt "Need fork switch" +DB->>DB : "HF12 : compare_fork_branches()" DB->>FDB : "fetch_branch_from(new_head.id, head_block_id())" FDB-->>DB : "branches" DB->>DB : "pop blocks until common ancestor" @@ -240,7 +255,7 @@ UpdateHead --> End - [fork_database.cpp:48-55](file://libraries/chain/fork_database.cpp#L48-L55) ### Enhanced Fork Database with Improved Error Handling -**Updated** The fork database now includes comprehensive error handling and sophisticated tie-breaking mechanisms for emergency consensus scenarios. +**Updated** The fork database now includes comprehensive error handling, sophisticated tie-breaking mechanisms for emergency consensus scenarios, and automatic stale fork pruning capabilities. The fork database supports: - Pushing a block and linking it to the previous block with duplicate prevention @@ -252,6 +267,8 @@ The fork database supports: - **New**: Duplicate detection to prevent redundant processing during snapshot imports - **New**: Enhanced error handling for unlinkable blocks with comprehensive logging - **New**: Emergency mode tie-breaking with deterministic hash-based resolution for consensus stability +- **New**: Automatic stale fork pruning through `remove_blocks_by_number()` function +- **New**: Enhanced pruning system with `set_max_size()` that cleans both linked and unlinked indices ```mermaid classDiagram @@ -270,6 +287,7 @@ class fork_database { +reset() +start_block(b) +remove(b) ++remove_blocks_by_number(num) +set_emergency_mode(active) +is_emergency_mode() -_push_block(item) @@ -292,8 +310,8 @@ fork_database --> fork_item : "stores" ``` **Diagram sources** -- [fork_database.hpp:20-138](file://libraries/chain/include/graphene/chain/fork_database.hpp#L20-L138) -- [fork_database.cpp:33-270](file://libraries/chain/fork_database.cpp#L33-L270) +- [fork_database.hpp:20-144](file://libraries/chain/include/graphene/chain/fork_database.hpp#L20-L144) +- [fork_database.cpp:33-278](file://libraries/chain/fork_database.cpp#L33-L278) Implementation highlights: - **Enhanced duplicate detection**: Blocks are checked against existing IDs before insertion to prevent duplicate processing @@ -304,10 +322,13 @@ Implementation highlights: - **Automatic seeding support**: Works seamlessly with DLT mode to enable immediate P2P synchronization - **Emergency mode tie-breaking**: During emergency mode, deterministic hash-based tie-breaking ensures consensus stability when multiple emergency producers compete at the same height - **Enhanced exception management**: Sophisticated handling of different types of block validation failures +- **Automatic stale fork pruning**: New `remove_blocks_by_number()` function clears stale competing blocks from dead forks +- **Enhanced pruning system**: `set_max_size()` now cleans both `_index` and `_unlinked_index` for optimal memory management **Section sources** -- [fork_database.hpp:111-138](file://libraries/chain/include/graphene/chain/fork_database.hpp#L111-L138) +- [fork_database.hpp:111-144](file://libraries/chain/include/graphene/chain/fork_database.hpp#L111-L144) - [fork_database.cpp:80-87](file://libraries/chain/fork_database.cpp#L80-L87) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) ### Branch Selection and Common Ancestor Detection Branch selection relies on walking both branches backward until a common ancestor is found. The method returns two vectors representing the branches from each head to the common ancestor. @@ -329,10 +350,13 @@ DoneCommon --> Return(["Return branches"]) - [fork_database.cpp:189-231](file://libraries/chain/fork_database.cpp#L189-L231) ### Enhanced Chain Reorganization Process -**Updated** The chain reorganization process now includes improved early rejection logic, better error handling, DLT mode awareness, and emergency consensus integration for enhanced P2P synchronization reliability. +**Updated** The chain reorganization process now includes improved early rejection logic, better error handling, DLT mode awareness, emergency consensus integration, and HF12 fork comparison capabilities for enhanced P2P synchronization reliability. When a new head is higher and does not build off the current head, the database: - Performs sophisticated early rejection checks to prevent unnecessary fork switches +- **New**: Uses HF12 logic with `compare_fork_branches()` for vote-weighted fork comparison +- **New**: Applies +10% bonus to longer chain in vote-weighted comparison +- **New**: Falls back to simple longest-chain rule for pre-HF12 compatibility - Computes branches to the common ancestor with enhanced validation - Pops blocks until reaching the common ancestor with improved error recovery - Applies blocks from the new fork in reverse order with comprehensive exception handling @@ -350,6 +374,7 @@ DB->>FDB : "push_block(new_block)" FDB-->>DB : "new_head" DB->>DB : "if new_head higher and differs" DB->>DB : "Validate current head in fork_db" +DB->>DB : "HF12 : compare_fork_branches()" DB->>FDB : "fetch_branch_from(new_head.id, head_block_id())" FDB-->>DB : "branches" DB->>DB : "pop blocks until common ancestor" @@ -471,11 +496,12 @@ end - [p2p_plugin.cpp:118-164](file://plugins/p2p/p2p_plugin.cpp#L118-L164) ### Enhanced API Methods for Fork Detection, Chain Validation, and Recovery -**Updated** Enhanced with improved duplicate detection, DLT mode support, automatic seeding capabilities, emergency mode integration, and sophisticated block validation. +**Updated** Enhanced with improved duplicate detection, DLT mode support, automatic seeding capabilities, emergency mode integration, sophisticated block validation, and HF12 fork comparison capabilities. - Fork detection and branch retrieval: - get_block_ids_on_fork(head_of_fork): Returns ordered list of block IDs from the fork head back to the common ancestor - fetch_branch_from(first, second): Returns two branches leading to a common ancestor + - **New**: compare_fork_branches(branch_a_tip, branch_b_tip): Vote-weighted fork comparison for HF12 - Chain validation: - validate_block(new_block, skip): Validates block Merkle root and size with enhanced error handling - State recovery: @@ -492,6 +518,9 @@ end - Sophisticated early rejection logic prevents infinite synchronization loops - Intelligent duplicate detection prevents redundant processing - Comprehensive exception handling for different block validation failures +- **New**: Stale fork management: + - remove_blocks_by_number(num): Removes all blocks at specific height to prune dead forks + - Enhanced pruning system with automatic cleanup of stale competing blocks **Section sources** - [database.hpp:115-128](file://libraries/chain/include/graphene/chain/database.hpp#L115-L128) @@ -500,9 +529,10 @@ end - [database.cpp:206-230](file://libraries/chain/database.cpp#L206-L230) - [database.cpp:476-515](file://libraries/chain/database.cpp#L476-L515) - [fork_database.hpp:111-120](file://libraries/chain/include/graphene/chain/fork_database.hpp#L111-L120) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) ### Examples of Enhanced Fork Scenarios and Resolution Processes -**Updated** Enhanced with improved out-of-order block handling, duplicate detection, DLT mode integration, automatic seeding capabilities, emergency consensus recovery, and sophisticated early rejection logic. +**Updated** Enhanced with improved out-of-order block handling, duplicate detection, DLT mode integration, automatic seeding capabilities, emergency consensus recovery, sophisticated early rejection logic, and advanced fork collision resolution. - Scenario A: Out-of-order arrival of blocks with improved caching - Behavior: New blocks are inserted into the unlinked cache and later inserted when their parent appears via `_push_next` @@ -531,6 +561,15 @@ end - **New Scenario I**: Duplicate block prevention - Behavior: Database and fork database work together to detect and prevent duplicate block processing - Mechanism: Comprehensive duplicate detection prevents redundant CPU usage and improves synchronization reliability +- **New Scenario J**: HF12 fork collision resolution + - Behavior: When competing blocks appear at the same height, database uses vote-weighted comparison to determine the stronger fork + - Mechanism: `compare_fork_branches()` calculates total vote weight per witness, applies +10% bonus to longer chain, and resolves ties deterministically +- **New Scenario K**: Stuck-head timeout mechanism + - Behavior: After 21 consecutive deferrals (one full witness round), database removes stale competing blocks and produces on the canonical chain + - Mechanism: `fork_collision_defer_count_` tracks deferral attempts, `remove_blocks_by_number()` clears stale blocks, and timeout ensures network progress +- **New Scenario L**: Automatic stale fork pruning + - Behavior: Database periodically removes stale competing blocks from dead forks to prevent memory bloat and improve performance + - Mechanism: `remove_blocks_by_number()` clears all blocks at specific heights, combined with `set_max_size()` pruning for optimal memory usage **Section sources** - [fork_database.cpp:92-103](file://libraries/chain/fork_database.cpp#L92-L103) @@ -539,6 +578,9 @@ end - [database.cpp:4581-4594](file://libraries/chain/database.cpp#L4581-L4594) - [database.cpp:1204-1270](file://libraries/chain/database.cpp#L1204-L1270) - [database.cpp:2125-2142](file://libraries/chain/database.cpp#L2125-L2142) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) +- [witness.cpp:597-612](file://plugins/witness/witness.cpp#L597-L612) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) ## Emergency Consensus Recovery System @@ -649,17 +691,163 @@ Emergency exit process: - [database.cpp:2125-2142](file://libraries/chain/database.cpp#L2125-L2142) - [database.cpp:4428-4430](file://libraries/chain/database.cpp#L4428-L4430) +## Two-Level Fork Collision Resolution + +### Overview +The two-level fork collision resolution system provides robust handling of competing blocks at the same height, combining immediate vote-weighted comparison with timeout-based fallback mechanisms. This system ensures network progress while maintaining consensus integrity. + +### Level 1: Vote-Weighted Comparison (HF12) +When HF12 is active and competing blocks exist at the same height, the system performs immediate vote-weighted comparison: + +1. **Comparison**: `compare_fork_branches()` calculates total vote weight per witness for both forks +2. **Bonus Application**: Longer chain receives +10% bonus to vote weight +3. **Decision Making**: + - If one fork has significantly more weight: produce on stronger fork + - If comparison is inconclusive: defer to timeout mechanism + - If tied: produce on current fork, continue monitoring + +### Level 2: Stuck-Head Timeout +If the network remains stuck with competing blocks for extended periods: + +1. **Timeout Detection**: After 21 consecutive deferrals (one full witness round) +2. **Action**: Remove all stale competing blocks from the dead fork +3. **Resolution**: Produce on the canonical chain with confirmed majority support +4. **Prevention**: Ensures network doesn't stall indefinitely due to fork collisions + +```mermaid +flowchart TD +Start(["Fork Collision Detected"]) --> CheckHF12{"HF12 Active?"} +CheckHF12 --> |Yes| VoteWeight["Level 1: Vote-Weighted Comparison"] +CheckHF12 --> |No| TimeoutOnly["Level 2: Timeout Only"] +VoteWeight --> Compare["compare_fork_branches()"] +Compare --> Stronger{"Stronger Fork?"} +Stronger --> |Yes| ProduceStrong["Produce on Stronger Fork"] +Stronger --> |No| Tie{"Tied or Unknown?"} +Tie --> |Yes| Defer["Defer to Timeout"] +Tie --> |No| ProduceWeak["Produce on Current Fork"] +Defer --> TimeoutCheck["Check Timeout Counter"] +TimeoutOnly --> TimeoutCheck +TimeoutCheck --> TimeoutExceeded{"Timeout Exceeded (21 deferrals)?"} +TimeoutExceeded --> |Yes| RemoveStale["Remove Stale Competing Blocks"] +TimeoutExceeded --> |No| DeferMore["Continue Deferring"] +RemoveStale --> ProduceCanonical["Produce on Canonical Chain"] +ProduceStrong --> End(["Resolved"]) +ProduceWeak --> End +ProduceCanonical --> End +DeferMore --> End +``` + +**Diagram sources** +- [witness.cpp:565-656](file://plugins/witness/witness.cpp#L565-L656) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) + +**Section sources** +- [witness.cpp:565-656](file://plugins/witness/witness.cpp#L565-L656) +- [witness.cpp:121](file://plugins/witness/witness.cpp#L121) + +## Vote-Weighted Fork Comparison Algorithm + +### compare_fork_branches() Function +The `compare_fork_branches()` function implements HF12's vote-weighted fork comparison system: + +#### Algorithm Steps: +1. **Validation**: Ensure both fork tips exist in fork database +2. **Branch Extraction**: Use `fetch_branch_from()` to get branches to common ancestor +3. **Weight Calculation**: Compute total vote weight per witness for each branch +4. **Bonus Application**: Apply +10% bonus to longer chain +5. **Comparison**: Determine stronger fork or tie + +#### Weight Calculation Details: +- **Per-Witness Weight**: Sum of vote weights for each unique witness +- **Emergency Witness Exclusion**: Emergency witness votes are excluded from calculation +- **Unique Witness Counting**: Each witness contributes only once per branch + +#### Bonus System: +- **Longer Chain Advantage**: +10% bonus applied to the fork with more blocks +- **Consensus Signal**: Reflects stronger network support and production continuity +- **Fairness**: Prevents chains from stalling due to minor vote differences + +```mermaid +flowchart TD +Start(["compare_fork_branches()"]) --> Validate["Validate Fork Tips in Fork DB"] +Validate --> Extract["Extract Branches to Common Ancestor"] +Extract --> CalcA["Calculate Weight for Branch A"] +CalcA --> CalcB["Calculate Weight for Branch B"] +CalcB --> BonusA{"Branch A Longer?"} +CalcB --> BonusB{"Branch B Longer?"} +BonusA --> |Yes| ApplyBonusA["+10% Bonus to Branch A"] +BonusB --> |Yes| ApplyBonusB["+10% Bonus to Branch B"] +ApplyBonusA --> Compare["Compare Weights"] +ApplyBonusB --> Compare +Compare --> Result{"Result"} +Result --> |A Stronger| Return1["Return 1"] +Result --> |B Stronger| ReturnNeg1["Return -1"] +Result --> |Tied| Return0["Return 0"] +``` + +**Diagram sources** +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) + +**Section sources** +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) + +## Automatic Stale Fork Pruning System + +### Purpose +The automatic stale fork pruning system prevents memory bloat and improves performance by removing stale competing blocks from dead forks. This system complements the two-level fork collision resolution by providing proactive cleanup. + +### Implementation +The pruning system consists of two main components: + +#### 1. `remove_blocks_by_number()` Function +- **Targeted Removal**: Removes all blocks at a specific height from the fork database +- **Dead Fork Cleanup**: Clears stale competing blocks that will never become canonical +- **Memory Optimization**: Prevents accumulation of unused fork data + +#### 2. Enhanced Pruning with `set_max_size()` +- **Depth Control**: Limits fork database to configurable maximum depth +- **Automatic Cleanup**: Removes oldest blocks when size limit is exceeded +- **Dual Index Cleaning**: Cleans both linked and unlinked indices for optimal memory usage + +### Pruning Trigger Conditions +- **HF12 Fork Collision**: When stuck-head timeout exceeds threshold, stale blocks are removed +- **Size Limit Exceeded**: When fork database exceeds configured maximum size +- **Network Recovery**: After fork resolution, stale competing blocks are cleaned up + +```mermaid +flowchart TD +Start(["Fork Collision Detected"]) --> CheckTimeout{"Timeout Exceeded?"} +CheckTimeout --> |Yes| RemoveByHeight["remove_blocks_by_number(height)"] +CheckTimeout --> |No| CheckSize{"Max Size Exceeded?"} +RemoveByHeight --> CleanUp["Clean Up Memory"] +CheckSize --> |Yes| PruneOld["Prune Oldest Blocks"] +CheckSize --> |No| Monitor["Monitor Fork Health"] +PruneOld --> CleanUp +Monitor --> End(["Continue Operation"]) +CleanUp --> End +``` + +**Diagram sources** +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) +- [fork_database.cpp:114-146](file://libraries/chain/fork_database.cpp#L114-L146) + +**Section sources** +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) +- [fork_database.cpp:114-146](file://libraries/chain/fork_database.cpp#L114-L146) + ## Dependency Analysis -**Updated** The fork resolution system now includes DLT mode dependencies, automatic seeding capabilities, comprehensive emergency consensus integration, and sophisticated early rejection logic. +**Updated** The fork resolution system now includes DLT mode dependencies, automatic seeding capabilities, comprehensive emergency consensus integration, sophisticated early rejection logic, HF12 fork comparison capabilities, and advanced fork collision resolution systems. The fork resolution system depends on: -- fork_database for in-memory fork chain management with enhanced caching, duplicate detection, emergency mode tie-breaking, and comprehensive error handling -- database for integrating fork resolution into block application, DLT mode management, automatic seeding, emergency consensus mode activation/deactivation with sophisticated early rejection logic and block validation +- fork_database for in-memory fork chain management with enhanced caching, duplicate detection, emergency mode tie-breaking, comprehensive error handling, automatic stale fork pruning, and HF12 fork comparison +- database for integrating fork resolution into block application, DLT mode management, automatic seeding, emergency consensus mode activation/deactivation with sophisticated early rejection logic, block validation, and HF12 vote-weighted fork comparison - block_log for persistence of irreversible blocks in normal mode - **New**: dlt_block_log for DLT mode persistence and P2P synchronization support -- **New**: witness plugin for emergency mode awareness, fork collision handling, and hybrid witness scheduling +- **New**: witness plugin for emergency mode awareness, fork collision handling, two-level fork collision resolution, stuck-head timeout mechanism, and HF12 fork comparison integration - **New**: emergency consensus configuration for timeout thresholds and emergency witness parameters +- **New**: compare_fork_branches function for HF12 vote-weighted fork comparison - **New**: Enhanced exception handling for different types of block validation failures +- **New**: Automatic stale fork pruning system with remove_blocks_by_number() function ```mermaid graph LR @@ -672,26 +860,28 @@ DLTH --> DBCPP WIT --> DBCPP CONFIG["config.hpp"] --> DBCPP HF12["12.hf"] --> DBCPP +CMP["compare_fork_branches()"] --> DBCPP +PRUNE["remove_blocks_by_number()"] --> FDB ``` **Diagram sources** -- [fork_database.cpp:1-270](file://libraries/chain/fork_database.cpp#L1-L270) -- [database.cpp:1-6131](file://libraries/chain/database.cpp#L1-L6131) +- [fork_database.cpp:1-278](file://libraries/chain/fork_database.cpp#L1-L278) +- [database.cpp:1-6480](file://libraries/chain/database.cpp#L1-L6480) - [dlt_block_log.cpp:1-454](file://libraries/chain/dlt_block_log.cpp#L1-L454) -- [witness.cpp:1-577](file://plugins/witness/witness.cpp#L1-L577) +- [witness.cpp:1-695](file://plugins/witness/witness.cpp#L1-L695) - [config.hpp:110-124](file://libraries/protocol/include/graphene/protocol/config.hpp#L110-L124) - [12.hf:1-7](file://libraries/chain/hardfork.d/12.hf#L1-L7) **Section sources** -- [fork_database.cpp:1-270](file://libraries/chain/fork_database.cpp#L1-L270) -- [database.cpp:1-6131](file://libraries/chain/database.cpp#L1-L6131) +- [fork_database.cpp:1-278](file://libraries/chain/fork_database.cpp#L1-L278) +- [database.cpp:1-6480](file://libraries/chain/database.cpp#L1-L6480) - [dlt_block_log.cpp:1-454](file://libraries/chain/dlt_block_log.cpp#L1-L454) -- [witness.cpp:1-577](file://plugins/witness/witness.cpp#L1-L577) +- [witness.cpp:1-695](file://plugins/witness/witness.cpp#L1-L695) - [config.hpp:110-124](file://libraries/protocol/include/graphene/protocol/config.hpp#L110-L124) - [12.hf:1-7](file://libraries/chain/hardfork.d/12.hf#L1-L7) ## Performance Considerations -**Updated** Enhanced with improved caching, duplicate detection, DLT mode integration, automatic seeding mechanisms, emergency consensus recovery optimizations, and sophisticated early rejection logic. +**Updated** Enhanced with improved caching, duplicate detection, DLT mode integration, automatic seeding mechanisms, emergency consensus recovery optimizations, sophisticated early rejection logic, HF12 fork comparison capabilities, and advanced fork collision resolution systems. - Maximum fork depth: The fork database limits the maximum number of blocks that may be skipped in an out-of-order push, preventing excessive memory usage with enhanced cleanup - Multi-index containers: Efficient lookups by block ID and previous ID minimize traversal costs with improved indexing @@ -708,9 +898,13 @@ HF12["12.hf"] --> DBCPP - **Hybrid scheduling**: Emergency witness scheduling minimizes complexity compared to full witness rotation during emergency periods - **Penalty management**: Emergency penalty reset avoids complex penalty calculations during emergency mode, reducing computational load - **Sophisticated validation**: Early rejection logic prevents unnecessary processing and reduces system load during network partitions +- **HF12 fork comparison**: Vote-weighted comparison adds computational overhead but provides more robust consensus decisions +- **Two-level collision resolution**: Additional logic for fork collision handling adds minimal overhead while providing significant reliability improvements +- **Automatic pruning**: Stale fork pruning prevents memory bloat and maintains optimal performance under fork collision conditions +- **Stuck-head timeout**: 21-block timeout provides reasonable balance between network stability and production efficiency ## Troubleshooting Guide -**Updated** Enhanced with improved error handling, duplicate detection, DLT mode support, automatic seeding capabilities, comprehensive emergency consensus troubleshooting, and sophisticated early rejection logic. +**Updated** Enhanced with improved error handling, duplicate detection, DLT mode support, automatic seeding capabilities, comprehensive emergency consensus troubleshooting, sophisticated early rejection logic, HF12 fork comparison troubleshooting, and advanced fork collision resolution guidance. Common issues and remedies: - **Unlinkable block errors**: Occur when a block does not link to a known chain; the fork DB logs and caches the block for later insertion when its parent arrives with enhanced logging and processing @@ -729,6 +923,11 @@ Common issues and remedies: - **Tie-breaking anomalies**: Monitor emergency mode tie-breaking behavior and verify hash-based resolution consistency across network nodes - **Infinite sync loops**: Check early rejection logic and ensure proper block validation to prevent continuous sync restarts - **Block validation failures**: Monitor different types of block validation errors and ensure appropriate exception handling +- **HF12 fork comparison failures**: Verify compare_fork_branches() function returns valid results and check witness vote weight calculations +- **Two-level collision resolution issues**: Monitor fork collision timeout counters and ensure stuck-head timeout mechanism is functioning correctly +- **Vote-weighted comparison anomalies**: Check witness vote weight calculations and ensure emergency witness exclusion is working properly +- **Automatic pruning failures**: Verify remove_blocks_by_number() function is cleaning stale competing blocks and check set_max_size() pruning effectiveness +- **Timeout configuration problems**: Adjust fork-collision-timeout-blocks parameter if network experiences frequent fork collisions or insufficient timeout **Section sources** - [fork_database.cpp:34-46](file://libraries/chain/fork_database.cpp#L34-L46) @@ -737,14 +936,16 @@ Common issues and remedies: - [database.cpp:4581-4594](file://libraries/chain/database.cpp#L4581-L4594) - [database.cpp:1204-1270](file://libraries/chain/database.cpp#L1204-L1270) - [database.cpp:2125-2142](file://libraries/chain/database.cpp#L2125-L2142) +- [witness.cpp:597-612](file://plugins/witness/witness.cpp#L597-L612) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) ## Conclusion -**Updated** The fork resolution and consensus system combines an efficient in-memory fork database with robust chain reorganization, irreversible block persistence, comprehensive DLT mode support, and advanced emergency consensus recovery mechanisms. The system has been significantly enhanced with sophisticated early rejection logic, comprehensive duplicate detection, DLT mode integration, automatic seeding capabilities, and comprehensive emergency consensus implementation. The enhanced fork database now supports snapshot-based nodes with immediate P2P synchronization, while the DLT block log provides efficient serving of recent irreversible blocks to peers. The emergency consensus recovery system ensures blockchain continuity through timeout-based activation, hybrid witness scheduling, and deterministic tie-breaking mechanisms. The system integrates tightly with witness scheduling to ensure timely and valid block production, with emergency mode awareness enabling seamless transition between normal and emergency operations. The enhanced APIs enable reliable fork detection, chain validation, and recovery with DLT mode and emergency consensus awareness. Performance controls keep resource usage manageable while improving synchronization reliability, network health, and consensus stability during emergency conditions. The sophisticated early rejection logic and block validation mechanisms prevent infinite synchronization loops and system degradation, ensuring robust operation under various network conditions. +**Updated** The fork resolution and consensus system combines an efficient in-memory fork database with robust chain reorganization, irreversible block persistence, comprehensive DLT mode support, and advanced emergency consensus recovery mechanisms. The system has been significantly enhanced with sophisticated early rejection logic, comprehensive duplicate detection, DLT mode integration, automatic seeding capabilities, comprehensive emergency consensus implementation, HF12 vote-weighted fork comparison, two-level fork collision resolution, and automatic stale fork pruning. The enhanced fork database now supports snapshot-based nodes with immediate P2P synchronization, while the DLT block log provides efficient serving of recent irreversible blocks to peers. The emergency consensus recovery system ensures blockchain continuity through timeout-based activation, hybrid witness scheduling, and deterministic tie-breaking mechanisms. The HF12 fork comparison system provides more robust consensus decisions by weighting chains based on witness vote support with +10% bonus for longer chains. The two-level fork collision resolution system combines immediate vote-weighted comparison with stuck-head timeout to ensure network progress while maintaining consensus integrity. The automatic stale fork pruning system prevents memory bloat and maintains optimal performance under fork collision conditions. The system integrates tightly with witness scheduling to ensure timely and valid block production, with emergency mode awareness enabling seamless transition between normal and emergency operations. The enhanced APIs enable reliable fork detection, chain validation, and recovery with DLT mode, emergency consensus, and HF12 fork comparison awareness. Performance controls keep resource usage manageable while improving synchronization reliability, network health, and consensus stability during emergency conditions. The sophisticated early rejection logic and block validation mechanisms prevent infinite synchronization loops and system degradation, ensuring robust operation under various network conditions. ## Appendices ### Appendix A: Enhanced Key Data Structures and Complexity -**Updated** Enhanced with improved duplicate detection, caching mechanisms, DLT mode support, automatic seeding capabilities, emergency consensus integration, and sophisticated early rejection logic. +**Updated** Enhanced with improved duplicate detection, caching mechanisms, DLT mode support, automatic seeding capabilities, emergency consensus integration, sophisticated early rejection logic, HF12 fork comparison capabilities, and advanced fork collision resolution systems. - fork_item: Stores block data, previous link, and invalid flag - fork_database: @@ -756,6 +957,13 @@ Common issues and remedies: - **New**: Enhanced caching: Iterative processing of up to MAX_BLOCK_REORDERING unlinked blocks - **New**: Emergency mode tie-breaking: O(1) hash comparison for tie resolution during emergency periods - **New**: Enhanced error handling: Comprehensive exception management for different block validation failures + - **New**: Automatic stale fork pruning: O(k) removal of all blocks at specific height (k = number of competing blocks) + - **New**: Enhanced pruning system: O(N) cleanup of both _index and _unlinked_index for optimal memory management +- **New**: database compare_fork_branches(): + - O(B) where B = number of blocks in longer branch + - Calculates vote weights for each unique witness + - Applies +10% bonus to longer chain + - Returns comparison result (-1, 0, or 1) - **New**: database early rejection logic: - Already applied block detection: O(1) lookup for existing block IDs - Different fork detection: O(1) parent validation in fork database @@ -777,20 +985,30 @@ Common issues and remedies: - Activation detection: O(1) timestamp comparison for timeout checks - Hybrid scheduling: O(N) override of all witness slots to emergency witness - Penalty reset: O(N) iteration through all witnesses for penalty clearing +- **New**: HF12 fork comparison: + - Vote-weighted comparison: O(B) where B = number of blocks in longer branch + - Unique witness counting: O(W) where W = number of unique witnesses per branch + - +10% bonus application: O(1) constant time operation +- **New**: Two-level fork collision resolution: + - Level 1 timeout: O(1) constant time comparison + - Level 2 timeout: O(1) constant time counter check + - Stale fork removal: O(k) where k = number of competing blocks at height - **New**: Exception handling: - unlinkable_block_exception: Specific handling for blocks that cannot link - block_too_old_exception: Specific handling for blocks outside fork window - Enhanced error categorization prevents system degradation **Section sources** -- [fork_database.hpp:20-138](file://libraries/chain/include/graphene/chain/fork_database.hpp#L20-L138) +- [fork_database.hpp:20-144](file://libraries/chain/include/graphene/chain/fork_database.hpp#L20-L144) - [fork_database.cpp:48-103](file://libraries/chain/fork_database.cpp#L48-L103) - [database.cpp:1204-1270](file://libraries/chain/database.cpp#L1204-L1270) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) - [dlt_block_log.hpp:35-72](file://libraries/chain/include/graphene/chain/dlt_block_log.hpp#L35-L72) - [dlt_block_log.cpp:336-340](file://libraries/chain/dlt_block_log.cpp#L336-L340) - [config.hpp:110-124](file://libraries/protocol/include/graphene/protocol/config.hpp#L110-L124) - [database.cpp:4334-4438](file://libraries/chain/database.cpp#L4334-L4438) - [database.cpp:2125-2142](file://libraries/chain/database.cpp#L2125-L2142) +- [witness.cpp:597-612](file://plugins/witness/witness.cpp#L597-L612) ### Appendix B: Emergency Consensus Configuration Parameters **New Section** Comprehensive configuration parameters for emergency consensus mode activation and operation. @@ -822,6 +1040,7 @@ Exception categories and handling: - **block_validation_exception**: Thrown when blocks fail validation checks; handled through early rejection logic - **duplicate_block_exception**: Prevented through comprehensive duplicate detection mechanisms - **infinite_sync_loop_exception**: Prevented through sophisticated early rejection logic that detects and rejects problematic blocks +- **fork_collision_exception**: Handled through two-level fork collision resolution system with timeout-based fallback Exception handling strategies: - **Early rejection**: Prevents unnecessary processing of invalid blocks @@ -829,9 +1048,11 @@ Exception handling strategies: - **Comprehensive logging**: Detailed error reporting for debugging and monitoring - **Specific exception types**: Differentiates between different types of failures for appropriate handling - **System resilience**: Prevents cascading failures through proper exception management +- **HF12 integration**: Vote-weighted fork comparison provides additional error context for fork resolution decisions **Section sources** - [fork_database.cpp:38-46](file://libraries/chain/fork_database.cpp#L38-L46) - [fork_database.cpp:59-75](file://libraries/chain/fork_database.cpp#L59-L75) - [database.cpp:1204-1270](file://libraries/chain/database.cpp#L1204-L1270) -- [database.cpp:1390-1397](file://libraries/chain/database.cpp#L1390-L1397) \ No newline at end of file +- [database.cpp:1390-1397](file://libraries/chain/database.cpp#L1390-L1397) +- [witness.cpp:614-646](file://plugins/witness/witness.cpp#L614-L646) \ No newline at end of file diff --git a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Memory Management System.md b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Memory Management System.md index 59934e7f44..92ab9ed2d5 100644 --- a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Memory Management System.md +++ b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Chain Library/Memory Management System.md @@ -19,8 +19,18 @@ - [thread_specific.hpp](file://thirdparty/fc/include/fc/thread/thread_specific.hpp) - [scoped_exit.hpp](file://thirdparty/fc/include/fc/scoped_exit.hpp) - [aligned.hpp](file://thirdparty/fc/include/fc/aligned.hpp) +- [witness.cpp](file://plugins/witness/witness.cpp) +## Update Summary +**Changes Made** +- Added comprehensive documentation for the new shared memory resize barrier system +- Documented the sophisticated atomic operation counter system +- Added detailed coverage of begin_resize_barrier() and end_resize_barrier() functions +- Documented operation guards for lockless reads and their role in preventing shared memory corruption +- Enhanced logging capabilities for resize barrier state transitions +- Updated memory monitoring and resizing sections with new barrier-based approach + ## Table of Contents 1. [Introduction](#introduction) 2. [System Architecture](#system-architecture) @@ -31,9 +41,12 @@ 7. [Memory Allocation Strategies](#memory-allocation-strategies) 8. [Locking and Concurrency](#locking-and-concurrency) 9. [Memory Monitoring and Resizing](#memory-monitoring-and-resizing) -10. [Best Practices](#best-practices) -11. [Troubleshooting Guide](#troubleshooting-guide) -12. [Conclusion](#conclusion) +10. [Resize Barrier System](#resize-barrier-system) +11. [Operation Guards](#operation-guards) +12. [Enhanced Logging and Diagnostics](#enhanced-logging-and-diagnostics) +13. [Best Practices](#best-practices) +14. [Troubleshooting Guide](#troubleshooting-guide) +15. [Conclusion](#conclusion) ## Introduction @@ -41,6 +54,8 @@ The VIZ CPP Node memory management system is built around a sophisticated shared The memory management system centers on ChainBase, a specialized database framework that uses Boost.Interprocess for shared memory management, combined with FC library utilities for smart pointers, RAII patterns, and memory-safe operations. This architecture supports the demanding requirements of blockchain applications, including persistent state, concurrent access, and automatic memory management. +**Updated** The system now includes a sophisticated resize barrier mechanism that provides atomic operations during shared memory resizing, preventing corruption and ensuring data consistency during memory expansion operations. + ## System Architecture The memory management system follows a layered architecture that separates concerns between low-level memory management, database operations, and application-level abstractions. @@ -56,11 +71,15 @@ subgraph "Database Layer" DATABASE[Database Engine] INDEXES[Index Management] SESSIONS[Transaction Sessions] +RESIZE_BARRIER[Resize Barrier System] +OPERATION_GUARDS[Operation Guards] end subgraph "Memory Management Layer" SHARED_MEM[Shared Memory] ALLOCATORS[Custom Allocators] LOCKS[Lock Management] +ATOMIC_COUNTER[Atomic Operation Counter] +END_RESIZE_BARRIER[End Resize Barrier] end subgraph "Low-Level Memory" INTERPROCESS[Boost Interprocess] @@ -72,6 +91,10 @@ PLUGINS --> DATABASE API --> DATABASE DATABASE --> INDEXES DATABASE --> SESSIONS +DATABASE --> RESIZE_BARRIER +RESIZE_BARRIER --> OPERATION_GUARDS +RESIZE_BARRIER --> ATOMIC_COUNTER +RESIZE_BARRIER --> END_RESIZE_BARRIER INDEXES --> SHARED_MEM SESSIONS --> SHARED_MEM SHARED_MEM --> ALLOCATORS @@ -82,9 +105,9 @@ INTERPROCESS --> FILE_MAPPING ``` **Diagram sources** -- [chainbase.hpp:835-1260](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L835-L1260) -- [shared_ptr.hpp:1-64](file://thirdparty/fc/include/fc/shared_ptr.hpp#L1-L64) -- [file_mapping.hpp:1-51](file://thirdparty/fc/include/fc/interprocess/file_mapping.hpp#L1-L51) +- [chainbase.hpp:1319-1328](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1319-L1328) +- [database.cpp:613-653](file://libraries/chain/database.cpp#L613-L653) +- [witness.cpp:503-507](file://plugins/witness/witness.cpp#L503-L507) ## Memory Management Components @@ -133,21 +156,32 @@ class UniquePtr { +reset() void +release() T* } +class OperationGuard { +-database& _db +-bool _active ++operation_guard(database&) ++~operation_guard() ++release() void ++operation_guard(operation_guard&&) +} Retainable <|-- SharedPtr : "reference counting" SharedPtr --> Retainable : "uses" SmartRef --> T : "owns" UniquePtr --> T : "owns" +OperationGuard --> database : "manages" ``` **Diagram sources** - [shared_ptr.hpp:13-64](file://thirdparty/fc/include/fc/shared_ptr.hpp#L13-L64) - [smart_ref_fwd.hpp:9-52](file://thirdparty/fc/include/fc/smart_ref_fwd.hpp#L9-L52) - [unique_ptr.hpp:7-66](file://thirdparty/fc/include/fc/unique_ptr.hpp#L7-L66) +- [chainbase.hpp:1078-1111](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1078-L1111) **Section sources** - [shared_ptr.hpp:1-64](file://thirdparty/fc/include/fc/shared_ptr.hpp#L1-L64) - [smart_ref_fwd.hpp:1-53](file://thirdparty/fc/include/fc/smart_ref_fwd.hpp#L1-L53) - [unique_ptr.hpp:1-68](file://thirdparty/fc/include/fc/unique_ptr.hpp#L1-L68) +- [chainbase.hpp:1078-1111](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1078-L1111) ## Shared Memory System @@ -195,10 +229,12 @@ The shared memory system organizes data in a structured manner optimized for blo | Object Storage | Actual blockchain data | Dynamic | Read-write | | Undo Buffers | Transaction rollback support | Dynamic | Read-write | | Lock Information | Concurrency control data | Fixed size | Read-write | +| Resize Barrier State | Atomic operation counters | Fixed size | Read-write | **Section sources** - [chainbase.cpp:70-102](file://thirdparty/chainbase/src/chainbase.cpp#L70-L102) - [chainbase.hpp:1189-1193](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1189-L1193) +- [chainbase.hpp:1319-1328](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1319-L1328) ## Reference Counting @@ -421,6 +457,118 @@ The system provides extensive configuration options for memory management: - [plugin.cpp:199-211](file://plugins/chain/plugin.cpp#L199-L211) - [database.cpp:648-682](file://libraries/chain/database.cpp#L648-L682) +## Resize Barrier System + +### Atomic Operation Counter System + +The resize barrier system introduces a sophisticated atomic operation counter that tracks active database operations during memory resizing: + +```mermaid +sequenceDiagram +participant App as Application Thread +participant DB as Database +participant Barrier as Resize Barrier +participant Ops as Active Operations +App->>DB : begin_resize_barrier() +DB->>Barrier : set _resize_in_progress = true +Barrier->>Ops : wait for _active_operations == 0 +Note over Ops : All active operations complete +Ops->>Barrier : notify_all() +Barrier->>DB : begin_resize_barrier() returns +App->>DB : resize(target_size) +DB->>Barrier : end_resize_barrier() +Barrier->>Ops : set _resize_in_progress = false +Ops->>Barrier : notify_all() +Barrier->>DB : end_resize_barrier() returns +``` + +**Diagram sources** +- [chainbase.cpp:295-310](file://thirdparty/chainbase/src/chainbase.cpp#L295-L310) +- [chainbase.hpp:1319-1323](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1319-L1323) + +### Resize Barrier Implementation Details + +The resize barrier system provides atomic operations during shared memory resizing: + +| Component | Data Type | Purpose | +|-----------|-----------|---------| +| _resize_in_progress | std::atomic | Indicates resize operation status | +| _active_operations | std::atomic | Counts currently active operations | +| _resize_barrier_mutex | std::mutex | Synchronization primitive | +| _resize_barrier_cv | std::condition_variable | Condition variable for blocking | + +**Section sources** +- [chainbase.cpp:295-310](file://thirdparty/chainbase/src/chainbase.cpp#L295-L310) +- [chainbase.hpp:1319-1323](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1319-L1323) + +## Operation Guards + +### Lockless Read Protection + +Operation guards provide protection for lockless reads that do not acquire chainbase locks, preventing shared memory corruption during resize operations: + +```mermaid +flowchart TD +Start([Lockless Read Request]) --> CheckBarrier["Check _resize_in_progress"] +CheckBarrier --> |Resize In Progress| WaitGuard["Wait in operation_guard"] +CheckBarrier --> |No Resize| Proceed["Proceed with Lockless Read"] +WaitGuard --> WaitComplete["Operation Guard Released"] +WaitComplete --> Proceed +Proceed --> Complete["Lockless Read Complete"] +``` + +**Diagram sources** +- [chainbase.hpp:1078-1111](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1078-L1111) +- [database.cpp:1554-1556](file://libraries/chain/database.cpp#L1554-L1556) + +### Operation Guard Lifecycle + +Operation guards participate in the resize barrier system: + +1. **Construction**: Calls `enter_operation()` which blocks if resize is in progress +2. **Destruction**: Calls `exit_operation()` which decrements counter and notifies resize thread +3. **Manual Release**: Can be explicitly released before scope exit + +**Section sources** +- [chainbase.hpp:1078-1111](file://thirdparty/chainbase/include/chainbase/chainbase.hpp#L1078-L1111) +- [chainbase.cpp:278-293](file://thirdparty/chainbase/src/chainbase.cpp#L278-L293) +- [database.cpp:1554-1556](file://libraries/chain/database.cpp#L1554-L1556) + +## Enhanced Logging and Diagnostics + +### Resize Barrier State Transition Logging + +The system provides enhanced logging capabilities for resize barrier state transitions: + +```mermaid +flowchart TD +Start([Resize Operation]) --> LogStart["Log: Resize barrier: pausing all database operations"] +LogStart --> BeginBarrier["begin_resize_barrier()"] +BeginBarrier --> WaitOps["Wait for active operations to complete"] +WaitOps --> LogResize["Log: Applying deferred shared memory resize"] +LogResize --> PerformResize["resize(target_size)"] +PerformResize --> LogComplete["Log: Deferred shared memory grow complete"] +LogComplete --> EndBarrier["end_resize_barrier()"] +EndBarrier --> LogResume["Log: Resize barrier: all database operations resumed"] +LogResume --> End([Resize Complete]) +``` + +**Diagram sources** +- [database.cpp:624-652](file://libraries/chain/database.cpp#L624-L652) + +### Diagnostic Information + +The resize barrier system logs comprehensive information about memory usage and resize operations: + +- **Current block number**: Tracks resize timing relative to blockchain progress +- **Used memory before/after**: Shows actual memory consumption changes +- **Target size**: Displays planned resize target +- **Free memory**: Monitors available memory after resize + +**Section sources** +- [database.cpp:624-652](file://libraries/chain/database.cpp#L624-L652) +- [database.cpp:577-610](file://libraries/chain/database.cpp#L577-L610) + ## Best Practices ### Memory Management Guidelines @@ -430,6 +578,8 @@ The system provides extensive configuration options for memory management: 3. **Monitor Memory Usage**: Regularly check memory usage and implement appropriate resizing strategies 4. **Use Appropriate Locking**: Choose the right lock type based on operation requirements 5. **Handle Exceptions**: Ensure proper cleanup in exception scenarios using scoped_exit patterns +6. **Respect Resize Barriers**: Always use operation guards for lockless reads during resize operations +7. **Implement Proper Synchronization**: Use resize barriers for all shared memory modifications ### Performance Optimization Tips @@ -437,6 +587,8 @@ The system provides extensive configuration options for memory management: 2. **Efficient Allocators**: Use appropriate allocators for different data types 3. **Memory Alignment**: Ensure proper alignment for optimal performance 4. **Undo Buffer Management**: Monitor and manage undo buffer sizes appropriately +5. **Operation Guard Usage**: Use operation guards strategically to prevent shared memory corruption +6. **Resize Timing**: Schedule resizes during maintenance windows when possible ## Troubleshooting Guide @@ -446,16 +598,25 @@ The system provides extensive configuration options for memory management: - Check free memory thresholds and adjust `min-free-shared-file-size` - Review application memory usage patterns - Consider implementing more aggressive garbage collection +- Monitor resize barrier operations for blocking issues **Lock Contention Problems** - Analyze lock wait times and adjust timeouts - Review concurrent access patterns - Consider reducing lock scope where possible +- Check operation guard usage for proper synchronization **Shared Memory Corruption** - Verify environment compatibility checks pass - Check file permissions and disk space - Review concurrent access patterns for race conditions +- Monitor resize barrier state transitions + +**Resize Barrier Deadlocks** +- Ensure all operation guards are properly released +- Check for nested resize operations +- Verify atomic operation counter integrity +- Monitor condition variable notifications ### Diagnostic Tools @@ -465,21 +626,30 @@ The system provides several diagnostic capabilities: - Lock contention monitoring - Environment compatibility verification - Automatic memory resizing notifications +- Resize barrier state transition logging +- Operation guard lifecycle tracking **Section sources** - [database.cpp:648-682](file://libraries/chain/database.cpp#L648-L682) - [chainbase.cpp:80-89](file://thirdparty/chainbase/src/chainbase.cpp#L80-L89) +- [database.cpp:624-652](file://libraries/chain/database.cpp#L624-L652) ## Conclusion The VIZ CPP Node memory management system represents a sophisticated approach to handling blockchain-specific memory requirements. By combining shared memory architectures with modern C++ memory management techniques, the system achieves both high performance and reliability. +**Updated** The recent addition of the resize barrier system significantly enhances the system's ability to handle dynamic memory growth while maintaining data integrity and preventing corruption during shared memory modifications. + Key strengths of the system include: - **High Performance**: Shared memory eliminates context switching overhead - **Reliability**: Comprehensive error checking and recovery mechanisms -- **Scalability**: Automatic memory resizing and monitoring -- **Safety**: Extensive use of RAII and smart pointers +- **Scalability**: Automatic memory resizing and monitoring with atomic operations +- **Safety**: Extensive use of RAII and smart pointers with operation guard protection - **Flexibility**: Configurable parameters for different deployment scenarios +- **Atomic Operations**: Sophisticated resize barrier system with atomic operation counters +- **Enhanced Diagnostics**: Comprehensive logging for resize barrier state transitions + +The system successfully balances the competing demands of blockchain applications: maintaining fast access to persistent state while ensuring data integrity, providing mechanisms for graceful degradation under memory pressure, and protecting against corruption during critical memory operations. -The system successfully balances the competing demands of blockchain applications: maintaining fast access to persistent state while ensuring data integrity and providing mechanisms for graceful degradation under memory pressure. \ No newline at end of file +The resize barrier system, with its atomic operation counter and operation guard mechanism, provides a robust foundation for safe shared memory resizing operations, making the system more resilient to memory pressure and enabling seamless scaling of blockchain state storage. \ No newline at end of file diff --git a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Network Library.md b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Network Library.md index 95bd2e69f8..9108e08a25 100644 --- a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Network Library.md +++ b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Network Library.md @@ -25,6 +25,7 @@ - Added documentation for the `simulated_network` class's resync implementation - Updated dependency analysis to reflect the new virtual method structure - Enhanced troubleshooting guidance with resync usage scenarios +- Added documentation for enhanced peer connection logging with color support (orange/red) ## Table of Contents 1. [Introduction](#introduction) @@ -35,27 +36,28 @@ 6. [Peer Statistics and Metrics System](#peer-statistics-and-metrics-system) 7. [Peer Information Handling and IP Extraction](#peer-information-handling-and-ip-extraction) 8. [Programmatic Synchronization Control](#programmatic-synchronization-control) -9. [Dependency Analysis](#dependency-analysis) -10. [Performance Considerations](#performance-considerations) -11. [Troubleshooting Guide](#troubleshooting-guide) -12. [Conclusion](#conclusion) +9. [Enhanced Peer Connection Logging](#enhanced-peer-connection-logging) +10. [Dependency Analysis](#dependency-analysis) +11. [Performance Considerations](#performance-considerations) +12. [Troubleshooting Guide](#troubleshooting-guide) +13. [Conclusion](#conclusion) ## Introduction This document describes the Network Library that implements peer-to-peer communication and network protocol for the VIZ node. It covers the node management layer, peer connection orchestration, standard network messages, secure transport, peer address management, and message serialization. The library provides a robust foundation for blockchain synchronization, transaction broadcasting, and block propagation across a distributed network. -**Updated** Enhanced with comprehensive peer statistics logging system including latency tracking, blocking status reporting, periodic statistics collection, improved peer information handling with reliable IP address extraction and reduced conversion overhead. Added programmatic synchronization control through the new `resync()` method for improved network recovery from various network states. The virtual `resync()` method provides extensibility for derived classes to customize synchronization restart behavior. +**Updated** Enhanced with comprehensive peer statistics logging system including latency tracking, blocking status reporting, periodic statistics collection, improved peer information handling with reliable IP address extraction and reduced conversion overhead. Added programmatic synchronization control through the new `resync()` method for improved network recovery from various network states. The virtual `resync()` method provides extensibility for derived classes to customize synchronization restart behavior. Enhanced peer connection logging now supports color-coded output for better visibility of network events. ## Project Structure The network library is organized into cohesive modules: - Node management and synchronization orchestration with virtual resync method support -- Peer connection lifecycle and message queues +- Peer connection lifecycle and message queues with enhanced logging - Standard network message definitions - Secure TCP transport with ECDH key exchange - Peer address database and topology maintenance - Message serialization/deserialization framework - Configuration constants for protocol behavior - **Peer statistics and metrics collection system with improved IP address extraction** -- **P2P plugin integration for peer monitoring and statistics** +- **P2P plugin integration for peer monitoring and statistics with color-coded logging** - **Programmatic synchronization control for network recovery with virtual method extensibility** ```mermaid @@ -73,6 +75,7 @@ STATS["Statistics System"] P2P["p2p_plugin.cpp"] RESYNC["Virtual resync() Method"] SIMNET["simulated_network"] +COLOR["Color Logging Support"] end N --> PC N --> PD @@ -91,6 +94,7 @@ STATS --> N STATS --> PC P2P --> STATS P2P --> RESYNC +P2P --> COLOR SIMNET --> RESYNC ``` @@ -120,15 +124,16 @@ SIMNET --> RESYNC ## Core Components - Node: Central orchestrator for peer discovery, connection management, synchronization, and message broadcasting with virtual resync method support. -- PeerConnection: Manages individual peer sessions, message queuing, inventory tracking, and negotiation states. +- PeerConnection: Manages individual peer sessions, message queuing, inventory tracking, and negotiation states with enhanced logging capabilities. - CoreMessages: Defines standardized message types for transactions, blocks, inventory, handshake, and operational commands. - STCP Socket: Provides secure transport via ECDH key exchange and AES encryption. - PeerDatabase: Maintains peer address records, connection history, and topology hints. - Message: Encapsulates message headers, payload serialization, and type-safe deserialization. - MessageOrientedConnection: Bridges secure sockets to message streams with event callbacks. - **Statistics System: Collects and reports peer performance metrics, latency data, and connection statistics with improved IP address extraction reliability.** -- **P2P Plugin: Integrates peer monitoring, statistics collection, and network diagnostics with enhanced error handling.** +- **P2P Plugin: Integrates peer monitoring, statistics collection, and network diagnostics with enhanced error handling and color-coded logging.** - **Programmatic Synchronization Control: Enables manual restart of synchronization with all connected peers for network recovery scenarios through virtual method extensibility.** +- **Enhanced Logging: Supports color-coded output for better visibility of network events and peer connection states.** **Section sources** - [node.hpp:182-304](file://libraries/network/include/graphene/network/node.hpp#L182-L304) @@ -285,6 +290,7 @@ PeerConnection encapsulates a single peer session, managing: - **Latency tracking and round-trip delay measurement** - **Blocking status reporting and synchronization control** - **Enhanced peer information handling with reliable IP address extraction** +- **Enhanced logging with color support for better visibility** ```mermaid stateDiagram-v2 @@ -672,6 +678,46 @@ The `resync()` method is particularly useful for: - [p2p_plugin.cpp:616-618](file://plugins/p2p/p2p_plugin.cpp#L616-L618) - [node.cpp:346-347](file://libraries/network/node.cpp#L346-L347) +## Enhanced Peer Connection Logging + +**Updated Section** The network library now supports enhanced peer connection logging with color-coded output for improved visibility and debugging capabilities. + +### Color Logging Support +The P2P plugin implements ANSI color codes for enhanced console logging: + +- **Cyan Color**: Used for general statistics and informational messages +- **White Color**: Used for detailed block processing information with latency metrics +- **Reset Code**: Returns to default terminal color after colored output +- **ANSI Escape Sequences**: Standard color codes supported by most terminals + +### Color-Coded Log Messages +The logging system provides visual distinction for different types of network events: + +- **Block Processing Messages**: White color for detailed block information and transaction counts +- **Statistics Messages**: Cyan color for periodic statistics and peer monitoring information +- **Error Messages**: Red color for critical errors and warnings (when applicable) +- **Debug Messages**: Orange color for detailed debugging information + +### Logging Implementation Details +The color logging is implemented using preprocessor macros: + +- **CLOG_CYAN**: ANSI escape sequence for cyan text +- **CLOG_WHITE**: ANSI escape sequence for white text +- **CLOG_RESET**: ANSI escape sequence to reset text color +- **Macro Usage**: Color codes are embedded directly in log message strings + +### Benefits of Color Logging +The enhanced logging system provides several advantages: + +- **Visual Distinction**: Different types of messages are easily distinguishable by color +- **Improved Debugging**: Color coding helps identify message categories quickly +- **Better Console Reading**: Color contrast makes log output more readable +- **Operator Efficiency**: Faster identification of important information during monitoring + +**Section sources** +- [p2p_plugin.cpp:16-19](file://plugins/p2p/p2p_plugin.cpp#L16-L19) +- [p2p_plugin.cpp:169-171](file://plugins/p2p/p2p_plugin.cpp#L169-L171) + ## Dependency Analysis The network components depend on each other in a layered fashion: - Node depends on PeerConnection, PeerDatabase, and CoreMessages @@ -682,6 +728,7 @@ The network components depend on each other in a layered fashion: - **Statistics system integrates with Node and PeerConnection for metrics collection** - **P2P plugin integrates with statistics system for enhanced peer monitoring** - **Resync functionality integrates with Node synchronization system and supports virtual method extensibility** +- **Color logging integrates with P2P plugin for enhanced console output visualization** ```mermaid graph LR @@ -701,6 +748,7 @@ Stats["Statistics System"] --> Node Stats --> PeerConn P2P["p2p_plugin.cpp"] --> Stats P2P --> Resync +P2P --> Color["Color Logging"] SimNet["simulated_network"] --> Resync ``` @@ -735,6 +783,7 @@ SimNet["simulated_network"] --> Resync - **Error handling**: Comprehensive try-catch blocks prevent cascading failures in peer information processing. - **Resync efficiency**: Programmatic resync restarts only active connections, minimizing disruption to healthy peers. - **Virtual method overhead**: Virtual dispatch adds minimal overhead while providing extensibility benefits. +- **Color logging overhead**: ANSI color codes add minimal overhead while significantly improving log readability. ## Troubleshooting Guide Common issues and diagnostics: @@ -750,6 +799,7 @@ Common issues and diagnostics: - **Statistics logging issues**: Verify P2P plugin configuration for statistics collection. - **Synchronization stalls**: Use `resync()` method to manually restart synchronization with all peers. - **Virtual method conflicts**: Ensure derived classes properly override `resync()` when extending functionality. +- **Color logging issues**: Verify terminal supports ANSI color codes for proper log output formatting. Operational controls: - Disable peer advertising for debugging isolated networks. @@ -761,6 +811,7 @@ Operational controls: - **Configure stale sync detection**: Enable `p2p-stale-sync-detection` to automatically recover from stalled synchronization. - **Manual resync control**: Use `resync()` method for operator-driven synchronization restarts. - **Extensibility patterns**: Leverage virtual method design for custom synchronization behaviors in derived classes. +- **Color logging configuration**: Ensure terminal supports ANSI color codes for optimal log visualization. **Section sources** - [peer_database.hpp:39-45](file://libraries/network/include/graphene/network/peer_database.hpp#L39-L45) @@ -772,4 +823,4 @@ Operational controls: ## Conclusion The Network Library provides a comprehensive, secure, and scalable foundation for peer-to-peer communication. Its modular design separates concerns between node orchestration, peer lifecycle management, protocol messaging, secure transport, and peer topology maintenance. With built-in performance controls, diagnostic capabilities, and extensible message types, it supports efficient blockchain synchronization and robust network operation. -**Updated** The enhanced peer statistics logging system significantly improves network observability by providing detailed latency tracking, blocking status reporting, and comprehensive peer metrics. The critical bug fix in peer information handling ensures reliable IP address extraction with reduced conversion overhead, preventing crashes and improving overall network stability. The integration with the P2P plugin provides comprehensive monitoring capabilities for operators and developers working with the VIZ blockchain network. The new virtual `resync()` method adds powerful programmatic control for network recovery, enabling manual restart of synchronization with all connected peers and improved resilience against various network states and synchronization failures. The virtual method design provides extensibility for derived classes to customize synchronization behavior while maintaining a consistent interface across the network library ecosystem. \ No newline at end of file +**Updated** The enhanced peer statistics logging system significantly improves network observability by providing detailed latency tracking, blocking status reporting, and comprehensive peer metrics. The critical bug fix in peer information handling ensures reliable IP address extraction with reduced conversion overhead, preventing crashes and improving overall network stability. The integration with the P2P plugin provides comprehensive monitoring capabilities for operators and developers working with the VIZ blockchain network. The new virtual `resync()` method adds powerful programmatic control for network recovery, enabling manual restart of synchronization with all connected peers and improved resilience against various network states and synchronization failures. The virtual method design provides extensibility for derived classes to customize synchronization behavior while maintaining a consistent interface across the network library ecosystem. The enhanced peer connection logging with color support significantly improves the debugging and monitoring experience by providing visual distinction for different types of network events and messages. \ No newline at end of file diff --git a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Peer Connection Management.md b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Peer Connection Management.md index 30bdaf509f..1cf425963c 100644 --- a/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Peer Connection Management.md +++ b/.qoder/repowiki/en/content/Architecture Overview/Core Libraries/Network Library/Peer Connection Management.md @@ -29,12 +29,12 @@ ## Update Summary **Changes Made** -- Enhanced soft-ban system with dual-tier mechanism supporting trusted peer differentiation -- Added trusted peer support with configurable trusted-snapshot-peer endpoints -- Implemented 5-minute soft-ban duration for trusted peers versus 1-hour for regular peers -- Integrated trusted peer management between P2P and snapshot plugins -- Enhanced peer trust detection and soft-ban duration calculation -- Added comprehensive configuration options for trusted peer management +- Enhanced network stability with reduced soft-ban duration from 3600 seconds to 900 seconds (15 minutes) +- Implemented per-IP disconnect cooldown functionality with 30-second cooldown period +- Enhanced peer disconnect logging with closing_reason field for improved troubleshooting +- Improved peer database dumping capabilities with enhanced JSON serialization +- Added comprehensive disconnect cooldown management for inbound connection rejection +- Enhanced error handling and logging throughout peer connection lifecycle ## Table of Contents 1. [Introduction](#introduction) @@ -51,24 +51,24 @@ ## Introduction This document provides comprehensive coverage of Peer Connection Management in the VIZ C++ node networking stack. It focuses on the peer_connection.hpp implementation for managing bidirectional peer communication channels, connection state tracking, and message routing. The document explains peer connection establishment protocols, authentication mechanisms, and handshake procedures. It covers connection lifecycle management including initiation, maintenance, graceful disconnection, and error recovery. It details peer state tracking, connection quality metrics, and peer reputation systems. Message queuing, priority handling, and connection multiplexing are documented along with practical examples and guidance on peer selection, balancing, and fault tolerance. -**Updated** Enhanced with sophisticated trusted peer support featuring dual-tier soft-ban mechanisms. Trusted peers configured via trusted-snapshot-peer receive 5-minute soft-bans instead of the default 1-hour duration, enabling faster recovery from transient errors while maintaining network stability. The system now includes comprehensive peer trust management, automatic trust detection, and seamless integration between P2P and snapshot plugins for enhanced operational efficiency. +**Updated** Enhanced with sophisticated network stability improvements including reduced soft-ban duration from 3600 seconds to 900 seconds, new per-IP disconnect cooldown functionality with 30-second cooldown period, enhanced peer disconnect logging with closing_reason field, and improved peer database dumping capabilities. These enhancements provide superior network stability, improved operational visibility, and enhanced troubleshooting capabilities. ## Project Structure -The peer connection management system is composed of several interconnected components with enhanced trusted peer support: -- Peer-level abstraction: peer_connection encapsulates a single peer's state and messaging with enhanced error handling, soft-ban support, and improved peer state fields. +The peer connection management system is composed of several interconnected components with enhanced network stability features: +- Peer-level abstraction: peer_connection encapsulates a single peer's state and messaging with enhanced error handling, soft-ban support, improved peer state fields, and closing_reason tracking. - Transport abstraction: message_oriented_connection wraps a secure transport socket and handles message framing with improved logging. - Security: stcp_socket performs ECDH key exchange and AES encryption for secure communication. - Protocol messages: core_messages defines the handshake and operational messages exchanged between peers with reliable IP address handling. -- Node orchestration: node coordinates peer connections, maintains peer databases, and manages lifecycle events with enhanced exception safety, soft-ban functionality, ANSI color-coded notifications, and trusted peer management. +- Node orchestration: node coordinates peer connections, maintains peer databases, and manages lifecycle events with enhanced exception safety, soft-ban functionality, ANSI color-coded notifications, and **Enhanced** per-IP disconnect cooldown management. - Configuration: config.hpp centralizes tunable constants for timeouts, limits, and behavior. - Chain integration: database and fork_database handle block validation with proper exception propagation for P2P layer consumption. -- **New** Trusted peer management: Enhanced peer trust detection and dual-tier soft-ban system with configurable trusted-snapshot-peer endpoints. -- **New** Plugin integration: Seamless coordination between P2P and snapshot plugins for trusted peer configuration and management. +- **Enhanced** Network stability: Reduced soft-ban duration from 3600 seconds to 900 seconds, per-IP disconnect cooldown with 30-second period, enhanced peer disconnect logging with closing_reason field. +- **Enhanced** Database improvements: Enhanced peer database dumping capabilities with improved JSON serialization and error handling. ```mermaid graph TB subgraph "Peer Layer" -PC["peer_connection
Bidirectional channel
Enhanced Error Handling
Soft-ban Support
Improved State Fields"] +PC["peer_connection
Bidirectional channel
Enhanced Error Handling
Soft-ban Support
Improved State Fields
Closing Reason Tracking"] end subgraph "Transport Layer" MOC["message_oriented_connection
Message framing
Robust Logging"] @@ -79,13 +79,13 @@ CM["core_messages
Handshake & ops
Reliable IP Extraction"] MSG["message
Header + payload"] end subgraph "Node Orchestration" -N["node
Connection manager
Exception Safety
Soft-ban Logic
ANSI Color Notifications
Trusted Peer Management"] -PD["peer_database
Peer reputation
Improved Recovery"] -TP["trusted_peer_manager
5-min soft-bans
Dual-tier system
IP-based trust detection"] +N["node
Connection manager
Exception Safety
Soft-ban Logic
ANSI Color Notifications
Disconnect Cooldown Management"] +PD["peer_database
Peer reputation
Enhanced Dumping
Improved Serialization"] END -subgraph "Plugin Integration" -P2P["p2p_plugin
Trusted peer registration
Configuration management"] -SNAP["snapshot_plugin
trusted-snapshot-peer config
Peer discovery"] +subgraph "Network Stability" +DC["Disconnect Cooldown
30-second IP-based
Inbound Rejection"] +SB["Soft-ban Duration
Reduced to 900 sec
(15 minutes)"] +CR["Closing Reason Logging
Enhanced Debugging"] END subgraph "Chain Integration" DB["database
Block validation
Exception propagation
Memory resize handling"] @@ -98,10 +98,9 @@ PC --> CM CM --> MSG N --> PC N --> PD -N --> TP -P2P --> N -P2P --> SNAP -SNAP --> TP +N --> DC +N --> SB +N --> CR N --> DB DB --> FD DB --> EX @@ -125,11 +124,11 @@ N --> EX - [exceptions.hpp:33-45](file://libraries/network/include/graphene/network/exceptions.hpp#L33-L45) **Section sources** -- [peer_connection.hpp:1-383](file://libraries/network/include/graphene/network/peer_connection.hpp#L1-L383) +- [peer_connection.hpp:1-386](file://libraries/network/include/graphene/network/peer_connection.hpp#L1-L386) - [message_oriented_connection.hpp:1-85](file://libraries/network/include/graphene/network/message_oriented_connection.hpp#L1-L85) - [stcp_socket.hpp:1-99](file://libraries/network/include/graphene/network/stcp_socket.hpp#L1-L99) - [core_messages.hpp:1-573](file://libraries/network/include/graphene/network/core_messages.hpp#L1-L573) -- [node.hpp:1-355](file://libraries/network/include/graphene/network/node.hpp#L1-L355) +- [node.hpp:1-374](file://libraries/network/include/graphene/network/node.hpp#L1-L374) - [peer_database.hpp:1-141](file://libraries/network/include/graphene/network/peer_database.hpp#L1-L141) - [message.hpp:1-114](file://libraries/network/include/graphene/network/message.hpp#L1-L114) - [database.cpp:1-6389](file://libraries/chain/database.cpp#L1-L6389) @@ -141,27 +140,25 @@ N --> EX - [plugin.cpp:3039-3045](file://plugins/snapshot/plugin.cpp#L3039-L3045) ## Core Components -- peer_connection: Manages a single peer's connection state, queues outgoing messages, tracks inventory, and exposes metrics with enhanced error handling and IP address extraction reliability. It delegates message delivery to message_oriented_connection and integrates with node-level callbacks. **Enhanced** with fork_rejected_until and inhibit_fetching_sync_blocks fields for soft-ban functionality and improved peer state management. +- peer_connection: Manages a single peer's connection state, queues outgoing messages, tracks inventory, and exposes metrics with enhanced error handling, IP address extraction reliability, and **Enhanced** closing_reason field for improved logging. It delegates message delivery to message_oriented_connection and integrates with node-level callbacks. **Enhanced** with fork_rejected_until and inhibit_fetching_sync_blocks fields for soft-ban functionality and improved peer state management. - message_oriented_connection: Provides a message-oriented API over a secure socket, handling read/write loops, padding, and error propagation with improved logging mechanisms. - stcp_socket: Implements ECDH key exchange and AES encryption for secure transport. - core_messages: Defines the protocol messages used during handshake and runtime operations with reliable IP address handling and enhanced error reporting. -- node: Orchestrates peer connections, manages peer databases, and coordinates synchronization and broadcasting with better exception safety, soft-ban logic, fork rejection handling, ANSI color-coded notification support, and **new** trusted peer management capabilities. -- peer_database: Tracks potential peers, connection attempts, and outcomes for peer selection and reputation with improved error handling. -- **New** trusted_peer_manager: Manages trusted peer configuration and detection with 5-minute soft-ban duration for trusted peers versus 1-hour for regular peers. -- **New** p2p_plugin: Integrates trusted peer management with snapshot plugin configuration, automatically registering trusted peers for reduced soft-ban duration. -- **New** snapshot_plugin: Provides trusted-snapshot-peer configuration and peer discovery for snapshot synchronization. -- **New** database: Handles block validation with proper exception propagation, converting chain exceptions to network exceptions for P2P layer consumption, and includes comprehensive memory resize exception handling. -- **New** fork_database: Manages fork relationships and block linking with proper exception handling for unlinkable blocks. -- **New** database_exceptions: Defines deferred_resize_exception for handling shared memory resize operations during block processing. +- node: Orchestrates peer connections, manages peer databases, and coordinates synchronization and broadcasting with better exception safety, soft-ban logic, fork rejection handling, ANSI color-coded notification support, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason logging capabilities. +- peer_database: Tracks potential peers, connection attempts, and outcomes for peer selection and reputation with improved error handling and **Enhanced** JSON serialization for database dumping. +- **Enhanced** Disconnect cooldown: Manages per-IP reconnect cooldown with 30-second period to prevent rapid reconnect loops and improve network stability. +- **Enhanced** Soft-ban duration: Reduced from 3600 seconds (1 hour) to 900 seconds (15 minutes) for improved network responsiveness during emergency scenarios. +- **Enhanced** Closing reason tracking: Enhanced peer disconnect logging with closing_reason field for improved troubleshooting and debugging capabilities. +- **Enhanced** Database dumping: Improved peer database dumping capabilities with enhanced JSON serialization and error handling. Key responsibilities: - Handshake and authentication: ECDH key exchange via stcp_socket, hello/connection_accepted messages via core_messages with reliable IP address extraction. -- Lifecycle management: Connect, accept, close, destroy, and cleanup with enhanced error recovery and exception safety, including soft-ban mechanisms with ANSI color-coded notifications. +- Lifecycle management: Connect, accept, close, destroy, and cleanup with enhanced error recovery and exception safety, including soft-ban mechanisms with ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking. - Message routing: Queueing, priority, and multiplexing across peers with improved logging and monitoring. - Metrics and reputation: Connection times, bytes sent/received, inventory lists, and peer selection with robust error handling. -- **Enhanced** Trusted peer management: Automatic trust detection based on trusted-snapshot-peer configuration, dual-tier soft-ban system with 5-minute duration for trusted peers, and seamless integration between P2P and snapshot plugins. +- **Enhanced** Network stability: Reduced soft-ban duration for faster recovery, per-IP disconnect cooldown to prevent abuse, enhanced peer disconnect logging for troubleshooting. - **Enhanced** Block processing: Proper handling of blocks returned as false by chain, conversion of unlinkable_block_exception to network exceptions, soft-ban functionality for peer management, comprehensive memory resize exception handling, and trusted peer-aware soft-ban duration calculation. -- **Enhanced** Peer state management: fork_rejected_until timestamp tracking, inhibit_fetching_sync_blocks flag management, automatic soft-ban expiration handling, and trusted peer IP address storage for efficient lookup. +- **Enhanced** Peer state management: fork_rejected_until timestamp tracking, inhibit_fetching_sync_blocks flag management, automatic soft-ban expiration handling, trusted peer IP address storage for efficient lookup, and **Enhanced** closing_reason field for improved logging. **Section sources** - [peer_connection.hpp:79-351](file://libraries/network/include/graphene/network/peer_connection.hpp#L79-L351) @@ -177,17 +174,17 @@ Key responsibilities: - [plugin.cpp:3039-3045](file://plugins/snapshot/plugin.cpp#L3039-L3045) - [database.cpp:1215-1246](file://libraries/chain/database.cpp#L1215-L1246) - [fork_database.cpp:34-46](file://libraries/chain/fork_database.cpp#L34-L46) -- [database_exceptions.hpp:86-86](file://libraries/chain/include/graphene/chain/database_exceptions.hpp#L86-L86) +- [exceptions.hpp:33-45](file://libraries/network/include/graphene/network/exceptions.hpp#L33-L45) ## Architecture Overview -The peer connection architecture follows a layered design with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, and **new** trusted peer support: -- Application (node) controls peer lifecycle and delegates message processing to the node delegate with improved exception safety, soft-ban logic, enhanced notification capabilities, and **new** trusted peer management. -- Peer (peer_connection) holds per-peer state and queues messages with robust error handling mechanisms, including soft-ban state tracking and improved peer state fields. +The peer connection architecture follows a layered design with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking: +- Application (node) controls peer lifecycle and delegates message processing to the node delegate with improved exception safety, soft-ban logic, enhanced notification capabilities, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason logging. +- Peer (peer_connection) holds per-peer state and queues messages with robust error handling mechanisms, including soft-ban state tracking, improved peer state fields, and **Enhanced** closing_reason field for logging. - Transport (message_oriented_connection) frames messages and manages the read/write loop with enhanced logging. - Security (stcp_socket) negotiates keys and encrypts traffic. - Protocol (core_messages) defines the message types and semantics with reliable IP address extraction. - **Enhanced** Chain integration (database/fork_database) validates blocks and propagates exceptions to the P2P layer for proper peer management, including comprehensive memory resize exception handling. -- **New** Trusted peer integration (p2p_plugin/snapshot_plugin) manages trusted peer configuration and automatic registration for reduced soft-ban duration. +- **Enhanced** Network stability features (disconnect cooldown, soft-ban duration reduction, closing reason tracking) provide improved network resilience and troubleshooting capabilities. ```mermaid sequenceDiagram @@ -197,8 +194,6 @@ participant MOC as "message_oriented_connection" participant STCP as "stcp_socket" participant Remote as "Remote Peer" participant Chain as "database/fork_database" -participant P2P as "p2p_plugin" -participant Snap as "snapshot_plugin" Node->>Peer : "connect_to(endpoint)" Peer->>MOC : "connect_to(endpoint)" MOC->>STCP : "connect_to(endpoint)" @@ -213,8 +208,7 @@ Peer->>Node : "on_message(hello)" Node->>Peer : "on_hello_message()" Peer->>Peer : "send connection_accepted" Peer->>Node : "on_connection_accepted()" -Note over Node,Peer : "Negotiation complete with enhanced error handling, soft-ban support, ANSI notifications, and trusted peer detection" -Note over P2P,Snap : "Automatic trusted peer registration and management" +Note over Node,Peer : "Negotiation complete with enhanced error handling, soft-ban support, ANSI notifications,
per-IP disconnect cooldown, and closing reason tracking" ``` **Diagram sources** @@ -236,6 +230,7 @@ peer_connection encapsulates: - Metrics: bytes sent/received, last message timestamps, connection durations, and shared secret exposure with improved monitoring. - **Enhanced** Soft-ban state: fork_rejected_until timestamp and inhibit_fetching_sync_blocks flag for peer management during emergency scenarios. - **Enhanced** Peer trust integration: Automatic soft-ban duration calculation based on peer trust status for dual-tier soft-ban system. +- **Enhanced** Closing reason tracking: closing_reason field for enhanced logging and debugging capabilities. ```mermaid classDiagram @@ -256,6 +251,7 @@ class peer_connection { +uint16_t outbound_port +bool inhibit_fetching_sync_blocks +fc : : time_point fork_rejected_until ++std : : string closing_reason +uint64_t get_total_bytes_sent() +uint64_t get_total_bytes_received() +void send_message(message) @@ -266,6 +262,7 @@ class peer_connection { +Improved IP address extraction reliability +Soft-ban state management with ANSI notifications +Trusted peer awareness for soft-ban duration calculation ++Closing reason tracking for enhanced logging } class queued_message { <> @@ -297,6 +294,8 @@ Key behaviors: - Inbound message pipeline: on_message delegates to node delegate with robust error recovery; on_connection_closed transitions negotiation_status and notifies node with proper exception handling. - Lifecycle: accept_connection and connect_to manage transport setup with enhanced error handling; close_connection and destroy_connection coordinate teardown with improved exception safety. - **Enhanced** Soft-ban management: fork_rejected_until tracks soft-ban expiration; inhibit_fetching_sync_blocks prevents sync operations during ban period; ANSI color-coded notifications for ban events; **Enhanced** trusted peer-aware soft-ban duration calculation. +- **Enhanced** Disconnect cooldown: Per-IP reconnect cooldown management with 30-second period to prevent rapid reconnect loops. +- **Enhanced** Closing reason logging: Enhanced peer disconnect logging with closing_reason field for improved troubleshooting. **Section sources** - [peer_connection.hpp:79-351](file://libraries/network/include/graphene/network/peer_connection.hpp#L79-L351) @@ -403,14 +402,15 @@ Note over Local,Remote : "Enhanced error handling and IP address reliability" - [peer_connection.cpp:208-242](file://libraries/network/peer_connection.cpp#L208-L242) ### Connection Lifecycle Management -Lifecycle stages with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, and **new** trusted peer support: +Lifecycle stages with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking: - Initiation: connect_to for outbound, accept_connection for inbound with improved exception safety. - Negotiation: hello/connection_accepted or connection_rejected with enhanced logging and monitoring. -- Operation: message exchange, inventory advertisement, sync with robust error recovery mechanisms, soft-ban enforcement, ANSI color-coded notifications, and **Enhanced** trusted peer-aware soft-ban duration calculation. -- Maintenance: keep-alive via time requests, bandwidth monitoring with improved reliability, soft-ban expiration checking with color-coded logging, and **Enhanced** trusted peer IP address storage for efficient lookup. -- Graceful disconnection: closing_connection message, close_connection, destroy_connection with enhanced error handling. +- Operation: message exchange, inventory advertisement, sync with robust error recovery mechanisms, soft-ban enforcement, ANSI color-coded notifications, **Enhanced** trusted peer-aware soft-ban duration calculation, and **Enhanced** closing_reason logging. +- Maintenance: keep-alive via time requests, bandwidth monitoring with improved reliability, soft-ban expiration checking with color-coded logging, **Enhanced** per-IP disconnect cooldown enforcement, and **Enhanced** closing_reason tracking. +- Graceful disconnection: closing_connection message, close_connection, destroy_connection with enhanced error handling and **Enhanced** closing_reason logging. - Error recovery: queue overflow closes connection with proper cleanup, peer database updates with improved logging, retry timers with better exception safety. -- **Enhanced** Soft-ban management: fork_rejected_until timestamp enforcement, inhibit_fetching_sync_blocks flag management, automatic soft-ban expiration handling, ANSI color-coded ban notifications, and **Enhanced** dual-tier soft-ban system with trusted peer support. +- **Enhanced** Soft-ban management: fork_rejected_until timestamp enforcement, inhibit_fetching_sync_blocks flag management, automatic soft-ban expiration handling, ANSI color-coded ban notifications, **Enhanced** reduced soft-ban duration from 3600 seconds to 900 seconds, and **Enhanced** trusted peer-aware soft-ban duration calculation. +- **Enhanced** Disconnect cooldown: Per-IP reconnect cooldown enforcement with 30-second period to prevent rapid reconnect loops and improve network stability. ```mermaid stateDiagram-v2 @@ -420,10 +420,10 @@ Disconnected --> Accepting : "accept_connection() with enhanced safety" Connecting --> Connected : "hello + accepted" Accepting --> Connected : "hello + accepted" Connected --> NegotiationComplete : "inventory sync" -NegotiationComplete --> SoftBan : "fork_rejected_until set with ANSI notification
5-min for trusted peers, 1-hr for others" +NegotiationComplete --> SoftBan : "fork_rejected_until set with ANSI notification
900 sec soft-ban (15 minutes)
Enhanced closing reason logging" SoftBan --> Connected : "soft-ban expired with color reset" -Connected --> Closing : "close_connection() with proper cleanup" -Closing --> Closed : "on_connection_closed with enhanced logging" +Connected --> Closing : "close_connection() with enhanced logging
closing_reason tracking" +Closing --> Closed : "on_connection_closed with enhanced logging
disconnect cooldown enforcement" Closed --> [*] ``` @@ -472,12 +472,14 @@ EnhancedMonitoring --> Done["Done with proper cleanup"] - [config.hpp:58-58](file://libraries/network/include/graphene/network/config.hpp#L58-L58) ### Peer State Tracking, Metrics, and Reputation -Peer state tracking with enhanced error handling, soft-ban support, ANSI color-coded notifications, and **new** trusted peer integration: +Peer state tracking with enhanced error handling, soft-ban support, ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking: - Connection states: negotiated status, direction, firewalled state, clock offset, round-trip delay with improved monitoring and logging. - Inventory: advertised to peer, advertised to us, requested, sync state, throttling windows with robust error recovery mechanisms. - Metrics: bytes sent/received, last message times, connection duration, termination time with enhanced logging and monitoring. - **Enhanced** Soft-ban state: fork_rejected_until timestamp tracks soft-ban expiration; inhibit_fetching_sync_blocks prevents sync operations during ban period. - **Enhanced** Trusted peer management: Automatic soft-ban duration calculation based on peer trust status; efficient IP address lookup for trusted peer detection. +- **Enhanced** Closing reason logging: Enhanced peer disconnect logging with closing_reason field for improved troubleshooting. +- **Enhanced** Disconnect cooldown: Per-IP reconnect cooldown enforcement with 30-second period to prevent rapid reconnect loops. Reputation and selection with improved reliability: - peer_database tracks endpoints, last seen, disposition, and attempt counts with enhanced error handling. @@ -485,6 +487,7 @@ Reputation and selection with improved reliability: - Enhanced logging and monitoring throughout the peer selection and balancing process with ANSI color-coded notifications. - **Enhanced** Soft-ban enforcement: Automatic soft-ban detection and enforcement during block processing with color-coded logging. - **Enhanced** Trusted peer awareness: Peer trust status influences soft-ban duration and network behavior. +- **Enhanced** Database dumping: Improved peer database dumping with enhanced JSON serialization and error handling. **Section sources** - [peer_connection.hpp:175-279](file://libraries/network/include/graphene/network/peer_connection.hpp#L175-L279) @@ -495,15 +498,18 @@ Reputation and selection with improved reliability: - [node.cpp:593-601](file://libraries/network/node.cpp#L593-L601) - [node.cpp:5265-5274](file://libraries/network/node.cpp#L5265-L5274) -### Enhanced Block Processing and Dual-Tier Soft-Ban System -**New** Enhanced block processing with proper exception handling, soft-ban mechanisms, ANSI color-coded notifications, and **Enhanced** trusted peer-aware soft-ban duration calculation: -- Database layer converts chain exceptions to network exceptions for P2P consumption, including deferred_resize_exception for memory resize operations. -- Fork database handles unlinkable blocks with proper exception propagation. +### Enhanced Network Stability Features +**Enhanced** Network stability improvements with comprehensive error handling, soft-ban mechanisms, ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking: +- **Reduced soft-ban duration**: Soft-ban duration reduced from 3600 seconds (1 hour) to 900 seconds (15 minutes) for improved network responsiveness during emergency scenarios. +- **Per-IP disconnect cooldown**: 30-second cooldown period prevents rapid reconnect loops and improves network stability. +- **Enhanced peer disconnect logging**: closing_reason field provides detailed information about why peers disconnect for improved troubleshooting. +- **Improved peer database dumping**: Enhanced JSON serialization and error handling for better database management. - Node layer implements soft-ban functionality for peer management during emergency scenarios with ANSI color-coded notifications. -- **Enhanced** Trusted peer integration: Automatic soft-ban duration calculation based on peer trust status; 5-minute soft-ban for trusted peers, 1-hour for regular peers. +- **Enhanced** Trusted peer integration: Automatic soft-ban duration calculation based on peer trust status; 5-minute soft-ban for trusted peers, 15-minute (reduced) soft-ban for regular peers. - P2P plugin converts chain exceptions to network exceptions for consistent handling. - ANSI color codes (CLOG_RED, CLOG_RESET) provide visual emphasis for ban notifications in terminal output. - **Enhanced** Memory management: Deferred resize operations during block processing handled gracefully without penalizing peers. +- **Enhanced** Disconnect cooldown enforcement: Per-IP reconnect cooldown enforced during inbound connection acceptance. ```mermaid flowchart TD @@ -519,9 +525,9 @@ ThrowResize --> ConvertNet ConvertNet --> NodeHandle["Node handles exception"] NodeHandle --> PeerTrust{"Peer is trusted?"} PeerTrust --> |Yes| SetShortBan["Set fork_rejected_until + inhibit_fetching_sync_blocks
5-minute soft-ban (trusted peers)
ANSI Red Notification"] -PeerTrust --> |No| SetLongBan["Set fork_rejected_until + inhibit_fetching_sync_blocks
1-hour soft-ban (regular peers)
ANSI Red Notification"] +PeerTrust --> |No| SetReducedBan["Set fork_rejected_until + inhibit_fetching_sync_blocks
900 sec (15 min) soft-ban (regular peers)
ANSI Red Notification"] SetShortBan --> Broadcast["Broadcast to peers"] -SetLongBan --> Broadcast +SetReducedBan --> Broadcast ThrowResize --> NoBan["No soft-ban (deferred resize)
Just retry block later"] NoBan --> Broadcast AcceptBlock --> Broadcast @@ -543,79 +549,79 @@ AcceptBlock --> Broadcast - [p2p_plugin.cpp:172-182](file://plugins/p2p/p2p_plugin.cpp#L172-L182) - [node.cpp:599-600](file://libraries/network/node.cpp#L599-L600) -### Enhanced Trusted Peer Management and Integration -**New** Comprehensive trusted peer support with automatic configuration and management: -- **Trusted peer configuration**: Configured via trusted-snapshot-peer option in config.ini, supporting multiple trusted peers with IP:port format. -- **Automatic registration**: P2P plugin automatically registers trusted peers from snapshot plugin configuration for reduced soft-ban duration. -- **IP-based trust detection**: Efficient O(1) lookup using 32-bit IP address storage for trusted peer identification. -- **Dual-tier soft-ban system**: 5-minute soft-ban duration for trusted peers, 1-hour for regular peers, with automatic duration calculation. -- **Seamless integration**: Trusted peer management coordinated between P2P and snapshot plugins for consistent behavior. -- **Configuration validation**: Robust parsing and validation of trusted peer endpoints with error logging for invalid configurations. +### Enhanced Disconnect Cooldown Management +**Enhanced** Per-IP disconnect cooldown functionality with 30-second cooldown period: +- **Inbound connection rejection**: When inbound connections are rejected due to disconnect cooldown, the system logs the remaining cooldown time for transparency. +- **Outbound disconnection**: When peers are disconnected, the system records per-IP reconnect cooldown to prevent rapid reconnect loops. +- **Cooldown enforcement**: The system maintains a map of IP addresses to cooldown expiration times, preventing connections until the cooldown period expires. +- **Enhanced logging**: Detailed logging provides information about why inbound connections are rejected and how much time remains on the cooldown. ```mermaid flowchart TD -ConfigLoad["Load config.ini"] --> ParseTrusted["Parse trusted-snapshot-peer options"] -ParseTrusted --> ValidateIP["Validate IP:port format"] -ValidateIP --> |Valid| StoreIP["Store as 32-bit IP address"] -ValidateIP --> |Invalid| LogError["Log parsing error"] -StoreIP --> RegisterP2P["Register with P2P plugin"] -RegisterP2P --> SnapshotPlugin["snapshot_plugin.get_trusted_snapshot_peers()"] -SnapshotPlugin --> P2PRegistration["p2p_plugin.set_trusted_peer_endpoints()"] -P2PRegistration --> NodeManager["node_impl._trusted_peer_ips"] -NodeManager --> Lookup["O(1) IP address lookup"] -Lookup --> SoftBanCalc["get_soft_ban_duration(peer)"] -SoftBanCalc --> |Trusted| FiveMin["5-minute soft-ban"] -SoftBanCalc --> |Regular| OneHour["1-hour soft-ban"] -FiveMin --> ApplyBan["Apply soft-ban to peer"] -OneHour --> ApplyBan +InboundConn["Inbound connection attempt"] --> CheckCooldown["Check per-IP disconnect cooldown"] +CheckCooldown --> |Cooldown Active| RejectConn["Reject connection with remaining time logging"] +CheckCooldown --> |Cooldown Expired| AcceptConn["Accept inbound connection"] +RejectConn --> LogCooldown["Log remaining cooldown time"] +LogCooldown --> End1["Connection rejected"] +AcceptConn --> End2["Connection accepted"] +OutboundDisconn["Outbound disconnection"] --> RecordCooldown["Record per-IP reconnect cooldown"] +RecordCooldown --> EnforceCooldown["Enforce 30-second cooldown period"] +EnforceCooldown --> End3["Cooldown recorded"] ``` **Diagram sources** -- [plugin.cpp:3039-3045](file://plugins/snapshot/plugin.cpp#L3039-L3045) -- [p2p_plugin.cpp:689-697](file://plugins/p2p/p2p_plugin.cpp#L689-L697) -- [node.cpp:5240-5274](file://libraries/network/node.cpp#L5240-L5274) -- [node.cpp:593-601](file://libraries/network/node.cpp#L593-L601) -- [node.cpp:5272-5274](file://libraries/network/node.cpp#L5272-L5274) +- [node.cpp:4472-4479](file://libraries/network/node.cpp#L4472-L4479) +- [node.cpp:5016-5021](file://libraries/network/node.cpp#L5016-L5021) **Section sources** -- [plugin.cpp:3039-3045](file://plugins/snapshot/plugin.cpp#L3039-L3045) -- [p2p_plugin.cpp:689-697](file://plugins/p2p/p2p_plugin.cpp#L689-L697) -- [node.cpp:5240-5274](file://libraries/network/node.cpp#L5240-L5274) -- [node.cpp:593-601](file://libraries/network/node.cpp#L593-L601) -- [node.cpp:5272-5274](file://libraries/network/node.cpp#L5272-L5274) -- [config.ini:96-101](file://share/vizd/config/config.ini#L96-L101) +- [node.cpp:4472-4479](file://libraries/network/node.cpp#L4472-L4479) +- [node.cpp:5016-5021](file://libraries/network/node.cpp#L5016-L5021) -### Enhanced Memory Management and Exception Handling -**New** Comprehensive exception handling for memory resize operations: -- deferred_resize_exception thrown when shared memory resize is deferred during block processing. -- Database layer handles deferred resize operations with comprehensive logging and memory usage monitoring. -- P2P plugin catches deferred_resize_exception and rethrows as network exception for consistent handling. -- Node layer implements proper exception handling for deferred resize operations during block processing. -- **Enhanced** Trusted peer consideration: Deferred resize exceptions do not trigger soft-bans for peers, as they represent local memory conditions rather than peer fault. +### Enhanced Peer Database Dumping Capabilities +**Enhanced** Improved peer database dumping with enhanced JSON serialization and error handling: +- **JSON serialization**: Enhanced JSON serialization for peer database records with improved error handling and logging. +- **File operations**: Robust file operations with proper error handling for database loading and saving. +- **Database management**: Improved peer database management with enhanced dumping capabilities for debugging and maintenance. +- **Error handling**: Comprehensive error handling for database operations with detailed logging for troubleshooting. ```mermaid flowchart TD -MemoryCheck["Check free memory threshold"] --> ResizeNeeded{"Resize needed?"} -ResizeNeeded --> |Yes| DeferResize["Defer resize operation"] -DeferResize --> ThrowException["Throw deferred_resize_exception"] -ThrowException --> CatchException["Catch in P2P plugin"] -CatchException --> RethrowNet["Rethrow as network exception"] -RethrowNet --> NodeHandle["Node handles exception"] -NodeHandle --> CheckTrusted{"Peer is trusted?"} -CheckTrusted --> |Any| NoSoftBan["Do not soft-ban peer
Just retry block later
No peer penalization"] -NoSoftBan --> ContinueProcessing["Continue block processing"] -ResizeNeeded --> |No| NormalProcessing["Normal block processing"] +DumpRequest["Peer database dump request"] --> LoadRecords["Load peer records from database"] +LoadRecords --> SerializeJSON["Serialize records to JSON"] +SerializeJSON --> SaveFile["Save JSON to file with error handling"] +SaveFile --> Success["Database dumped successfully"] +SaveFile --> |Error| LogError["Log error and continue"] +LogError --> Success ``` **Diagram sources** -- [database.cpp:560-665](file://libraries/chain/database.cpp#L560-L665) -- [p2p_plugin.cpp:170-181](file://plugins/p2p/p2p_plugin.cpp#L170-L181) -- [node.cpp:3616-3622](file://libraries/network/node.cpp#L3616-L3622) +- [peer_database.cpp:120-137](file://libraries/network/peer_database.cpp#L120-L137) **Section sources** -- [database.cpp:560-665](file://libraries/chain/database.cpp#L560-L665) -- [p2p_plugin.cpp:170-181](file://plugins/p2p/p2p_plugin.cpp#L170-L181) -- [node.cpp:3616-3622](file://libraries/network/node.cpp#L3616-L3622) +- [peer_database.cpp:120-137](file://libraries/network/peer_database.cpp#L120-L137) + +### Enhanced Closing Reason Tracking +**Enhanced** Closing reason tracking with detailed logging for improved troubleshooting: +- **Reason storage**: closing_reason field stores the reason for peer disconnection before moving to closing list. +- **Enhanced logging**: Detailed logging includes both remote and local reasons for disconnection. +- **Error handling**: Enhanced error handling for disconnection scenarios with proper reason logging. +- **Debugging support**: Improved debugging capabilities through detailed closing reason information. + +```mermaid +flowchart TD +DisconnectEvent["Peer disconnection event"] --> StoreReason["Store closing_reason on peer"] +StoreReason --> LogReason["Log reason with enhanced details"] +LogReason --> CloseConnection["Close connection gracefully"] +CloseConnection --> Cleanup["Cleanup resources and state"] +``` + +**Diagram sources** +- [node.cpp:5013-5014](file://libraries/network/node.cpp#L5013-L5014) +- [node.cpp:3061-3062](file://libraries/network/node.cpp#L3061-L3062) + +**Section sources** +- [node.cpp:5013-5014](file://libraries/network/node.cpp#L5013-L5014) +- [node.cpp:3061-3062](file://libraries/network/node.cpp#L3061-L3062) ### Examples and Patterns - Peer connection setup with enhanced error handling: @@ -628,11 +634,17 @@ ResizeNeeded --> |No| NormalProcessing["Normal block processing"] - Peer selection and balancing with better exception safety: - node maintains desired/max connections, peer database, and retry timers; balances by selecting candidates from peer_database and initiating connect_to with enhanced error handling. - **Enhanced** Soft-ban management: - - Automatic soft-ban detection for peers sending unlinkable blocks; fork_rejected_until timestamp enforcement; inhibit_fetching_sync_blocks flag management; automatic soft-ban expiration handling; ANSI color-coded ban notifications; **Enhanced** trusted peer-aware soft-ban duration calculation. + - Automatic soft-ban detection for peers sending unlinkable blocks; fork_rejected_until timestamp enforcement; inhibit_fetching_sync_blocks flag management; automatic soft-ban expiration handling; ANSI color-coded ban notifications; **Enhanced** reduced soft-ban duration from 3600 seconds to 900 seconds; **Enhanced** trusted peer-aware soft-ban duration calculation. +- **Enhanced** Disconnect cooldown management: + - Per-IP reconnect cooldown enforcement with 30-second period; inbound connection rejection with remaining cooldown time logging; outbound disconnection with cooldown recording. +- **Enhanced** Closing reason tracking: + - Enhanced peer disconnect logging with closing_reason field; detailed reason storage and logging for improved troubleshooting. - **Enhanced** Trusted peer integration: - Automatic trusted peer registration from config.ini trusted-snapshot-peer options; efficient IP address lookup for trust detection; dual-tier soft-ban system with 5-minute duration for trusted peers; seamless P2P-snapshot plugin coordination. - **Enhanced** Memory resize exception handling: - Deferred shared memory resize operations during block processing; proper exception propagation through P2P layer; no peer penalization for transient memory resize operations; trusted peer consideration in exception handling. +- **Enhanced** Database dumping: + - Enhanced peer database dumping with improved JSON serialization; robust file operations with error handling; comprehensive logging for database management. **Section sources** - [peer_connection.cpp:208-242](file://libraries/network/peer_connection.cpp#L208-L242) @@ -645,17 +657,17 @@ ResizeNeeded --> |No| NormalProcessing["Normal block processing"] - [config.ini:96-101](file://share/vizd/config/config.ini#L96-L101) ## Dependency Analysis -The peer connection subsystem exhibits clear layering and low coupling with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, and **new** trusted peer support: +The peer connection subsystem exhibits clear layering and low coupling with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking: - peer_connection depends on message_oriented_connection and node delegate with improved exception safety. - message_oriented_connection depends on stcp_socket and delegates to peer_connection with enhanced logging. - stcp_socket depends on fc crypto primitives and tcp socket with robust error recovery. -- node orchestrates peer_connection instances and peer_database with better exception handling, soft-ban logic, ANSI notification support, and **Enhanced** trusted peer management. +- node orchestrates peer_connection instances and peer_database with better exception handling, soft-ban logic, ANSI notification support, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason logging capabilities. - core_messages defines protocol contracts used across layers with reliable IP address handling. - **Enhanced** database and fork_database depend on chain exceptions and propagate network exceptions to P2P layer. - **Enhanced** p2p_plugin converts chain exceptions to network exceptions for consistent handling and manages trusted peer registration. - **Enhanced** snapshot_plugin provides trusted-snapshot-peer configuration and peer discovery for trusted peer management. - **Enhanced** database_exceptions defines deferred_resize_exception for memory resize operations. -- **Enhanced** Trusted peer integration creates dependencies between P2P and snapshot plugins for configuration management. +- **Enhanced** Network stability features create dependencies between node and peer_connection for cooldown management and closing reason tracking. ```mermaid graph LR @@ -665,15 +677,15 @@ PC --> CM["core_messages"] N["node"] --> PC N --> PD["peer_database"] N --> DB["database"] -N --> TP["trusted_peer_manager"] +N --> DC["Disconnect Cooldown
30-second IP-based"] +N --> CR["Closing Reason Logging
Enhanced Debugging"] P2P["p2p_plugin"] --> N P2P --> SNAP["snapshot_plugin"] -SNAP --> TP +SNAP --> N DB --> FD["fork_database"] DB --> EX["exceptions"] N --> EX EX --> DR["deferred_resize_exception"] -TP --> N ``` **Diagram sources** @@ -715,27 +727,33 @@ TP --> N - Bandwidth monitoring: node tracks read/write rates and applies rate limiting groups with enhanced logging. - Sync optimization: interleaved prefetching and prioritization reduce sync time with robust error recovery mechanisms. - Enhanced error handling: Comprehensive try-catch fallbacks throughout peer statistics logging ensure more robust operation of the P2P network layer. -- **Enhanced** Soft-ban optimization: Automatic soft-ban enforcement prevents cascading disconnections during emergency scenarios, improving network stability. +- **Enhanced** Soft-ban optimization: Automatic soft-ban enforcement prevents cascading disconnections during emergency scenarios, improving network stability with reduced soft-ban duration from 3600 seconds to 900 seconds. - **Enhanced** Block processing efficiency: Proper exception handling reduces unnecessary reprocessing and improves overall network performance. - **Enhanced** Memory management: Deferred resize operations prevent blocking during shared memory expansion, improving system responsiveness. - **Enhanced** Notification performance: ANSI color-coded logging provides visual emphasis without impacting performance significantly. - **Enhanced** Trusted peer performance: O(1) IP address lookup for trusted peer detection minimizes overhead; efficient configuration parsing reduces startup time. - **Enhanced** Dual-tier optimization: Separate soft-ban duration calculation eliminates redundant calculations while providing flexible peer management. +- **Enhanced** Network stability: Per-IP disconnect cooldown with 30-second period prevents rapid reconnect loops and improves overall network resilience. +- **Enhanced** Logging performance: Enhanced closing reason tracking provides detailed debugging information without significant performance impact. +- **Enhanced** Database performance: Improved peer database dumping with enhanced JSON serialization provides better database management capabilities. ## Troubleshooting Guide -Common issues and remedies with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, and **Enhanced** trusted peer support: +Common issues and remedies with enhanced error handling, soft-ban functionality, ANSI color-coded notifications, **Enhanced** per-IP disconnect cooldown management, and **Enhanced** closing_reason tracking: - Connection refused or rejected: Review rejection reasons in connection_rejected_message with improved logging; check protocol version, chain ID, and node policies with better error reporting. - Handshake failures: Verify ECDH key exchange succeeded with enhanced error handling; inspect stcp_socket logs with improved monitoring; ensure endpoints are reachable with robust error recovery. - Queue overflow: Monitor queue size with enhanced logging; adjust rate or reduce message sizes; consider disconnecting misbehaving peers with proper cleanup. - Idle peers: Use inactivity timeouts with improved exception safety; terminate inactive connections; rebalance peers with better error handling. - Peer reputation: Inspect peer_database entries with enhanced logging; prune failed peers; respect retry delays with improved error recovery mechanisms. - IP address extraction issues: Enhanced safe static_cast operations with try-catch fallback mechanisms ensure reliable IP address extraction throughout peer information handling. -- **Enhanced** Soft-ban issues: Check fork_rejected_until timestamps and inhibit_fetching_sync_blocks flags; verify automatic soft-ban expiration handling; monitor soft-ban effectiveness; review ANSI color-coded ban notifications for quick identification; **Enhanced** verify trusted peer soft-ban duration calculation. +- **Enhanced** Soft-ban issues: Check fork_rejected_until timestamps and inhibit_fetching_sync_blocks flags; verify automatic soft-ban expiration handling; monitor soft-ban effectiveness; review ANSI color-coded ban notifications for quick identification; **Enhanced** verify trusted peer soft-ban duration calculation; **Enhanced** verify reduced soft-ban duration from 3600 seconds to 900 seconds. +- **Enhanced** Disconnect cooldown issues: Check per-IP disconnect cooldown enforcement; verify 30-second cooldown period; review inbound connection rejection logs with remaining cooldown time; ensure proper cooldown recording on outbound disconnection. +- **Enhanced** Closing reason tracking: Verify closing_reason field logging; check enhanced peer disconnect logging for troubleshooting; review detailed reason information for improved debugging. - **Enhanced** Trusted peer configuration: Verify trusted-snapshot-peer entries in config.ini are valid IP:port format; check automatic registration in P2P plugin logs; ensure IP address parsing succeeds; verify O(1) lookup functionality. - **Enhanced** Block processing errors: Review unlinkable_block_exception handling and soft-ban enforcement; verify proper exception conversion from chain to network exceptions; check memory resize exception handling; **Enhanced** confirm trusted peer-aware soft-ban duration calculation. - **Enhanced** Memory resize issues: Monitor deferred_resize_exception occurrences; verify proper exception propagation through P2P layer; ensure no peer penalization for transient memory resize operations. - **Enhanced** Notification visibility: Verify ANSI color codes are properly displayed in terminal; check CLOG_RED and CLOG_RESET definitions for proper formatting. - **Enhanced** Plugin integration: Verify snapshot plugin loads trusted-snapshot-peer configuration; check P2P plugin registration success; ensure seamless coordination between plugins. +- **Enhanced** Database dumping: Verify enhanced peer database dumping functionality; check JSON serialization and error handling; ensure proper database management capabilities. **Section sources** - [core_messages.hpp:285-306](file://libraries/network/include/graphene/network/core_messages.hpp#L285-L306) @@ -748,9 +766,9 @@ Common issues and remedies with enhanced error handling, soft-ban functionality, - [config.ini:96-101](file://share/vizd/config/config.ini#L96-L101) ## Conclusion -Peer Connection Management in this codebase provides a robust, layered architecture for secure, multiplexed peer communication with enhanced error handling, reliability, and **Enhanced** trusted peer support. It supports comprehensive lifecycle management, strict authentication via ECDH/AES, and sophisticated message queuing with priority and throttling. The node orchestrates peers, maintains reputation, and optimizes selection and balancing with improved exception safety. Enhanced peer information handling with reliable IP address extraction using safe static_cast operations with try-catch fallback mechanisms, combined with improved error handling and performance optimizations throughout peer statistics logging, ensures more robust operation of the P2P network layer. +Peer Connection Management in this codebase provides a robust, layered architecture for secure, multiplexed peer communication with enhanced error handling, reliability, and **Enhanced** network stability features. It supports comprehensive lifecycle management, strict authentication via ECDH/AES, and sophisticated message queuing with priority and throttling. The node orchestrates peers, maintains reputation, and optimizes selection and balancing with improved exception safety. Enhanced peer information handling with reliable IP address extraction using safe static_cast operations with try-catch fallback mechanisms, combined with improved error handling and performance optimizations throughout peer statistics logging, ensures more robust operation of the P2P network layer. -**Enhanced** The system now includes sophisticated trusted peer support featuring dual-tier soft-ban mechanisms with automatic configuration management. Trusted peers configured via trusted-snapshot-peer receive 5-minute soft-bans instead of the default 1-hour duration, enabling faster recovery from transient errors while maintaining network stability. The seamless integration between P2P and snapshot plugins ensures consistent trusted peer management across the entire system. These enhancements provide superior error recovery, monitoring capabilities, network stability during emergency consensus scenarios, improved operational visibility through color-coded terminal notifications, and enhanced trust-based peer management for improved network resilience and performance. +**Enhanced** The system now includes sophisticated network stability improvements featuring reduced soft-ban duration from 3600 seconds to 900 seconds, new per-IP disconnect cooldown functionality with 30-second cooldown period, enhanced peer disconnect logging with closing_reason field, and improved peer database dumping capabilities. These enhancements provide superior network stability, improved operational visibility through color-coded terminal notifications, enhanced troubleshooting capabilities through detailed closing reason tracking, and improved network resilience through per-IP disconnect cooldown management. The reduced soft-ban duration enables faster recovery from transient errors while maintaining network stability during emergency consensus scenarios. ## Appendices @@ -761,20 +779,22 @@ Important tunables affecting peer connection behavior: - GRAPHENE_NET_MAXIMUM_QUEUED_MESSAGES_IN_BYTES: Queue size cap with enhanced error handling. - GRAPHENE_NET_DEFAULT_DESIRED_CONNECTIONS / GRAPHENE_NET_DEFAULT_MAX_CONNECTIONS: Target and hard limits. - GRAPHENE_NET_PEER_HANDSHAKE_INACTIVITY_TIMEOUT / GRAPHENE_NET_PEER_DISCONNECT_TIMEOUT: Timeout thresholds with improved exception safety. -- **Enhanced** TRUSTED_SOFT_BAN_DURATION_SEC / SOFT_BAN_DURATION_SEC: 300 seconds (5 minutes) vs 3600 seconds (1 hour) for trusted vs regular peers. +- **Enhanced** TRUSTED_SOFT_BAN_DURATION_SEC / SOFT_BAN_DURATION_SEC: 300 seconds (5 minutes) vs 900 seconds (15 minutes) for trusted vs regular peers. +- **Enhanced** DISCONNECT_RECONNECT_COOLDOWN_SEC: 30-second cooldown period for per-IP disconnect management. **Section sources** - [config.hpp:26-106](file://libraries/network/include/graphene/network/config.hpp#L26-L106) - [node.cpp:599-600](file://libraries/network/node.cpp#L599-L600) ### Network Exception Types -**New** Enhanced exception types for improved error handling: +**Enhanced** Exception types for improved error handling: - unlinkable_block_exception: Used for blocks from dead forks with parents not in fork database. - block_older_than_undo_history: Used for blocks too old for fork database processing. - peer_is_on_an_unreachable_fork: Used when peers are on incompatible forks. -- **New** deferred_resize_exception: Used for shared memory resize operations during block processing, indicating transient memory expansion requiring block retry. +- **Enhanced** deferred_resize_exception: Used for shared memory resize operations during block processing, indicating transient memory expansion requiring block retry. - Enhanced error propagation: Chain exceptions converted to network exceptions for consistent P2P layer handling. - **Enhanced** Trusted peer consideration: Deferred resize exceptions do not trigger soft-bans as they represent local memory conditions. +- **Enhanced** Closing reason tracking: Enhanced peer disconnect logging with detailed reason information. **Section sources** - [exceptions.hpp:33-45](file://libraries/network/include/graphene/network/exceptions.hpp#L33-L45) @@ -783,27 +803,47 @@ Important tunables affecting peer connection behavior: - [database_exceptions.hpp:86-86](file://libraries/chain/include/graphene/chain/database_exceptions.hpp#L86-L86) ### ANSI Color Code Definitions -**New** Terminal formatting support for enhanced notifications: +**Enhanced** Terminal formatting support for enhanced notifications: - CLOG_RED: ANSI escape sequence for red text formatting. +- CLOG_ORANGE: ANSI escape sequence for orange text formatting. - CLOG_RESET: ANSI escape sequence to reset terminal formatting. - Used extensively in soft-ban notifications and other important system messages for improved visual emphasis. **Section sources** -- [node.cpp:79-81](file://libraries/network/node.cpp#L79-L81) +- [node.cpp:79-82](file://libraries/network/node.cpp#L79-L82) - [node.cpp:3278-3281](file://libraries/network/node.cpp#L3278-L3281) - [node.cpp:3633-3636](file://libraries/network/node.cpp#L3633-L3636) - [node.cpp:3653-3656](file://libraries/network/node.cpp#L3653-L3656) - [node.cpp:3671-3674](file://libraries/network/node.cpp#L3671-L3674) -### Trusted Peer Configuration Options -**New** Configuration options for trusted peer management: -- trusted-snapshot-peer: Configurable trusted peer endpoints in IP:port format, repeatable for multiple trusted peers. +### Enhanced Network Stability Configuration +**Enhanced** Configuration options for network stability improvements: +- **Reduced soft-ban duration**: Soft-ban duration reduced from 3600 seconds (1 hour) to 900 seconds (15 minutes) for improved network responsiveness. +- **Per-IP disconnect cooldown**: 30-second cooldown period prevents rapid reconnect loops and improves network stability. +- **Enhanced peer disconnect logging**: closing_reason field provides detailed information about why peers disconnect for improved troubleshooting. +- **Improved peer database dumping**: Enhanced JSON serialization and error handling for better database management. - Automatic registration: P2P plugin automatically registers trusted peers from snapshot plugin configuration. - IP-based trust detection: Efficient O(1) lookup using 32-bit IP address storage. -- Dual-tier soft-ban system: 5-minute duration for trusted peers, 1-hour for regular peers. +- Dual-tier soft-ban system: 5-minute duration for trusted peers, 15-minute (reduced) duration for regular peers. **Section sources** - [config.ini:96-101](file://share/vizd/config/config.ini#L96-L101) - [plugin.cpp:3039-3045](file://plugins/snapshot/plugin.cpp#L3039-L3045) - [p2p_plugin.cpp:689-697](file://plugins/p2p/p2p_plugin.cpp#L689-L697) -- [node.cpp:5240-5274](file://libraries/network/node.cpp#L5240-L5274) \ No newline at end of file +- [node.cpp:5240-5274](file://libraries/network/node.cpp#L5240-L5274) +- [node.cpp:4472-4479](file://libraries/network/node.cpp#L4472-L4479) +- [node.cpp:5016-5021](file://libraries/network/node.cpp#L5016-L5021) +- [node.cpp:5013-5014](file://libraries/network/node.cpp#L5013-L5014) +- [node.cpp:3061-3062](file://libraries/network/node.cpp#L3061-L3062) + +### Enhanced Peer Database Management +**Enhanced** Improved peer database management with enhanced capabilities: +- **Enhanced JSON serialization**: Improved JSON serialization for peer database records with better error handling. +- **Robust file operations**: Enhanced file operations with proper error handling for database loading and saving. +- **Comprehensive logging**: Detailed logging for database operations with improved troubleshooting capabilities. +- **Database dumping**: Enhanced peer database dumping functionality for debugging and maintenance purposes. +- **Error handling**: Comprehensive error handling for database operations with detailed logging for troubleshooting. + +**Section sources** +- [peer_database.cpp:120-137](file://libraries/network/peer_database.cpp#L120-L137) +- [peer_database.cpp:100-174](file://libraries/network/peer_database.cpp#L100-L174) \ No newline at end of file diff --git a/.qoder/repowiki/en/content/Chain Plugin.md b/.qoder/repowiki/en/content/Chain Plugin.md index e53a300615..69df020684 100644 --- a/.qoder/repowiki/en/content/Chain Plugin.md +++ b/.qoder/repowiki/en/content/Chain Plugin.md @@ -9,14 +9,18 @@ - [application.cpp](file://thirdparty/appbase/application.cpp) - [README.md](file://README.md) - [snapshot-plugin.md](file://documentation/snapshot-plugin.md) +- [console_appender.cpp](file://thirdparty/fc/src/log/console_appender.cpp) +- [console_defines.h](file://thirdparty/fc/src/log/console_defines.h) +- [logger_config.cpp](file://thirdparty/fc/src/log/logger_config.cpp) +- [main.cpp](file://programs/vizd/main.cpp) ## Update Summary **Changes Made** -- Updated default shared-file-dir from 'blockchain' to 'state' for improved configuration clarity and consistency -- Enhanced plugin coordination with deferred execution support for snapshot loading -- Expanded snapshot plugin configuration options including snapshot-dir, snapshot-every-n-blocks, snapshot-max-age-days, allow-snapshot-serving, and trusted-snapshot-peer settings -- Improved data directory path handling with consistent 'state' directory usage across chain plugin components +- Enhanced logging with green color support for sync mode completion messages, improving visual differentiation in console output for better debugging experience +- Updated error logging color scheme to use cyan instead of red for better visual hierarchy +- Improved sync mode status messages with ANSI escape code formatting for better console readability +- Enhanced debugging experience through color-coded console output for different sync states ## Table of Contents 1. [Introduction](#introduction) @@ -24,13 +28,14 @@ 3. [Core Components](#core-components) 4. [Architecture Overview](#architecture-overview) 5. [Detailed Component Analysis](#detailed-component-analysis) -6. [Dependency Analysis](#dependency-analysis) -7. [Performance Considerations](#performance-considerations) -8. [Troubleshooting Guide](#troubleshooting-guide) -9. [Conclusion](#conclusion) +6. [Enhanced Logging System](#enhanced-logging-system) +7. [Dependency Analysis](#dependency-analysis) +8. [Performance Considerations](#performance-considerations) +9. [Troubleshooting Guide](#troubleshooting-guide) +10. [Conclusion](#conclusion) ## Introduction -The Chain Plugin is the core component responsible for managing the blockchain state, accepting blocks and transactions, maintaining database consistency, and coordinating with other plugins in the VIZ node. It integrates tightly with the underlying database layer and provides APIs for block acceptance, transaction processing, and state queries. Recent enhancements focus on improved plugin coordination, deferred execution support for snapshot loading, comprehensive recovery system integration with DLT block log capabilities, and expanded snapshot management infrastructure with consistent data directory usage. +The Chain Plugin is the core component responsible for managing the blockchain state, accepting blocks and transactions, maintaining database consistency, and coordinating with other plugins in the VIZ node. It integrates tightly with the underlying database layer and provides APIs for block acceptance, transaction processing, and state queries. Recent enhancements focus on improved plugin coordination, deferred execution support for snapshot loading, comprehensive recovery system integration with DLT block log capabilities, expanded snapshot management infrastructure with consistent data directory usage, and enhanced logging system with visual differentiation for better debugging experience. ## Project Structure The Chain Plugin resides under the `plugins/chain` directory and interfaces with the `libraries/chain` database implementation. The plugin exposes a clean interface for other plugins and the application to interact with the blockchain state, with enhanced deferred execution support and comprehensive recovery capabilities. The data directory path has been standardized to use 'state' for improved organizational clarity. @@ -82,8 +87,9 @@ Key responsibilities include: - Supporting DLT (Dynamic Ledger Technology) block logging with comprehensive replay capabilities - Implementing advanced recovery procedures with automatic snapshot detection and restoration - Integrating with comprehensive snapshot management infrastructure including automatic discovery, rotation, and serving capabilities +- **Enhanced** Providing visual feedback through color-coded console logging for improved debugging experience -**Updated** Enhanced plugin coordination with deferred execution support allows seamless integration between chain and snapshot plugins, enabling flexible startup sequences and improved error recovery mechanisms. The default shared memory directory has been changed from 'blockchain' to 'state' for better organizational clarity and consistency across data directory usage. +**Updated** Enhanced plugin coordination with deferred execution support allows seamless integration between chain and snapshot plugins, enabling flexible startup sequences and improved error recovery mechanisms. The default shared memory directory has been changed from 'blockchain' to 'state' for better organizational clarity and consistency across data directory usage. The enhanced logging system now provides visual differentiation through ANSI escape codes for better console output readability. **Section sources** - [plugin.hpp:21-124](file://plugins/chain/include/graphene/plugins/chain/plugin.hpp#L21-L124) @@ -241,7 +247,7 @@ The plugin supports extensive configuration through command-line and configurati | **replay-from-snapshot** | bool | Snapshot + dlt_block_log replay | false | | **snapshot-dir** | string | Directory for auto-generated snapshots | empty | -**Updated** Enhanced plugin coordination with deferred execution support for snapshot operations, allowing flexible startup sequences between chain and snapshot plugins. The default shared-file-dir has been changed from 'blockchain' to 'state' for improved organizational clarity and consistency across data directory usage. +**Updated** Enhanced plugin coordination with deferred execution support for snapshot operations, allowing flexible startup sequences between chain and snapshot plugins. The default shared-file-dir has been changed from 'blockchain' to 'state' for improved organizational clarity and consistency across data directory usage. Enhanced logging system provides visual feedback through color-coded console output. **Section sources** - [plugin.cpp:197-272](file://plugins/chain/plugin.cpp#L197-L272) @@ -449,6 +455,53 @@ DownloadSnap --> LoadState - [plugin.cpp:2817-2861](file://plugins/snapshot/plugin.cpp#L2817-L2861) - [plugin.cpp:2908-2920](file://plugins/snapshot/plugin.cpp#L2908-L2920) +## Enhanced Logging System + +**Updated** The Chain Plugin now features an enhanced logging system with visual differentiation for improved debugging experience: + +### Color-Coded Console Output +The logging system uses ANSI escape codes to provide visual feedback: + +- **Green Color** (`\033[92m`): Used for sync mode start and completion messages +- **Brown/Yellow Color** (`\033[93m`): Used for periodic sync progress notifications +- **Default Colors**: Maintained for other log levels (debug, warn, error) + +### Sync Mode Status Messages +The enhanced logging provides clear visual indicators for different sync states: + +```mermaid +flowchart TD +SyncStart["Sync Mode Started"] --> GreenStart["\033[92m>>> Syncing Blockchain started from block #${n} (head: ${head})\033[0m"] +SyncProgress["Sync Progress"] --> YellowProgress["\033[93mSyncing Blockchain --- Got block: #${n} time: ${t} producer: ${p}\033[0m"] +SyncEnd["Sync Mode Ended"] --> GreenEnd["\033[92mSync mode ended: received normal block #${n} (head: ${head}), sync_start_logged reset\033[0m"] +``` + +**Diagram sources** +- [plugin.cpp:105-121](file://plugins/chain/plugin.cpp#L105-L121) + +### Logging Framework Enhancements +The underlying logging framework supports comprehensive color configuration: + +- **Default Configuration**: Debug (green), Warn (brown), Error (red) +- **Application Override**: Error level now uses cyan instead of red for better visual hierarchy +- **Platform Support**: Windows and Unix terminal color support through ANSI escape codes +- **File Output**: Color codes are stripped when logging to files to prevent garbled output + +### Visual Differentiation Benefits +The enhanced logging system improves debugging experience through: + +- **Immediate Visual Feedback**: Sync start and completion clearly highlighted in green +- **Progress Indicators**: Periodic sync progress shown in yellow/brown for easy scanning +- **Consistent Color Scheme**: Maintains visual hierarchy with appropriate colors for different log levels +- **Cross-Platform Compatibility**: ANSI escape codes work across different terminal environments + +**Section sources** +- [plugin.cpp:105-121](file://plugins/chain/plugin.cpp#L105-L121) +- [console_appender.cpp:71-84](file://thirdparty/fc/src/log/console_appender.cpp#L71-L84) +- [console_defines.h:146-188](file://thirdparty/fc/src/log/console_defines.h#L146-L188) +- [logger_config.cpp:69-89](file://thirdparty/fc/src/log/logger_config.cpp#L69-L89) +- [main.cpp:234-250](file://programs/vizd/main.cpp#L234-L250) + ## Dependency Analysis The Chain Plugin has well-defined dependencies and integration points with enhanced plugin coordination: @@ -490,7 +543,7 @@ The plugin integrates with several other components with enhanced coordination: - Witness plugin for block production - Database plugin for state persistence -**Updated** Enhanced integration with snapshot plugin includes sophisticated deferred execution mechanisms, automatic callback registration, and comprehensive recovery system coordination. The default shared memory directory has been changed from 'blockchain' to 'state' for better organizational structure and consistent data directory usage. +**Updated** Enhanced integration with snapshot plugin includes sophisticated deferred execution mechanisms, automatic callback registration, and comprehensive recovery system coordination. The default shared memory directory has been changed from 'blockchain' to 'state' for better organizational structure and consistent data directory usage. The enhanced logging system provides visual feedback for better debugging experience. **Section sources** - [plugin.hpp:23-24](file://plugins/chain/include/graphene/plugins/chain/plugin.hpp#L23-L24) @@ -521,6 +574,14 @@ The Chain Plugin implements several performance optimizations with enhanced plug - Reduced redundant operations through intelligent state checking - Optimized snapshot loading with automatic path validation - Improved snapshot serving performance with trust model and anti-spam protection +- **Enhanced** Color-coded logging reduces visual scanning time for important sync events + +### Logging Performance Considerations +**Updated** The enhanced logging system maintains performance through: +- Minimal overhead for color code insertion +- Efficient ANSI escape code handling +- Platform-specific optimization for Windows and Unix terminals +- Stripping of color codes for file output to prevent performance degradation **Section sources** - [plugin.cpp:24-51](file://plugins/chain/plugin.cpp#L24-L51) @@ -546,6 +607,7 @@ The Chain Plugin implements several performance optimizations with enhanced plug - Monitor shared memory usage and growth patterns - **Updated** Enable verbose logging for snapshot plugin coordination failures - Monitor snapshot serving metrics and trust model compliance +- **Enhanced** Use color-coded logs to quickly identify sync mode status and progress ### Enhanced Plugin Coordination Troubleshooting **Updated** Specific troubleshooting for plugin coordination issues: @@ -573,6 +635,23 @@ The Chain Plugin implements several performance optimizations with enhanced plug - Configure trusted peers properly with `--trusted-snapshot-peer` - Monitor snapshot P2P sync performance and reliability +### Enhanced Logging Troubleshooting +**Updated** Specific troubleshooting for logging issues: +- Verify terminal supports ANSI escape codes for color output +- Check logging configuration for proper color scheme setup +- Ensure color codes are properly formatted in log messages +- Test color output in different terminal environments +- Verify color codes are stripped when logging to files +- Check for proper terminal reset sequences after color output + +### Sync Mode Troubleshooting +**Updated** Specific troubleshooting for sync mode logging: +- Verify green color appears for sync start and completion messages +- Check yellow/brown color for periodic sync progress notifications +- Ensure sync mode status messages appear only during active synchronization +- Verify sync mode completion messages reset properly when normal blocks arrive +- Check that sync mode guard variables work correctly to prevent duplicate messages + **Section sources** - [plugin.cpp:562-601](file://plugins/chain/plugin.cpp#L562-L601) - [plugin.cpp:251-271](file://plugins/chain/plugin.cpp#L251-L271) @@ -580,4 +659,4 @@ The Chain Plugin implements several performance optimizations with enhanced plug ## Conclusion The Chain Plugin provides a robust foundation for blockchain state management in the VIZ node. Its modular design, comprehensive configuration options, and efficient database operations make it suitable for production deployments while maintaining flexibility for development and testing scenarios. Recent enhancements focus on improved plugin coordination with deferred execution support, comprehensive recovery system integration with DLT block log capabilities, and sophisticated snapshot loading mechanisms. The plugin's integration with snapshot technology, emergency consensus mode, and advanced recovery procedures provides strong operational resilience and enhanced error handling capabilities with improved plugin coordination and seamless user experience. -**Updated** The default shared-memory directory has been changed from 'blockchain' to 'state' for better organizational clarity, ensuring consistency across data directory usage in plugin initialization and snapshot plugin deferred loading functionality. The comprehensive snapshot management infrastructure provides powerful automation capabilities including automatic discovery, periodic creation, rotation, serving, and P2P synchronization with trust models and anti-spam protection. \ No newline at end of file +**Updated** The default shared-memory directory has been changed from 'blockchain' to 'state' for better organizational clarity, ensuring consistency across data directory usage in plugin initialization and snapshot plugin deferred loading functionality. The comprehensive snapshot management infrastructure provides powerful automation capabilities including automatic discovery, periodic creation, rotation, serving, and P2P synchronization with trust models and anti-spam protection. The enhanced logging system significantly improves debugging experience through color-coded console output, providing immediate visual feedback for sync mode status and progress indicators with green color for important completion messages and yellow/brown for periodic progress notifications. \ No newline at end of file diff --git a/.qoder/repowiki/en/content/P2p Plugin.md b/.qoder/repowiki/en/content/P2p Plugin.md index ac9f2810b7..7aad10be13 100644 --- a/.qoder/repowiki/en/content/P2p Plugin.md +++ b/.qoder/repowiki/en/content/P2p Plugin.md @@ -15,16 +15,24 @@ - [config.ini](file://share/vizd/config/config.ini) +## Update Summary +**Changes Made** +- Updated logging level consistency section to reflect improved logging level management +- Added detailed explanation of sync mode logging changes from info to debug level +- Enhanced troubleshooting guide with logging level considerations +- Updated performance considerations to include logging impact + ## Table of Contents 1. [Introduction](#introduction) 2. [Project Structure](#project-structure) 3. [Core Components](#core-components) 4. [Architecture Overview](#architecture-overview) 5. [Detailed Component Analysis](#detailed-component-analysis) -6. [Dependency Analysis](#dependency-analysis) -7. [Performance Considerations](#performance-considerations) -8. [Troubleshooting Guide](#troubleshooting-guide) -9. [Conclusion](#conclusion) +6. [Logging Level Consistency](#logging-level-consistency) +7. [Dependency Analysis](#dependency-analysis) +8. [Performance Considerations](#performance-considerations) +9. [Troubleshooting Guide](#troubleshooting-guide) +10. [Conclusion](#conclusion) ## Introduction @@ -343,6 +351,49 @@ Note over Local,Remote : Continue until synchronized - [p2p_plugin.cpp:247-301](file://plugins/p2p/p2p_plugin.cpp#L247-L301) - [peer_connection.hpp:79-354](file://libraries/network/include/graphene/network/peer_connection.hpp#L79-L354) +## Logging Level Consistency + +**Updated** The P2P plugin has implemented improved logging level consistency to reduce verbosity during normal operation while maintaining appropriate log levels for different operational contexts. + +### Sync Mode Logging Improvements + +The plugin has undergone significant improvements in logging level management, particularly for synchronization operations: + +- **Sync Mode Downgrade**: Sync mode block processing logs were downgraded from info level to debug level +- **Normal Mode Preservation**: Normal block processing continues to use info level logging for visibility +- **Reduced Verbosity**: This change significantly reduces log volume during routine blockchain synchronization +- **Contextual Appropriateness**: Debug level logging is more appropriate for frequent sync operations while preserving info level for exceptional events + +### Logging Implementation Details + +The logging changes are implemented in the block handling method: + +```cpp +if (sync_mode) + dlog("chain pushing sync block #${block_num} (head: ${head}, gap: ${gap})", + ("block_num", blk_msg.block.block_num())("head", head_block_num)("gap", gap)); +else + dlog("chain pushing normal block #${block_num} (head: ${head}, gap: ${gap})", + ("block_num", blk_msg.block.block_num())("head", head_block_num)("gap", gap)); +``` + +**Key Benefits:** +- **Reduced Log Volume**: Sync operations (which occur frequently during blockchain synchronization) now use debug level logging +- **Maintained Visibility**: Normal operations continue to use info level logging for operational visibility +- **Consistent Behavior**: Both sync and normal modes now consistently use debug level logging, improving overall logging consistency +- **Performance Impact**: Lower logging overhead during normal operation while preserving diagnostic information + +### Network Layer Integration + +The network layer maintains mixed logging levels for different operational contexts: + +- **Info Level**: Used for significant operational events and peer management actions +- **Debug Level**: Used for routine synchronization and connection maintenance +- **Warning/Error Levels**: Used for error conditions and exceptional circumstances + +**Section sources** +- [p2p_plugin.cpp:151-156](file://plugins/p2p/p2p_plugin.cpp#L151-L156) + ## Dependency Analysis The P2P plugin has well-defined dependencies that enable modularity and maintainability: @@ -417,6 +468,14 @@ The P2P plugin implements several performance optimization strategies: - **Stale Sync Detection**: Automatic recovery from stalled synchronization - **Connection Health Monitoring**: Real-time peer connection quality metrics +### Logging Performance Impact +**Updated** The improved logging level consistency provides additional performance benefits: + +- **Reduced I/O Overhead**: Debug level logging produces less output than info level logging +- **Lower Memory Usage**: Reduced log buffer consumption during sync operations +- **Improved Throughput**: Less frequent logging reduces CPU overhead during normal operation +- **Better Resource Utilization**: More efficient use of system resources during routine operations + **Section sources** - [p2p_plugin.cpp:659-756](file://plugins/p2p/p2p_plugin.cpp#L659-L756) - [p2p_plugin.cpp:512-649](file://plugins/p2p/p2p_plugin.cpp#L512-L649) @@ -440,6 +499,14 @@ The P2P plugin implements several performance optimization strategies: - **Solution**: Check network stability and bandwidth limitations - **Diagnostics**: Monitor peer statistics for connection patterns +### Logging Level Considerations + +**Updated** For troubleshooting purposes, consider adjusting logging levels: + +- **Enable Debug Logging**: Set logging level to debug for detailed sync operation visibility +- **Monitor Sync Operations**: Use debug logs to track sync progress and identify bottlenecks +- **Performance Tuning**: Adjust logging levels based on operational requirements + ### Configuration Reference The P2P plugin supports extensive configuration options: @@ -468,5 +535,8 @@ Key strengths of the implementation include: 2. **Performance Optimization**: Efficient synchronization and connection management 3. **Operational Excellence**: Comprehensive monitoring and diagnostic capabilities 4. **Extensibility**: Clean interfaces that support future enhancements +5. **Logging Efficiency**: Improved logging level consistency reduces verbosity while maintaining operational visibility + +The recent logging level improvements demonstrate ongoing attention to operational efficiency and user experience. By downgrading sync mode logs from info to debug level, the plugin achieves better balance between operational visibility and system performance, reducing unnecessary log volume during routine synchronization while preserving appropriate logging for exceptional circumstances. The plugin's design demonstrates best practices in distributed systems engineering, balancing security, performance, and maintainability while providing the foundation for scalable blockchain networks. \ No newline at end of file diff --git a/.qoder/repowiki/en/content/Plugin System/Snapshot Plugin System.md b/.qoder/repowiki/en/content/Plugin System/Snapshot Plugin System.md index b300741fc7..27af62f5e1 100644 --- a/.qoder/repowiki/en/content/Plugin System/Snapshot Plugin System.md +++ b/.qoder/repowiki/en/content/Plugin System/Snapshot Plugin System.md @@ -26,12 +26,10 @@ ## Update Summary **Changes Made** -- Added comprehensive P2P stale sync detection documentation with detailed explanation of how the system works -- Enhanced watchdog monitoring to work with trusted peer integration -- Updated configuration options to include p2p-stale-sync-detection and p2p-stale-sync-timeout-seconds -- Added troubleshooting guidance for P2P stale sync detection -- Enhanced comparison between P2P stale sync detection and snapshot-based stalled sync detection -- Updated peer-to-peer snapshot synchronization with improved trusted peer handling +- Updated anti-spam configuration documentation to reflect increased maximum sessions per IP from 2 to 3 and maximum connections per hour from 6 to 10 +- Enhanced access control and security mechanisms documentation with new configuration values +- Updated troubleshooting guide to include new anti-spam limits and their implications +- Revised configuration reference to show updated anti-spam parameters ## Table of Contents 1. [Introduction](#introduction) @@ -863,7 +861,7 @@ end end ``` -### Enhanced Stalled Sync Detection +### Enhanced Stalled Sync Detection for DLT Mode The stalled sync detection provides DLT mode monitoring with improved reliability: @@ -1004,11 +1002,11 @@ Start([Incoming Connection]) --> CheckAntiSpam{"Anti-Spam Enabled?"} CheckAntiSpam --> |No| CheckTrust{"Allow Only Trusted?"} CheckAntiSpam --> |Yes| CheckConcurrent{"Concurrent Connections < 5?"} CheckTrust --> |Yes| ValidateTrust{"IP in Trusted List?"} -CheckTrust --> |No| CheckSession{"Active Sessions < 2/IP?"} +CheckTrust --> |No| CheckSession{"Active Sessions < 3/IP?"} CheckConcurrent --> |No| DenyMaxConnections["Send DENY_MAX_CONNECTIONS"] CheckConcurrent --> |Yes| CheckSession CheckSession --> |No| DenySessionLimit["Send DENY_SESSION_LIMIT"] -CheckSession --> |Yes| CheckRate{"Connections < 6/Hour/IP?"} +CheckSession --> |Yes| CheckRate{"Connections < 10/Hour/IP?"} CheckRate --> |No| DenyRateLimited["Send DENY_RATE_LIMITED"] CheckRate --> |Yes| Accept["Accept Connection"] ValidateTrust --> |No| DenyUntrusted["Send DENY_UNTRUSTED"] @@ -1016,6 +1014,13 @@ ValidateTrust --> |Yes| Accept Accept --> Process["Process Snapshot Request"] ``` +**Updated** The anti-spam system has been enhanced with increased limits to improve service accessibility while maintaining security controls. The new configuration values are: + +- **Maximum sessions per IP**: Increased from 2 to 3 sessions per IP +- **Maximum connections per hour**: Increased from 6 to 10 connections per hour per IP + +These changes provide better support for legitimate users while maintaining effective protection against abuse. + ### Enhanced New Configuration Options The anti-spam system introduces several new configuration options: @@ -1059,9 +1064,9 @@ CheckTrust --> |No| CheckConcurrent{"Concurrent Connections < 5?"} ValidateTrust --> |No| DenyUntrusted["Send DENY_UNTRUSTED"] ValidateTrust --> |Yes| CheckConcurrent CheckConcurrent --> |No| DenyMaxConnections["Send DENY_MAX_CONNECTIONS"] -CheckConcurrent --> |Yes| CheckSession{"Active Sessions < 2/IP?"} +CheckConcurrent --> |Yes| CheckSession{"Active Sessions < 3/IP?"} CheckSession --> |No| DenySessionLimit["Send DENY_SESSION_LIMIT"] -CheckSession --> |Yes| CheckRate{"Connections < 6/Hour/IP?"} +CheckSession --> |Yes| CheckRate{"Connections < 10/Hour/IP?"} CheckRate --> |No| DenyRateLimited["Send DENY_RATE_LIMITED"] CheckRate --> |Yes| Accept["Accept Connection"] DenyUntrusted --> Close["Close Connection"] @@ -1071,6 +1076,12 @@ DenyRateLimited --> Close Accept --> Process["Process Snapshot Request"] ``` +**Updated** The access control system now enforces the enhanced anti-spam limits with improved session management and rate limiting: + +- **Maximum concurrent connections**: 5 simultaneous connections +- **Maximum sessions per IP**: 3 active sessions per IP (increased from 2) +- **Maximum connections per hour**: 10 connections per hour per IP (increased from 6) + ### Enhanced Denial Reason Codes The system provides specific denial reasons for different violation types: @@ -1079,8 +1090,8 @@ The system provides specific denial reasons for different violation types: |-------------|------------|-------------| | `deny_untrusted` | 1 | IP address not in trusted list | | `deny_max_connections` | 2 | Server has reached maximum concurrent connections (5) | -| `deny_session_limit` | 3 | Too many active sessions from this IP (2 per IP limit) | -| `deny_rate_limited` | 4 | Too many connections per hour from this IP (6 per hour limit) | +| `deny_session_limit` | 3 | Too many active sessions from this IP (3 per IP limit) | +| `deny_rate_limited` | 4 | Too many connections per hour from this IP (10 per hour limit) | ### Enhanced Anti-Spam Protection Features @@ -1088,8 +1099,8 @@ The access control system implements multiple enhanced anti-spam mechanisms: #### Connection Throttling - **Maximum Concurrent Connections**: 5 simultaneous connections -- **Per-IP Session Limit**: 2 active sessions per IP address -- **Rate Limiting**: 6 connections per hour per IP address +- **Per-IP Session Limit**: 3 active sessions per IP (increased from 2) +- **Rate Limiting**: 10 connections per hour per IP (increased from 6) #### Enhanced Session Management - **Active Session Tracking**: Monitors concurrent sessions per IP @@ -1304,16 +1315,16 @@ The snapshot plugin implements several performance optimization strategies throu **Connection Denied - Maximum Connections** - **Symptom**: Server responds with "server at max concurrent connections" - **Cause**: 5 concurrent connections already active -- **Solution**: Reduce concurrent clients or increase connection limits +- **Solution**: Wait for connections to close or increase connection limits **Connection Denied - Session Limit** - **Symptom**: "too many active sessions from this IP" error -- **Cause**: Client already has 2 active sessions +- **Cause**: Client already has 3 active sessions (increased from 2) - **Solution**: Wait for session cleanup or reduce concurrent sessions **Connection Denied - Rate Limited** - **Symptom**: "rate limit exceeded (too many connections per hour)" error -- **Cause**: Client exceeded 6 connections per hour limit +- **Cause**: Client exceeded 10 connections per hour limit (increased from 6) - **Solution**: Wait for rate limit window to reset or reduce connection frequency **Enhanced P2P Integration Issues** @@ -1350,6 +1361,11 @@ The snapshot plugin implements several performance optimization strategies throu - **Cause**: Trusted peers not providing newer snapshots or network connectivity issues - **Solution**: Verify trusted peer configuration, check snapshot availability, review network connectivity +**Enhanced Anti-Spam Configuration Issues** +- **Symptom**: Users experiencing connection denials despite legitimate usage +- **Cause**: Anti-spam limits too restrictive with new values (3 sessions/IP, 10 connections/hour/IP) +- **Solution**: Review anti-spam configuration, consider increasing limits for legitimate use cases, monitor connection patterns + **Enhanced Diagnostic Tools** The plugin includes comprehensive enhanced diagnostic capabilities: @@ -1366,6 +1382,7 @@ The plugin includes comprehensive enhanced diagnostic capabilities: - **Snapshot Directory Management**: Monitors automatic directory creation and cleanup processes - **Enhanced Logging Diagnostics**: Monitors ANSI color code application and terminal compatibility - **P2P Stale Sync Detection Diagnostics**: Monitors LIB reset, peer reconnection, and seed node management +- **Enhanced Anti-Spam Configuration Diagnostics**: Monitors session limits, rate limiting, and connection patterns **Updated** The modular architecture provides enhanced diagnostic capabilities through separate layers for serialization, networking, database operations, security controls, recovery workflows, asynchronous execution, watchdog monitoring, and **enhanced P2P integration**. Recent improvements include watchdog monitoring, enhanced P2P fallback diagnostics, emergency consensus status tracking, comprehensive recovery workflow diagnostics, DLT replay status monitoring, asynchronous execution health monitoring, **P2P stale sync detection diagnostics**, and **dual-tier soft-ban system diagnostics**. diff --git a/.qoder/repowiki/en/content/Webserver Plugin.md b/.qoder/repowiki/en/content/Webserver Plugin.md index 783d35e870..09475d7c6a 100644 --- a/.qoder/repowiki/en/content/Webserver Plugin.md +++ b/.qoder/repowiki/en/content/Webserver Plugin.md @@ -13,14 +13,11 @@ ## Update Summary **Changes Made** -- Modernized Boost library usage by replacing boost::bind with std::bind and std::placeholders in thread pool creation and WebSocket message handlers -- Enhanced JSON-RPC response caching system with proper fc::variant-based JSON parsing using fc::json::from_string -- Implemented id-independent cache keys to prevent cache bypass attacks via id rotation -- Improved cache validation with comprehensive error handling for malformed requests -- Added enhanced WebSocket/HTTP handler support with proper JSON-RPC 2.0 response ID patching -- Updated request classification system with robust fc::variant parsing for mutating API detection -- Enhanced cache configuration options with comprehensive size management and thread-safe operations -- Improved configuration management with rpc-endpoint processing order changes prioritizing specific endpoints over deprecated combined endpoints +- Enhanced JSON RPC logging with gray color support for data dumps, improving log readability and debugging capabilities for RPC operations +- Updated diagnostic logging system to use ANSI escape sequences for visual distinction between normal operation and diagnostic information +- Improved developer experience with colored log output for request/response data visualization +- Enhanced timing measurements with precise elapsed time tracking for request processing +- Added comprehensive error tracking with timing context for better debugging ## Table of Contents 1. [Introduction](#introduction) @@ -39,7 +36,7 @@ ## Introduction The Webserver Plugin provides HTTP and WebSocket endpoints for JSON-RPC API access to the VIZ blockchain node. It serves as a bridge between external clients and the internal JSON-RPC system, offering both persistent WebSocket connections for real-time updates and standard HTTP endpoints for traditional API calls. The plugin includes an intelligent caching mechanisms that automatically classifies requests as mutating or non-mutating using robust fc::variant-based JSON parsing, optimizing performance for frequently accessed read-only API methods while preventing cache pollution from state-changing operations. -**Updated** Enhanced with major performance optimizations to the JSON-RPC caching mechanism, including fc::variant-based JSON parsing, id-independent keys, robust request classification, comprehensive cache validation, improved WebSocket/HTTP handler support with proper JSON-RPC 2.0 compliance, and modernized Boost library usage with std::bind and std::placeholders for better C++11 compatibility. +**Updated** Enhanced with major performance optimizations to the JSON-RPC caching mechanism, including fc::variant-based JSON parsing, id-independent keys, robust request classification, comprehensive cache validation, improved WebSocket/HTTP handler support with proper JSON-RPC 2.0 response ID patching, modernized Boost library usage with std::bind and std::placeholders for better C++11 compatibility, and enhanced diagnostic logging with ANSI gray color support for improved debugging capabilities. ## Project Structure The webserver plugin is organized within the plugins/webserver directory structure, following the standard VIZ plugin architecture pattern: @@ -56,6 +53,7 @@ I[websocketpp/server.hpp] --> J[WebSocket Library] K[std::bind/std::placeholders] --> L[C++11 Standard Bindings] M[fc::json::from_string] --> N[Proper JSON Parsing] O[fc::variant] --> P[Robust Data Structures] +Q[ANSI Color Logging] --> R[Enhanced Diagnostics] end D --> E D --> G @@ -63,6 +61,7 @@ D --> I D --> K D --> M D --> O +D --> Q end ``` @@ -116,15 +115,17 @@ J[Cache Key Generator] K[Malformed Request Handler] end subgraph "JSON-RPC Layer" -L[JSON-RPC Plugin] +L[JSON-RPC Plugin with Enhanced Logging] M[API Registry] N[fc::json::from_string] O[fc::variant Objects] +P[ANSI Color Logging] +Q[Diagnostic Timers] end subgraph "Blockchain Layer" -P[Chain Plugin] -Q[Database] -R[Block Event Signals] +R[Chain Plugin] +S[Database] +T[Block Event Signals] end A --> C B --> D @@ -148,11 +149,12 @@ F -.-> E G --> L L --> M M --> N -N --> P -O --> P +N --> R +O --> R +R --> S +R --> T +T --> F P --> Q -P --> R -R --> F ``` **Diagram sources** @@ -160,6 +162,7 @@ R --> F - [webserver_plugin.cpp:236-289](file://plugins/webserver/webserver_plugin.cpp#L236-L289) - [webserver_plugin.cpp:352-416](file://plugins/webserver/webserver_plugin.cpp#L352-L416) - [webserver_plugin.cpp:418-495](file://plugins/webserver/webserver_plugin.cpp#L418-L495) +- [plugin.cpp:258-288](file://plugins/json_rpc/plugin.cpp#L258-L288) The architecture implements several key design patterns: - **Separation of Concerns**: HTTP and WebSocket servers run in separate threads with dedicated io_service instances @@ -169,8 +172,9 @@ The architecture implements several key design patterns: - **Blacklist Pattern**: Mutating API detection and prevention of cache pollution using fc::variant-based method analysis - **fc::variant Pattern**: Robust JSON parsing and manipulation using fc library variants for optimal performance - **Error Handling Pattern**: Comprehensive fc::json::from_string-based error handling preventing crashes and improving reliability +- **Enhanced Logging Pattern**: ANSI color-coded diagnostic logging for improved debugging and monitoring -**Updated** Enhanced with fc::variant-based JSON parsing, response ID patching, comprehensive error handling capabilities, improved cache management using fc::variant objects, and modernized std::bind-based thread pool management. +**Updated** Enhanced with fc::variant-based JSON parsing, response ID patching, comprehensive error handling capabilities, improved cache management using fc::variant objects, modernized std::bind-based thread pool management, and enhanced diagnostic logging with ANSI gray color support. ## Detailed Component Analysis @@ -447,55 +451,66 @@ E[fc::json::from_string] F[fc::variant] G[fc::mutable_variant_object] H[std::bind/std::placeholders] +I[ANSI Color Sequences] +J[Terminal Logging] end subgraph "Internal Dependencies" -I[JSON-RPC Plugin] -J[Chain Plugin] -K[Application Core] +K[JSON-RPC Plugin with Enhanced Logging] +L[Chain Plugin] +M[Application Core] end subgraph "Webserver Plugin" -L[webserver_plugin] -M[is_cacheable_request] -N[make_cache_key] -O[extract_request_id] -P[patch_response_id] -Q[fc::variant Parser] -R[Cache Key Generator] -S[Response ID Patcher] -T[std::bind Message Handlers] +N[webserver_plugin] +O[is_cacheable_request] +P[make_cache_key] +Q[extract_request_id] +R[patch_response_id] +S[fc::variant Parser] +T[Cache Key Generator] +U[Response ID Patcher] +V[std::bind Message Handlers] +W[Diagnostic Logging] +X[Colorized Output] end J --> I -J --> K -J --> L -L --> A -L --> B -L --> C -L --> D -L --> E -L --> F -L --> G -L --> H -M --> N -N --> O +K --> W +W --> X +L --> K +L --> M +L --> N +N --> A +N --> B +N --> C +N --> D +N --> E +N --> F +N --> G +N --> H +N --> I +N --> J O --> P P --> Q Q --> R R --> S S --> T +T --> U +U --> V +W --> X ``` **Diagram sources** - [webserver_plugin.hpp:3-9](file://plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp#L3-L9) - [webserver_plugin.cpp:12-31](file://plugins/webserver/webserver_plugin.cpp#L12-L31) - [webserver_plugin.cpp:87-113](file://plugins/webserver/webserver_plugin.cpp#L87-L113) +- [plugin.cpp:258-288](file://plugins/json_rpc/plugin.cpp#L258-L288) ### JSON-RPC Integration Details -The plugin integrates with the JSON-RPC system through method registration and call delegation using fc::json::from_string for proper JSON parsing with enhanced fc::variant object handling and modernized std::bind-based handler implementations: +The plugin integrates with the JSON-RPC system through method registration and call delegation using fc::json::from_string for proper JSON parsing with enhanced fc::variant object handling, modernized std::bind-based handler implementations, and enhanced diagnostic logging with ANSI color support: ```mermaid sequenceDiagram participant WS as "Webserver Plugin" -participant JR as "JSON-RPC Plugin" +participant JR as "JSON-RPC Plugin with Enhanced Logging" participant AR as "API Registry" participant AP as "API Method" WS->>JR : call(json_body, callback) @@ -503,7 +518,7 @@ JR->>AR : Find API method AR->>AP : Execute method(args) AP-->>AR : Return result AR-->>JR : Return variant result -JR-->>WS : Stringified response +JR-->>WS : Stringified response with colored diagnostics WS-->>Client : Send response ``` @@ -512,7 +527,7 @@ WS-->>Client : Send response - [webserver_plugin.cpp:398](file://plugins/webserver/webserver_plugin.cpp#L398) - [webserver_plugin.cpp:468](file://plugins/webserver/webserver_plugin.cpp#L468) -**Updated** Enhanced with fc::json::from_string-based JSON parsing, robust error handling, comprehensive fc::variant object processing, and modernized std::bind-based handler implementations. +**Updated** Enhanced with fc::json::from_string-based JSON parsing, robust error handling, comprehensive fc::variant object processing, modernized std::bind-based handler implementations, and enhanced diagnostic logging with ANSI gray color support. **Section sources** - [webserver_plugin.hpp:38](file://plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp#L38) @@ -533,6 +548,7 @@ The webserver plugin implements several performance optimization strategies with - **Robust JSON Parsing**: Reliable fc::json::from_string-based request parsing instead of complex object traversal - **fc::variant Efficiency**: Optimized fc::variant usage for JSON parsing and manipulation with proper object lifetime management - **Modernized Bindings**: Efficient std::bind usage with std::placeholders for better C++11 compatibility and performance +- **Enhanced Logging Performance**: ANSI color logging with minimal overhead for improved debugging without impacting performance ### Concurrency Model - **Separate IO Services**: HTTP and WebSocket servers use dedicated io_service instances for isolation @@ -547,8 +563,9 @@ The webserver plugin implements several performance optimization strategies with - **Blacklist Optimization**: Reduces unnecessary cache storage for mutating API calls - **fc::variant Efficiency**: Optimized fc::variant usage for JSON parsing and manipulation with proper memory management - **Modernized Bindings**: Efficient std::bind usage with std::placeholders for better performance and C++11 compatibility +- **Color Logging Overhead**: Minimal performance impact from ANSI color sequences in diagnostic logging -**Updated** Enhanced with fc::variant-based JSON parsing, robust cache validation, comprehensive performance optimizations, improved fc::variant object handling, and modernized std::bind-based thread pool management. +**Updated** Enhanced with fc::variant-based JSON parsing, robust cache validation, comprehensive performance optimizations, improved fc::variant object handling, modernized std::bind-based thread pool management, and enhanced diagnostic logging with ANSI gray color support. **Section sources** - [webserver-plugin.md:29-64](file://documentation/webserver-plugin.md#L29-L64) @@ -584,8 +601,9 @@ The webserver plugin provides multiple layers of security for production deploym - **Robust Error Handling**: Comprehensive fc::variant-based error handling prevents crashes - **Malformed Request Protection**: Invalid JSON requests are handled gracefully without cache pollution - **Modernized Bindings**: Efficient std::bind usage with std::placeholders for better performance and security +- **Enhanced Logging Security**: ANSI color logging provides clear visibility without exposing sensitive data -**Updated** Enhanced with fc::variant-based JSON parsing, robust error handling, comprehensive security measures, improved fc::variant object validation, and modernized std::bind-based security implementations. +**Updated** Enhanced with fc::variant-based JSON parsing, robust error handling, comprehensive security measures, improved fc::variant object validation, modernized std::bind-based security implementations, and enhanced diagnostic logging with ANSI gray color support. **Section sources** - [webserver-plugin.md:77-108](file://documentation/webserver-plugin.md#L77-L108) @@ -718,8 +736,9 @@ ParseError --> Complete - **fc::variant Parsing**: Monitor JSON parsing performance and error rates - **Configuration Processing**: Monitor rpc-endpoint processing order and endpoint resolution - **Modernized Bindings**: Monitor std::bind usage and std::placeholders performance +- **Enhanced Logging**: Monitor ANSI color logging output for improved debugging visibility -**Updated** Enhanced with fc::variant-based JSON parsing monitoring, comprehensive debugging capabilities, improved configuration processing diagnostics, and modernized std::bind-based monitoring implementations. +**Updated** Enhanced with fc::variant-based JSON parsing monitoring, comprehensive debugging capabilities, improved configuration processing diagnostics, modernized std::bind-based monitoring implementations, and enhanced diagnostic logging with ANSI gray color support. **Section sources** - [webserver_plugin.cpp:352-416](file://plugins/webserver/webserver_plugin.cpp#L352-L416) @@ -728,27 +747,27 @@ ParseError --> Complete ## Logging and Diagnostics -### Enhanced Diagnostic Logging -The JSON RPC plugin now includes enhanced diagnostic logging with ANSI gray color codes to help developers quickly distinguish between normal operation and diagnostic information: +### Enhanced Diagnostic Logging with ANSI Color Support +The JSON RPC plugin now includes enhanced diagnostic logging with ANSI gray color support to help developers quickly distinguish between normal operation and diagnostic information: ```mermaid sequenceDiagram participant Client as "Client" -participant JSONRPC as "JSON-RPC Plugin" +participant JSONRPC as "JSON-RPC Plugin with Enhanced Logging" participant Timer as "dump_rpc_time" participant Logger as "Diagnostic Logger" Client->>JSONRPC : JSON-RPC Request JSONRPC->>Timer : Create timer instance Timer->>Logger : Log colored diagnostic data -Logger-->>Timer : Colored output : "data : ${data}" +Logger-->>Timer : Colored output : "data : ${data}" (ANSI Gray) Timer->>JSONRPC : Process request JSONRPC->>Timer : Handle completion alt Success Timer->>Logger : Log elapsed time and data -Logger-->>Client : Colored output : "elapsed : ${time} sec, data : ${data}" +Logger-->>Client : Colored output : "elapsed : ${time} sec, data : ${data}" (ANSI Gray) else Error Timer->>Logger : Log elapsed time, error, and data -Logger-->>Client : Colored output : "elapsed : ${time} sec, error : '${error}', data : ${data}" +Logger-->>Client : Colored output : "elapsed : ${time} sec, error : '${error}', data : ${data}" (ANSI Gray) end ``` @@ -761,17 +780,19 @@ The diagnostic logging system uses ANSI escape sequences for visual distinction: - **Gray Color Codes**: `\033[90m` for diagnostic information - **Reset Code**: `\033[0m` to restore normal terminal colors - **Timing Information**: Elapsed time measurements in seconds -- **Data Processing**: Request/response data visualization +- **Data Processing**: Request/response data visualization with enhanced readability - **Error Context**: Error messages with associated timing data +- **Improved Debugging**: Visual separation between normal application logs and diagnostic information ### Developer Experience Improvements - **Visual Separation**: Gray-colored diagnostic logs help distinguish from normal application logs - **Real-time Timing**: Precise timing measurements for request processing -- **Data Visibility**: Structured logging of request/response data -- **Error Tracking**: Comprehensive error logging with timing context +- **Data Visibility**: Structured logging of request/response data with enhanced formatting +- **Error Tracking**: Comprehensive error logging with timing context for better debugging - **Performance Insights**: Easy identification of slow operations through timing data +- **Enhanced Readability**: Improved log readability with color-coded diagnostic information -**Updated** Enhanced with fc::variant-based JSON parsing and comprehensive diagnostic logging. +**Updated** Enhanced with fc::variant-based JSON parsing and comprehensive diagnostic logging with ANSI gray color support for improved developer experience and debugging capabilities. **Section sources** - [plugin.cpp:258-288](file://plugins/json_rpc/plugin.cpp#L258-L288) @@ -786,7 +807,7 @@ Key strengths of the implementation include: - **Flexible Deployment**: Separate HTTP and WebSocket endpoints with independent configuration - **Production Ready**: Comprehensive error handling and graceful degradation - **Security Features**: Multiple layers of security including intelligent request classification for mutating APIs -- **Enhanced Diagnostics**: ANSI color-coded logging system for improved developer experience +- **Enhanced Diagnostics**: ANSI color-coded logging system with gray color support for improved developer experience - **Extensible Design**: Clean separation of concerns enabling easy maintenance and enhancement - **Performance Optimizations**: Major improvements to caching mechanism with id-independent keys and fc::variant-based JSON parsing - **Robust Request Processing**: Enhanced WebSocket/HTTP handler support with improved request classification and cache management using modernized std::bind bindings @@ -795,7 +816,8 @@ Key strengths of the implementation include: - **Enhanced Configuration Management**: Improved rpc-endpoint processing order with proper endpoint resolution and deprecation warnings - **Modernized C++11 Compatibility**: Efficient std::bind usage with std::placeholders for better C++11 compatibility and performance - **Efficient Thread Pool Management**: Modernized std::bind-based thread pool management with std::placeholders for optimal performance +- **Enhanced Logging System**: ANSI color-coded diagnostic logging with gray color support for improved debugging and monitoring capabilities -The plugin serves as an excellent foundation for building applications that require programmatic access to VIZ blockchain data and operations, with performance characteristics suitable for both private deployments and public API services. Its sophisticated caching mechanism with intelligent request classification, multi-threaded architecture with modernized std::bind bindings, comprehensive error handling, fc::variant-based JSON parsing, enhanced diagnostic logging, improved configuration management with rpc-endpoint processing order changes, and efficient std::bind-based thread pool management make it a production-ready solution for enterprise-grade blockchain applications. +The plugin serves as an excellent foundation for building applications that require programmatic access to VIZ blockchain data and operations, with performance characteristics suitable for both private deployments and public API services. Its sophisticated caching mechanism with intelligent request classification, multi-threaded architecture with modernized std::bind bindings, comprehensive error handling, fc::variant-based JSON parsing, enhanced diagnostic logging with ANSI gray color support, improved configuration management with rpc-endpoint processing order changes, and efficient std::bind-based thread pool management make it a production-ready solution for enterprise-grade blockchain applications. -**Updated** Enhanced conclusion reflecting the expanded implementation details, fc::variant-based JSON parsing, intelligent request classification system, selective caching mechanisms, enhanced WebSocket/HTTP handler support with modernized std::bind bindings, major performance optimizations including id-independent cache keys, comprehensive cache configuration options, improved configuration management with rpc-endpoint processing order changes, and modernized C++11 compatibility with std::bind and std::placeholders usage. \ No newline at end of file +**Updated** Enhanced conclusion reflecting the expanded implementation details, fc::variant-based JSON parsing, intelligent request classification system, selective caching mechanisms, enhanced WebSocket/HTTP handler support with modernized std::bind bindings, major performance optimizations including id-independent cache keys, comprehensive cache configuration options, improved configuration management with rpc-endpoint processing order changes, modernized C++11 compatibility with std::bind and std::placeholders usage, and enhanced diagnostic logging with ANSI gray color support for improved debugging capabilities. \ No newline at end of file diff --git a/.qoder/repowiki/en/content/Witness.md b/.qoder/repowiki/en/content/Witness.md index 840985e44f..4da8d852a5 100644 --- a/.qoder/repowiki/en/content/Witness.md +++ b/.qoder/repowiki/en/content/Witness.md @@ -24,11 +24,11 @@ ## Update Summary **Changes Made** -- Enhanced witness reward creation process with improved error handling and validation using find_account() checks -- Implemented preventive crash protection when witness account objects are missing from the database -- Added clear recovery guidance for shared memory corruption scenarios -- Strengthened witness reward distribution with comprehensive validation before creating vesting rewards -- Improved fault tolerance in witness reward processing across all hardfork versions +- Added new CLI option --fork-collision-timeout-blocks for configuring fork collision timeout behavior +- Implemented two-level fork collision resolution system with vote-weighted comparison and stuck-head timeout +- Enhanced _push_block() method with compare_fork_branches() function for intelligent fork switching +- Added automatic stale fork pruning after successful block application +- Improved fork collision handling with configurable timeout blocks parameter ## Table of Contents 1. [Introduction](#introduction) @@ -45,11 +45,11 @@ ## Introduction This document explains the Witness subsystem of the VIZ node implementation. It covers how witnesses are scheduled, how blocks are produced, how witness participation is monitored, and how the witness-related APIs expose information to clients. The focus is on the witness plugin (block production), the witness API plugin (read-only queries), and the underlying chain database that maintains witness state and schedules. -**Updated** Enhanced with improved witness reward creation process featuring comprehensive error handling, validation using find_account() checks, crash prevention mechanisms, and clear recovery procedures for database corruption scenarios. +**Updated** Enhanced with improved witness block production timing featuring 250ms interval optimization, deterministic slot time alignment, comprehensive fork collision detection, crash-safe NTP synchronization, strengthened witness reward creation validation with find_account() checks, new fork collision timeout configuration, two-level fork resolution system, enhanced fork database integration with compare_fork_branches() function, and automatic stale fork pruning capabilities. ## Project Structure The Witness functionality spans three primary areas: -- Witness plugin: Produces blocks and validates blocks posted by other witnesses. +- Witness plugin: Produces blocks and validates blocks posted by other witnesses with optimized timing. - Witness API plugin: Exposes witness-related read-only queries via JSON-RPC. - Chain database: Maintains witness objects, voting, scheduling, and participation metrics. @@ -59,20 +59,20 @@ subgraph "Node Binary" VIZD["vizd main
registers plugins"] end subgraph "Plugins" -WITNESS["Witness Plugin
block production"] +WITNESS["Witness Plugin
optimized block production
fork collision timeout: 21 blocks"] WAPI["Witness API Plugin
JSON-RPC queries"] SNAPSHOT["Snapshot Plugin
coordinated operations"] P2P["P2P Plugin
broadcast"] CHAIN["Chain Plugin
database access"] end subgraph "Chain Database" -DB["database.hpp/.cpp"] +DB["database.hpp/.cpp
compare_fork_branches()"] WITNESS_OBJ["witness_objects.hpp"] BPV_OBJ["chain_objects.hpp
block_post_validation_object"] -FORK_DB["fork_database.hpp/.cpp
enhanced fork collision detection"] +FORK_DB["fork_database.hpp/.cpp
enhanced fork collision detection
automatic stale pruning"] end subgraph "Time Synchronization" -TIME["Time Service
NTP synchronization"] +TIME["Time Service
NTP synchronization with 250ms ticks"] END VIZD --> WITNESS VIZD --> WAPI @@ -109,12 +109,14 @@ SNAPSHOT --> WITNESS ## Core Components - Witness Plugin - - Provides block production loop synchronized to wall-clock seconds. + - Provides optimized block production loop synchronized to 250ms intervals for deterministic slot time alignment. - Validates whether it is time to produce a block, checks participation thresholds, and signs blocks with configured private keys. - Broadcasts blocks and block post validations via the P2P plugin. - **Enhanced**: Implements forced NTP synchronization when timing issues are detected during block production attempts. - **Enhanced**: Implements comprehensive fork collision detection to prevent competing blocks at the same height. - **New**: Provides `is_witness_scheduled_soon()` method to check if any locally-controlled witnesses are scheduled to produce blocks in the upcoming 4 slots. + - **New**: Implements two-level fork collision resolution system with configurable timeout blocks parameter (--fork-collision-timeout-blocks). + - **New**: Integrates with enhanced fork database for automatic stale fork pruning after successful block application. - Witness API Plugin - Exposes read-only queries for active witnesses, schedule, individual witnesses, and counts. - Returns API-friendly objects derived from chain witness data. @@ -123,8 +125,10 @@ SNAPSHOT --> WITNESS - Manages block post validation objects and updates last irreversible block computation based on witness confirmations. - **Enhanced**: Provides enhanced fork database access with comprehensive querying capabilities for fork collision detection. - **Enhanced**: Implements comprehensive witness reward creation with find_account() validation to prevent crashes from missing account objects. + - **New**: Implements compare_fork_branches() function for intelligent fork weight comparison with +10% longer-chain bonus. + - **New**: Provides automatic stale fork pruning mechanism to remove competing blocks from dead forks. -**Updated** Added comprehensive error handling and validation for witness reward creation, including find_account() checks before creating vesting rewards, crash prevention mechanisms, and clear recovery procedures for database corruption scenarios. +**Updated** Added comprehensive error handling and validation for witness reward creation, including find_account() checks before creating vesting rewards, crash prevention mechanisms, clear recovery procedures for database corruption scenarios, new fork collision timeout configuration, two-level fork resolution system with vote-weighted comparison and stuck-head timeout, enhanced fork database querying capabilities, and automatic stale fork pruning after successful block application. **Section sources** - [witness.hpp:34-68](file://plugins/witness/include/graphene/plugins/witness/witness.hpp#L34-L68) @@ -135,16 +139,16 @@ SNAPSHOT --> WITNESS - [database.hpp:37-83](file://libraries/chain/include/graphene/chain/database.hpp#L37-L83) ## Architecture Overview -The Witness subsystem integrates tightly with the chain database and P2P layer. The witness plugin periodically evaluates conditions to produce a block, consults the database for witness scheduling and participation, and broadcasts the resulting block. The witness API plugin reads from the database to serve JSON-RPC queries. **New**: Other plugins can now coordinate with witness scheduling using the `is_witness_scheduled_soon()` method to avoid conflicts during critical operations. +The Witness subsystem integrates tightly with the chain database and P2P layer. The witness plugin periodically evaluates conditions to produce a block using optimized 250ms interval scheduling, consults the database for witness scheduling and participation, and broadcasts the resulting block. The witness API plugin reads from the database to serve JSON-RPC queries. **New**: Other plugins can now coordinate with witness scheduling using the `is_witness_scheduled_soon()` method to avoid conflicts during critical operations. -**Enhanced** The architecture now includes robust NTP time synchronization with automatic fallback mechanisms, crash-safe shutdown procedures, plugin coordination capabilities through the new scheduling method, comprehensive fork collision detection system, and enhanced witness reward creation with comprehensive validation and error handling. +**Enhanced** The architecture now includes robust NTP time synchronization with automatic fallback mechanisms, crash-safe shutdown procedures, plugin coordination capabilities through the new scheduling method, comprehensive fork collision detection system with two-level resolution, enhanced fork database querying capabilities, automatic stale fork pruning, and enhanced witness reward creation with comprehensive validation and error handling. ```mermaid sequenceDiagram -participant Timer as "Witness Impl
schedule_production_loop" +participant Timer as "Witness Impl
schedule_production_loop (250ms ticks)" participant NTP as "NTP Service
time synchronization" participant DB as "Chain Database" -participant ForkDB as "Fork Database
collision detection" +participant ForkDB as "Fork Database
collision detection
stale pruning" participant P2P as "P2P Plugin" participant Net as "Network" participant Snapshot as "Snapshot Plugin
coordination" @@ -154,8 +158,8 @@ alt timing issues detected Timer->>NTP : force_sync() NTP-->>Timer : updated time end -Timer->>Timer : compute next second boundary -Timer->>DB : get_slot_at_time(now) +Timer->>Timer : compute next 250ms boundary +Timer->>DB : get_slot_at_time(now + 250ms) DB-->>Timer : slot alt slot available Timer->>DB : get_scheduled_witness(slot) @@ -166,8 +170,27 @@ alt fork collision check Timer->>ForkDB : fetch_block_by_number(head_block_num + 1) ForkDB-->>Timer : existing blocks at height alt competing blocks exist +alt LEVEL 1 : Vote-weighted comparison +Timer->>DB : compare_fork_branches(competing_id, head_id) +DB-->>Timer : weight comparison result +alt weight comparison possible +alt competing fork heavier Timer->>NTP : force_sync() on fork collision Timer->>Timer : log fork collision and defer +else our fork heavier +Timer->>ForkDB : remove(competing_id) +Timer->>Timer : reset defer count +else tied/comparison impossible +alt LEVEL 2 : Stuck-head timeout +Timer->>Timer : fork_collision_defer_count++ +alt timeout exceeded (21 blocks) +Timer->>ForkDB : remove_blocks_by_number(head_block_num + 1) +Timer->>Timer : reset defer count +Timer->>Timer : fall through to produce +else timeout not exceeded +Timer->>NTP : force_sync() on fork collision +Timer->>Timer : log fork collision and defer +end else no competing blocks alt witness reward creation Timer->>DB : get_witness(current_witness) @@ -187,9 +210,9 @@ Timer->>NTP : update_ntp_time() on lag Timer->>Timer : log reason (sync, participation, key, lag) end else no slot -Timer->>Timer : wait until next slot +Timer->>Timer : wait until next 250ms tick end -Timer->>Timer : reschedule for next second +Timer->>Timer : reschedule for next 250ms tick Note over Snapshot : Check if witness scheduled soon
to coordinate operations Snapshot->>Timer : is_witness_scheduled_soon() Timer-->>Snapshot : true/false @@ -199,6 +222,7 @@ Timer-->>Snapshot : true/false - [witness.cpp:206-276](file://plugins/witness/witness.cpp#L206-L276) - [witness.cpp:278-423](file://plugins/witness/witness.cpp#L278-L423) - [witness.cpp:447-471](file://plugins/witness/witness.cpp#L447-L471) +- [witness.cpp:590-695](file://plugins/witness/witness.cpp#L590-L695) - [witness.cpp:263-266](file://plugins/witness/witness.cpp#L263-L266) - [witness.cpp:206-249](file://plugins/witness/witness.cpp#L206-L249) - [database.cpp:4317-4332](file://libraries/chain/database.cpp#L4317-L4332) @@ -206,6 +230,7 @@ Timer-->>Snapshot : true/false - [snapshot_plugin.cpp:1267-1276](file://plugins/snapshot/plugin.cpp#L1267-1276) - [database.cpp:2824-2839](file://libraries/chain/database.cpp#L2824-L2839) - [database.cpp:2871-2886](file://libraries/chain/database.cpp#L2871-L2886) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) ## Configuration Parameters @@ -228,12 +253,20 @@ The witness plugin configuration parameters have been updated with improved type - Command line: `--required-participation` - Config file: `required-participation` +- **fork-collision-timeout-blocks**: New parameter controlling fork collision timeout behavior + - Type: `uint32_t` + - Default: 21 blocks (one full witness round, 63 seconds) + - Purpose: Number of consecutive fork-collision deferrals before forcing production + - Command line: `--fork-collision-timeout-blocks` + - Config file: `fork-collision-timeout-blocks` + ### Configuration Defaults **Updated** The default values have been corrected for production stability: - **enable-stale-production**: Now defaults to `true` to improve node resilience during initial sync - **required-participation**: Defaults to 33% participation threshold for balanced security/performance +- **fork-collision-timeout-blocks**: Defaults to 21 blocks to match one full witness schedule round ### Configuration Processing @@ -245,19 +278,23 @@ Config["Configuration File"] --> Parser["Parameter Parser"] Parser --> TypeCheck{"Type Validation"} TypeCheck --> |enable-stale-production| BoolConvert["Convert to bool"] TypeCheck --> |required-participation| IntConvert["Convert to uint32_t
Scale by CHAIN_1_PERCENT"] +TypeCheck --> |fork-collision-timeout-blocks| TimeoutConvert["Convert to uint32_t
Default: 21 blocks"] BoolConvert --> Storage["Store in plugin state"] IntConvert --> Storage +TimeoutConvert --> Storage Storage --> Runtime["Runtime Usage"] ``` **Diagram sources** - [witness.cpp:125-133](file://plugins/witness/witness.cpp#L125-L133) - [witness.cpp:149-155](file://plugins/witness/witness.cpp#L149-L155) +- [witness.cpp:222-224](file://plugins/witness/witness.cpp#L222-L224) - [config.hpp:57-58](file://libraries/protocol/include/graphene/protocol/config.hpp#L57-L58) **Section sources** - [witness.cpp:125-133](file://plugins/witness/witness.cpp#L125-L133) - [witness.cpp:149-155](file://plugins/witness/witness.cpp#L149-L155) +- [witness.cpp:222-224](file://plugins/witness/witness.cpp#L222-L224) - [config.hpp:57-58](file://libraries/protocol/include/graphene/protocol/config.hpp#L57-L58) - [config.ini:99-103](file://share/vizd/config/config.ini#L99-L103) - [config_witness.ini:76-80](file://share/vizd/config/config_witness.ini#L76-L80) @@ -267,11 +304,12 @@ Storage --> Runtime["Runtime Usage"] ### Witness Plugin Responsibilities: - Parse configuration for witness names and private keys. -- Initialize NTP time synchronization. +- Initialize NTP time synchronization with 250ms interval optimization. - Run a production loop that: - - Waits until synchronized to the next second boundary. + - Waits until synchronized to the next 250ms boundary for deterministic slot alignment. - Checks participation thresholds and scheduling eligibility. - **Enhanced**: Performs comprehensive fork collision detection before block generation. + - **New**: Implements two-level fork collision resolution system with configurable timeout. - Generates and broadcasts blocks when eligible. - Signs and broadcasts block post validations when available. - **Enhanced**: Forces NTP synchronization when timing issues or fork collisions are detected during production attempts. @@ -284,21 +322,31 @@ Key behaviors: - **Enhanced**: Automatic NTP synchronization on lag detection and fork collision to prevent timing-related production failures. - **Enhanced**: Comprehensive fork collision detection prevents competing blocks at the same height. - **New**: Efficient slot checking across 4 upcoming slots to detect witness scheduling conflicts. +- **New**: Two-level fork collision resolution with vote-weighted comparison and stuck-head timeout mechanism. +- **New**: Configurable fork collision timeout blocks parameter for fine-tuning fork resolution behavior. ```mermaid flowchart TD Start(["Startup"]) --> InitKeys["Load witness names and private keys"] -InitKeys --> InitNTP["Initialize NTP time service"] -InitNTP --> SyncCheck["Wait until synchronized to slot"] +InitKeys --> InitNTP["Initialize NTP time service with 250ms ticks"] +InitNTP --> InitTimeout["Initialize fork-collision-timeout-blocks (21)"] +InitTimeout --> SyncCheck["Wait until synchronized to 250ms boundary"] SyncCheck --> SlotCheck{"Slot available?"} -SlotCheck --> |No| WaitNext["Sleep until next slot"] --> SyncCheck +SlotCheck --> |No| WaitNext["Sleep until next 250ms tick"] --> SyncCheck SlotCheck --> |Yes| Scheduled["Get scheduled witness and slot time"] Scheduled --> Participation{"Participation >= threshold?"} Participation --> |No| LogLowParticipation["Log low participation"] --> Resched["Reschedule"] --> SyncCheck Participation --> |Yes| TimeCheck{"Within 500ms window?"} TimeCheck --> |No| LogLag["Log lag"] --> ForceSync["Force NTP sync"] --> Resched TimeCheck --> |Yes| ForkCollision{"Fork collision check"} -ForkCollision --> |Competing blocks| LogCollision["Log fork collision"] --> ForceSync --> Resched +ForkCollision --> |Competing blocks| Level1["LEVEL 1: Vote-weighted comparison"] +Level1 --> |Comparison possible| WeightCheck{"Weight comparison"} +WeightCheck --> |Our fork heavier| RemoveComp["Remove competing block"] --> ResetCount["Reset defer count"] --> SignCheck +WeightCheck --> |Competing fork heavier| LogCollision["Log fork collision"] --> ForceSync --> Resched +WeightCheck --> |Tied/Impossible| Level2["LEVEL 2: Stuck-head timeout"] +Level2 --> TimeoutCheck{"Defer count > timeout (21)?"} +TimeoutCheck --> |Yes| PruneFork["Prune stale competing blocks"] --> ResetCount +TimeoutCheck --> |No| LogCollision2["Log fork collision"] --> ForceSync --> Resched ForkCollision --> |No competing blocks| SignCheck{"Private key available?"} SignCheck --> |No| LogNoKey["Log missing key"] --> Resched SignCheck --> |Yes| RewardValidation{"Validate witness account"} @@ -311,6 +359,7 @@ Produce --> Resched - [witness.cpp:206-276](file://plugins/witness/witness.cpp#L206-L276) - [witness.cpp:278-423](file://plugins/witness/witness.cpp#L278-L423) - [witness.cpp:447-471](file://plugins/witness/witness.cpp#L447-L471) +- [witness.cpp:590-695](file://plugins/witness/witness.cpp#L590-L695) - [witness.cpp:263-266](file://plugins/witness/witness.cpp#L263-L266) **Section sources** @@ -320,6 +369,7 @@ Produce --> Resched - [witness.cpp:206-276](file://plugins/witness/witness.cpp#L206-L276) - [witness.cpp:278-423](file://plugins/witness/witness.cpp#L278-L423) - [witness.cpp:447-471](file://plugins/witness/witness.cpp#L447-L471) +- [witness.cpp:590-695](file://plugins/witness/witness.cpp#L590-L695) - [witness.cpp:206-249](file://plugins/witness/witness.cpp#L206-L249) ### New: Enhanced Fork Collision Detection System @@ -331,16 +381,81 @@ The witness plugin now implements a comprehensive fork collision detection syste - Prevents block production when fork collision is detected - Automatically triggers NTP synchronization to resolve timing issues +**Two-Level Resolution System**: +- **LEVEL 1: Vote-weighted comparison** (HF12+) + - Uses compare_fork_branches() function to calculate vote weights for both forks + - Applies +10% bonus to longer chain for fairness + - Removes losing fork or defers production based on weight comparison +- **LEVEL 2: Stuck-head timeout** (All versions) + - Tracks consecutive deferral count for fork collisions + - Forces production after timeout exceeds configured blocks (default: 21) + - Removes all competing blocks at the target height after timeout + **Implementation Details**: - Uses `db.get_fork_db().fetch_block_by_number(db.head_block_num() + 1)` to query all blocks at the target height - Analyzes each existing block to determine if it was produced by a different witness with a different parent - Captures detailed information including height and scheduled witness for logging - Returns `block_production_condition::fork_collision` to defer production +- Integrates with compare_fork_branches() function for intelligent fork switching decisions **Section sources** - [witness.cpp:447-471](file://plugins/witness/witness.cpp#L447-L471) +- [witness.cpp:590-695](file://plugins/witness/witness.cpp#L590-L695) - [fork_database.hpp:73](file://libraries/chain/include/graphene/chain/fork_database.hpp#L73) - [fork_database.cpp:151-166](file://libraries/chain/fork_database.cpp#L151-166) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) + +### New: Enhanced Fork Database Integration with Automatic Stale Pruning +The fork database now includes automatic stale fork pruning capabilities to maintain database efficiency and prevent memory bloat. + +**Automatic Stale Pruning Mechanism**: +- Executes after successful block application in _push_block() method +- Identifies competing blocks at the same height that are no longer part of the active chain +- Removes blocks whose parent is no longer in fork_db (indicating dead fork) +- Prevents accumulation of stale competing blocks in the fork database + +**Pruning Logic**: +- Called after new block is successfully applied +- Fetches all competing blocks at new_block.block_num() +- Checks if competing block has unknown parent (not in fork_db) +- Removes stale competing blocks with log messages for debugging +- Preserves legitimate fork switching scenarios by only removing truly dead forks + +**Integration Points**: +- Triggered in database::_push_block() after successful block application +- Works in conjunction with fork collision detection system +- Supports both HF12+ vote-weighted comparisons and pre-HF12 longest-chain rules +- Maintains fork database integrity and performance + +**Section sources** +- [database.cpp:1456-1471](file://libraries/chain/database.cpp#L1456-L1471) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) + +### New: Enhanced compare_fork_branches() Function +The database now includes a sophisticated compare_fork_branches() function that intelligently evaluates fork weight and chain length for decision-making. + +**Function Capabilities**: +- Calculates total vote weight for each fork branch using witness objects +- Excludes emergency witness account from weight calculations +- Applies +10% bonus to longer chain to encourage network support +- Handles tied scenarios and comparison impossibility gracefully +- Returns 1 (branch_a heavier), -1 (branch_b heavier), or 0 (tied/impossible) + +**Weight Calculation Algorithm**: +- Iterates through branch items to accumulate witness vote weights +- Uses flat_set to avoid counting the same witness multiple times +- Skips emergency witness account for fairness +- Handles exceptions during witness lookup gracefully +- Returns 0 when comparison cannot be performed + +**Integration with Fork Resolution**: +- Used by witness plugin for vote-weighted fork comparisons +- Supports HF12+ consensus rules with longer-chain bonus +- Provides fallback for pre-HF12 longest-chain scenarios +- Enables intelligent fork switching decisions + +**Section sources** +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) ### New: is_witness_scheduled_soon() Method The `is_witness_scheduled_soon()` method provides a crucial coordination mechanism for other plugins to avoid conflicts during critical operations. @@ -351,7 +466,7 @@ The `is_witness_scheduled_soon()` method provides a crucial coordination mechani **Implementation Details**: - Validates that the witness plugin has been initialized with witnesses and private keys -- Calculates the current slot based on synchronized time plus 500ms buffer +- Calculates the current slot based on synchronized time plus 250ms buffer for deterministic alignment - Iterates through slots 0-3 positions ahead to check for scheduled witnesses - Verifies that the scheduled witness belongs to the locally-controlled set - Confirms the witness has a valid signing key (not disabled) @@ -470,6 +585,8 @@ The database maintains: - Block post validation objects used to coordinate cross-witness validation. - **Enhanced**: Direct fork database access through `get_fork_db()` method for comprehensive fork collision detection. - **Enhanced**: Comprehensive witness reward creation with find_account() validation to prevent crashes from missing account objects. +- **New**: Enhanced fork database with automatic stale fork pruning after successful block application. +- **New**: Sophisticated compare_fork_branches() function for intelligent fork weight comparison. Behavior highlights: - Computes witness participation rate and enforces minimum participation thresholds. @@ -477,11 +594,15 @@ Behavior highlights: - Recomputes witness schedule and shuffles according to virtual time and votes. - **Enhanced**: Provides comprehensive fork database querying capabilities for fork collision detection. - **Enhanced**: Implements comprehensive validation for witness reward creation across all hardfork versions. +- **New**: Automatic stale fork pruning removes competing blocks from dead forks to maintain database efficiency. +- **New**: Intelligent fork comparison with vote-weighted calculations and longer-chain bonuses. **Enhanced Fork Database Capabilities**: - `fetch_block_by_number()`: Retrieves all blocks at a specific height (handles multiple forks) - `fetch_block_on_main_branch_by_number()`: Resolves ambiguity between competing blocks - `fetch_branch_from()`: Provides branch comparison for fork resolution +- **New**: `remove_blocks_by_number()`: Removes all blocks at a specific height for stale fork pruning +- **New**: `compare_fork_branches()`: Intelligent fork weight comparison with +10% longer-chain bonus ```mermaid classDiagram @@ -529,6 +650,8 @@ class fork_database { +fetch_block_by_number() +fetch_block_on_main_branch_by_number() +fetch_branch_from() ++remove_blocks_by_number() ++compare_fork_branches() } witness_object --> witness_schedule_object : "referenced by schedule" block_post_validation_object --> witness_schedule_object : "mentions scheduled witnesses" @@ -541,6 +664,8 @@ fork_database --> witness_schedule_object : "tracks competing blocks" - [chain_objects.hpp:174-201](file://libraries/chain/include/graphene/chain/chain_objects.hpp#L174-L201) - [fork_database.hpp:53-81](file://libraries/chain/include/graphene/chain/fork_database.hpp#L53-L81) - [fork_database.hpp:90-95](file://libraries/chain/include/graphene/chain/fork_database.hpp#L90-L95) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) **Section sources** - [witness_objects.hpp:27-132](file://libraries/chain/include/graphene/chain/witness_objects.hpp#L27-L132) @@ -552,12 +677,14 @@ fork_database --> witness_schedule_object : "tracks competing blocks" - [database.hpp:492-499](file://libraries/chain/include/graphene/chain/database.hpp#L492-L499) - [fork_database.hpp:73](file://libraries/chain/include/graphene/chain/fork_database.hpp#L73) - [fork_database.cpp:151-166](file://libraries/chain/fork_database.cpp#L151-166) +- [fork_database.cpp:269-274](file://libraries/chain/fork_database.cpp#L269-L274) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) ### Enhanced Time Synchronization Service **New Section** The witness system now includes robust time synchronization capabilities managed through the time service layer with enhanced logging for fork collision detection and comprehensive error handling for witness reward creation. Responsibilities: -- Provide precise wall-clock time synchronization using NTP. +- Provide precise wall-clock time synchronization using NTP with 250ms interval optimization. - Handle crash-safe shutdown procedures for NTP services. - Monitor and report significant time synchronization changes. - Enable forced synchronization on timing issues and fork collisions. @@ -565,7 +692,7 @@ Responsibilities: - **Enhanced**: Comprehensive error handling for witness reward creation with find_account() validation. Key behaviors: -- Thread-safe NTP service initialization and management. +- Thread-safe NTP service initialization and management with 250ms tick scheduling. - Automatic fallback mechanisms for NTP server failures. - Significant delta change detection (100ms threshold) for monitoring. - Graceful shutdown with proper resource cleanup. @@ -583,9 +710,10 @@ Key behaviors: - The witness plugin depends on: - Chain plugin for database access and block generation. - P2P plugin for broadcasting blocks and block post validations. - - **Enhanced**: NTP time service for precise slot alignment and timing validation. - - **Enhanced**: Fork database for comprehensive fork collision detection. + - **Enhanced**: NTP time service for precise 250ms slot alignment and timing validation. + - **Enhanced**: Fork database for comprehensive fork collision detection and stale pruning. - **New**: External plugins can depend on the `is_witness_scheduled_soon()` method for coordination. + - **New**: Enhanced fork database with compare_fork_branches() function for intelligent fork switching. - The witness API plugin depends on: - Chain plugin for read-only queries. - JSON-RPC plugin for transport. @@ -594,20 +722,23 @@ Key behaviors: - Block post validation objects for cross-witness coordination. - **Enhanced**: Fork database for tracking competing blocks and fork resolution. - **Enhanced**: Comprehensive validation for witness reward creation with find_account() checks. + - **New**: Automatic stale fork pruning mechanism for database efficiency. + - **New**: Enhanced fork comparison functions for intelligent chain selection. ```mermaid graph LR WITNESS["Witness Plugin"] --> CHAIN["Chain Plugin"] WITNESS --> P2P["P2P Plugin"] WITNESS --> TIME["Time Service"] -WITNESS --> FORK_DB["Fork Database"] +WITNESS --> FORK_DB["Fork Database
enhanced with stale pruning"] WAPI["Witness API Plugin"] --> CHAIN SNAPSHOT["Snapshot Plugin"] --> WITNESS -CHAIN --> DB["database.hpp/.cpp"] +CHAIN --> DB["database.hpp/.cpp
compare_fork_branches()"] DB --> WITNESS_OBJ["witness_objects.hpp"] DB --> BPV_OBJ["chain_objects.hpp"] DB --> FORK_DB["fork_database.hpp/.cpp"] DB --> FIND_ACCOUNT["find_account() validation"] +DB --> COMPARE_FORK["compare_fork_branches()"] TIME --> NTP["NTP Service"] ``` @@ -621,6 +752,7 @@ TIME --> NTP["NTP Service"] - [fork_database.hpp:53-81](file://libraries/chain/include/graphene/chain/fork_database.hpp#L53-L81) - [time.cpp:13-53](file://libraries/time/time.cpp#L13-L53) - [snapshot_plugin.cpp:1267-1276](file://plugins/snapshot/plugin.cpp#L1267-1276) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) **Section sources** - [witness.cpp:59-118](file://plugins/witness/witness.cpp#L59-L118) @@ -628,7 +760,7 @@ TIME --> NTP["NTP Service"] - [database.hpp:37-83](file://libraries/chain/include/graphene/chain/database.hpp#L37-L83) ## Performance Considerations -- Production loop alignment: The loop waits until the next second boundary and sleeps for at least 50 ms to avoid excessive polling, reducing CPU overhead. +- Production loop alignment: The loop waits until the next 250ms boundary and sleeps for at least 50ms to avoid excessive polling, reducing CPU overhead and providing deterministic slot time alignment. - Retry on block generation failures: On exceptions during block generation, pending transactions are cleared and the generation is retried once to mitigate transient issues. - Participation threshold: Ensures sufficient witness participation before producing blocks, preventing premature production on minority forks. - Virtual scheduling: Uses virtual time and votes to fairly distribute block production slots among witnesses, avoiding hot-spotting and ensuring proportional representation. @@ -639,8 +771,14 @@ TIME --> NTP["NTP Service"] - **Enhanced**: Fork database querying uses efficient multi-index containers for fast block lookup and competition detection. - **Enhanced**: find_account() validation adds minimal overhead while providing comprehensive protection against database corruption scenarios. - **Enhanced**: Comprehensive error handling in witness reward creation prevents crashes and ensures graceful degradation during critical failures. +- **New**: 250ms interval optimization provides precise timing alignment for deterministic consensus maintenance. +- **New**: Deterministic slot time calculation ensures consistent block production timing across all witness nodes. +- **New**: Two-level fork collision resolution system provides intelligent fork switching decisions with configurable timeout behavior. +- **New**: Automatic stale fork pruning prevents database bloat and maintains fork database efficiency. +- **New**: Enhanced compare_fork_branches() function provides intelligent fork weight comparison with +10% longer-chain bonus. +- **New**: Configurable fork collision timeout blocks parameter allows fine-tuning of fork resolution behavior for different network conditions. -**Updated** Added performance considerations for the corrected configuration parameter types, fork collision detection system, enhanced fork database querying capabilities, and comprehensive witness reward creation validation. +**Updated** Added performance considerations for the corrected configuration parameter types, fork collision detection system, enhanced fork database querying capabilities, comprehensive witness reward creation validation, 250ms interval optimization, deterministic slot time alignment, new fork collision timeout configuration, two-level fork resolution system with intelligent decision-making, automatic stale fork pruning for database efficiency, enhanced fork comparison functions, and configurable timeout parameters for optimal network performance. ## Troubleshooting Guide Common issues and resolutions: @@ -654,7 +792,7 @@ Common issues and resolutions: - Symptom: Logs indicate inability to sign block due to missing private key. - Resolution: Verify private key is provided in the correct WIF format and matches the witness signing key. - Timing lag - - Symptom: Blocks not produced due to waking up outside the 500 ms window. + - Symptom: Blocks not produced due to waking up outside the 500ms window. - Resolution: Improve system clock accuracy and reduce latency; consider enabling stale production only during initial sync. - **Enhanced**: System automatically forces NTP synchronization when timing issues are detected. - Consecutive block production disabled @@ -663,6 +801,14 @@ Common issues and resolutions: - **New**: Fork collision detection issues - Symptom: Blocks not produced despite good participation and timing, frequent "deferred block production due to fork collision" messages. - Resolution: Check network connectivity and witness coordination; verify fork database integrity; monitor NTP synchronization quality. + - **New**: Check fork-collision-timeout-blocks configuration (default: 21 blocks) for appropriate timeout settings. + - **New**: Monitor fork collision deferral count and timeout behavior for proper fork resolution. +- **New**: Two-level fork collision resolution problems + - Symptom: Fork collision handling not working as expected with vote-weighted comparisons. + - Resolution: Verify HF12+ compatibility for vote-weighted comparisons; check compare_fork_branches() function behavior; ensure fork database has both forks for comparison. +- **New**: Stale fork pruning issues + - Symptom: Memory usage growing or fork database becoming bloated with competing blocks. + - Resolution: Verify automatic stale fork pruning is working; check fork database remove_blocks_by_number() function; ensure proper parent-child relationships in fork database. - **New**: Witness scheduling conflicts - Symptom: Other plugins experience conflicts with witness operations. - Resolution: Use `is_witness_scheduled_soon()` method to coordinate operations and defer critical tasks until witness production is complete. @@ -677,18 +823,18 @@ Common issues and resolutions: - Resolution: Verify configuration parameters use correct types: - `enable-stale-production`: boolean value (`true`/`false`) - `required-participation`: integer value scaled by `CHAIN_1_PERCENT` (e.g., 33 for 33%) + - `fork-collision-timeout-blocks`: integer value (default: 21 blocks) - Check configuration files for proper syntax and values - **Enhanced**: Fork collision detection logging - Symptom: Frequent fork collision warnings with "Collision parents at block" messages. - Resolution: Monitor fork database for competing blocks; check witness coordination; verify network stability; ensure proper NTP synchronization. -- **New**: Witness reward creation failures - - Symptom: Critical error messages "Witness ${w} account object MISSING from database!" followed by FC_ASSERT requiring restart. - - Resolution: - - Check database integrity and shared memory consistency - - Verify witness account exists in account index - - Review detailed error logs with witness metadata (signing key, missed blocks, penalties) - - Restart node with replay option to rebuild database state - - Monitor account index size for consistency + - **New**: Check fork collision deferral count and timeout behavior for proper resolution. +- **New**: Enhanced fork comparison failures + - Symptom: compare_fork_branches() function returning 0 (cannot compare) frequently. + - Resolution: Verify both fork tips are in fork database; check witness objects availability; ensure proper fork database state. +- **New**: Automatic stale pruning not working + - Symptom: Fork database grows with stale competing blocks. + - Resolution: Verify _push_block() method is calling stale pruning; check fork database state; ensure proper parent-child relationships. - **New**: Database corruption detection - Symptom: Multiple critical error messages during witness reward processing with account validation failures. - Resolution: @@ -697,8 +843,14 @@ Common issues and resolutions: - Verify database backup and recovery procedures - Monitor for hardware issues affecting shared memory - Review system logs for memory corruption indicators +- **New**: 250ms interval timing issues + - Symptom: Blocks not produced at expected 250ms boundaries or inconsistent timing. + - Resolution: Verify system clock precision; check for high system load causing timing delays; ensure NTP service is functioning properly; review system resources for adequate performance. +- **New**: Configurable timeout parameter issues + - Symptom: Fork collision timeout not triggering as expected or triggering too frequently. + - Resolution: Adjust fork-collision-timeout-blocks parameter based on network conditions; monitor fork collision deferral count; verify timeout logic is working correctly. -**Updated** Added troubleshooting information for fork collision detection, witness scheduling conflicts, the new coordination mechanisms, configuration parameter type issues, comprehensive witness reward creation validation, and database corruption scenarios with clear recovery procedures. +**Updated** Added troubleshooting information for fork collision detection, witness scheduling conflicts, the new coordination mechanisms, configuration parameter type issues, comprehensive witness reward creation validation, database corruption scenarios with clear recovery procedures, 250ms interval timing optimization issues, new fork collision timeout configuration, two-level fork resolution system, automatic stale fork pruning, enhanced fork comparison functions, and configurable timeout parameter tuning. **Section sources** - [witness.cpp:171-192](file://plugins/witness/witness.cpp#L171-L192) @@ -707,13 +859,16 @@ Common issues and resolutions: - [witness.cpp:263-266](file://plugins/witness/witness.cpp#L263-L266) - [witness.cpp:206-249](file://plugins/witness/witness.cpp#L206-L249) - [witness.cpp:447-471](file://plugins/witness/witness.cpp#L447-L471) +- [witness.cpp:590-695](file://plugins/witness/witness.cpp#L590-L695) - [time.cpp:36-39](file://libraries/time/time.cpp#L36-L39) - [database.cpp:2826-2836](file://libraries/chain/database.cpp#L2826-L2836) - [database.cpp:2873-2883](file://libraries/chain/database.cpp#L2873-L2883) +- [database.cpp:1456-1471](file://libraries/chain/database.cpp#L1456-L1471) +- [database.cpp:1223-1267](file://libraries/chain/database.cpp#L1223-L1267) ## Conclusion The Witness subsystem integrates tightly with the chain database and P2P layer to ensure timely, secure, and fair block production. The witness plugin manages production loops, participation thresholds, and broadcasting, while the witness API plugin exposes essential read-only data to clients. -**Enhanced** The system now includes robust NTP time synchronization with automatic fallback mechanisms, crash-safe shutdown procedures, strengthened timing-related production failure prevention, comprehensive fork collision detection system, and enhanced fork database querying capabilities. **New** The addition of the `is_witness_scheduled_soon()` method enables sophisticated plugin coordination, allowing other plugins to avoid conflicts during critical operations like snapshot creation. **Updated** The configuration parameter system has been improved with corrected defaults and proper type handling for better reliability and performance. **Enhanced** The witness reward creation process has been significantly strengthened with comprehensive error handling, find_account() validation, crash prevention mechanisms, and clear recovery procedures for database corruption scenarios. This enhancement makes the witness system more resilient to various operational challenges while providing better integration points for the broader VIZ ecosystem, comprehensive protection against shared memory corruption, and robust validation mechanisms for witness reward distribution across all hardfork versions. +**Enhanced** The system now includes robust NTP time synchronization with automatic fallback mechanisms, crash-safe shutdown procedures, strengthened timing-related production failure prevention, comprehensive fork collision detection system with two-level resolution, and enhanced fork database querying capabilities. **New** The addition of the `is_witness_scheduled_soon()` method enables sophisticated plugin coordination, allowing other plugins to avoid conflicts during critical operations like snapshot creation. **Updated** The configuration parameter system has been improved with corrected defaults and proper type handling for better reliability and performance. **Enhanced** The witness reward creation process has been significantly strengthened with comprehensive error handling, find_account() validation, crash prevention mechanisms, and clear recovery procedures for database corruption scenarios. **New** The 250ms interval optimization provides precise timing alignment for deterministic consensus maintenance, while the enhanced performance characteristics ensure better system responsiveness and consensus stability. **New** The two-level fork collision resolution system with configurable timeout provides intelligent fork switching decisions, automatic stale fork pruning maintains database efficiency, enhanced fork comparison functions enable sophisticated chain selection, and configurable timeout parameters allow fine-tuning for different network conditions. This enhancement makes the witness system more resilient to various operational challenges while providing better integration points for the broader VIZ ecosystem, comprehensive protection against shared memory corruption, robust validation mechanisms for witness reward distribution across all hardfork versions, optimized timing for improved consensus maintenance, intelligent fork resolution with configurable behavior, and automatic database maintenance for optimal performance. -Together, they form a robust foundation for witness operations in the VIZ node, with improved time synchronization, crash handling capabilities, enhanced plugin coordination features, comprehensive fork collision detection, reliable configuration parameter processing, strengthened fork database querying for detecting competing blocks at the same height, and comprehensive witness reward creation validation with crash prevention and recovery procedures. \ No newline at end of file +Together, they form a robust foundation for witness operations in the VIZ node, with improved time synchronization, crash handling capabilities, enhanced plugin coordination features, comprehensive fork collision detection, reliable configuration parameter processing, strengthened fork database querying for detecting competing blocks at the same height, comprehensive witness reward creation validation with crash prevention and recovery procedures, 250ms interval optimization for deterministic slot time alignment, enhanced performance characteristics for better consensus maintenance, intelligent fork resolution system, automatic stale fork pruning, and configurable timeout parameters for optimal network behavior. \ No newline at end of file diff --git a/.qoder/repowiki/en/meta/repowiki-metadata.json b/.qoder/repowiki/en/meta/repowiki-metadata.json index 89eba67c6c..f580fab3fc 100644 --- a/.qoder/repowiki/en/meta/repowiki-metadata.json +++ b/.qoder/repowiki/en/meta/repowiki-metadata.json @@ -1 +1 @@ -{"code_snippets":[{"id":"a6554c3e99a338d898b0507a3a66ff28","path":"CMakeLists.txt","line_range":"210-213","gmt_create":"2026-04-23T06:46:47.4165582+04:00","gmt_modified":"2026-04-23T06:46:47.4165582+04:00"},{"id":"b4276d0c8cc31d088a1ff447673b57a3","path":"thirdparty/CMakeLists.txt","line_range":"1-3","gmt_create":"2026-04-23T06:46:47.4165582+04:00","gmt_modified":"2026-04-23T06:46:47.4165582+04:00"},{"id":"95a23068f3cf8efeb2f469b3762d202c","path":"libraries/CMakeLists.txt","line_range":"1-8","gmt_create":"2026-04-23T06:46:47.4165582+04:00","gmt_modified":"2026-04-23T06:46:47.4165582+04:00"},{"id":"eb47238d4d9c0bc7677c0adbb5315621","path":"plugins/CMakeLists.txt","line_range":"1-12","gmt_create":"2026-04-23T06:46:47.4165582+04:00","gmt_modified":"2026-04-23T06:46:47.4165582+04:00"},{"id":"f82191fd008239ba9828aa2407463469","path":"programs/CMakeLists.txt","line_range":"1-8","gmt_create":"2026-04-23T06:46:47.4165582+04:00","gmt_modified":"2026-04-23T06:46:47.4165582+04:00"},{"id":"0b638cb0339fd1defe7fb60a33538909","path":".gitmodules","line_range":"1-13","gmt_create":"2026-04-23T06:46:47.4170999+04:00","gmt_modified":"2026-04-23T06:46:47.4170999+04:00"},{"id":"1b6a9427d3c622d5192d3935a64543bd","path":"CMakeLists.txt","line_range":"1-271","gmt_create":"2026-04-23T06:46:47.4176164+04:00","gmt_modified":"2026-04-23T06:46:47.4176164+04:00"},{"id":"d302333235c57587186737aa4dca15e8","path":"documentation/building.md","line_range":"3-212","gmt_create":"2026-04-23T06:46:47.4176164+04:00","gmt_modified":"2026-04-23T06:46:47.4176164+04:00"},{"id":"cb84fa9cda98d6d0c8dae3b261ed7a70","path":"programs/vizd/CMakeLists.txt","line_range":"16-49","gmt_create":"2026-04-23T06:46:47.4176164+04:00","gmt_modified":"2026-04-23T06:46:47.4176164+04:00"},{"id":"b8c001209973c30395b37fb2da7d01da","path":"CMakeLists.txt","line_range":"56-89","gmt_create":"2026-04-23T06:46:47.4191602+04:00","gmt_modified":"2026-04-23T06:46:47.4191602+04:00"},{"id":"3dc9c9dd6a7323c7679ba87de581b271","path":"CMakeLists.txt","line_range":"196-208","gmt_create":"2026-04-23T06:46:47.4191602+04:00","gmt_modified":"2026-04-23T06:46:47.4191602+04:00"},{"id":"6bfcc19ec644ada767dba2b4cd16b384","path":"CMakeLists.txt","line_range":"91-202","gmt_create":"2026-04-23T06:46:47.4191602+04:00","gmt_modified":"2026-04-23T06:46:47.4191602+04:00"},{"id":"daf69b54ca31d1461ddc9b5b7229eb44","path":"documentation/building.md","line_range":"25-212","gmt_create":"2026-04-23T06:46:47.4191602+04:00","gmt_modified":"2026-04-23T06:46:47.4191602+04:00"},{"id":"52e6ffd6a8494783d8744074cebd0336","path":"thirdparty/fc/CMakeLists.txt","line_range":"115-130","gmt_create":"2026-04-23T06:46:47.4196765+04:00","gmt_modified":"2026-04-23T06:46:47.4196765+04:00"},{"id":"c8c2228bb696aed9de796ce6fc2d85a7","path":"thirdparty/chainbase/CMakeLists.txt","line_range":"28","gmt_create":"2026-04-23T06:46:47.420195+04:00","gmt_modified":"2026-04-23T06:46:47.420195+04:00"},{"id":"7535e2fd9b45a698e5e59716482d28bf","path":"thirdparty/appbase/CMakeLists.txt","line_range":"21","gmt_create":"2026-04-23T06:46:47.420195+04:00","gmt_modified":"2026-04-23T06:46:47.420195+04:00"},{"id":"ca9eea091b8db2ef86264e42e38ca6ee","path":"thirdparty/fc/.gitmodules","line_range":"1-10","gmt_create":"2026-04-23T06:46:47.420195+04:00","gmt_modified":"2026-04-23T06:46:47.420195+04:00"},{"id":"3dc1dfd57ce8f8f0ddb0903ecc4757e0","path":"thirdparty/fc/CMakeLists.txt","line_range":"51-101","gmt_create":"2026-04-23T06:46:47.420718+04:00","gmt_modified":"2026-04-23T06:46:47.420718+04:00"},{"id":"4be9aed880930cc1db12f5577deb6b36","path":"CMakeLists.txt","line_range":"97-104","gmt_create":"2026-04-23T06:46:47.4212357+04:00","gmt_modified":"2026-04-23T06:46:47.4212357+04:00"},{"id":"c7aa1ccb058236d7733e705cdb185dd8","path":"CMakeLists.txt","line_range":"160-183","gmt_create":"2026-04-23T06:46:47.4212357+04:00","gmt_modified":"2026-04-23T06:46:47.4212357+04:00"},{"id":"9c24cd1c93b483ba1aede76c89f958b2","path":"CMakeLists.txt","line_range":"106-110","gmt_create":"2026-04-23T06:46:47.4212357+04:00","gmt_modified":"2026-04-23T06:46:47.4212357+04:00"},{"id":"f565e4a16509997a202ecb545fdd1d94","path":"programs/vizd/CMakeLists.txt","line_range":"10-14","gmt_create":"2026-04-23T06:46:47.4212357+04:00","gmt_modified":"2026-04-23T06:46:47.4212357+04:00"},{"id":"73b1b23eeea50d8b237bb80c8dc5bdc3","path":"programs/vizd/CMakeLists.txt","line_range":"1-58","gmt_create":"2026-04-23T06:46:47.4217501+04:00","gmt_modified":"2026-04-23T06:46:47.4217501+04:00"},{"id":"a151de1bba876645d0074033f71f3cd0","path":".travis.yml","line_range":"1-46","gmt_create":"2026-04-23T06:46:47.4217501+04:00","gmt_modified":"2026-04-23T06:46:47.4217501+04:00"},{"id":"b93b1b04a108f6289a1e7bad2a4ed2fb","path":".github/workflows/docker-main.yml","line_range":"1-41","gmt_create":"2026-04-23T06:46:47.4222848+04:00","gmt_modified":"2026-04-23T06:46:47.4222848+04:00"},{"id":"ee015920fc0fc039247a7d3b4eac89ed","path":"share/vizd/docker/Dockerfile-testnet","line_range":"46-54","gmt_create":"2026-04-23T06:46:47.4222848+04:00","gmt_modified":"2026-04-23T06:46:47.4222848+04:00"},{"id":"19f7d5497751e6e4be7ea65ce7019aa9","path":"share/vizd/docker/Dockerfile-lowmem","line_range":"45-53","gmt_create":"2026-04-23T06:46:47.4228034+04:00","gmt_modified":"2026-04-23T06:46:47.4228034+04:00"},{"id":"3d840e85c97e5b7fc8d3d7945d087608","path":"share/vizd/docker/Dockerfile-mongo","line_range":"74-82","gmt_create":"2026-04-23T06:46:47.4228034+04:00","gmt_modified":"2026-04-23T06:46:47.4228034+04:00"},{"id":"032cb0f8e6385f71f41d9c37e66b560c","path":"CMakeLists.txt","line_range":"147-156","gmt_create":"2026-04-23T06:46:47.4238267+04:00","gmt_modified":"2026-04-23T06:46:47.4238267+04:00"},{"id":"6223bbabeb98e81094bb095976dbb9b3","path":"CMakeLists.txt","line_range":"186-188","gmt_create":"2026-04-23T06:46:47.424344+04:00","gmt_modified":"2026-04-23T06:46:47.424344+04:00"},{"id":"e368f0f4b37dd155690ceb490ab0fb6e","path":"CMakeLists.txt","line_range":"190-194","gmt_create":"2026-04-23T06:46:47.424344+04:00","gmt_modified":"2026-04-23T06:46:47.424344+04:00"},{"id":"1500dc5624650580e36408796d490a11","path":"CMakeLists.txt","line_range":"204-208","gmt_create":"2026-04-23T06:46:47.424344+04:00","gmt_modified":"2026-04-23T06:46:47.424344+04:00"},{"id":"004f0f1e04b64571284e92edb13fe927","path":"CMakeLists.txt","line_range":"29-31","gmt_create":"2026-04-23T06:46:47.4248547+04:00","gmt_modified":"2026-04-23T06:46:47.4248547+04:00"},{"id":"54ee4168accbfb06f382297e1e5e2aeb","path":"documentation/building.md","line_range":"76-137","gmt_create":"2026-04-23T06:46:47.4248547+04:00","gmt_modified":"2026-04-23T06:46:47.4248547+04:00"},{"id":"c1d41ed0c7651f63b7c09975c8ec7843","path":"documentation/building.md","line_range":"138-199","gmt_create":"2026-04-23T06:46:47.4248547+04:00","gmt_modified":"2026-04-23T06:46:47.4248547+04:00"},{"id":"c0806cc4754e0262902e1cf12737a7c6","path":"CMakeLists.txt","line_range":"91-156","gmt_create":"2026-04-23T06:46:47.4248547+04:00","gmt_modified":"2026-04-23T06:46:47.4248547+04:00"},{"id":"4cb7433e56905f7ac811f55f67a492e8","path":".travis.yml","line_range":"12-42","gmt_create":"2026-04-23T06:46:47.4258845+04:00","gmt_modified":"2026-04-23T06:46:47.4258845+04:00"},{"id":"c2187e808fdcad1036f49417495dc402","path":".github/workflows/docker-main.yml","line_range":"11-41","gmt_create":"2026-04-23T06:46:47.426449+04:00","gmt_modified":"2026-04-23T06:46:47.426449+04:00"},{"id":"34606a0a129754acaca66ba1513465d9","path":"build-linux.sh","line_range":"39","gmt_create":"2026-04-23T06:46:47.426449+04:00","gmt_modified":"2026-04-23T06:46:47.426449+04:00"},{"id":"2400ee9418e6ca496e1b25b5c0444248","path":"build-mac.sh","line_range":"35","gmt_create":"2026-04-23T06:46:47.4269522+04:00","gmt_modified":"2026-04-23T06:46:47.4269522+04:00"},{"id":"457ef8b5c7cbf6167a609a1d56e8062d","path":"build-mingw.bat","line_range":"99","gmt_create":"2026-04-23T06:46:47.4275769+04:00","gmt_modified":"2026-04-23T06:46:47.4275769+04:00"},{"id":"33a4e4430e70d59ac8350609498374cb","path":"build-msvc.bat","line_range":"91","gmt_create":"2026-04-23T06:46:47.4275769+04:00","gmt_modified":"2026-04-23T06:46:47.4275769+04:00"},{"id":"a7e56ec55d2393204c9701d977a9400c","path":"plugins/snapshot/plugin.cpp","line_range":"1-50","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"4a06a01de185f2302afb08f24f3c2b84","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"1-88","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"afdbaea77133cc08160f2954aae9d02c","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","line_range":"1-52","gmt_create":"2026-04-23T06:48:46.2326432+04:00","gmt_modified":"2026-04-23T06:48:46.2326432+04:00"},{"id":"86be1cb2396b0667cd9b2676e146da4f","path":"plugins/snapshot/CMakeLists.txt","line_range":"1-52","gmt_create":"2026-04-23T06:48:46.2326432+04:00","gmt_modified":"2026-04-23T06:48:46.2326432+04:00"},{"id":"03671e2406d9aa4281ec8988ebd11ea3","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"42-76","gmt_create":"2026-04-23T06:48:46.2331581+04:00","gmt_modified":"2026-04-23T06:48:46.2331581+04:00"},{"id":"4d53110f843225004c76883ddaf8a3db","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","line_range":"16-52","gmt_create":"2026-04-23T06:48:46.2331581+04:00","gmt_modified":"2026-04-23T06:48:46.2331581+04:00"},{"id":"6b4ecd2cef1f64d73ebb15271ad63dec","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","line_range":"30-158","gmt_create":"2026-04-23T06:48:46.2331581+04:00","gmt_modified":"2026-04-23T06:48:46.2331581+04:00"},{"id":"846c3fae1de48cd9c46b1ffde792c266","path":"plugins/snapshot/plugin.cpp","line_range":"675-780","gmt_create":"2026-04-23T06:48:46.2331581+04:00","gmt_modified":"2026-04-23T06:48:46.2331581+04:00"},{"id":"42fe843c72050e328e7b8c97676e68ee","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","line_range":"37-107","gmt_create":"2026-04-23T06:48:46.2336716+04:00","gmt_modified":"2026-04-23T06:48:46.2336716+04:00"},{"id":"9824dc418fd477d361e2cb113d2d8a6d","path":"plugins/snapshot/plugin.cpp","line_range":"885-987","gmt_create":"2026-04-23T06:48:46.2336716+04:00","gmt_modified":"2026-04-23T06:48:46.2336716+04:00"},{"id":"c70d834a6c61afda086e00d45a34530e","path":"plugins/snapshot/plugin.cpp","line_range":"789-883","gmt_create":"2026-04-23T06:48:46.2336716+04:00","gmt_modified":"2026-04-23T06:48:46.2336716+04:00"},{"id":"38ba886c685a78655cd83f13bc1ee1de","path":"plugins/snapshot/plugin.cpp","line_range":"1400-1484","gmt_create":"2026-04-23T06:48:46.2336716+04:00","gmt_modified":"2026-04-23T06:48:46.2336716+04:00"},{"id":"3f30e9195428c3c0d628347672216881","path":"plugins/snapshot/plugin.cpp","line_range":"1046-1288","gmt_create":"2026-04-23T06:48:46.2341844+04:00","gmt_modified":"2026-04-23T06:48:46.2341844+04:00"},{"id":"385e16c713d33cee472d76fd9309c8a7","path":"plugins/snapshot/plugin.cpp","line_range":"1902-2038","gmt_create":"2026-04-23T06:48:46.2341844+04:00","gmt_modified":"2026-04-23T06:48:46.2341844+04:00"},{"id":"a656f741ca3a98ea4e39650246c13e31","path":"plugins/snapshot/plugin.cpp","line_range":"1470-1599","gmt_create":"2026-04-23T06:48:46.2341844+04:00","gmt_modified":"2026-04-23T06:48:46.2341844+04:00"},{"id":"210282284c4a151d5bb31f5c22acb0e2","path":"plugins/snapshot/plugin.cpp","line_range":"2473-2510","gmt_create":"2026-04-23T06:48:46.2341844+04:00","gmt_modified":"2026-04-23T06:48:46.2341844+04:00"},{"id":"fce82559c856b77e5143284446449214","path":"documentation/snapshot-plugin.md","line_range":"247-273","gmt_create":"2026-04-23T06:48:46.2341844+04:00","gmt_modified":"2026-04-23T06:48:46.2341844+04:00"},{"id":"f9743c7d2ad207b1a79a0e95d75247cc","path":"plugins/snapshot/plugin.cpp","line_range":"1418-1436","gmt_create":"2026-04-23T06:48:46.2347002+04:00","gmt_modified":"2026-04-23T06:48:46.2347002+04:00"},{"id":"d73dcca02dff8f3073d543232ea8d398","path":"plugins/snapshot/plugin.cpp","line_range":"737-743","gmt_create":"2026-04-23T06:48:46.2347002+04:00","gmt_modified":"2026-04-23T06:48:46.2347002+04:00"},{"id":"71b4159a5d3213112920bd296d8e89bb","path":"plugins/snapshot/plugin.cpp","line_range":"1390-1484","gmt_create":"2026-04-23T06:48:46.2347002+04:00","gmt_modified":"2026-04-23T06:48:46.2347002+04:00"},{"id":"ec58f910f97a726df18f75c0c17baada","path":"plugins/snapshot/plugin.cpp","line_range":"1440-1449","gmt_create":"2026-04-23T06:48:46.2347002+04:00","gmt_modified":"2026-04-23T06:48:46.2347002+04:00"},{"id":"75b03c62708ffd28a4f9d687421e1c28","path":"plugins/witness/witness.cpp","line_range":"335-551","gmt_create":"2026-04-23T06:48:46.2352131+04:00","gmt_modified":"2026-04-23T06:48:46.2352131+04:00"},{"id":"a4baae31b894b18b4796bc14910ee131","path":"plugins/snapshot/plugin.cpp","line_range":"1326-1376","gmt_create":"2026-04-23T06:48:46.2352131+04:00","gmt_modified":"2026-04-23T06:48:46.2352131+04:00"},{"id":"0ae3da57453e773fb07f47dbd5886c6a","path":"plugins/snapshot/plugin.cpp","line_range":"1426-1435","gmt_create":"2026-04-23T06:48:46.2352131+04:00","gmt_modified":"2026-04-23T06:48:46.2352131+04:00"},{"id":"492bfc10ec7008ed8d3c0fcb9eb2986e","path":"plugins/snapshot/plugin.cpp","line_range":"745-750","gmt_create":"2026-04-23T06:48:46.2352131+04:00","gmt_modified":"2026-04-23T06:48:46.2352131+04:00"},{"id":"c6fe65da69747dabf7418f6ebfbc16a6","path":"plugins/snapshot/plugin.cpp","line_range":"697-700","gmt_create":"2026-04-23T06:48:46.2357279+04:00","gmt_modified":"2026-04-23T06:48:46.2357279+04:00"},{"id":"2e53433527d0fe2c5b8af01e4c75ab33","path":"plugins/snapshot/plugin.cpp","line_range":"2831-2845","gmt_create":"2026-04-23T06:48:46.2357279+04:00","gmt_modified":"2026-04-23T06:48:46.2357279+04:00"},{"id":"3d5e7d45a447644705a300e602712ab4","path":"plugins/snapshot/plugin.cpp","line_range":"1719-1748","gmt_create":"2026-04-23T06:48:46.2357279+04:00","gmt_modified":"2026-04-23T06:48:46.2357279+04:00"},{"id":"311030227d7a27b006fece17d9efd018","path":"plugins/snapshot/plugin.cpp","line_range":"1706-1748","gmt_create":"2026-04-23T06:48:46.2357279+04:00","gmt_modified":"2026-04-23T06:48:46.2357279+04:00"},{"id":"0fdcd022e550104e434876fa650f53c4","path":"plugins/chain/plugin.cpp","line_range":"490-560","gmt_create":"2026-04-23T06:48:46.2357279+04:00","gmt_modified":"2026-04-23T06:48:46.2357279+04:00"},{"id":"f0e049888c51f9cd8f614dd4d55fe05b","path":"plugins/snapshot/plugin.cpp","line_range":"2945-2959","gmt_create":"2026-04-23T06:48:46.2362415+04:00","gmt_modified":"2026-04-23T06:48:46.2362415+04:00"},{"id":"29998ee4937bbfcaafdb8749dfb3fdf3","path":"libraries/chain/database.cpp","line_range":"441-5201","gmt_create":"2026-04-23T06:48:46.2363271+04:00","gmt_modified":"2026-04-23T06:48:46.2363271+04:00"},{"id":"30f19521c0c40fc613bf93a90c654dc9","path":"plugins/chain/plugin.cpp","line_range":"542-559","gmt_create":"2026-04-23T06:48:46.2368322+04:00","gmt_modified":"2026-04-23T06:48:46.2368322+04:00"},{"id":"6e3b8e0770e0fd14881374dd8b3c658e","path":"plugins/snapshot/plugin.cpp","line_range":"2976-3009","gmt_create":"2026-04-23T06:48:46.2368322+04:00","gmt_modified":"2026-04-23T06:48:46.2368322+04:00"},{"id":"28efe21ebfbcc6e72bb32ca3977b1939","path":"plugins/snapshot/plugin.cpp","line_range":"2468-2570","gmt_create":"2026-04-23T06:48:46.2368322+04:00","gmt_modified":"2026-04-23T06:48:46.2368322+04:00"},{"id":"12dbcde9e60b1141f215fb60b089b7c8","path":"plugins/snapshot/plugin.cpp","line_range":"735-740","gmt_create":"2026-04-23T06:48:46.2368322+04:00","gmt_modified":"2026-04-23T06:48:46.2368322+04:00"},{"id":"b8f460ca6d8e0942ab1f7226cd2a1b21","path":"plugins/snapshot/plugin.cpp","line_range":"1814-1862","gmt_create":"2026-04-23T06:48:46.2368322+04:00","gmt_modified":"2026-04-23T06:48:46.2368322+04:00"},{"id":"739243787c097dbb8797bb297c748868","path":"plugins/snapshot/plugin.cpp","line_range":"772-785","gmt_create":"2026-04-23T06:48:46.2368322+04:00","gmt_modified":"2026-04-23T06:48:46.2368322+04:00"},{"id":"8ae8252af5d5c484e0710b855ad18866","path":"plugins/snapshot/plugin.cpp","line_range":"165-176","gmt_create":"2026-04-23T06:48:46.2373778+04:00","gmt_modified":"2026-04-23T06:48:46.2373778+04:00"},{"id":"444b9950972fec08b3139f4d50cf0a6e","path":"plugins/snapshot/plugin.cpp","line_range":"1587-1596","gmt_create":"2026-04-23T06:48:46.2374417+04:00","gmt_modified":"2026-04-23T06:48:46.2374417+04:00"},{"id":"5abd9dec8f7100b36c876b18e58d4bb7","path":"plugins/snapshot/plugin.cpp","line_range":"1610-1620","gmt_create":"2026-04-23T06:48:46.2374417+04:00","gmt_modified":"2026-04-23T06:48:46.2374417+04:00"},{"id":"2d8f8aa2a2e0d2b778c984550ade3061","path":"plugins/snapshot/plugin.cpp","line_range":"1812-1877","gmt_create":"2026-04-23T06:48:46.2379457+04:00","gmt_modified":"2026-04-23T06:48:46.2379457+04:00"},{"id":"8a1470c12fc58346550796f023996d4f","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"24-34","gmt_create":"2026-04-23T06:48:46.2379457+04:00","gmt_modified":"2026-04-23T06:48:46.2379457+04:00"},{"id":"4ca7141219ec0e9f25ffdbdb9cda2fa1","path":"plugins/snapshot/plugin.cpp","line_range":"2598-2680","gmt_create":"2026-04-23T06:48:46.2384734+04:00","gmt_modified":"2026-04-23T06:48:46.2384734+04:00"},{"id":"9c4238b8e0cf99b348e22120eac41904","path":"plugins/chain/plugin.cpp","line_range":"364-432","gmt_create":"2026-04-23T06:48:46.2384734+04:00","gmt_modified":"2026-04-23T06:48:46.2384734+04:00"},{"id":"215a79715153cc7dbc2d358d6a91799d","path":"plugins/snapshot/CMakeLists.txt","line_range":"27-38","gmt_create":"2026-04-23T06:48:46.2384734+04:00","gmt_modified":"2026-04-23T06:48:46.2384734+04:00"},{"id":"bddad6a413d83352718b613e27b97469","path":"plugins/snapshot/plugin.cpp","line_range":"2294-2464","gmt_create":"2026-04-23T06:48:46.238993+04:00","gmt_modified":"2026-04-23T06:48:46.238993+04:00"},{"id":"cb7f8a8d2075a597d0647057d4371101","path":"plugins/snapshot/plugin.cpp","line_range":"1378-1464","gmt_create":"2026-04-23T06:48:46.238993+04:00","gmt_modified":"2026-04-23T06:48:46.238993+04:00"},{"id":"b790ddd3e717ed748c2e061559e92124","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"79-351","gmt_create":"2026-04-23T06:50:36.8463427+04:00","gmt_modified":"2026-04-23T06:50:36.8463427+04:00"},{"id":"a07ab3c4bae64fb9fbd9587bd3eaae39","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"45-79","gmt_create":"2026-04-23T06:50:36.8463427+04:00","gmt_modified":"2026-04-23T06:50:36.8463427+04:00"},{"id":"bd9136208fce359f28cad48005c18445","path":"libraries/network/include/graphene/network/stcp_socket.hpp","line_range":"37-93","gmt_create":"2026-04-23T06:50:36.8463427+04:00","gmt_modified":"2026-04-23T06:50:36.8463427+04:00"},{"id":"8b8b5804e7fa05a13d3a7cf1869a318d","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"72-95","gmt_create":"2026-04-23T06:50:36.8463427+04:00","gmt_modified":"2026-04-23T06:50:36.8463427+04:00"},{"id":"ae1ad3620183690f60eeda5a30543601","path":"libraries/network/include/graphene/network/message.hpp","line_range":"42-106","gmt_create":"2026-04-23T06:50:36.8468465+04:00","gmt_modified":"2026-04-23T06:50:36.8468465+04:00"},{"id":"5f576e16df1d59d294a1af2f2658b7ba","path":"libraries/network/include/graphene/network/node.hpp","line_range":"190-304","gmt_create":"2026-04-23T06:50:36.8468465+04:00","gmt_modified":"2026-04-23T06:50:36.8468465+04:00"},{"id":"31c07b5a29db4c1cbb24f79829d347aa","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"104-134","gmt_create":"2026-04-23T06:50:36.847893+04:00","gmt_modified":"2026-04-23T06:50:36.847893+04:00"},{"id":"3654987deb8e6274eefab9ca908412c0","path":"libraries/chain/database.cpp","line_range":"1215-1246","gmt_create":"2026-04-23T06:50:36.847893+04:00","gmt_modified":"2026-04-23T06:50:36.847893+04:00"},{"id":"017fafdbdc8bb6416146dfb712f04d60","path":"libraries/chain/fork_database.cpp","line_range":"34-46","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"7a699ba65a3b0ef1eb697c14a0dbead6","path":"libraries/network/include/graphene/network/exceptions.hpp","line_range":"33-45","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"52af1c2eebb2a6ca81e46aa9efc36007","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"1-383","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"31a472d3c3593f1079fe3844dbf8e5ea","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"1-85","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"e37ad396926e491f9e2cb7e97ebb983b","path":"libraries/network/include/graphene/network/stcp_socket.hpp","line_range":"1-99","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"41c428afa5cdf049e5722a8af0a07120","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"1-573","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"ca47b4e2578878f62204de1202dfcee9","path":"libraries/network/include/graphene/network/node.hpp","line_range":"1-355","gmt_create":"2026-04-23T06:50:36.8484055+04:00","gmt_modified":"2026-04-23T06:50:36.8484055+04:00"},{"id":"65f079a0a8c1ddc294e55e30a905620b","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"1-141","gmt_create":"2026-04-23T06:50:36.8489256+04:00","gmt_modified":"2026-04-23T06:50:36.8489256+04:00"},{"id":"f64ddae8befa97072e025e25b465e7b9","path":"libraries/network/include/graphene/network/message.hpp","line_range":"1-114","gmt_create":"2026-04-23T06:50:36.8489256+04:00","gmt_modified":"2026-04-23T06:50:36.8489256+04:00"},{"id":"ae7c55f38aae0b3478e12cbcf2b51454","path":"libraries/chain/database.cpp","line_range":"1-6389","gmt_create":"2026-04-23T06:50:36.8489256+04:00","gmt_modified":"2026-04-23T06:50:36.8489256+04:00"},{"id":"654515d81715576dcb9f859a9aada0e9","path":"libraries/chain/fork_database.cpp","line_range":"1-271","gmt_create":"2026-04-23T06:50:36.8494484+04:00","gmt_modified":"2026-04-23T06:50:36.8494484+04:00"},{"id":"48a79d6fc809620cef020aebdc89228c","path":"libraries/network/include/graphene/network/exceptions.hpp","line_range":"1-49","gmt_create":"2026-04-23T06:50:36.8494484+04:00","gmt_modified":"2026-04-23T06:50:36.8494484+04:00"},{"id":"5e80305e7a0dd4e813302d520287970c","path":"libraries/network/peer_connection.cpp","line_range":"68-162","gmt_create":"2026-04-23T06:50:36.8494484+04:00","gmt_modified":"2026-04-23T06:50:36.8494484+04:00"},{"id":"a29acb8824d619aed98f1d17496cc735","path":"libraries/network/message_oriented_connection.cpp","line_range":"128-140","gmt_create":"2026-04-23T06:50:36.8494484+04:00","gmt_modified":"2026-04-23T06:50:36.8494484+04:00"},{"id":"55b70b2d7f669af727f94be4a67ab19f","path":"libraries/network/stcp_socket.cpp","line_range":"49-72","gmt_create":"2026-04-23T06:50:36.8494484+04:00","gmt_modified":"2026-04-23T06:50:36.8494484+04:00"},{"id":"cd7fa56036ec7bfc753fb109e2481434","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"233-306","gmt_create":"2026-04-23T06:50:36.8494484+04:00","gmt_modified":"2026-04-23T06:50:36.8494484+04:00"},{"id":"4398c3ae2cfabc0607c0ef43245e9ed0","path":"libraries/network/node.cpp","line_range":"424-799","gmt_create":"2026-04-23T06:50:36.8499738+04:00","gmt_modified":"2026-04-23T06:50:36.8499738+04:00"},{"id":"e485b1e17d34c5b6a8a52a62ed1e66f1","path":"libraries/network/peer_database.cpp","line_range":"100-174","gmt_create":"2026-04-23T06:50:36.8499738+04:00","gmt_modified":"2026-04-23T06:50:36.8499738+04:00"},{"id":"5361decb4da66a8be18f3e2460c4744a","path":"libraries/network/peer_connection.cpp","line_range":"208-242","gmt_create":"2026-04-23T06:50:36.8499738+04:00","gmt_modified":"2026-04-23T06:50:36.8499738+04:00"},{"id":"c25323732949b90908639a501eb595d3","path":"libraries/network/message_oriented_connection.cpp","line_range":"135-140","gmt_create":"2026-04-23T06:50:36.8499738+04:00","gmt_modified":"2026-04-23T06:50:36.8499738+04:00"},{"id":"83977126829486b69fd3680d1a18d5b8","path":"libraries/network/stcp_socket.cpp","line_range":"69-72","gmt_create":"2026-04-23T06:50:36.8504901+04:00","gmt_modified":"2026-04-23T06:50:36.8504901+04:00"},{"id":"cd558ad15f0e6727fba1add71cac3e6f","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"233-272","gmt_create":"2026-04-23T06:50:36.8504901+04:00","gmt_modified":"2026-04-23T06:50:36.8504901+04:00"},{"id":"17725c0e4268344a57e37a4181003dcd","path":"libraries/network/node.cpp","line_range":"662-718","gmt_create":"2026-04-23T06:50:36.8504901+04:00","gmt_modified":"2026-04-23T06:50:36.8504901+04:00"},{"id":"19888e3e680c4c22af512bc7fece3cb4","path":"libraries/network/peer_connection.cpp","line_range":"41-66","gmt_create":"2026-04-23T06:50:36.8504901+04:00","gmt_modified":"2026-04-23T06:50:36.8504901+04:00"},{"id":"f7cab905bd76aaebc62185660e82dae8","path":"libraries/network/peer_connection.cpp","line_range":"244-338","gmt_create":"2026-04-23T06:50:36.8510268+04:00","gmt_modified":"2026-04-23T06:50:36.8510268+04:00"},{"id":"3c8030f286489dad4c619d038a966638","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"240-278","gmt_create":"2026-04-23T06:50:36.8510268+04:00","gmt_modified":"2026-04-23T06:50:36.8510268+04:00"},{"id":"73ca44009706d11b1210c93a5ded6f30","path":"libraries/network/message_oriented_connection.cpp","line_range":"237-283","gmt_create":"2026-04-23T06:50:36.8510268+04:00","gmt_modified":"2026-04-23T06:50:36.8510268+04:00"},{"id":"66a467bd88b7277e2c4bb4cb7312f48f","path":"libraries/network/message_oriented_connection.cpp","line_range":"148-235","gmt_create":"2026-04-23T06:50:36.8510268+04:00","gmt_modified":"2026-04-23T06:50:36.8510268+04:00"},{"id":"a2d760acb3b4737ac29dd99261de2de6","path":"libraries/network/stcp_socket.cpp","line_range":"132-177","gmt_create":"2026-04-23T06:50:36.8515397+04:00","gmt_modified":"2026-04-23T06:50:36.8515397+04:00"},{"id":"bf188abd0edd7c343537c5327855ecbe","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"82-106","gmt_create":"2026-04-23T06:50:36.8525696+04:00","gmt_modified":"2026-04-23T06:50:36.8525696+04:00"},{"id":"fc0674b52c4710c99699f8d656856fd3","path":"libraries/network/peer_connection.cpp","line_range":"356-369","gmt_create":"2026-04-23T06:50:36.8525696+04:00","gmt_modified":"2026-04-23T06:50:36.8525696+04:00"},{"id":"d4955755779cc40ec116df2dc5af08d4","path":"libraries/network/node.cpp","line_range":"718-740","gmt_create":"2026-04-23T06:50:36.8530988+04:00","gmt_modified":"2026-04-23T06:50:36.8530988+04:00"},{"id":"4e5740097a51781620c6fa978577b87b","path":"libraries/network/peer_connection.cpp","line_range":"169-242","gmt_create":"2026-04-23T06:50:36.8530988+04:00","gmt_modified":"2026-04-23T06:50:36.8530988+04:00"},{"id":"599a70fa63a5743f5c1137d5797ef215","path":"libraries/network/peer_connection.cpp","line_range":"310-338","gmt_create":"2026-04-23T06:50:36.8530988+04:00","gmt_modified":"2026-04-23T06:50:36.8530988+04:00"},{"id":"af26a48b00e9adab94afc7842437fe4a","path":"libraries/network/peer_connection.cpp","line_range":"255-308","gmt_create":"2026-04-23T06:50:36.8530988+04:00","gmt_modified":"2026-04-23T06:50:36.8530988+04:00"},{"id":"c65e54c2253e6aa01f651ce5d20e30fe","path":"libraries/network/include/graphene/network/config.hpp","line_range":"58-58","gmt_create":"2026-04-23T06:50:36.8530988+04:00","gmt_modified":"2026-04-23T06:50:36.8530988+04:00"},{"id":"db6b74db4fa6d71a4f6cda8314e0a9c8","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"175-279","gmt_create":"2026-04-23T06:50:36.8536074+04:00","gmt_modified":"2026-04-23T06:50:36.8536074+04:00"},{"id":"b10f496bac85711da4cffcd4b18cd456","path":"libraries/network/peer_connection.cpp","line_range":"428-480","gmt_create":"2026-04-23T06:50:36.8536074+04:00","gmt_modified":"2026-04-23T06:50:36.8536074+04:00"},{"id":"abb7010b1a4127c6eb74e70b8b8c1c8a","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"47-71","gmt_create":"2026-04-23T06:50:36.8541198+04:00","gmt_modified":"2026-04-23T06:50:36.8541198+04:00"},{"id":"afac2a42df17577ba720e7f9a78558b0","path":"libraries/network/node.cpp","line_range":"518-526","gmt_create":"2026-04-23T06:50:36.8541983+04:00","gmt_modified":"2026-04-23T06:50:36.8541983+04:00"},{"id":"8c6950a2fa040ec2bdb48c5c535e6290","path":"libraries/network/node.cpp","line_range":"3598-3626","gmt_create":"2026-04-23T06:50:36.8541983+04:00","gmt_modified":"2026-04-23T06:50:36.8541983+04:00"},{"id":"9e28d240675906ef2e41016843e7e078","path":"plugins/p2p/p2p_plugin.cpp","line_range":"172-182","gmt_create":"2026-04-23T06:50:36.8547575+04:00","gmt_modified":"2026-04-23T06:50:36.8547575+04:00"},{"id":"b8131417d535236b70881242c8493825","path":"libraries/network/peer_connection.cpp","line_range":"340-354","gmt_create":"2026-04-23T06:50:36.85535+04:00","gmt_modified":"2026-04-23T06:50:36.85535+04:00"},{"id":"d8b3e996bfeacf634c11f3ef9c14b517","path":"libraries/network/peer_connection.cpp","line_range":"371-399","gmt_create":"2026-04-23T06:50:36.85535+04:00","gmt_modified":"2026-04-23T06:50:36.85535+04:00"},{"id":"924b5999e72f1f50661885d27aa679bf","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"26-45","gmt_create":"2026-04-23T06:50:36.8572234+04:00","gmt_modified":"2026-04-23T06:50:36.8572234+04:00"},{"id":"9061b648f5c7a6fa04e5cdad74ea8e0c","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"26-28","gmt_create":"2026-04-23T06:50:36.8572234+04:00","gmt_modified":"2026-04-23T06:50:36.8572234+04:00"},{"id":"d047c2a99e186afd4cbe5d3b58a081ce","path":"libraries/network/include/graphene/network/stcp_socket.hpp","line_range":"26-28","gmt_create":"2026-04-23T06:50:36.8572234+04:00","gmt_modified":"2026-04-23T06:50:36.8572234+04:00"},{"id":"cd3f7620124771b158733177b69ca004","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"26-35","gmt_create":"2026-04-23T06:50:36.8572234+04:00","gmt_modified":"2026-04-23T06:50:36.8572234+04:00"},{"id":"641e478753e03d4995662e0f71726f6e","path":"libraries/network/include/graphene/network/node.hpp","line_range":"26-31","gmt_create":"2026-04-23T06:50:36.8572234+04:00","gmt_modified":"2026-04-23T06:50:36.8572234+04:00"},{"id":"0f02b5feb29747f31bd81ec24757a03c","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"26-35","gmt_create":"2026-04-23T06:50:36.8578236+04:00","gmt_modified":"2026-04-23T06:50:36.8578236+04:00"},{"id":"2bd5a533bf647831fd92ff4a1e0cbb9a","path":"libraries/network/include/graphene/network/message.hpp","line_range":"26-31","gmt_create":"2026-04-23T06:50:36.8578236+04:00","gmt_modified":"2026-04-23T06:50:36.8578236+04:00"},{"id":"563df4f6b989068ffaf64cd348c73303","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"285-306","gmt_create":"2026-04-23T06:50:36.8584389+04:00","gmt_modified":"2026-04-23T06:50:36.8584389+04:00"},{"id":"1627c08f8d77e6bd16ff55f3c31a7214","path":"libraries/network/include/graphene/network/config.hpp","line_range":"48-50","gmt_create":"2026-04-23T06:50:36.8584389+04:00","gmt_modified":"2026-04-23T06:50:36.8584389+04:00"},{"id":"97c58147fee277e29c7fcfd2e1fad3d7","path":"libraries/network/peer_connection.cpp","line_range":"314-325","gmt_create":"2026-04-23T06:50:36.8584389+04:00","gmt_modified":"2026-04-23T06:50:36.8584389+04:00"},{"id":"912dd19fed244fc2d5d8717d9d71351d","path":"libraries/network/node.cpp","line_range":"3448-3470","gmt_create":"2026-04-23T06:50:36.8589424+04:00","gmt_modified":"2026-04-23T06:50:36.8589424+04:00"},{"id":"8ca4e34ad148a456f53073ddc65d0d0b","path":"libraries/network/include/graphene/network/config.hpp","line_range":"26-106","gmt_create":"2026-04-23T06:50:36.8590842+04:00","gmt_modified":"2026-04-23T06:50:36.8590842+04:00"},{"id":"2dccc9888fbe3d606e3c653137d8edbc","path":"libraries/chain/database.cpp","line_range":"1239-1241","gmt_create":"2026-04-23T06:50:36.8590842+04:00","gmt_modified":"2026-04-23T06:50:36.8590842+04:00"},{"id":"9db09bc4b81abc778a2506dc78451a5f","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"1-642","gmt_create":"2026-04-23T06:51:53.1085644+04:00","gmt_modified":"2026-04-23T06:51:53.1085644+04:00"},{"id":"38a56d06a16ce1ef149caadef5339e6c","path":"libraries/chain/include/graphene/chain/block_log.hpp","line_range":"1-75","gmt_create":"2026-04-23T06:51:53.1090901+04:00","gmt_modified":"2026-04-23T06:51:53.1090901+04:00"},{"id":"3bdd5ce714e20d28cf824ab11101de66","path":"libraries/chain/block_log.cpp","line_range":"1-302","gmt_create":"2026-04-23T06:51:53.1090901+04:00","gmt_modified":"2026-04-23T06:51:53.1090901+04:00"},{"id":"4d593097c4ba86d8ca3e25a81f16c555","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"1-76","gmt_create":"2026-04-23T06:51:53.1090901+04:00","gmt_modified":"2026-04-23T06:51:53.1090901+04:00"},{"id":"4ed327655b6918bf25321f12456ca6fe","path":"libraries/chain/dlt_block_log.cpp","line_range":"1-414","gmt_create":"2026-04-23T06:51:53.1090901+04:00","gmt_modified":"2026-04-23T06:51:53.1090901+04:00"},{"id":"d28dbbaa28da9765e4f285b5920dbcfd","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"1-138","gmt_create":"2026-04-23T06:51:53.1090901+04:00","gmt_modified":"2026-04-23T06:51:53.1090901+04:00"},{"id":"00037cec4c56edf1610ced428572bb7b","path":"libraries/chain/include/graphene/chain/db_with.hpp","line_range":"1-154","gmt_create":"2026-04-23T06:51:53.1096159+04:00","gmt_modified":"2026-04-23T06:51:53.1096159+04:00"},{"id":"8466f547c850a3f78b548ec3dfdfdf69","path":"plugins/witness/witness.cpp","line_range":"449-467","gmt_create":"2026-04-23T06:51:53.1096159+04:00","gmt_modified":"2026-04-23T06:51:53.1096159+04:00"},{"id":"3c62831aa433234fc0f7306c1cf418d6","path":"libraries/protocol/include/graphene/protocol/config.hpp","line_range":"111-118","gmt_create":"2026-04-23T06:51:53.1096159+04:00","gmt_modified":"2026-04-23T06:51:53.1096159+04:00"},{"id":"bb1e3f10774a7b833f7750a99ab49904","path":"thirdparty/chainbase/src/chainbase.cpp","line_range":"225-279","gmt_create":"2026-04-23T06:51:53.1096159+04:00","gmt_modified":"2026-04-23T06:51:53.1096159+04:00"},{"id":"46ade8bd6f06d3d9a2c5022fd4ec7aaf","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"1200-1260","gmt_create":"2026-04-23T06:51:53.1096159+04:00","gmt_modified":"2026-04-23T06:51:53.1096159+04:00"},{"id":"aaa79e38ddfcec40e12ba298218d83a8","path":"libraries/network/include/graphene/network/exceptions.hpp","line_range":"27-48","gmt_create":"2026-04-23T06:51:53.1101347+04:00","gmt_modified":"2026-04-23T06:51:53.1101347+04:00"},{"id":"5079f2c8e0fd2e2d3f902aa4eeb20eff","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"61-115","gmt_create":"2026-04-23T06:51:53.1116891+04:00","gmt_modified":"2026-04-23T06:51:53.1116891+04:00"},{"id":"a3f311781ebc595d7e91829970674d05","path":"libraries/chain/database.cpp","line_range":"281-324","gmt_create":"2026-04-23T06:51:53.1122032+04:00","gmt_modified":"2026-04-23T06:51:53.1122032+04:00"},{"id":"554e05f2069045609b95ba69f9e954bb","path":"libraries/chain/include/graphene/chain/block_log.hpp","line_range":"38-75","gmt_create":"2026-04-23T06:51:53.1122032+04:00","gmt_modified":"2026-04-23T06:51:53.1122032+04:00"},{"id":"56047023f5259cd1b3b53cc9276548f4","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"35-72","gmt_create":"2026-04-23T06:51:53.1122032+04:00","gmt_modified":"2026-04-23T06:51:53.1122032+04:00"},{"id":"7d5a6b649ef8d177496d2e0b4f7d2ad2","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"53-138","gmt_create":"2026-04-23T06:51:53.1122032+04:00","gmt_modified":"2026-04-23T06:51:53.1122032+04:00"},{"id":"efc19a66e9ef85b6ecd6479947124d6e","path":"libraries/chain/database.cpp","line_range":"929-984","gmt_create":"2026-04-23T06:51:53.1132523+04:00","gmt_modified":"2026-04-23T06:51:53.1132523+04:00"},{"id":"90da84eb4c2939b17a99888253d3cfda","path":"libraries/chain/include/graphene/chain/db_with.hpp","line_range":"33-100","gmt_create":"2026-04-23T06:51:53.1137662+04:00","gmt_modified":"2026-04-23T06:51:53.1137662+04:00"},{"id":"2239009b61286c4b8bcb051f54239d4c","path":"libraries/chain/database.cpp","line_range":"94-184","gmt_create":"2026-04-23T06:51:53.1142768+04:00","gmt_modified":"2026-04-23T06:51:53.1142768+04:00"},{"id":"e21f5adaef81169224a1ff756245f3b9","path":"libraries/chain/include/graphene/chain/database_exceptions.hpp","line_range":"83","gmt_create":"2026-04-23T06:51:53.1148907+04:00","gmt_modified":"2026-04-23T06:51:53.1148907+04:00"},{"id":"f61b06482f8c2019209eb97059fbdc05","path":"libraries/chain/database.cpp","line_range":"330-410","gmt_create":"2026-04-23T06:51:53.1148907+04:00","gmt_modified":"2026-04-23T06:51:53.1148907+04:00"},{"id":"5eec20a2909cd9b68584bd0a13860691","path":"libraries/chain/database.cpp","line_range":"134-184","gmt_create":"2026-04-23T06:51:53.1148907+04:00","gmt_modified":"2026-04-23T06:51:53.1148907+04:00"},{"id":"989129dd2c2f1d2c3d7097f01a59b580","path":"libraries/chain/database.cpp","line_range":"503-519","gmt_create":"2026-04-23T06:51:53.1153964+04:00","gmt_modified":"2026-04-23T06:51:53.1153964+04:00"},{"id":"19ede27e5e317fb0f0663e332bff8e41","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"61-68","gmt_create":"2026-04-23T06:51:53.1159235+04:00","gmt_modified":"2026-04-23T06:51:53.1159235+04:00"},{"id":"93890fe947bd608f34f438e179d3571b","path":"libraries/chain/database.cpp","line_range":"704-752","gmt_create":"2026-04-23T06:51:53.1159235+04:00","gmt_modified":"2026-04-23T06:51:53.1159235+04:00"},{"id":"c4d9e3bfee733cd59a96b18715e26fb7","path":"libraries/chain/database.cpp","line_range":"3986-4039","gmt_create":"2026-04-23T06:51:53.1164465+04:00","gmt_modified":"2026-04-23T06:51:53.1164465+04:00"},{"id":"16943251fc40e2fea0bdc7df21d26d6c","path":"libraries/chain/database.cpp","line_range":"4144-4175","gmt_create":"2026-04-23T06:51:53.1169674+04:00","gmt_modified":"2026-04-23T06:51:53.1169674+04:00"},{"id":"88b837eddc75e3df4a5dfb9d74a73902","path":"libraries/chain/database.cpp","line_range":"4384-4424","gmt_create":"2026-04-23T06:51:53.1169674+04:00","gmt_modified":"2026-04-23T06:51:53.1169674+04:00"},{"id":"635ae3a3b6d0c742a9aa8911ac0931a6","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"70-73","gmt_create":"2026-04-23T06:51:53.1169674+04:00","gmt_modified":"2026-04-23T06:51:53.1169674+04:00"},{"id":"82c3275180f9bd52205d6daf10f0cec5","path":"libraries/chain/database.cpp","line_range":"292-292","gmt_create":"2026-04-23T06:51:53.1169674+04:00","gmt_modified":"2026-04-23T06:51:53.1169674+04:00"},{"id":"476e8657e2d378c04e3da9611464e3d9","path":"libraries/chain/database.cpp","line_range":"4460-4490","gmt_create":"2026-04-23T06:51:53.1174806+04:00","gmt_modified":"2026-04-23T06:51:53.1174806+04:00"},{"id":"73c75f43d010444cfbe1881aea68ac48","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"75-77","gmt_create":"2026-04-23T06:51:53.1174806+04:00","gmt_modified":"2026-04-23T06:51:53.1174806+04:00"},{"id":"777103f978c926dcb38467a4c4ef2784","path":"libraries/chain/database.cpp","line_range":"1147-1202","gmt_create":"2026-04-23T06:51:53.1174806+04:00","gmt_modified":"2026-04-23T06:51:53.1174806+04:00"},{"id":"d8d8a06f04792c8b0df2d56e01dc6a30","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"79-96","gmt_create":"2026-04-23T06:51:53.1180076+04:00","gmt_modified":"2026-04-23T06:51:53.1180076+04:00"},{"id":"a2fca797b3404d0b8784acaa98037b1c","path":"libraries/chain/database.cpp","line_range":"340-350","gmt_create":"2026-04-23T06:51:53.1180076+04:00","gmt_modified":"2026-04-23T06:51:53.1180076+04:00"},{"id":"8e44126f8dd872a81f8f38af9407591a","path":"libraries/chain/database.cpp","line_range":"4346-4366","gmt_create":"2026-04-23T06:51:53.1180076+04:00","gmt_modified":"2026-04-23T06:51:53.1180076+04:00"},{"id":"3fe5a707dc8f738fe4cdf90e202a1c00","path":"libraries/chain/database.cpp","line_range":"948-970","gmt_create":"2026-04-23T06:51:53.1180076+04:00","gmt_modified":"2026-04-23T06:51:53.1180076+04:00"},{"id":"17c5a479c1681b9fa8a9c5b8710b3871","path":"libraries/chain/database.cpp","line_range":"3652-3711","gmt_create":"2026-04-23T06:51:53.1180076+04:00","gmt_modified":"2026-04-23T06:51:53.1180076+04:00"},{"id":"8df33f74931e748bdb279fb2a7413adc","path":"libraries/chain/database.cpp","line_range":"639-673","gmt_create":"2026-04-23T06:51:53.1185295+04:00","gmt_modified":"2026-04-23T06:51:53.1185295+04:00"},{"id":"b24701f580d2bf25220eb3d99d592d19","path":"libraries/chain/database.cpp","line_range":"562-605","gmt_create":"2026-04-23T06:51:53.1185295+04:00","gmt_modified":"2026-04-23T06:51:53.1185295+04:00"},{"id":"5c7525643ec954836de9eb71b2ce4822","path":"libraries/chain/database.cpp","line_range":"412-422","gmt_create":"2026-04-23T06:51:53.1185295+04:00","gmt_modified":"2026-04-23T06:51:53.1185295+04:00"},{"id":"ae8706017fbc3b8f0e9a7419f707fe07","path":"libraries/chain/database.cpp","line_range":"454-482","gmt_create":"2026-04-23T06:51:53.1185295+04:00","gmt_modified":"2026-04-23T06:51:53.1185295+04:00"},{"id":"29a0badf88afa6e203d71a2431de6c46","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"148-164","gmt_create":"2026-04-23T06:51:53.1185295+04:00","gmt_modified":"2026-04-23T06:51:53.1185295+04:00"},{"id":"1eb3056b5625ce57c7d16199bad4ca50","path":"libraries/chain/database.cpp","line_range":"546-556","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"318c7e8695c6742e40f80ad9a0082f49","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"631-632","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"e8c218094b7d5fe11a9456033ee18e06","path":"libraries/chain/database.cpp","line_range":"1106-1145","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"d44399d7c886bd0af53610c96af0c6d3","path":"libraries/chain/database.cpp","line_range":"1460-1470","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"09be458eb6253d2844adf22b7dcb84ba","path":"libraries/chain/database.cpp","line_range":"1295-1377","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"3ffb1aa7b6196bfe3957274bb7011011","path":"libraries/chain/database.cpp","line_range":"3444-3499","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"43938d9f7207a68c93047be50bd9214d","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"218-224","gmt_create":"2026-04-23T06:51:53.1195335+04:00","gmt_modified":"2026-04-23T06:51:53.1195335+04:00"},{"id":"19489c95f9be1c0698eb501b69b25848","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"284-307","gmt_create":"2026-04-23T06:51:53.1211735+04:00","gmt_modified":"2026-04-23T06:51:53.1211735+04:00"},{"id":"4dcf2a8108140e2a4f9394a44a2f7ffa","path":"libraries/chain/database.cpp","line_range":"1158-1198","gmt_create":"2026-04-23T06:51:53.1211735+04:00","gmt_modified":"2026-04-23T06:51:53.1211735+04:00"},{"id":"15e142a5cb99c56ae0b43217664f73ee","path":"libraries/chain/database.cpp","line_range":"3652-3655","gmt_create":"2026-04-23T06:51:53.1211735+04:00","gmt_modified":"2026-04-23T06:51:53.1211735+04:00"},{"id":"4f85c4df0bd388bf50a20515ab2a2c2e","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"93-141","gmt_create":"2026-04-23T06:51:53.1211735+04:00","gmt_modified":"2026-04-23T06:51:53.1211735+04:00"},{"id":"ce696f64e8f5dae1824847fbd5dd7337","path":"libraries/chain/database.cpp","line_range":"458-584","gmt_create":"2026-04-23T06:51:53.122178+04:00","gmt_modified":"2026-04-23T06:51:53.122178+04:00"},{"id":"6deaa37979bf1b81c17e15e58b84a2f9","path":"libraries/chain/database.cpp","line_range":"4334-4463","gmt_create":"2026-04-23T06:51:53.122178+04:00","gmt_modified":"2026-04-23T06:51:53.122178+04:00"},{"id":"f5a835a21e81cc09d6d98cf5622e74cc","path":"libraries/chain/database.cpp","line_range":"2047-2144","gmt_create":"2026-04-23T06:51:53.122178+04:00","gmt_modified":"2026-04-23T06:51:53.122178+04:00"},{"id":"3a840e98c5fcf50c855208adc97b9f2e","path":"libraries/chain/database.cpp","line_range":"4378-4416","gmt_create":"2026-04-23T06:51:53.122178+04:00","gmt_modified":"2026-04-23T06:51:53.122178+04:00"},{"id":"b3a7b4a8b89b5bad3984c5e327e81b02","path":"libraries/chain/database.cpp","line_range":"2125-2142","gmt_create":"2026-04-23T06:51:53.1231795+04:00","gmt_modified":"2026-04-23T06:51:53.1231795+04:00"},{"id":"6ff6a282d68d9e062ff275589155562f","path":"libraries/chain/database.cpp","line_range":"4220-4230","gmt_create":"2026-04-23T06:51:53.1231795+04:00","gmt_modified":"2026-04-23T06:51:53.1231795+04:00"},{"id":"83a8eeb5dc84001310e511c73a0ba062","path":"libraries/chain/database.cpp","line_range":"4517-4620","gmt_create":"2026-04-23T06:51:53.1231795+04:00","gmt_modified":"2026-04-23T06:51:53.1231795+04:00"},{"id":"7a58e14fb571d992c6c872fd9006c534","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"1-10","gmt_create":"2026-04-23T06:51:53.1241775+04:00","gmt_modified":"2026-04-23T06:51:53.1241775+04:00"},{"id":"2aeed6e39aa3215de09f9294df95620f","path":"libraries/chain/database.cpp","line_range":"1-30","gmt_create":"2026-04-23T06:51:53.1241775+04:00","gmt_modified":"2026-04-23T06:51:53.1241775+04:00"},{"id":"b981ea0333bb902d1127f5b1e1911503","path":"libraries/chain/database.cpp","line_range":"800-830","gmt_create":"2026-04-23T06:51:53.1252134+04:00","gmt_modified":"2026-04-23T06:51:53.1252134+04:00"},{"id":"8e13b7edb80b9f2e0685d26dea7bb043","path":"libraries/chain/database.cpp","line_range":"270-279","gmt_create":"2026-04-23T06:51:53.1252134+04:00","gmt_modified":"2026-04-23T06:51:53.1252134+04:00"},{"id":"58f395968bb8027af7c74e913908a12d","path":"libraries/chain/database.cpp","line_range":"492-501","gmt_create":"2026-04-23T06:51:53.1252134+04:00","gmt_modified":"2026-04-23T06:51:53.1252134+04:00"},{"id":"4b8c8943a4768ebf03f79c2d2c3e4cb8","path":"libraries/chain/include/graphene/chain/database_exceptions.hpp","line_range":"86-86","gmt_create":"2026-04-23T07:16:50.6477517+04:00","gmt_modified":"2026-04-23T07:16:50.6477517+04:00"},{"id":"e462a61bcb0546ac7e51d4d77b5e78d7","path":"libraries/chain/database.cpp","line_range":"560-665","gmt_create":"2026-04-23T07:16:50.6529664+04:00","gmt_modified":"2026-04-23T07:16:50.6529664+04:00"},{"id":"e8266f9aae45a25637eeae664143da3a","path":"plugins/p2p/p2p_plugin.cpp","line_range":"170-181","gmt_create":"2026-04-23T07:16:50.6529664+04:00","gmt_modified":"2026-04-23T07:16:50.6529664+04:00"},{"id":"10527b3f085bc23cb5a2ced3d43e605e","path":"libraries/network/node.cpp","line_range":"3616-3622","gmt_create":"2026-04-23T07:16:50.6529664+04:00","gmt_modified":"2026-04-23T07:16:50.6529664+04:00"},{"id":"a5a691e7d10617d28a320dc54d620ac0","path":"libraries/network/node.cpp","line_range":"79-81","gmt_create":"2026-04-23T07:16:50.6566544+04:00","gmt_modified":"2026-04-23T07:16:50.6566544+04:00"},{"id":"131eb608030b3a04b016429fdb3d416a","path":"libraries/network/node.cpp","line_range":"3278-3281","gmt_create":"2026-04-23T07:16:50.6566544+04:00","gmt_modified":"2026-04-23T07:16:50.6566544+04:00"},{"id":"5244d6587cbf807d34a2848110b1b8ff","path":"libraries/network/node.cpp","line_range":"3633-3636","gmt_create":"2026-04-23T07:16:50.6566544+04:00","gmt_modified":"2026-04-23T07:16:50.6566544+04:00"},{"id":"c8da7c90dc7ff2af502eb264eb4da4f8","path":"libraries/network/node.cpp","line_range":"3653-3656","gmt_create":"2026-04-23T07:16:50.6566544+04:00","gmt_modified":"2026-04-23T07:16:50.6566544+04:00"},{"id":"f2b6431fb26cd401e272c27017c72bf3","path":"libraries/network/node.cpp","line_range":"3671-3674","gmt_create":"2026-04-23T07:16:50.6571713+04:00","gmt_modified":"2026-04-23T07:16:50.6571713+04:00"},{"id":"2d7840ca18eae0c0962912ac837b7c1a","path":"libraries/chain/fork_database.cpp","line_range":"81-88","gmt_create":"2026-04-23T07:21:32.2328039+04:00","gmt_modified":"2026-04-23T07:21:32.2328039+04:00"},{"id":"1386bfdeb86a81676e71a6f5e130486d","path":"libraries/network/include/graphene/network/node.hpp","line_range":"180-355","gmt_create":"2026-04-23T08:46:18.3270354+04:00","gmt_modified":"2026-04-23T08:46:18.3270354+04:00"},{"id":"47828ff62fb0611c687e0ec3929a803f","path":"libraries/network/node.cpp","line_range":"869-905","gmt_create":"2026-04-23T08:46:18.3275382+04:00","gmt_modified":"2026-04-23T08:46:18.3275382+04:00"},{"id":"eca8efe2e83df0e4e7f0bb8711e2d3d4","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"79-354","gmt_create":"2026-04-23T08:46:18.3275958+04:00","gmt_modified":"2026-04-23T08:46:18.3275958+04:00"},{"id":"2b2ad90d8dded590d660844927f1808a","path":"libraries/network/include/graphene/network/message.hpp","line_range":"42-114","gmt_create":"2026-04-23T08:46:18.3275958+04:00","gmt_modified":"2026-04-23T08:46:18.3275958+04:00"},{"id":"5fd327370da6f7d0909df81ca8173374","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"111-120","gmt_create":"2026-04-23T08:46:18.3280989+04:00","gmt_modified":"2026-04-23T08:46:18.3280989+04:00"},{"id":"db7f0e20d20c729cfc5585f1e0485172","path":"libraries/protocol/include/graphene/protocol/config.hpp","line_range":"110-123","gmt_create":"2026-04-23T08:46:18.3280989+04:00","gmt_modified":"2026-04-23T08:46:18.3280989+04:00"},{"id":"5505ad3214e042feeb98d8ca38cc0e5b","path":"libraries/network/node.cpp","line_range":"952-1047","gmt_create":"2026-04-23T08:46:18.3302827+04:00","gmt_modified":"2026-04-23T08:46:18.3302827+04:00"},{"id":"1d3b2e6e4eb9c11a9e00355cc006c61e","path":"libraries/network/node.cpp","line_range":"1623-1654","gmt_create":"2026-04-23T08:46:18.3302827+04:00","gmt_modified":"2026-04-23T08:46:18.3302827+04:00"},{"id":"0cece6494088e7b65bd0e3a0aff77e9e","path":"libraries/network/node.cpp","line_range":"2282-2350","gmt_create":"2026-04-23T08:46:18.3302827+04:00","gmt_modified":"2026-04-23T08:46:18.3302827+04:00"},{"id":"79e77d6e9212485bc9d0fdf1d6410ed4","path":"libraries/network/node.cpp","line_range":"869-931","gmt_create":"2026-04-23T08:46:18.3302827+04:00","gmt_modified":"2026-04-23T08:46:18.3302827+04:00"},{"id":"3d1618efce493d2298f79ed0f0166418","path":"libraries/network/node.cpp","line_range":"2029-2230","gmt_create":"2026-04-23T08:46:18.3312857+04:00","gmt_modified":"2026-04-23T08:46:18.3312857+04:00"},{"id":"3ef7242e306c1972f455c516ad037647","path":"libraries/network/node.cpp","line_range":"2232-2250","gmt_create":"2026-04-23T08:46:18.3312857+04:00","gmt_modified":"2026-04-23T08:46:18.3312857+04:00"},{"id":"406f9521c4ead23ecb46eb387ea2ca80","path":"libraries/network/node.cpp","line_range":"1400-1621","gmt_create":"2026-04-23T08:46:18.3322856+04:00","gmt_modified":"2026-04-23T08:46:18.3322856+04:00"},{"id":"dccb2f0ecc63153863ecafe8af55b7dd","path":"libraries/network/include/graphene/network/node.hpp","line_range":"79-80","gmt_create":"2026-04-23T08:46:18.3322856+04:00","gmt_modified":"2026-04-23T08:46:18.3322856+04:00"},{"id":"c104a047d2e0286a416a50707ff31f75","path":"libraries/network/node.cpp","line_range":"3117-3199","gmt_create":"2026-04-23T08:46:18.3332856+04:00","gmt_modified":"2026-04-23T08:46:18.3332856+04:00"},{"id":"f66169296c7e57bb31eb8bfbb97ec9c8","path":"libraries/network/include/graphene/network/node.hpp","line_range":"200-294","gmt_create":"2026-04-23T08:46:18.3335046+04:00","gmt_modified":"2026-04-23T08:46:18.3335046+04:00"},{"id":"1970e34fadef96485269e5b4459078b1","path":"libraries/network/node.cpp","line_range":"933-950","gmt_create":"2026-04-23T08:46:18.3335046+04:00","gmt_modified":"2026-04-23T08:46:18.3335046+04:00"},{"id":"cfe6e43bf4714c16729e4589b894929a","path":"libraries/network/node.cpp","line_range":"1686-1713","gmt_create":"2026-04-23T08:46:18.3340074+04:00","gmt_modified":"2026-04-23T08:46:18.3340074+04:00"},{"id":"ebf5643943fb83f7f0577c5391cdc29f","path":"libraries/network/include/graphene/network/node.hpp","line_range":"211-296","gmt_create":"2026-04-23T08:46:18.3340074+04:00","gmt_modified":"2026-04-23T08:46:18.3340074+04:00"},{"id":"abb42aa5deba88d8499bfa05522d04b8","path":"libraries/network/node.cpp","line_range":"1788-1841","gmt_create":"2026-04-23T08:46:18.3340074+04:00","gmt_modified":"2026-04-23T08:46:18.3340074+04:00"},{"id":"8910992f07461b10d88807a2dc107e31","path":"libraries/network/node.cpp","line_range":"1326-1398","gmt_create":"2026-04-23T08:46:18.3340074+04:00","gmt_modified":"2026-04-23T08:46:18.3340074+04:00"},{"id":"fd51f4f0db3db3df7716cbbb1debe572","path":"libraries/network/node.cpp","line_range":"2830-2892","gmt_create":"2026-04-23T08:46:18.3340074+04:00","gmt_modified":"2026-04-23T08:46:18.3340074+04:00"},{"id":"b9e952a855bb6a183f302fe56963d21c","path":"libraries/network/node.cpp","line_range":"111-217","gmt_create":"2026-04-23T08:46:18.3340074+04:00","gmt_modified":"2026-04-23T08:46:18.3340074+04:00"},{"id":"48c21c33524e92ceea06033be614b235","path":"libraries/network/node.cpp","line_range":"3574-3629","gmt_create":"2026-04-23T08:46:18.3350107+04:00","gmt_modified":"2026-04-23T08:46:18.3350107+04:00"},{"id":"7e0b537a82d1f588c679300874997b9d","path":"libraries/network/node.cpp","line_range":"3436-3458","gmt_create":"2026-04-23T08:46:18.3350107+04:00","gmt_modified":"2026-04-23T08:46:18.3350107+04:00"},{"id":"750e5499f686ed5cf00da793ffff700d","path":"libraries/network/include/graphene/network/exceptions.hpp","line_range":"45","gmt_create":"2026-04-23T08:46:18.3360104+04:00","gmt_modified":"2026-04-23T08:46:18.3360104+04:00"},{"id":"0455ab6d2af86bb4904447c2872c0c53","path":"libraries/network/node.cpp","line_range":"3444-3458","gmt_create":"2026-04-23T08:46:18.3360104+04:00","gmt_modified":"2026-04-23T08:46:18.3360104+04:00"},{"id":"6e81216a32202b37bf1e51becbd96ee5","path":"libraries/network/node.cpp","line_range":"3574-3595","gmt_create":"2026-04-23T08:46:18.3360104+04:00","gmt_modified":"2026-04-23T08:46:18.3360104+04:00"},{"id":"9aab1633519dd82fa80f9dae679c6e67","path":"libraries/network/node.cpp","line_range":"3436-3449","gmt_create":"2026-04-23T08:46:18.3370109+04:00","gmt_modified":"2026-04-23T08:46:18.3370109+04:00"},{"id":"09f1af7d59dbdb0fbf48bb43ee73810a","path":"libraries/network/node.cpp","line_range":"3428-3449","gmt_create":"2026-04-23T08:46:18.3370109+04:00","gmt_modified":"2026-04-23T08:46:18.3370109+04:00"},{"id":"5308ccfa8580b1876716b44b1f28861a","path":"libraries/chain/fork_database.cpp","line_range":"260-262","gmt_create":"2026-04-23T08:46:18.3370109+04:00","gmt_modified":"2026-04-23T08:46:18.3370109+04:00"},{"id":"99bf9466ee39733484e42b24dcac4661","path":"libraries/chain/fork_database.cpp","line_range":"80-87","gmt_create":"2026-04-23T08:46:18.3380104+04:00","gmt_modified":"2026-04-23T08:46:18.3380104+04:00"},{"id":"e806bda1a9e889983105fe61c6d9db2d","path":"libraries/network/node.cpp","line_range":"2251-2280","gmt_create":"2026-04-23T08:46:18.3401044+04:00","gmt_modified":"2026-04-23T08:46:18.3401044+04:00"},{"id":"5ce89ecce18bb64f98f6719d9ec00e43","path":"libraries/network/node.cpp","line_range":"2137-2168","gmt_create":"2026-04-23T08:46:18.3406078+04:00","gmt_modified":"2026-04-23T08:46:18.3406078+04:00"},{"id":"f1396eb83cd882dc7f1cf702aace14ed","path":"libraries/chain/database.cpp","line_range":"4455-4460","gmt_create":"2026-04-23T08:46:18.3406078+04:00","gmt_modified":"2026-04-23T08:46:18.3406078+04:00"},{"id":"8114d7a38e6d9b53917762786e49ecc5","path":"libraries/chain/database.cpp","line_range":"1-6424","gmt_create":"2026-04-23T08:48:15.4236619+04:00","gmt_modified":"2026-04-23T08:48:15.4236619+04:00"},{"id":"209f7b117b7f7bb00470bddded3c2398","path":"libraries/chain/include/graphene/chain/database_exceptions.hpp","line_range":"1-136","gmt_create":"2026-04-23T08:48:15.4246671+04:00","gmt_modified":"2026-04-23T08:48:15.4246671+04:00"},{"id":"7cc5b740b5c5c8e957b1ac116c71feeb","path":"plugins/snapshot/plugin.cpp","line_range":"1420-1430","gmt_create":"2026-04-23T08:48:15.4246671+04:00","gmt_modified":"2026-04-23T08:48:15.4246671+04:00"},{"id":"dd263a594e39d8c84ce42b6efb76acd5","path":"libraries/network/node.cpp","line_range":"3185-3384","gmt_create":"2026-04-23T08:48:15.425666+04:00","gmt_modified":"2026-04-23T08:48:15.425666+04:00"},{"id":"944bb65381e9048751328749ccfb5732","path":"plugins/p2p/p2p_plugin.cpp","line_range":"181-196","gmt_create":"2026-04-23T08:48:15.425666+04:00","gmt_modified":"2026-04-23T08:48:15.425666+04:00"},{"id":"a7c9e78b9bf59b6a3989c0339f9f5991","path":"plugins/snapshot/plugin.cpp","line_range":"1424-1426","gmt_create":"2026-04-23T08:48:15.4339323+04:00","gmt_modified":"2026-04-23T08:48:15.4339323+04:00"},{"id":"ea1944a89359ddbccd657fb47a341ead","path":"libraries/chain/database.cpp","line_range":"1216-1286","gmt_create":"2026-04-23T08:48:15.4427913+04:00","gmt_modified":"2026-04-23T08:48:15.4427913+04:00"},{"id":"9924fc699c3105d1f92a1d1add05b6bc","path":"libraries/network/node.cpp","line_range":"593-601","gmt_create":"2026-04-23T09:39:39.4201972+04:00","gmt_modified":"2026-04-23T09:39:39.4201972+04:00"},{"id":"8d21063080bca8794d81c136ded83883","path":"libraries/network/node.cpp","line_range":"5240-5274","gmt_create":"2026-04-23T09:39:39.4201972+04:00","gmt_modified":"2026-04-23T09:39:39.4201972+04:00"},{"id":"d63a843046b69fbb600d08397a3d24b2","path":"plugins/p2p/p2p_plugin.cpp","line_range":"689-697","gmt_create":"2026-04-23T09:39:39.4211972+04:00","gmt_modified":"2026-04-23T09:39:39.4211972+04:00"},{"id":"60563e45be74bbac873efa1574b0b44b","path":"plugins/snapshot/plugin.cpp","line_range":"3039-3045","gmt_create":"2026-04-23T09:39:39.4211972+04:00","gmt_modified":"2026-04-23T09:39:39.4211972+04:00"},{"id":"f7a932b6ffbae4962c88c344b881fab7","path":"libraries/network/node.cpp","line_range":"5272-5274","gmt_create":"2026-04-23T09:39:39.4340899+04:00","gmt_modified":"2026-04-23T09:39:39.4340899+04:00"},{"id":"a286ff3cf9e0c77d710f0468ff80ab71","path":"libraries/network/node.cpp","line_range":"5265-5274","gmt_create":"2026-04-23T09:39:39.4375953+04:00","gmt_modified":"2026-04-23T09:39:39.4375953+04:00"},{"id":"13386e3e76ae725d30c4b4dca682ae19","path":"libraries/network/node.cpp","line_range":"599-600","gmt_create":"2026-04-23T09:39:39.4385952+04:00","gmt_modified":"2026-04-23T09:39:39.4385952+04:00"},{"id":"8c7fe145e6668a0589833613de05ef8e","path":"share/vizd/config/config.ini","line_range":"96-101","gmt_create":"2026-04-23T09:39:39.4415953+04:00","gmt_modified":"2026-04-23T09:39:39.4415953+04:00"},{"id":"16a19aa5bcebe9921d90618856c818f2","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"36-561","gmt_create":"2026-04-23T09:40:27.9969605+04:00","gmt_modified":"2026-04-23T09:40:27.9969605+04:00"},{"id":"beb7270033f72ea030a658ed50661db0","path":"libraries/chain/database.cpp","line_range":"206-456","gmt_create":"2026-04-23T09:40:27.9969605+04:00","gmt_modified":"2026-04-23T09:40:27.9969605+04:00"},{"id":"3b2b487096be43e59f5232729909dca6","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"53-125","gmt_create":"2026-04-23T09:40:27.9969605+04:00","gmt_modified":"2026-04-23T09:40:27.9969605+04:00"},{"id":"8f12f59f3a806a27f415ac33df1ff302","path":"libraries/chain/fork_database.cpp","line_range":"1-245","gmt_create":"2026-04-23T09:40:27.9974634+04:00","gmt_modified":"2026-04-23T09:40:27.9974634+04:00"},{"id":"1a28848df3aef58b055a3cbae076ffb5","path":"libraries/chain/include/graphene/chain/block_log.hpp","line_range":"1-200","gmt_create":"2026-04-23T09:40:27.9974634+04:00","gmt_modified":"2026-04-23T09:40:27.9974634+04:00"},{"id":"50e79df334a3bb7b66eda6917902a0d5","path":"libraries/chain/block_log.cpp","line_range":"230-302","gmt_create":"2026-04-23T09:40:27.9974634+04:00","gmt_modified":"2026-04-23T09:40:27.9974634+04:00"},{"id":"f95834333ba4c5190b2391b54acf946f","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"35-75","gmt_create":"2026-04-23T09:40:27.9980702+04:00","gmt_modified":"2026-04-23T09:40:27.9980702+04:00"},{"id":"a29442fd9e1534478ed2c7ff68c012e3","path":"libraries/chain/dlt_block_log.cpp","line_range":"161-382","gmt_create":"2026-04-23T09:40:27.9980702+04:00","gmt_modified":"2026-04-23T09:40:27.9980702+04:00"},{"id":"87d3f7f5e4b3b275a1f5c62a722a0c7b","path":"libraries/chain/include/graphene/chain/chain_object_types.hpp","line_range":"44-146","gmt_create":"2026-04-23T09:40:27.9985732+04:00","gmt_modified":"2026-04-23T09:40:27.9985732+04:00"},{"id":"027e3be7967b0260b348fb2f05d14abd","path":"libraries/chain/include/graphene/chain/chain_objects.hpp","line_range":"20-226","gmt_create":"2026-04-23T09:40:27.9985732+04:00","gmt_modified":"2026-04-23T09:40:27.9985732+04:00"},{"id":"9532c9bc52ca2d2988bed522e150643c","path":"libraries/chain/include/graphene/chain/account_object.hpp","line_range":"20-143","gmt_create":"2026-04-23T09:40:27.9985732+04:00","gmt_modified":"2026-04-23T09:40:27.9985732+04:00"},{"id":"fe18bd4856c81bb8a8a870b01bcb9097","path":"libraries/chain/include/graphene/chain/witness_objects.hpp","line_range":"27-132","gmt_create":"2026-04-23T09:40:27.9991619+04:00","gmt_modified":"2026-04-23T09:40:27.9991619+04:00"},{"id":"1e6ec0f9484d9bd2c1919f9c52c43a1a","path":"libraries/chain/include/graphene/chain/committee_objects.hpp","line_range":"15-47","gmt_create":"2026-04-23T09:40:27.9991619+04:00","gmt_modified":"2026-04-23T09:40:27.9991619+04:00"},{"id":"66c076e1ffb51e2df0f99d765a976edf","path":"libraries/chain/include/graphene/chain/transaction_object.hpp","line_range":"19-56","gmt_create":"2026-04-23T09:40:27.9991619+04:00","gmt_modified":"2026-04-23T09:40:27.9991619+04:00"},{"id":"50f895a6649a0d8198a41a111d1d585a","path":"libraries/chain/include/graphene/chain/evaluator.hpp","line_range":"11-45","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"fc3df8af7443986c214f3999cd7ce457","path":"libraries/chain/include/graphene/chain/chain_evaluator.hpp","line_range":"14-79","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"67fbfc5e36027ec77b25d6c86003a38f","path":"libraries/chain/include/graphene/chain/operation_notification.hpp","line_range":"11-26","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"462e2bcbab867587a9b198b4f6fb8299","path":"plugins/chain/plugin.cpp","line_range":"360-432","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"ef245c2d66c3fb194a0aa1c9dd0f9df4","path":"plugins/snapshot/plugin.cpp","line_range":"980-1200","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"6eecf475e7edebd6f7012094ec32f048","path":"thirdparty/fc/src/log/console_appender.cpp","line_range":"132-154","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"e57df16c7fa45b4bb9cbc87c046ef61f","path":"programs/vizd/main.cpp","line_range":"234-253","gmt_create":"2026-04-23T09:40:27.9996649+04:00","gmt_modified":"2026-04-23T09:40:27.9996649+04:00"},{"id":"4d11d9a124ba78c619ab8972eb02200d","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"56-110","gmt_create":"2026-04-23T09:40:28.0006681+04:00","gmt_modified":"2026-04-23T09:40:28.0006681+04:00"},{"id":"a8155a4afab33387a822f670e6673f99","path":"libraries/chain/database.cpp","line_range":"206-350","gmt_create":"2026-04-23T09:40:28.0006681+04:00","gmt_modified":"2026-04-23T09:40:28.0006681+04:00"},{"id":"3424ea448861e3b0a7e659d0fa397328","path":"libraries/chain/database.cpp","line_range":"800-925","gmt_create":"2026-04-23T09:40:28.001668+04:00","gmt_modified":"2026-04-23T09:40:28.001668+04:00"},{"id":"304c7132f9cc0ceeaedaf20752d64d3e","path":"libraries/chain/fork_database.cpp","line_range":"33-90","gmt_create":"2026-04-23T09:40:28.001668+04:00","gmt_modified":"2026-04-23T09:40:28.001668+04:00"},{"id":"2440453ed344e775de034d6fceab96fa","path":"libraries/chain/block_log.cpp","line_range":"253-257","gmt_create":"2026-04-23T09:40:28.001668+04:00","gmt_modified":"2026-04-23T09:40:28.001668+04:00"},{"id":"506b638fbd5c12dacae95b6b6d5e81d3","path":"libraries/chain/dlt_block_log.cpp","line_range":"211-230","gmt_create":"2026-04-23T09:40:28.0027596+04:00","gmt_modified":"2026-04-23T09:40:28.0027596+04:00"},{"id":"7d502c275227ff6a0dad8a6b2cbb0ea2","path":"libraries/chain/fork_database.cpp","line_range":"168-210","gmt_create":"2026-04-23T09:40:28.0033598+04:00","gmt_modified":"2026-04-23T09:40:28.0033598+04:00"},{"id":"066f963089585bde1998d3a7cf600f90","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"111-558","gmt_create":"2026-04-23T09:40:28.0038627+04:00","gmt_modified":"2026-04-23T09:40:28.0038627+04:00"},{"id":"099a7ddd20bd6626a898e0cf7ddbcf93","path":"libraries/chain/fork_database.cpp","line_range":"47-90","gmt_create":"2026-04-23T09:40:28.005866+04:00","gmt_modified":"2026-04-23T09:40:28.005866+04:00"},{"id":"7caa4d3b24ca280339e15eea6b2ea386","path":"libraries/chain/block_log.cpp","line_range":"134-194","gmt_create":"2026-04-23T09:40:28.005866+04:00","gmt_modified":"2026-04-23T09:40:28.005866+04:00"},{"id":"0d6c107155ed183ee5ba1d947aa60b6f","path":"libraries/chain/block_log.cpp","line_range":"195-227","gmt_create":"2026-04-23T09:40:28.005866+04:00","gmt_modified":"2026-04-23T09:40:28.005866+04:00"},{"id":"07077c35993e2bcc1e6ad243210658c5","path":"libraries/chain/block_log.cpp","line_range":"270-285","gmt_create":"2026-04-23T09:40:28.005866+04:00","gmt_modified":"2026-04-23T09:40:28.005866+04:00"},{"id":"85aba7789e2ca1fe6fcb650fb9a272e5","path":"libraries/chain/dlt_block_log.cpp","line_range":"161-230","gmt_create":"2026-04-23T09:40:28.0068661+04:00","gmt_modified":"2026-04-23T09:40:28.0068661+04:00"},{"id":"9071f8d009e4bdc3aabd93156adf0ae5","path":"libraries/chain/dlt_block_log.cpp","line_range":"356-411","gmt_create":"2026-04-23T09:40:28.0068661+04:00","gmt_modified":"2026-04-23T09:40:28.0068661+04:00"},{"id":"4a3b4526826da2c57a82aebb48c143a1","path":"libraries/chain/include/graphene/chain/chain_objects.hpp","line_range":"20-141","gmt_create":"2026-04-23T09:40:28.0091371+04:00","gmt_modified":"2026-04-23T09:40:28.0091371+04:00"},{"id":"202fe515b0495ce4d9e3461872b5a7a5","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"252-286","gmt_create":"2026-04-23T09:40:28.010643+04:00","gmt_modified":"2026-04-23T09:40:28.010643+04:00"},{"id":"0f8940d10bd3fa25101b8055831b577b","path":"plugins/chain/plugin.cpp","line_range":"434-491","gmt_create":"2026-04-23T09:40:28.0126429+04:00","gmt_modified":"2026-04-23T09:40:28.0126429+04:00"},{"id":"1512721e67f0287c71ea498a2bbd1d29","path":"plugins/snapshot/plugin.cpp","line_range":"1000-1200","gmt_create":"2026-04-23T09:40:28.013288+04:00","gmt_modified":"2026-04-23T09:40:28.013288+04:00"},{"id":"ba755b39604252e4cb43e1706e777543","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"57-64","gmt_create":"2026-04-23T09:40:28.013288+04:00","gmt_modified":"2026-04-23T09:40:28.013288+04:00"},{"id":"7d02365c3f2f3efaf9155d970698aec7","path":"libraries/chain/database.cpp","line_range":"3985-4051","gmt_create":"2026-04-23T09:40:28.0137909+04:00","gmt_modified":"2026-04-23T09:40:28.0137909+04:00"},{"id":"c77aaa56525d9c318664af3ff4ce6135","path":"plugins/chain/plugin.cpp","line_range":"391-417","gmt_create":"2026-04-23T09:40:28.0137909+04:00","gmt_modified":"2026-04-23T09:40:28.0137909+04:00"},{"id":"615af9a2f6b8b4df327446e4e8bcc1ae","path":"plugins/snapshot/plugin.cpp","line_range":"1014-1032","gmt_create":"2026-04-23T09:40:28.0137909+04:00","gmt_modified":"2026-04-23T09:40:28.0137909+04:00"},{"id":"a3a37e841fb1ecbb2442040ac90e3198","path":"plugins/chain/plugin.cpp","line_range":"100-113","gmt_create":"2026-04-23T09:40:28.0137909+04:00","gmt_modified":"2026-04-23T09:40:28.0137909+04:00"},{"id":"d3151694a1313762475ee616a2a3cfe0","path":"plugins/chain/plugin.cpp","line_range":"58-113","gmt_create":"2026-04-23T09:40:28.0147943+04:00","gmt_modified":"2026-04-23T09:40:28.0147943+04:00"},{"id":"821eb1ee66481f4569602f236fd2444b","path":"plugins/snapshot/plugin.cpp","line_range":"1018-1032","gmt_create":"2026-04-23T09:40:28.0147943+04:00","gmt_modified":"2026-04-23T09:40:28.0147943+04:00"},{"id":"32d5e27edefa46b873fef98c512612b4","path":"plugins/witness/witness.cpp","line_range":"286","gmt_create":"2026-04-23T09:40:28.0147943+04:00","gmt_modified":"2026-04-23T09:40:28.0147943+04:00"},{"id":"43d8be46f85d6fc08ba611213afd35db","path":"libraries/network/node.cpp","line_range":"3446-3456","gmt_create":"2026-04-23T09:40:28.0157942+04:00","gmt_modified":"2026-04-23T09:40:28.0157942+04:00"},{"id":"f9e256558b0a310a3aebb8b9ebb0a744","path":"plugins/snapshot/plugin.cpp","line_range":"1770-1771","gmt_create":"2026-04-23T09:40:28.0157942+04:00","gmt_modified":"2026-04-23T09:40:28.0157942+04:00"},{"id":"93dcb94717b1b034e4d9565c437aad1b","path":"libraries/network/node.cpp","line_range":"2428-2444","gmt_create":"2026-04-23T09:40:28.0157942+04:00","gmt_modified":"2026-04-23T09:40:28.0157942+04:00"},{"id":"af05147b54f6ad328cd4b288e3985511","path":"libraries/network/node.cpp","line_range":"3276-3280","gmt_create":"2026-04-23T09:40:28.0157942+04:00","gmt_modified":"2026-04-23T09:40:28.0157942+04:00"},{"id":"22e052dd8ab0fdf27afc32b483a37ff7","path":"libraries/chain/database.cpp","line_range":"5295-5303","gmt_create":"2026-04-23T09:40:28.0157942+04:00","gmt_modified":"2026-04-23T09:40:28.0157942+04:00"},{"id":"a655f35ca12d3877c0294e186b5a5f5d","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"1-561","gmt_create":"2026-04-23T09:40:28.0157942+04:00","gmt_modified":"2026-04-23T09:40:28.0157942+04:00"},{"id":"0fd95d3fb8e19f476ee368c9acadc148","path":"libraries/chain/database.cpp","line_range":"1-200","gmt_create":"2026-04-23T09:40:28.0167942+04:00","gmt_modified":"2026-04-23T09:40:28.0167942+04:00"},{"id":"33b697d7ffcdd3aa1d3e2c8f8e5fca15","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"1-125","gmt_create":"2026-04-23T09:40:28.0167942+04:00","gmt_modified":"2026-04-23T09:40:28.0167942+04:00"},{"id":"3736c5a5a1ddf339e5556de0656bfcdf","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"1-75","gmt_create":"2026-04-23T09:40:28.0167942+04:00","gmt_modified":"2026-04-23T09:40:28.0167942+04:00"},{"id":"00eee107c9ba823018067fbd4827abdc","path":"libraries/chain/include/graphene/chain/chain_object_types.hpp","line_range":"1-246","gmt_create":"2026-04-23T09:40:28.0167942+04:00","gmt_modified":"2026-04-23T09:40:28.0167942+04:00"},{"id":"7032d2c44cd05c33be8de43f6514c7d6","path":"libraries/chain/include/graphene/chain/chain_objects.hpp","line_range":"1-226","gmt_create":"2026-04-23T09:40:28.0167942+04:00","gmt_modified":"2026-04-23T09:40:28.0167942+04:00"},{"id":"39c686d025e553f6bad7d2fec4a739ae","path":"libraries/chain/include/graphene/chain/account_object.hpp","line_range":"1-565","gmt_create":"2026-04-23T09:40:28.0179231+04:00","gmt_modified":"2026-04-23T09:40:28.0179231+04:00"},{"id":"03ff87c3dad6c3f5807e0006d9b49e7b","path":"libraries/chain/include/graphene/chain/witness_objects.hpp","line_range":"1-313","gmt_create":"2026-04-23T09:40:28.0179231+04:00","gmt_modified":"2026-04-23T09:40:28.0179231+04:00"},{"id":"3147d19a66720276e968aa6544a4292b","path":"libraries/chain/include/graphene/chain/committee_objects.hpp","line_range":"1-137","gmt_create":"2026-04-23T09:40:28.0179231+04:00","gmt_modified":"2026-04-23T09:40:28.0179231+04:00"},{"id":"0bf9b2bbe6504edfbc3f8394b947929b","path":"libraries/chain/include/graphene/chain/transaction_object.hpp","line_range":"1-56","gmt_create":"2026-04-23T09:40:28.0184262+04:00","gmt_modified":"2026-04-23T09:40:28.0184262+04:00"},{"id":"3efe898414dcae3fffd2e9c1c0679311","path":"libraries/chain/include/graphene/chain/evaluator.hpp","line_range":"1-62","gmt_create":"2026-04-23T09:40:28.0184262+04:00","gmt_modified":"2026-04-23T09:40:28.0184262+04:00"},{"id":"48ad93138afd2c83193d808d04cb5573","path":"libraries/chain/include/graphene/chain/chain_evaluator.hpp","line_range":"1-80","gmt_create":"2026-04-23T09:40:28.0184262+04:00","gmt_modified":"2026-04-23T09:40:28.0184262+04:00"},{"id":"b9b4e1e0a88a6640c5e8a94801dbff57","path":"libraries/chain/include/graphene/chain/operation_notification.hpp","line_range":"1-27","gmt_create":"2026-04-23T09:40:28.0184262+04:00","gmt_modified":"2026-04-23T09:40:28.0184262+04:00"},{"id":"ed272eaaa4bd0adbed874f87308f6c81","path":"plugins/chain/plugin.cpp","line_range":"1-526","gmt_create":"2026-04-23T09:40:28.0184262+04:00","gmt_modified":"2026-04-23T09:40:28.0184262+04:00"},{"id":"973b0384238fe7370822559425a96f5b","path":"plugins/snapshot/plugin.cpp","line_range":"1-1976","gmt_create":"2026-04-23T09:40:28.0184262+04:00","gmt_modified":"2026-04-23T09:40:28.0184262+04:00"},{"id":"3fd5da634ff647b8e47fa2d9f2b10947","path":"libraries/chain/database.cpp","line_range":"232-248","gmt_create":"2026-04-23T09:40:28.0194298+04:00","gmt_modified":"2026-04-23T09:40:28.0194298+04:00"},{"id":"abf26b07298df44b8ad0f82418a28240","path":"libraries/chain/database.cpp","line_range":"270-350","gmt_create":"2026-04-23T09:40:28.0204295+04:00","gmt_modified":"2026-04-23T09:40:28.0204295+04:00"},{"id":"ff2523d2df1db0e5eacb85bdae3f2688","path":"libraries/chain/database.cpp","line_range":"368-430","gmt_create":"2026-04-23T09:40:28.0204295+04:00","gmt_modified":"2026-04-23T09:40:28.0204295+04:00"},{"id":"68b6c0503834784566bd470237e6fbbb","path":"libraries/chain/database.cpp","line_range":"832-844","gmt_create":"2026-04-23T09:40:28.0204295+04:00","gmt_modified":"2026-04-23T09:40:28.0204295+04:00"},{"id":"b15e11d3471309dbff74358ab3b597bb","path":"plugins/chain/plugin.cpp","line_range":"371-380","gmt_create":"2026-04-23T09:40:28.0204295+04:00","gmt_modified":"2026-04-23T09:40:28.0204295+04:00"},{"id":"532edf497ce380a6eff5d3fe76792a3c","path":"plugins/snapshot/plugin.cpp","line_range":"1018-1020","gmt_create":"2026-04-23T09:40:28.0204295+04:00","gmt_modified":"2026-04-23T09:40:28.0204295+04:00"},{"id":"57dca27aac4631b2a09561ab190bd578","path":"libraries/chain/database.cpp","line_range":"936-970","gmt_create":"2026-04-23T09:40:28.0214295+04:00","gmt_modified":"2026-04-23T09:40:28.0214295+04:00"},{"id":"98a4db8754b7f187508af46bdd8019c2","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"136-169","gmt_create":"2026-04-23T09:40:28.0214295+04:00","gmt_modified":"2026-04-23T09:40:28.0214295+04:00"},{"id":"4227ba2bea4520b3ea3ac8c104d6634e","path":"libraries/chain/fork_database.cpp","line_range":"92-124","gmt_create":"2026-04-23T09:40:28.0224297+04:00","gmt_modified":"2026-04-23T09:40:28.0224297+04:00"},{"id":"5e74ba9791165e9a27dc768aced92cb8","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"62-64","gmt_create":"2026-04-23T09:40:28.0224297+04:00","gmt_modified":"2026-04-23T09:40:28.0224297+04:00"},{"id":"03795feb7ae28b007d7a6e71efd6e49b","path":"plugins/chain/plugin.cpp","line_range":"234-236","gmt_create":"2026-04-23T09:40:28.0224297+04:00","gmt_modified":"2026-04-23T09:40:28.0224297+04:00"},{"id":"a62449c820dada6775c37fa7b8a9450b","path":"plugins/snapshot/plugin.cpp","line_range":"50-53","gmt_create":"2026-04-23T09:40:28.0234298+04:00","gmt_modified":"2026-04-23T09:40:28.0234298+04:00"},{"id":"caf41318a9685f0d4a55bc4793962169","path":"plugins/p2p/p2p_plugin.cpp","line_range":"175-192","gmt_create":"2026-04-23T09:42:13.839779+04:00","gmt_modified":"2026-04-23T09:42:13.839779+04:00"},{"id":"341122c5fe576375c3baabbb0ec15efd","path":"libraries/network/node.cpp","line_range":"3192-3211","gmt_create":"2026-04-23T09:42:13.8403801+04:00","gmt_modified":"2026-04-23T09:42:13.8403801+04:00"},{"id":"e8fc4f78dc6c018fb182ce7216a577c7","path":"libraries/network/node.cpp","line_range":"5241-5274","gmt_create":"2026-04-23T09:45:28.2582696+04:00","gmt_modified":"2026-04-23T09:45:28.2582696+04:00"},{"id":"af2c19f2568561b67f019a505b8c1e2a","path":"libraries/network/include/graphene/network/node.hpp","line_range":"284-290","gmt_create":"2026-04-23T09:45:28.2582696+04:00","gmt_modified":"2026-04-23T09:45:28.2582696+04:00"},{"id":"80a6cf4c3a34c0380cfa7e2bbce50695","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"86-88","gmt_create":"2026-04-23T09:45:28.2582696+04:00","gmt_modified":"2026-04-23T09:45:28.2582696+04:00"},{"id":"d0c48b21ac92d8d2ce3620cecd2dcc6b","path":"plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp","line_range":"84-118","gmt_create":"2026-04-23T09:46:06.4722958+04:00","gmt_modified":"2026-04-23T09:46:06.4722958+04:00"},{"id":"e2a70c9ef153c8f80372be8adbf3b8ce","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","line_range":"21-96","gmt_create":"2026-04-23T09:46:06.4722958+04:00","gmt_modified":"2026-04-23T09:46:06.4722958+04:00"},{"id":"fc8bf356e433ceaaeeefdfbb09cc2a19","path":"plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","line_range":"32-57","gmt_create":"2026-04-23T09:46:06.4727986+04:00","gmt_modified":"2026-04-23T09:46:06.4727986+04:00"},{"id":"cf291e1486819970446472cc11d8ddc8","path":"plugins/database_api/include/graphene/plugins/database_api/plugin.hpp","line_range":"179-403","gmt_create":"2026-04-23T09:46:06.4727986+04:00","gmt_modified":"2026-04-23T09:46:06.4727986+04:00"},{"id":"9bbb84eee1aef90348c72e75495dcaef","path":"plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","line_range":"59-97","gmt_create":"2026-04-23T09:46:06.4727986+04:00","gmt_modified":"2026-04-23T09:46:06.4727986+04:00"},{"id":"e6df5f4cb7c0988a61c77ddbef242064","path":"plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp","line_range":"18-52","gmt_create":"2026-04-23T09:46:06.4727986+04:00","gmt_modified":"2026-04-23T09:46:06.4727986+04:00"},{"id":"aedc52070cb049a70230d94dbec9127d","path":"plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp","line_range":"14-47","gmt_create":"2026-04-23T09:46:06.4727986+04:00","gmt_modified":"2026-04-23T09:46:06.4727986+04:00"},{"id":"72db60f93c1fd9e588e73681846094ac","path":"plugins/p2p/p2p_plugin.cpp","line_range":"203-257","gmt_create":"2026-04-23T09:46:06.4738019+04:00","gmt_modified":"2026-04-23T09:46:06.4738019+04:00"},{"id":"bc58f817a47b66576115a959ef4e8de1","path":"plugins/p2p/p2p_plugin.cpp","line_range":"688-697","gmt_create":"2026-04-23T09:46:06.4738019+04:00","gmt_modified":"2026-04-23T09:46:06.4738019+04:00"},{"id":"85674b47bf8d255b25d55436d1c99ffc","path":"documentation/plugin.md","line_range":"1-28","gmt_create":"2026-04-23T09:46:06.4748018+04:00","gmt_modified":"2026-04-23T09:46:06.4748018+04:00"},{"id":"8cd5d1f215bde6f6ccb9eb381d24bd40","path":"plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp","line_range":"109-113","gmt_create":"2026-04-23T09:46:06.4775319+04:00","gmt_modified":"2026-04-23T09:46:06.4775319+04:00"},{"id":"af8f81a3a4d58504e328d1f8a62b88a3","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","line_range":"88-91","gmt_create":"2026-04-23T09:46:06.4775319+04:00","gmt_modified":"2026-04-23T09:46:06.4775319+04:00"},{"id":"1e1cfcc720247454cb277d6e96e30ebc","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"60-76","gmt_create":"2026-04-23T09:46:06.4775319+04:00","gmt_modified":"2026-04-23T09:46:06.4775319+04:00"},{"id":"102e2a7219b22a82d3b64b983854fc33","path":"plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp","line_range":"38-55","gmt_create":"2026-04-23T09:46:06.4785381+04:00","gmt_modified":"2026-04-23T09:46:06.4785381+04:00"},{"id":"cb378cc1cd10872797bc4b4e065102e0","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","line_range":"36-42","gmt_create":"2026-04-23T09:46:06.4795371+04:00","gmt_modified":"2026-04-23T09:46:06.4795371+04:00"},{"id":"9bd9537dad06007198cf14e878c23c41","path":"plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","line_range":"19-31","gmt_create":"2026-04-23T09:46:06.4795371+04:00","gmt_modified":"2026-04-23T09:46:06.4795371+04:00"},{"id":"787937c04d31ae8f6b77aa3debcbf6d3","path":"plugins/database_api/include/graphene/plugins/database_api/plugin.hpp","line_range":"188-191","gmt_create":"2026-04-23T09:46:06.4805369+04:00","gmt_modified":"2026-04-23T09:46:06.4805369+04:00"},{"id":"b034b054ce403f3ec2fd88efb89a0a16","path":"plugins/database_api/include/graphene/plugins/database_api/plugin.hpp","line_range":"227-398","gmt_create":"2026-04-23T09:46:06.4805369+04:00","gmt_modified":"2026-04-23T09:46:06.4805369+04:00"},{"id":"3fb330c8287106665726a28567c92a5c","path":"plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","line_range":"61-65","gmt_create":"2026-04-23T09:46:06.4805369+04:00","gmt_modified":"2026-04-23T09:46:06.4805369+04:00"},{"id":"3429b78850d8fa62c3600571b75d52ed","path":"plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","line_range":"83-92","gmt_create":"2026-04-23T09:46:06.4805369+04:00","gmt_modified":"2026-04-23T09:46:06.4805369+04:00"},{"id":"42b40fe3d2456078c7b0ed92b1492ec0","path":"plugins/p2p/p2p_plugin.cpp","line_range":"259-277","gmt_create":"2026-04-23T09:46:06.4818296+04:00","gmt_modified":"2026-04-23T09:46:06.4818296+04:00"},{"id":"2ef0c3b5ceddd702ed88edc8b9e4fdff","path":"plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp","line_range":"20-20","gmt_create":"2026-04-23T09:46:06.4823327+04:00","gmt_modified":"2026-04-23T09:46:06.4823327+04:00"},{"id":"3db7c2b0d8dc0e8758f4c15214e61313","path":"plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp","line_range":"40-49","gmt_create":"2026-04-23T09:46:06.4823327+04:00","gmt_modified":"2026-04-23T09:46:06.4823327+04:00"},{"id":"de6fb7cc69ccd55320fdfeb942f0bb25","path":"plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp","line_range":"17-19","gmt_create":"2026-04-23T09:46:06.4833356+04:00","gmt_modified":"2026-04-23T09:46:06.4833356+04:00"},{"id":"10062bf67720c6d65bf29b7e05e53fac","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"46-87","gmt_create":"2026-04-23T09:46:06.4833356+04:00","gmt_modified":"2026-04-23T09:46:06.4833356+04:00"},{"id":"adbd3b90842a67e229e9a1dcedaf1a32","path":"documentation/plugin.md","line_range":"11-20","gmt_create":"2026-04-23T09:46:06.4855097+04:00","gmt_modified":"2026-04-23T09:46:06.4855097+04:00"},{"id":"dc48b7238cc66df599dae38b1c050814","path":"plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","line_range":"77-77","gmt_create":"2026-04-23T09:46:06.4855097+04:00","gmt_modified":"2026-04-23T09:46:06.4855097+04:00"},{"id":"9332a2a76a3443a79be6fa8dc4048438","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","line_range":"21-42","gmt_create":"2026-04-23T09:46:06.4875128+04:00","gmt_modified":"2026-04-23T09:46:06.4875128+04:00"},{"id":"b4316318a9574951ff8938c6d99004a5","path":"plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","line_range":"32-43","gmt_create":"2026-04-23T09:46:06.4875128+04:00","gmt_modified":"2026-04-23T09:46:06.4875128+04:00"},{"id":"70f14f1ee65c0139809ace82cf50998f","path":"plugins/database_api/include/graphene/plugins/database_api/plugin.hpp","line_range":"179-186","gmt_create":"2026-04-23T09:46:06.4875128+04:00","gmt_modified":"2026-04-23T09:46:06.4875128+04:00"},{"id":"56db7e7959757db95bf454286870321f","path":"plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","line_range":"59-70","gmt_create":"2026-04-23T09:46:06.4875128+04:00","gmt_modified":"2026-04-23T09:46:06.4875128+04:00"},{"id":"60c1f99ef18eeb91f1374893134e9dee","path":"plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp","line_range":"18-32","gmt_create":"2026-04-23T09:46:06.4875128+04:00","gmt_modified":"2026-04-23T09:46:06.4875128+04:00"},{"id":"45dba84487f57c51ee08aecf5d9363b5","path":"plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp","line_range":"14-41","gmt_create":"2026-04-23T09:46:06.4875128+04:00","gmt_modified":"2026-04-23T09:46:06.4875128+04:00"},{"id":"be3f355927902abbacc66fc8ef8d725e","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"42-54","gmt_create":"2026-04-23T09:46:06.4885137+04:00","gmt_modified":"2026-04-23T09:46:06.4885137+04:00"},{"id":"b66594f96f1242e29c2ab2acf84ecd32","path":"programs/util/newplugin.py","line_range":"225-246","gmt_create":"2026-04-23T09:46:06.4887947+04:00","gmt_modified":"2026-04-23T09:46:06.4887947+04:00"},{"id":"c62e1397b94795e465fbc14ea472574b","path":"programs/util/newplugin.py","line_range":"168-173","gmt_create":"2026-04-23T09:46:06.4887947+04:00","gmt_modified":"2026-04-23T09:46:06.4887947+04:00"},{"id":"aa6229d2d48c7826205ea87375adc9fe","path":"documentation/plugin.md","line_range":"21-28","gmt_create":"2026-04-23T09:46:06.4892972+04:00","gmt_modified":"2026-04-23T09:46:06.4892972+04:00"},{"id":"35d24cfc3a718f73aa7c90cbb070354a","path":"libraries/chain/database.cpp","line_range":"313-317","gmt_create":"2026-04-23T09:46:06.4898333+04:00","gmt_modified":"2026-04-23T09:46:06.4898333+04:00"},{"id":"c3c45afd2ec0895d4db392cbb92a0eff","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"13-33","gmt_create":"2026-04-23T09:46:06.4908372+04:00","gmt_modified":"2026-04-23T09:46:06.4908372+04:00"},{"id":"612f94b42fe205b777c3de4c66a78590","path":"libraries/chain/dlt_block_log.cpp","line_range":"1-200","gmt_create":"2026-04-23T09:46:06.4908372+04:00","gmt_modified":"2026-04-23T09:46:06.4908372+04:00"},{"id":"889576d5248af3e761d8b8f11edbdc3c","path":"libraries/chain/dlt_block_log.cpp","line_range":"356-382","gmt_create":"2026-04-23T09:46:06.4908372+04:00","gmt_modified":"2026-04-23T09:46:06.4908372+04:00"},{"id":"84c8c2c812e14b7b135e30884b54750b","path":"libraries/chain/database.cpp","line_range":"558-567","gmt_create":"2026-04-23T09:46:06.4920542+04:00","gmt_modified":"2026-04-23T09:46:06.4920542+04:00"},{"id":"a4cd9ca5a718782864b0a097cf977152","path":"libraries/chain/database.cpp","line_range":"596-600","gmt_create":"2026-04-23T09:46:06.4920542+04:00","gmt_modified":"2026-04-23T09:46:06.4920542+04:00"},{"id":"223f9c99ce62468c734d65e2870a2d24","path":"libraries/chain/database.cpp","line_range":"618-622","gmt_create":"2026-04-23T09:46:06.4932664+04:00","gmt_modified":"2026-04-23T09:46:06.4932664+04:00"},{"id":"be23399b5f0fe8ce230c4fd71dc41290","path":"documentation/snapshot-plugin.md","line_range":"104-164","gmt_create":"2026-04-23T09:46:06.4932664+04:00","gmt_modified":"2026-04-23T09:46:06.4932664+04:00"},{"id":"6475fdf01f4a4784fc1ea9af9ec30f40","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"15-41","gmt_create":"2026-04-23T09:46:06.4932664+04:00","gmt_modified":"2026-04-23T09:46:06.4932664+04:00"},{"id":"6661694400eeda9076974f6ffb08ad9e","path":"plugins/p2p/p2p_plugin.cpp","line_range":"265-276","gmt_create":"2026-04-23T09:46:06.4938352+04:00","gmt_modified":"2026-04-23T09:46:06.4938352+04:00"},{"id":"caa0a3bdbedddb20962f5622f4cb96de","path":"plugins/p2p/p2p_plugin.cpp","line_range":"118-165","gmt_create":"2026-04-23T09:46:06.4938352+04:00","gmt_modified":"2026-04-23T09:46:06.4938352+04:00"},{"id":"2f48af123d7c717d87efa86a897072cf","path":"libraries/chain/database.cpp","line_range":"558-580","gmt_create":"2026-04-23T09:46:06.4943381+04:00","gmt_modified":"2026-04-23T09:46:06.4943381+04:00"},{"id":"d39d62435004686304b872d1aa167517","path":"libraries/chain/database.cpp","line_range":"599-620","gmt_create":"2026-04-23T09:46:06.4943381+04:00","gmt_modified":"2026-04-23T09:46:06.4943381+04:00"},{"id":"d966b10c5f40e64a1511a7ee158e788f","path":"libraries/chain/database.cpp","line_range":"623-640","gmt_create":"2026-04-23T09:46:06.4943381+04:00","gmt_modified":"2026-04-23T09:46:06.4943381+04:00"},{"id":"bfb352c37c5651f8e364f9838b375902","path":"libraries/network/node.cpp","line_range":"5254-5274","gmt_create":"2026-04-23T09:46:06.4956738+04:00","gmt_modified":"2026-04-23T09:46:06.4956738+04:00"},{"id":"160368e3339d4e55ddfe248fd538d1e3","path":"plugins/p2p/CMakeLists.txt","line_range":"27-34","gmt_create":"2026-04-23T09:46:06.4961765+04:00","gmt_modified":"2026-04-23T09:46:06.4961765+04:00"},{"id":"232a0b4952b0a88c2a0f43241176fca6","path":"plugins/p2p/p2p_plugin.cpp","line_range":"500-508","gmt_create":"2026-04-23T09:46:06.4972403+04:00","gmt_modified":"2026-04-23T09:46:06.4972403+04:00"},{"id":"9c2392ab068c0dda02cdfe33eceff8e4","path":"thirdparty/fc/include/fc/network/ip.hpp","line_range":"69-71","gmt_create":"2026-04-23T09:46:06.4978162+04:00","gmt_modified":"2026-04-23T09:46:06.4978162+04:00"},{"id":"f1e088088369adcf3d462fe0e2d53dbf","path":"thirdparty/fc/src/network/ip.cpp","line_range":"35-39","gmt_create":"2026-04-23T09:46:06.4978162+04:00","gmt_modified":"2026-04-23T09:46:06.4978162+04:00"},{"id":"ec0a7e38def2d8b0f21be32808de7860","path":"thirdparty/fc/include/fc/network/ip.hpp","line_range":"12-87","gmt_create":"2026-04-23T09:46:06.4984778+04:00","gmt_modified":"2026-04-23T09:46:06.4984778+04:00"},{"id":"d43daaa87560a3c4b045281357a6a2b3","path":"thirdparty/fc/src/network/ip.cpp","line_range":"14-87","gmt_create":"2026-04-23T09:46:06.4984778+04:00","gmt_modified":"2026-04-23T09:46:06.4984778+04:00"},{"id":"e50a77e5ebfe7749756f98da252dca65","path":"libraries/network/peer_connection.hpp","line_range":"109-110","gmt_create":"2026-04-23T09:46:06.4984778+04:00","gmt_modified":"2026-04-23T09:46:06.4984778+04:00"},{"id":"ead7dae43935af711da9e9fb0ee57e55","path":"libraries/network/node.cpp","line_range":"4900-4903","gmt_create":"2026-04-23T09:46:06.4989808+04:00","gmt_modified":"2026-04-23T09:46:06.4989808+04:00"},{"id":"bb8a03040c7dd5ef23842135f12c7ada","path":"libraries/network/core_messages.hpp","line_range":"333-345","gmt_create":"2026-04-23T09:46:06.4989808+04:00","gmt_modified":"2026-04-23T09:46:06.4989808+04:00"},{"id":"4d389798bfd10ffa507b4eff702ce895","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","line_range":"21-24","gmt_create":"2026-04-23T09:46:06.4989808+04:00","gmt_modified":"2026-04-23T09:46:06.4989808+04:00"},{"id":"b299205c99b9ae5248e438a5b8bc28f2","path":"plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","line_range":"32-38","gmt_create":"2026-04-23T09:46:06.4989808+04:00","gmt_modified":"2026-04-23T09:46:06.4989808+04:00"},{"id":"a23a1085e2cc69dadf154e51b819127d","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"44-44","gmt_create":"2026-04-23T09:46:06.4999838+04:00","gmt_modified":"2026-04-23T09:46:06.4999838+04:00"},{"id":"f5ba325b3d9da76e3ebc5613f9cd98a2","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"35-35","gmt_create":"2026-04-23T09:46:06.4999838+04:00","gmt_modified":"2026-04-23T09:46:06.4999838+04:00"},{"id":"eb78713649c3eafb6435d5b0e39b4508","path":"libraries/protocol/include/graphene/protocol/operations.hpp","line_range":"14-27","gmt_create":"2026-04-23T09:46:06.5031673+04:00","gmt_modified":"2026-04-23T09:46:06.5031673+04:00"},{"id":"7e1cfebaa5e9eeb729552133622ecb43","path":"libraries/chain/chain_evaluator.cpp","line_range":"216-216","gmt_create":"2026-04-23T09:46:06.5031673+04:00","gmt_modified":"2026-04-23T09:46:06.5031673+04:00"},{"id":"fbee98959255e2b7f556fd6d47d1b069","path":"libraries/chain/chain_evaluator.cpp","line_range":"551-551","gmt_create":"2026-04-23T09:46:06.5031673+04:00","gmt_modified":"2026-04-23T09:46:06.5031673+04:00"},{"id":"2a9174de7944c932a866d3cbce97a49b","path":"libraries/chain/chain_evaluator.cpp","line_range":"1296-1296","gmt_create":"2026-04-23T09:46:06.5031673+04:00","gmt_modified":"2026-04-23T09:46:06.5031673+04:00"},{"id":"ff2d25a7450347c4a58d6558b6ef2187","path":"plugins/p2p/p2p_plugin.cpp","line_range":"499-528","gmt_create":"2026-04-23T09:46:06.5031673+04:00","gmt_modified":"2026-04-23T09:46:06.5031673+04:00"},{"id":"428c4550bf78909ea1be0331756cac88","path":"plugins/debug_node/plugin.cpp","line_range":"124-128","gmt_create":"2026-04-23T09:46:06.5042323+04:00","gmt_modified":"2026-04-23T09:46:06.5042323+04:00"},{"id":"bd1c1b5f3a896d421fb3435f617724c1","path":"plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp","line_range":"103-107","gmt_create":"2026-04-23T09:46:06.505738+04:00","gmt_modified":"2026-04-23T09:46:06.505738+04:00"},{"id":"1bc773b8020617c00ac7460f95d1a182","path":"documentation/snapshot-plugin.md","line_range":"142-164","gmt_create":"2026-04-23T09:46:06.5067382+04:00","gmt_modified":"2026-04-23T09:46:06.5067382+04:00"},{"id":"8ed917d817d567a488d62920baedadcc","path":"plugins/p2p/p2p_plugin.cpp","line_range":"689-698","gmt_create":"2026-04-23T11:16:32.2835144+04:00","gmt_modified":"2026-04-23T11:16:32.2835144+04:00"},{"id":"7925b0a796bd493a01da486c70d0ab64","path":"plugins/snapshot/plugin.cpp","line_range":"714-715","gmt_create":"2026-04-23T11:16:32.2835144+04:00","gmt_modified":"2026-04-23T11:16:32.2835144+04:00"},{"id":"1ae9e34ac2be4ef2ed3da08a43b3ca1c","path":"libraries/network/node.cpp","line_range":"592-600","gmt_create":"2026-04-23T11:16:32.2841471+04:00","gmt_modified":"2026-04-23T11:16:32.2841471+04:00"},{"id":"ef3997991d9cf249bb80090feb23abdc","path":"plugins/p2p/p2p_plugin.cpp","line_range":"689-706","gmt_create":"2026-04-23T11:16:32.285845+04:00","gmt_modified":"2026-04-23T11:16:32.285845+04:00"},{"id":"b136009499eb952960a997500371c413","path":"libraries/network/stcp_socket.cpp","line_range":"37-92","gmt_create":"2026-04-23T11:16:32.2863871+04:00","gmt_modified":"2026-04-23T11:16:32.2863871+04:00"},{"id":"9f67fdb767ce515af96c465dbbb1fe8f","path":"plugins/p2p/p2p_plugin.cpp","line_range":"497-521","gmt_create":"2026-04-23T11:16:32.2874285+04:00","gmt_modified":"2026-04-23T11:16:32.2874285+04:00"},{"id":"acad8673bff956aca1d53443f4ba5739","path":"libraries/network/node.cpp","line_range":"780-785","gmt_create":"2026-04-23T11:16:32.2879424+04:00","gmt_modified":"2026-04-23T11:16:32.2879424+04:00"},{"id":"ffcabaf2fce1313ba726f943d26bdf4a","path":"plugins/p2p/p2p_plugin.cpp","line_range":"537-540","gmt_create":"2026-04-23T11:16:32.2879424+04:00","gmt_modified":"2026-04-23T11:16:32.2879424+04:00"},{"id":"2ed9aa8440a7a4d0e1b58d003e493158","path":"libraries/network/node.cpp","line_range":"786-792","gmt_create":"2026-04-23T11:16:32.2884558+04:00","gmt_modified":"2026-04-23T11:16:32.2884558+04:00"},{"id":"d1be4370926b5262daf2447b9745d905","path":"plugins/p2p/p2p_plugin.cpp","line_range":"487-495","gmt_create":"2026-04-23T11:16:32.2884558+04:00","gmt_modified":"2026-04-23T11:16:32.2884558+04:00"},{"id":"5fdf8584baa2beb83725ffd40a065ff4","path":"libraries/network/include/graphene/network/config.hpp","line_range":"52-56","gmt_create":"2026-04-23T11:16:32.2884558+04:00","gmt_modified":"2026-04-23T11:16:32.2884558+04:00"},{"id":"034d2639f50a8ac9d67ffbf0594a6afa","path":"libraries/network/node.cpp","line_range":"441-445","gmt_create":"2026-04-23T11:16:32.2884558+04:00","gmt_modified":"2026-04-23T11:16:32.2884558+04:00"},{"id":"65d8ec4282c90ca603928ff3ca7a8c1c","path":"libraries/network/peer_connection.cpp","line_range":"169-206","gmt_create":"2026-04-23T11:16:32.2889737+04:00","gmt_modified":"2026-04-23T11:16:32.2889737+04:00"},{"id":"9483fd3d971ce258539c764b97277642","path":"libraries/network/stcp_socket.cpp","line_range":"49-66","gmt_create":"2026-04-23T11:16:32.2889737+04:00","gmt_modified":"2026-04-23T11:16:32.2889737+04:00"},{"id":"b798a371453386ed55f39515a7f187ce","path":"libraries/network/node.cpp","line_range":"223-239","gmt_create":"2026-04-23T11:16:32.2889737+04:00","gmt_modified":"2026-04-23T11:16:32.2889737+04:00"},{"id":"9adff7a947c035e71543339de4f875ec","path":"libraries/network/node.cpp","line_range":"638-640","gmt_create":"2026-04-23T11:16:32.2889737+04:00","gmt_modified":"2026-04-23T11:16:32.2889737+04:00"},{"id":"6b49cb375a448fd15559d24da7d7e23c","path":"libraries/network/node.cpp","line_range":"548-567","gmt_create":"2026-04-23T11:16:32.2894853+04:00","gmt_modified":"2026-04-23T11:16:32.2894853+04:00"},{"id":"3edc836b9f3a1df5c933c63ecc8ce954","path":"libraries/network/include/graphene/network/config.hpp","line_range":"55-106","gmt_create":"2026-04-23T11:16:32.2894853+04:00","gmt_modified":"2026-04-23T11:16:32.2894853+04:00"},{"id":"7b44d15de5faea5ec5d9aa45843a4779","path":"share/vizd/config/config.ini","line_range":"1-136","gmt_create":"2026-04-23T11:16:32.2899969+04:00","gmt_modified":"2026-04-23T11:16:32.2899969+04:00"},{"id":"5d3ecf8dbda10c5dac6bfd961791d02b","path":"share/vizd/config/config_testnet.ini","line_range":"1-132","gmt_create":"2026-04-23T11:16:32.2899969+04:00","gmt_modified":"2026-04-23T11:16:32.2899969+04:00"},{"id":"e5968eacd23776d0e60478ea5cc7d523","path":"plugins/p2p/p2p_plugin.cpp","line_range":"403-405","gmt_create":"2026-04-23T11:16:32.2910229+04:00","gmt_modified":"2026-04-23T11:16:32.2910229+04:00"},{"id":"3942d16870ce25abce21196a1bb5866b","path":"share/vizd/config/config.ini","line_range":"112-136","gmt_create":"2026-04-23T11:16:32.2915433+04:00","gmt_modified":"2026-04-23T11:16:32.2915433+04:00"},{"id":"2c8c910dec8b5db99994a8643fd780e8","path":"libraries/network/node.cpp","line_range":"5259-5262","gmt_create":"2026-04-23T11:16:32.2915433+04:00","gmt_modified":"2026-04-23T11:16:32.2915433+04:00"},{"id":"d48e61b6c0afbe8b0a4d20deff593854","path":"plugins/p2p/p2p_plugin.cpp","line_range":"467-482","gmt_create":"2026-04-23T11:16:32.2915433+04:00","gmt_modified":"2026-04-23T11:16:32.2915433+04:00"},{"id":"b07b9e450af40c43c796bcc7ecf03443","path":"share/vizd/config/config_witness.ini","line_range":"1-107","gmt_create":"2026-04-23T11:16:32.2920736+04:00","gmt_modified":"2026-04-23T11:16:32.2920736+04:00"},{"id":"f5e62fc26a62060b28ed790b81427d7c","path":"share/vizd/config/config_witness.ini","line_range":"1-138","gmt_create":"2026-04-23T11:18:10.15288+04:00","gmt_modified":"2026-04-23T11:18:10.15288+04:00"},{"id":"1259b9b4603fb7654c05f55dda13086b","path":"share/vizd/config/config_mongo.ini","line_range":"1-135","gmt_create":"2026-04-23T11:18:10.1533955+04:00","gmt_modified":"2026-04-23T11:18:10.1533955+04:00"},{"id":"f879c180ea600db69334ce6c60ebfc67","path":"share/vizd/config/config_debug.ini","line_range":"1-126","gmt_create":"2026-04-23T11:18:10.1533955+04:00","gmt_modified":"2026-04-23T11:18:10.1533955+04:00"},{"id":"89065e1727f834ef21b27213c44f73d8","path":"share/vizd/config/config_debug_mongo.ini","line_range":"1-135","gmt_create":"2026-04-23T11:18:10.1533955+04:00","gmt_modified":"2026-04-23T11:18:10.1533955+04:00"},{"id":"a508dd7eb64847424ab271643cd9888c","path":"share/vizd/docker/Dockerfile-production","line_range":"1-88","gmt_create":"2026-04-23T11:18:10.1533955+04:00","gmt_modified":"2026-04-23T11:18:10.1533955+04:00"},{"id":"cfae55af59e33580d0ead5c9858873b9","path":"share/vizd/docker/Dockerfile-testnet","line_range":"1-88","gmt_create":"2026-04-23T11:18:10.1533955+04:00","gmt_modified":"2026-04-23T11:18:10.1533955+04:00"},{"id":"e50af0202c9d2df3c95dcd52b22a7875","path":"share/vizd/docker/Dockerfile-lowmem","line_range":"1-82","gmt_create":"2026-04-23T11:18:10.1533955+04:00","gmt_modified":"2026-04-23T11:18:10.1533955+04:00"},{"id":"02d97913f7b4b7815c62c96757406f05","path":"share/vizd/vizd.sh","line_range":"1-82","gmt_create":"2026-04-23T11:18:10.1539142+04:00","gmt_modified":"2026-04-23T11:18:10.1539142+04:00"},{"id":"3ecc8f59e40237d675df5dc5f2ab9e3f","path":"programs/vizd/main.cpp","line_range":"106-158","gmt_create":"2026-04-23T11:18:10.1539142+04:00","gmt_modified":"2026-04-23T11:18:10.1539142+04:00"},{"id":"8ea516cf0275c865b6616ac02038e975","path":"programs/vizd/main.cpp","line_range":"167-191","gmt_create":"2026-04-23T11:18:10.1554693+04:00","gmt_modified":"2026-04-23T11:18:10.1554693+04:00"},{"id":"9e64b3a2336887764e7763504ce8f71e","path":"programs/vizd/main.cpp","line_range":"194-289","gmt_create":"2026-04-23T11:18:10.1554693+04:00","gmt_modified":"2026-04-23T11:18:10.1554693+04:00"},{"id":"c0e776269c77e718b0080a3324a03252","path":"share/vizd/vizd.sh","line_range":"13-81","gmt_create":"2026-04-23T11:18:10.1554693+04:00","gmt_modified":"2026-04-23T11:18:10.1554693+04:00"},{"id":"723df9738dcc68a8f36385eac9a23b58","path":"programs/vizd/main.cpp","line_range":"112-139","gmt_create":"2026-04-23T11:18:10.1554693+04:00","gmt_modified":"2026-04-23T11:18:10.1554693+04:00"},{"id":"66d4da5ca8d98cc1daac8e113015bc44","path":"programs/vizd/main.cpp","line_range":"211-289","gmt_create":"2026-04-23T11:18:10.1559866+04:00","gmt_modified":"2026-04-23T11:18:10.1559866+04:00"},{"id":"02a59ce905e8fa73dd8ca7f928ca2193","path":"share/vizd/config/config.ini","line_range":"118-136","gmt_create":"2026-04-23T11:18:10.1559866+04:00","gmt_modified":"2026-04-23T11:18:10.1559866+04:00"},{"id":"11a4a0b249c7d67d935d0f973bbfbf9e","path":"share/vizd/vizd.sh","line_range":"17-37","gmt_create":"2026-04-23T11:18:10.1565009+04:00","gmt_modified":"2026-04-23T11:18:10.1565009+04:00"},{"id":"8d40a619d37d62a4174c9e4f961de6bc","path":"share/vizd/vizd.sh","line_range":"62-72","gmt_create":"2026-04-23T11:18:10.1565009+04:00","gmt_modified":"2026-04-23T11:18:10.1565009+04:00"},{"id":"f61e616c21dc286dc1ae08fad69742ae","path":"share/vizd/vizd.sh","line_range":"74-81","gmt_create":"2026-04-23T11:18:10.1565009+04:00","gmt_modified":"2026-04-23T11:18:10.1565009+04:00"},{"id":"b577652662571d1a6efff44b8a3bedac","path":"share/vizd/docker/Dockerfile-lowmem","line_range":"45-51","gmt_create":"2026-04-23T11:18:10.1570174+04:00","gmt_modified":"2026-04-23T11:18:10.1570174+04:00"},{"id":"27e17a8b16a2046c86431c4efb55c490","path":"documentation/building.md","line_range":"11-15","gmt_create":"2026-04-23T11:18:10.1570174+04:00","gmt_modified":"2026-04-23T11:18:10.1570174+04:00"},{"id":"f95c6fd9bbadfc95b3e751af0eedc850","path":"share/vizd/config/config.ini","line_range":"73-85","gmt_create":"2026-04-23T11:18:10.1570174+04:00","gmt_modified":"2026-04-23T11:18:10.1570174+04:00"},{"id":"d7563de88c1c2455fbab29fc8bf59151","path":"share/vizd/config/config_testnet.ini","line_range":"69-73","gmt_create":"2026-04-23T11:18:10.1575321+04:00","gmt_modified":"2026-04-23T11:18:10.1575321+04:00"},{"id":"66a1852e5ddbbf1c1e3623904184dd7f","path":"share/vizd/config/config_witness.ini","line_range":"72-84","gmt_create":"2026-04-23T11:18:10.1575321+04:00","gmt_modified":"2026-04-23T11:18:10.1575321+04:00"},{"id":"fac32e0593f6022cefafd878acb27805","path":"share/vizd/config/config.ini","line_range":"1-16","gmt_create":"2026-04-23T11:18:10.1580572+04:00","gmt_modified":"2026-04-23T11:18:10.1580572+04:00"},{"id":"f230a2eda062b0bb4b25752269697907","path":"share/vizd/config/config_testnet.ini","line_range":"1-11","gmt_create":"2026-04-23T11:18:10.1580572+04:00","gmt_modified":"2026-04-23T11:18:10.1580572+04:00"},{"id":"5b0c578c897b0e81a8472eb992c1948c","path":"share/vizd/config/config_witness.ini","line_range":"1-15","gmt_create":"2026-04-23T11:18:10.1580572+04:00","gmt_modified":"2026-04-23T11:18:10.1580572+04:00"},{"id":"6ee3005060680b6efd42fd067cd1b6fa","path":"libraries/network/include/graphene/network/config.hpp","line_range":"54-56","gmt_create":"2026-04-23T11:18:10.1580572+04:00","gmt_modified":"2026-04-23T11:18:10.1580572+04:00"},{"id":"2a51e3bcda512928b2c175f069b49da1","path":"libraries/network/include/graphene/network/config.hpp","line_range":"105-106","gmt_create":"2026-04-23T11:18:10.158578+04:00","gmt_modified":"2026-04-23T11:18:10.158578+04:00"},{"id":"e0fb8983bc6bcc17a8c8c5ad398307ba","path":"documentation/plugin.md","line_range":"14-18","gmt_create":"2026-04-23T11:18:10.1596229+04:00","gmt_modified":"2026-04-23T11:18:10.1596229+04:00"},{"id":"dc45b878fea55940e84795c898d534e2","path":"share/vizd/config/config.ini","line_range":"17-72","gmt_create":"2026-04-23T11:18:10.1596229+04:00","gmt_modified":"2026-04-23T11:18:10.1596229+04:00"},{"id":"9b21fb63c2c0f7d75fdcc009d4ec9797","path":"share/vizd/config/config.ini","line_range":"49-67","gmt_create":"2026-04-23T11:18:10.1596229+04:00","gmt_modified":"2026-04-23T11:18:10.1596229+04:00"},{"id":"0c2dc00bd927808ce5deb1882d22281e","path":"plugins/snapshot/plugin.cpp","line_range":"2974-2983","gmt_create":"2026-04-23T11:18:10.1601402+04:00","gmt_modified":"2026-04-23T11:18:10.1601402+04:00"},{"id":"b605e7c4ef39a7dcf4decc6078a67230","path":"plugins/snapshot/plugin.cpp","line_range":"3044-3050","gmt_create":"2026-04-23T11:18:10.1601402+04:00","gmt_modified":"2026-04-23T11:18:10.1601402+04:00"},{"id":"585169926520ae8df39c3a059f57c8d0","path":"plugins/snapshot/plugin.cpp","line_range":"3070-3090","gmt_create":"2026-04-23T11:18:10.1601402+04:00","gmt_modified":"2026-04-23T11:18:10.1601402+04:00"},{"id":"e6f25269916d6af7894cc98681fba58a","path":"plugins/chain/plugin.cpp","line_range":"352-355","gmt_create":"2026-04-23T11:18:10.1606828+04:00","gmt_modified":"2026-04-23T11:18:10.1606828+04:00"},{"id":"8cef3542a1f8beb59e711d1019148801","path":"thirdparty/appbase/application.cpp","line_range":"298-300","gmt_create":"2026-04-23T11:18:10.1607553+04:00","gmt_modified":"2026-04-23T11:18:10.1607553+04:00"},{"id":"9e7faefdb8e8ae15d81ef925ba52ede7","path":"documentation/snapshot-plugin.md","line_range":"1-365","gmt_create":"2026-04-23T11:18:10.1607553+04:00","gmt_modified":"2026-04-23T11:18:10.1607553+04:00"},{"id":"b3d3f4e10ccf640de58c527e09a7f0ea","path":"share/vizd/docker/Dockerfile-production","line_range":"74-87","gmt_create":"2026-04-23T11:18:10.1607553+04:00","gmt_modified":"2026-04-23T11:18:10.1607553+04:00"},{"id":"ff12cf82125b232102ae8ec380b68997","path":"share/vizd/docker/Dockerfile-testnet","line_range":"75-87","gmt_create":"2026-04-23T11:18:10.1607553+04:00","gmt_modified":"2026-04-23T11:18:10.1607553+04:00"},{"id":"3f3c0b55c7eafaf833e73e62b702d574","path":"share/vizd/docker/Dockerfile-lowmem","line_range":"68-81","gmt_create":"2026-04-23T11:18:10.1607553+04:00","gmt_modified":"2026-04-23T11:18:10.1607553+04:00"},{"id":"8e0b63e0554f6ef9ba9046c1e9e43a45","path":"share/vizd/docker/Dockerfile-production","line_range":"46-52","gmt_create":"2026-04-23T11:18:10.1612574+04:00","gmt_modified":"2026-04-23T11:18:10.1612574+04:00"},{"id":"3cff82760ed755da0f3b8ef754b949b7","path":"share/vizd/docker/Dockerfile-testnet","line_range":"46-52","gmt_create":"2026-04-23T11:18:10.1612574+04:00","gmt_modified":"2026-04-23T11:18:10.1612574+04:00"},{"id":"7d4fe637b747b179eb9a0fed7f670bf8","path":"documentation/testnet.md","line_range":"21-37","gmt_create":"2026-04-23T11:18:10.1623667+04:00","gmt_modified":"2026-04-23T11:18:10.1623667+04:00"},{"id":"ddbee7a909c340a5ede92adff06a411b","path":"share/vizd/vizd.sh","line_range":"44-53","gmt_create":"2026-04-23T11:18:10.1639061+04:00","gmt_modified":"2026-04-23T11:18:10.1639061+04:00"},{"id":"b33b3396bd5cb46ada1e5bf1c2e4bae9","path":"plugins/witness/witness.cpp","line_range":"125-130","gmt_create":"2026-04-23T11:18:10.1639061+04:00","gmt_modified":"2026-04-23T11:18:10.1639061+04:00"},{"id":"ad929e01065409fab84d7e5e33b73eb3","path":"libraries/protocol/include/graphene/protocol/config_testnet.hpp","line_range":"57-59","gmt_create":"2026-04-23T11:18:10.1644172+04:00","gmt_modified":"2026-04-23T11:18:10.1644172+04:00"},{"id":"4c4362032489436035a502ce6ad07ea6","path":"libraries/protocol/include/graphene/protocol/config.hpp","line_range":"57-59","gmt_create":"2026-04-23T11:18:10.1644172+04:00","gmt_modified":"2026-04-23T11:18:10.1644172+04:00"},{"id":"79d9f0965fb73ee6e499532bdd2c72c3","path":"plugins/chain/plugin.cpp","line_range":"58-121","gmt_create":"2026-04-23T11:18:36.4196893+04:00","gmt_modified":"2026-04-23T11:18:36.4196893+04:00"},{"id":"79ab2542b5c96058f09208f1cd2cd6fd","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"72-573","gmt_create":"2026-04-23T11:46:31.22747+04:00","gmt_modified":"2026-04-23T11:46:31.22747+04:00"},{"id":"05b62d2805cb3a311c10475a638f22d4","path":"plugins/p2p/p2p_plugin.cpp","line_range":"500-560","gmt_create":"2026-04-23T11:46:31.2290433+04:00","gmt_modified":"2026-04-23T11:46:31.2290433+04:00"},{"id":"cf043d8e90537efdf39b7880e8959da4","path":"libraries/network/node.cpp","line_range":"5281-5286","gmt_create":"2026-04-23T11:46:31.2290433+04:00","gmt_modified":"2026-04-23T11:46:31.2290433+04:00"},{"id":"fed4d7f6216f50b46ffc2f059db54915","path":"libraries/network/include/graphene/network/config.hpp","line_range":"1-106","gmt_create":"2026-04-23T11:46:31.2327184+04:00","gmt_modified":"2026-04-23T11:46:31.2327184+04:00"},{"id":"df5f1767872da5ad020edc60475ab9b9","path":"plugins/p2p/p2p_plugin.cpp","line_range":"1-742","gmt_create":"2026-04-23T11:46:31.2332901+04:00","gmt_modified":"2026-04-23T11:46:31.2332901+04:00"},{"id":"b32ad9e7a8c85cae6d0a130d7399ace9","path":"libraries/network/include/graphene/network/node.hpp","line_range":"182-304","gmt_create":"2026-04-23T11:46:31.2332901+04:00","gmt_modified":"2026-04-23T11:46:31.2332901+04:00"},{"id":"be6d9b8a21e11f9cb8bac726d2b15873","path":"libraries/network/node.cpp","line_range":"780-790","gmt_create":"2026-04-23T11:46:31.2343673+04:00","gmt_modified":"2026-04-23T11:46:31.2343673+04:00"},{"id":"395304bf3b17e833fe3418a2227e8d20","path":"libraries/network/peer_connection.cpp","line_range":"310-354","gmt_create":"2026-04-23T11:46:31.2386944+04:00","gmt_modified":"2026-04-23T11:46:31.2386944+04:00"},{"id":"bd2df0ef0f3a3569038ff93abf7f049a","path":"libraries/network/core_messages.cpp","line_range":"30-49","gmt_create":"2026-04-23T11:46:31.2399204+04:00","gmt_modified":"2026-04-23T11:46:31.2399204+04:00"},{"id":"d0629cc7855cceaf537ab39cb2b4e1cf","path":"libraries/network/stcp_socket.cpp","line_range":"49-177","gmt_create":"2026-04-23T11:46:31.2420828+04:00","gmt_modified":"2026-04-23T11:46:31.2420828+04:00"},{"id":"3865aa6bd2579d32e36d7fa59c617b84","path":"libraries/network/peer_database.cpp","line_range":"41-82","gmt_create":"2026-04-23T11:46:31.2426586+04:00","gmt_modified":"2026-04-23T11:46:31.2426586+04:00"},{"id":"ea4c7e04621ef7790eb86a4d944b26e4","path":"libraries/network/include/graphene/network/message.hpp","line_range":"70-105","gmt_create":"2026-04-23T11:46:31.2435114+04:00","gmt_modified":"2026-04-23T11:46:31.2435114+04:00"},{"id":"5263aa5e9c9cc4ee3589a4347ba00d1a","path":"libraries/network/node.cpp","line_range":"3710-3723","gmt_create":"2026-04-23T11:46:31.2441196+04:00","gmt_modified":"2026-04-23T11:46:31.2441196+04:00"},{"id":"a3e7a4bb9a35beeeca37a93cc44b85f2","path":"libraries/network/node.cpp","line_range":"312-381","gmt_create":"2026-04-23T11:46:31.2441196+04:00","gmt_modified":"2026-04-23T11:46:31.2441196+04:00"},{"id":"c07e1357b4c5c16aa56461f40df51f3f","path":"libraries/network/node.cpp","line_range":"383-420","gmt_create":"2026-04-23T11:46:31.2446952+04:00","gmt_modified":"2026-04-23T11:46:31.2446952+04:00"},{"id":"ab29edddf2ddea94dfa66818525a4f69","path":"libraries/network/include/graphene/network/node.hpp","line_range":"173-179","gmt_create":"2026-04-23T11:46:31.2446952+04:00","gmt_modified":"2026-04-23T11:46:31.2446952+04:00"},{"id":"a047fc28da4096adb5975768b23d6568","path":"libraries/network/node.cpp","line_range":"4920-4970","gmt_create":"2026-04-23T11:46:31.2446952+04:00","gmt_modified":"2026-04-23T11:46:31.2446952+04:00"},{"id":"87ef8faa755216d0d684261ca4cf1296","path":"libraries/network/node.cpp","line_range":"5128-5131","gmt_create":"2026-04-23T11:46:31.2451978+04:00","gmt_modified":"2026-04-23T11:46:31.2451978+04:00"},{"id":"36c1fcbd66f9c3ed0ccd021257219b26","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"322-346","gmt_create":"2026-04-23T11:46:31.2462017+04:00","gmt_modified":"2026-04-23T11:46:31.2462017+04:00"},{"id":"8bc218238f6ca1f8614c8573c3d99ddb","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"428-448","gmt_create":"2026-04-23T11:46:31.2467274+04:00","gmt_modified":"2026-04-23T11:46:31.2467274+04:00"},{"id":"edb1f25b3c55f03a9497c43c9ed563d9","path":"libraries/network/node.cpp","line_range":"4900-4970","gmt_create":"2026-04-23T11:46:31.2475391+04:00","gmt_modified":"2026-04-23T11:46:31.2475391+04:00"},{"id":"f865c1de13ecfad0ba10d76be6f51e79","path":"libraries/network/node.cpp","line_range":"4164-4168","gmt_create":"2026-04-23T11:46:31.2486185+04:00","gmt_modified":"2026-04-23T11:46:31.2486185+04:00"},{"id":"46360683264d8d799f49154a37e77c95","path":"libraries/network/include/graphene/network/node.hpp","line_range":"298-304","gmt_create":"2026-04-23T11:46:31.2486185+04:00","gmt_modified":"2026-04-23T11:46:31.2486185+04:00"},{"id":"92a7248b320d281221528fd4b3586fae","path":"plugins/p2p/p2p_plugin.cpp","line_range":"616-618","gmt_create":"2026-04-23T11:46:31.2486185+04:00","gmt_modified":"2026-04-23T11:46:31.2486185+04:00"},{"id":"d3c1206d30a580d9a1f8e5f0a0e37caa","path":"libraries/network/include/graphene/network/node.hpp","line_range":"26-28","gmt_create":"2026-04-23T11:46:31.2496263+04:00","gmt_modified":"2026-04-23T11:46:31.2496263+04:00"},{"id":"47a7ec224c52b37cda36330051d8989e","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"26-29","gmt_create":"2026-04-23T11:46:31.2496263+04:00","gmt_modified":"2026-04-23T11:46:31.2496263+04:00"},{"id":"46f63b299b6fb267a4f639c2d0d892de","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"26-28","gmt_create":"2026-04-23T11:46:31.2496263+04:00","gmt_modified":"2026-04-23T11:46:31.2496263+04:00"},{"id":"094de29302ce2b97582033a6a5e5f81d","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"26-27","gmt_create":"2026-04-23T11:46:31.2506316+04:00","gmt_modified":"2026-04-23T11:46:31.2506316+04:00"},{"id":"c57df28bcfcd9ae39dd00ccdbfab27c0","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"39-45","gmt_create":"2026-04-23T11:46:31.2540973+04:00","gmt_modified":"2026-04-23T11:46:31.2540973+04:00"},{"id":"cda16bb7e30e75cab0c3ba93c74374ac","path":"libraries/network/include/graphene/network/node.hpp","line_range":"288-298","gmt_create":"2026-04-23T11:46:31.2542433+04:00","gmt_modified":"2026-04-23T11:46:31.2542433+04:00"},{"id":"8ee1a4f18a4402289535e116f51b9516","path":"libraries/network/include/graphene/network/message.hpp","line_range":"85-105","gmt_create":"2026-04-23T11:46:31.2548401+04:00","gmt_modified":"2026-04-23T11:46:31.2548401+04:00"},{"id":"302a2b97d7155d06fda21dbeb2f1b54a","path":"plugins/p2p/p2p_plugin.cpp","line_range":"585-649","gmt_create":"2026-04-23T12:16:49.7747829+04:00","gmt_modified":"2026-04-23T12:16:49.7747829+04:00"},{"id":"6af8eb79e9f65f7ea2c694223695d9a3","path":"plugins/p2p/p2p_plugin.cpp","line_range":"812-820","gmt_create":"2026-04-23T12:16:49.7747829+04:00","gmt_modified":"2026-04-23T12:16:49.7747829+04:00"},{"id":"93d54ced192f760547e10eb155a75d8e","path":"libraries/network/node.cpp","line_range":"346-347","gmt_create":"2026-04-23T12:16:50.9632338+04:00","gmt_modified":"2026-04-23T12:16:50.9632338+04:00"},{"id":"db7e02e69db0e8586e85ce97afc5cb39","path":"documentation/snapshot-plugin.md","line_range":"339-374","gmt_create":"2026-04-23T12:18:55.5891703+04:00","gmt_modified":"2026-04-23T12:18:55.5891703+04:00"},{"id":"41cf0afd5318bbd8764352fab2436ad5","path":"plugins/p2p/p2p_plugin.cpp","line_range":"673-677","gmt_create":"2026-04-23T12:18:55.5896884+04:00","gmt_modified":"2026-04-23T12:18:55.5896884+04:00"},{"id":"5d91b76995b1b78e1207caddc6168d8b","path":"plugins/p2p/p2p_plugin.cpp","line_range":"744-755","gmt_create":"2026-04-23T12:18:55.5896884+04:00","gmt_modified":"2026-04-23T12:18:55.5896884+04:00"}],"knowledge_relations":[{"id":30124,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"5b1863c24f95c4307bc9d6bd13495e98","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: .gitmodules","gmt_create":"2026-04-23T06:46:47.4280795+04:00","gmt_modified":"2026-04-23T06:46:47.4280795+04:00"},{"id":30125,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"e1da3cd2e6e4f1c39a468f27c18fed86","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/.gitmodules","gmt_create":"2026-04-23T06:46:47.429631+04:00","gmt_modified":"2026-04-23T06:46:47.429631+04:00"},{"id":30126,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"59aed13dec3dec090ca4238d87a33a3e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4301476+04:00","gmt_modified":"2026-04-23T06:46:47.4301476+04:00"},{"id":30127,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"9ef0f7dd92ad42844d61d049ea2e91f7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/chainbase/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4301476+04:00","gmt_modified":"2026-04-23T06:46:47.4301476+04:00"},{"id":30128,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"ea84849af043a9e7eabccf5474037fdf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/appbase/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4306651+04:00","gmt_modified":"2026-04-23T06:46:47.4306651+04:00"},{"id":30129,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"bbbcb34fa600f3efb29ca006ef2eff66","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4306651+04:00","gmt_modified":"2026-04-23T06:46:47.4306651+04:00"},{"id":30130,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"33769e7ecefb7ac442a88bcc6e7fe7db","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/building.md","gmt_create":"2026-04-23T06:46:47.4311779+04:00","gmt_modified":"2026-04-23T06:46:47.4311779+04:00"},{"id":30131,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"e15d33f14b3a5dc9ebc5e50072c39aa1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: .travis.yml","gmt_create":"2026-04-23T06:46:47.4316969+04:00","gmt_modified":"2026-04-23T06:46:47.4316969+04:00"},{"id":30132,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"48369ee5882470d563a4a3760712465a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-production","gmt_create":"2026-04-23T06:46:47.4316969+04:00","gmt_modified":"2026-04-23T06:46:47.4316969+04:00"},{"id":30133,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"5c83db7209d29d47467923bf09fbb420","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-testnet","gmt_create":"2026-04-23T06:46:47.4316969+04:00","gmt_modified":"2026-04-23T06:46:47.4316969+04:00"},{"id":30134,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-lowmem","gmt_create":"2026-04-23T06:46:47.4316969+04:00","gmt_modified":"2026-04-23T06:46:47.4316969+04:00"},{"id":30135,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"70883dd54389a65e0c6792812c73a8e2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-04-23T06:46:47.4316969+04:00","gmt_modified":"2026-04-23T06:46:47.4316969+04:00"},{"id":30136,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"8119d11d74306341a650d0a8c0c5605b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: .github/workflows/docker-main.yml","gmt_create":"2026-04-23T06:46:47.4316969+04:00","gmt_modified":"2026-04-23T06:46:47.4316969+04:00"},{"id":30137,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"fe40dc0bce746a9c7f466b6eb7abb86b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4327004+04:00","gmt_modified":"2026-04-23T06:46:47.4327004+04:00"},{"id":30138,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"de0fafbf85e2109ebd021f91113f4c4e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.433208+04:00","gmt_modified":"2026-04-23T06:46:47.433208+04:00"},{"id":30139,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"3c826f15ca54d3363e6a7af0b5686211","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: programs/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.433208+04:00","gmt_modified":"2026-04-23T06:46:47.433208+04:00"},{"id":30140,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"586d0a978dde912618689cf19874dd4b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.433208+04:00","gmt_modified":"2026-04-23T06:46:47.433208+04:00"},{"id":30141,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"922b8fed67a0bf6bcc7f3f4a2eb38ddd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: programs/vizd/CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.433208+04:00","gmt_modified":"2026-04-23T06:46:47.433208+04:00"},{"id":30142,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"48a318f357a885ebfef27b84ef5565ee","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: build-linux.sh","gmt_create":"2026-04-23T06:46:47.433208+04:00","gmt_modified":"2026-04-23T06:46:47.433208+04:00"},{"id":30143,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"3e55b84725e9a2931cb48b11d42ef75c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: build-mac.sh","gmt_create":"2026-04-23T06:46:47.433208+04:00","gmt_modified":"2026-04-23T06:46:47.433208+04:00"},{"id":30144,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"3fbe84fabfaa10d8da23f6d4dad03692","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: build-mingw.bat","gmt_create":"2026-04-23T06:46:47.4342116+04:00","gmt_modified":"2026-04-23T06:46:47.4342116+04:00"},{"id":30145,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"1582cef3977fa0f573c3bdb3fe4a0045","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: build-msvc.bat","gmt_create":"2026-04-23T06:46:47.4342116+04:00","gmt_modified":"2026-04-23T06:46:47.4342116+04:00"},{"id":30146,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"a6554c3e99a338d898b0507a3a66ff28","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#210-213","gmt_create":"2026-04-23T06:46:47.4342116+04:00","gmt_modified":"2026-04-23T06:46:47.4342116+04:00"},{"id":30147,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"a6554c3e99a338d898b0507a3a66ff28","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 210-213","gmt_create":"2026-04-23T06:46:47.4342116+04:00","gmt_modified":"2026-04-23T06:46:47.4342116+04:00"},{"id":30148,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"b4276d0c8cc31d088a1ff447673b57a3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/CMakeLists.txt#1-3","gmt_create":"2026-04-23T06:46:47.4352158+04:00","gmt_modified":"2026-04-23T06:46:47.4352158+04:00"},{"id":30149,"source_id":"586d0a978dde912618689cf19874dd4b","target_id":"b4276d0c8cc31d088a1ff447673b57a3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-3","gmt_create":"2026-04-23T06:46:47.4352158+04:00","gmt_modified":"2026-04-23T06:46:47.4352158+04:00"},{"id":30150,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"95a23068f3cf8efeb2f469b3762d202c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/CMakeLists.txt#1-8","gmt_create":"2026-04-23T06:46:47.4362154+04:00","gmt_modified":"2026-04-23T06:46:47.4362154+04:00"},{"id":30151,"source_id":"fe40dc0bce746a9c7f466b6eb7abb86b","target_id":"95a23068f3cf8efeb2f469b3762d202c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-8","gmt_create":"2026-04-23T06:46:47.4362154+04:00","gmt_modified":"2026-04-23T06:46:47.4362154+04:00"},{"id":30152,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"eb47238d4d9c0bc7677c0adbb5315621","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/CMakeLists.txt#1-12","gmt_create":"2026-04-23T06:46:47.4362154+04:00","gmt_modified":"2026-04-23T06:46:47.4362154+04:00"},{"id":30153,"source_id":"de0fafbf85e2109ebd021f91113f4c4e","target_id":"eb47238d4d9c0bc7677c0adbb5315621","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-12","gmt_create":"2026-04-23T06:46:47.4372156+04:00","gmt_modified":"2026-04-23T06:46:47.4372156+04:00"},{"id":30154,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"f82191fd008239ba9828aa2407463469","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/CMakeLists.txt#1-8","gmt_create":"2026-04-23T06:46:47.4372156+04:00","gmt_modified":"2026-04-23T06:46:47.4372156+04:00"},{"id":30155,"source_id":"3c826f15ca54d3363e6a7af0b5686211","target_id":"f82191fd008239ba9828aa2407463469","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-8","gmt_create":"2026-04-23T06:46:47.4372156+04:00","gmt_modified":"2026-04-23T06:46:47.4372156+04:00"},{"id":30156,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"0b638cb0339fd1defe7fb60a33538909","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .gitmodules#1-13","gmt_create":"2026-04-23T06:46:47.4372156+04:00","gmt_modified":"2026-04-23T06:46:47.4372156+04:00"},{"id":30157,"source_id":"5b1863c24f95c4307bc9d6bd13495e98","target_id":"0b638cb0339fd1defe7fb60a33538909","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-13","gmt_create":"2026-04-23T06:46:47.4372156+04:00","gmt_modified":"2026-04-23T06:46:47.4372156+04:00"},{"id":30158,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"1b6a9427d3c622d5192d3935a64543bd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#1-271","gmt_create":"2026-04-23T06:46:47.4383382+04:00","gmt_modified":"2026-04-23T06:46:47.4383382+04:00"},{"id":30159,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"1b6a9427d3c622d5192d3935a64543bd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-271","gmt_create":"2026-04-23T06:46:47.4383382+04:00","gmt_modified":"2026-04-23T06:46:47.4383382+04:00"},{"id":30160,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"d302333235c57587186737aa4dca15e8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/building.md#3-212","gmt_create":"2026-04-23T06:46:47.4383382+04:00","gmt_modified":"2026-04-23T06:46:47.4383382+04:00"},{"id":30161,"source_id":"33769e7ecefb7ac442a88bcc6e7fe7db","target_id":"d302333235c57587186737aa4dca15e8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3-212","gmt_create":"2026-04-23T06:46:47.4393379+04:00","gmt_modified":"2026-04-23T06:46:47.4393379+04:00"},{"id":30162,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"cb84fa9cda98d6d0c8dae3b261ed7a70","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/CMakeLists.txt#16-49","gmt_create":"2026-04-23T06:46:47.4393379+04:00","gmt_modified":"2026-04-23T06:46:47.4393379+04:00"},{"id":30163,"source_id":"922b8fed67a0bf6bcc7f3f4a2eb38ddd","target_id":"cb84fa9cda98d6d0c8dae3b261ed7a70","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-49","gmt_create":"2026-04-23T06:46:47.440339+04:00","gmt_modified":"2026-04-23T06:46:47.440339+04:00"},{"id":30164,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"b8c001209973c30395b37fb2da7d01da","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#56-89","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30165,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"b8c001209973c30395b37fb2da7d01da","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 56-89","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30166,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"3dc9c9dd6a7323c7679ba87de581b271","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#196-208","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30167,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"3dc9c9dd6a7323c7679ba87de581b271","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 196-208","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30168,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"6bfcc19ec644ada767dba2b4cd16b384","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#91-202","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30169,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"6bfcc19ec644ada767dba2b4cd16b384","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 91-202","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30170,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"daf69b54ca31d1461ddc9b5b7229eb44","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/building.md#25-212","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30171,"source_id":"33769e7ecefb7ac442a88bcc6e7fe7db","target_id":"daf69b54ca31d1461ddc9b5b7229eb44","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-212","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30172,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"52e6ffd6a8494783d8744074cebd0336","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/CMakeLists.txt#115-130","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30173,"source_id":"59aed13dec3dec090ca4238d87a33a3e","target_id":"52e6ffd6a8494783d8744074cebd0336","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 115-130","gmt_create":"2026-04-23T06:46:47.441339+04:00","gmt_modified":"2026-04-23T06:46:47.441339+04:00"},{"id":30174,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"c8c2228bb696aed9de796ce6fc2d85a7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/CMakeLists.txt#28","gmt_create":"2026-04-23T06:46:47.4429298+04:00","gmt_modified":"2026-04-23T06:46:47.4429298+04:00"},{"id":30175,"source_id":"9ef0f7dd92ad42844d61d049ea2e91f7","target_id":"c8c2228bb696aed9de796ce6fc2d85a7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 28","gmt_create":"2026-04-23T06:46:47.4429298+04:00","gmt_modified":"2026-04-23T06:46:47.4429298+04:00"},{"id":30176,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"7535e2fd9b45a698e5e59716482d28bf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/appbase/CMakeLists.txt#21","gmt_create":"2026-04-23T06:46:47.4438479+04:00","gmt_modified":"2026-04-23T06:46:47.4438479+04:00"},{"id":30177,"source_id":"ea84849af043a9e7eabccf5474037fdf","target_id":"7535e2fd9b45a698e5e59716482d28bf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 21","gmt_create":"2026-04-23T06:46:47.4438479+04:00","gmt_modified":"2026-04-23T06:46:47.4438479+04:00"},{"id":30178,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"ca9eea091b8db2ef86264e42e38ca6ee","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/.gitmodules#1-10","gmt_create":"2026-04-23T06:46:47.4438479+04:00","gmt_modified":"2026-04-23T06:46:47.4438479+04:00"},{"id":30179,"source_id":"e1da3cd2e6e4f1c39a468f27c18fed86","target_id":"ca9eea091b8db2ef86264e42e38ca6ee","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2026-04-23T06:46:47.4448472+04:00","gmt_modified":"2026-04-23T06:46:47.4448472+04:00"},{"id":30180,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"3dc1dfd57ce8f8f0ddb0903ecc4757e0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/CMakeLists.txt#51-101","gmt_create":"2026-04-23T06:46:47.4448472+04:00","gmt_modified":"2026-04-23T06:46:47.4448472+04:00"},{"id":30181,"source_id":"59aed13dec3dec090ca4238d87a33a3e","target_id":"3dc1dfd57ce8f8f0ddb0903ecc4757e0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 51-101","gmt_create":"2026-04-23T06:46:47.4448472+04:00","gmt_modified":"2026-04-23T06:46:47.4448472+04:00"},{"id":30182,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"4be9aed880930cc1db12f5577deb6b36","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#97-104","gmt_create":"2026-04-23T06:46:47.4448472+04:00","gmt_modified":"2026-04-23T06:46:47.4448472+04:00"},{"id":30183,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"4be9aed880930cc1db12f5577deb6b36","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 97-104","gmt_create":"2026-04-23T06:46:47.4458491+04:00","gmt_modified":"2026-04-23T06:46:47.4458491+04:00"},{"id":30184,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"c7aa1ccb058236d7733e705cdb185dd8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#160-183","gmt_create":"2026-04-23T06:46:47.4458491+04:00","gmt_modified":"2026-04-23T06:46:47.4458491+04:00"},{"id":30185,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"c7aa1ccb058236d7733e705cdb185dd8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 160-183","gmt_create":"2026-04-23T06:46:47.4458491+04:00","gmt_modified":"2026-04-23T06:46:47.4458491+04:00"},{"id":30186,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"9c24cd1c93b483ba1aede76c89f958b2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#106-110","gmt_create":"2026-04-23T06:46:47.4458491+04:00","gmt_modified":"2026-04-23T06:46:47.4458491+04:00"},{"id":30187,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"9c24cd1c93b483ba1aede76c89f958b2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 106-110","gmt_create":"2026-04-23T06:46:47.4468479+04:00","gmt_modified":"2026-04-23T06:46:47.4468479+04:00"},{"id":30188,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"f565e4a16509997a202ecb545fdd1d94","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/CMakeLists.txt#10-14","gmt_create":"2026-04-23T06:46:47.4468479+04:00","gmt_modified":"2026-04-23T06:46:47.4468479+04:00"},{"id":30189,"source_id":"922b8fed67a0bf6bcc7f3f4a2eb38ddd","target_id":"f565e4a16509997a202ecb545fdd1d94","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10-14","gmt_create":"2026-04-23T06:46:47.4468479+04:00","gmt_modified":"2026-04-23T06:46:47.4468479+04:00"},{"id":30190,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"73b1b23eeea50d8b237bb80c8dc5bdc3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/CMakeLists.txt#1-58","gmt_create":"2026-04-23T06:46:47.4478478+04:00","gmt_modified":"2026-04-23T06:46:47.4478478+04:00"},{"id":30191,"source_id":"922b8fed67a0bf6bcc7f3f4a2eb38ddd","target_id":"73b1b23eeea50d8b237bb80c8dc5bdc3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-58","gmt_create":"2026-04-23T06:46:47.4478478+04:00","gmt_modified":"2026-04-23T06:46:47.4478478+04:00"},{"id":30192,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"a151de1bba876645d0074033f71f3cd0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .travis.yml#1-46","gmt_create":"2026-04-23T06:46:47.4478478+04:00","gmt_modified":"2026-04-23T06:46:47.4478478+04:00"},{"id":30193,"source_id":"e15d33f14b3a5dc9ebc5e50072c39aa1","target_id":"a151de1bba876645d0074033f71f3cd0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-46","gmt_create":"2026-04-23T06:46:47.4478478+04:00","gmt_modified":"2026-04-23T06:46:47.4478478+04:00"},{"id":30194,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"b93b1b04a108f6289a1e7bad2a4ed2fb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .github/workflows/docker-main.yml#1-41","gmt_create":"2026-04-23T06:46:47.4478478+04:00","gmt_modified":"2026-04-23T06:46:47.4478478+04:00"},{"id":30195,"source_id":"8119d11d74306341a650d0a8c0c5605b","target_id":"b93b1b04a108f6289a1e7bad2a4ed2fb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-41","gmt_create":"2026-04-23T06:46:47.4488476+04:00","gmt_modified":"2026-04-23T06:46:47.4488476+04:00"},{"id":30196,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"ee015920fc0fc039247a7d3b4eac89ed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-testnet#46-54","gmt_create":"2026-04-23T06:46:47.4488476+04:00","gmt_modified":"2026-04-23T06:46:47.4488476+04:00"},{"id":30197,"source_id":"5c83db7209d29d47467923bf09fbb420","target_id":"ee015920fc0fc039247a7d3b4eac89ed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 46-54","gmt_create":"2026-04-23T06:46:47.4498474+04:00","gmt_modified":"2026-04-23T06:46:47.4498474+04:00"},{"id":30198,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"19f7d5497751e6e4be7ea65ce7019aa9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-lowmem#45-53","gmt_create":"2026-04-23T06:46:47.4498474+04:00","gmt_modified":"2026-04-23T06:46:47.4498474+04:00"},{"id":30199,"source_id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","target_id":"19f7d5497751e6e4be7ea65ce7019aa9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45-53","gmt_create":"2026-04-23T06:46:47.4498474+04:00","gmt_modified":"2026-04-23T06:46:47.4498474+04:00"},{"id":30200,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"3d840e85c97e5b7fc8d3d7945d087608","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-mongo#74-82","gmt_create":"2026-04-23T06:46:47.4508475+04:00","gmt_modified":"2026-04-23T06:46:47.4508475+04:00"},{"id":30201,"source_id":"70883dd54389a65e0c6792812c73a8e2","target_id":"3d840e85c97e5b7fc8d3d7945d087608","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 74-82","gmt_create":"2026-04-23T06:46:47.4508475+04:00","gmt_modified":"2026-04-23T06:46:47.4508475+04:00"},{"id":30202,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"032cb0f8e6385f71f41d9c37e66b560c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#147-156","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30203,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"032cb0f8e6385f71f41d9c37e66b560c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 147-156","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30204,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"6223bbabeb98e81094bb095976dbb9b3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#186-188","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30205,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"6223bbabeb98e81094bb095976dbb9b3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 186-188","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30206,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"e368f0f4b37dd155690ceb490ab0fb6e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#190-194","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30207,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"e368f0f4b37dd155690ceb490ab0fb6e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 190-194","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30208,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"1500dc5624650580e36408796d490a11","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#204-208","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30209,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"1500dc5624650580e36408796d490a11","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 204-208","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30210,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"004f0f1e04b64571284e92edb13fe927","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#29-31","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30211,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"004f0f1e04b64571284e92edb13fe927","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 29-31","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30212,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"54ee4168accbfb06f382297e1e5e2aeb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/building.md#76-137","gmt_create":"2026-04-23T06:46:47.4518468+04:00","gmt_modified":"2026-04-23T06:46:47.4518468+04:00"},{"id":30213,"source_id":"33769e7ecefb7ac442a88bcc6e7fe7db","target_id":"54ee4168accbfb06f382297e1e5e2aeb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 76-137","gmt_create":"2026-04-23T06:46:47.4535048+04:00","gmt_modified":"2026-04-23T06:46:47.4535048+04:00"},{"id":30214,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"c1d41ed0c7651f63b7c09975c8ec7843","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/building.md#138-199","gmt_create":"2026-04-23T06:46:47.4535048+04:00","gmt_modified":"2026-04-23T06:46:47.4535048+04:00"},{"id":30215,"source_id":"33769e7ecefb7ac442a88bcc6e7fe7db","target_id":"c1d41ed0c7651f63b7c09975c8ec7843","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 138-199","gmt_create":"2026-04-23T06:46:47.4535048+04:00","gmt_modified":"2026-04-23T06:46:47.4535048+04:00"},{"id":30216,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"c0806cc4754e0262902e1cf12737a7c6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: CMakeLists.txt#91-156","gmt_create":"2026-04-23T06:46:47.4535048+04:00","gmt_modified":"2026-04-23T06:46:47.4535048+04:00"},{"id":30217,"source_id":"bbbcb34fa600f3efb29ca006ef2eff66","target_id":"c0806cc4754e0262902e1cf12737a7c6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 91-156","gmt_create":"2026-04-23T06:46:47.4543572+04:00","gmt_modified":"2026-04-23T06:46:47.4543572+04:00"},{"id":30218,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"4cb7433e56905f7ac811f55f67a492e8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .travis.yml#12-42","gmt_create":"2026-04-23T06:46:47.4543572+04:00","gmt_modified":"2026-04-23T06:46:47.4543572+04:00"},{"id":30219,"source_id":"e15d33f14b3a5dc9ebc5e50072c39aa1","target_id":"4cb7433e56905f7ac811f55f67a492e8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-42","gmt_create":"2026-04-23T06:46:47.4543572+04:00","gmt_modified":"2026-04-23T06:46:47.4543572+04:00"},{"id":30220,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"c2187e808fdcad1036f49417495dc402","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .github/workflows/docker-main.yml#11-41","gmt_create":"2026-04-23T06:46:47.4553561+04:00","gmt_modified":"2026-04-23T06:46:47.4553561+04:00"},{"id":30221,"source_id":"8119d11d74306341a650d0a8c0c5605b","target_id":"c2187e808fdcad1036f49417495dc402","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-41","gmt_create":"2026-04-23T06:46:47.4553561+04:00","gmt_modified":"2026-04-23T06:46:47.4553561+04:00"},{"id":30222,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"34606a0a129754acaca66ba1513465d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: build-linux.sh#39","gmt_create":"2026-04-23T06:46:47.4553561+04:00","gmt_modified":"2026-04-23T06:46:47.4553561+04:00"},{"id":30223,"source_id":"48a318f357a885ebfef27b84ef5565ee","target_id":"34606a0a129754acaca66ba1513465d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 39","gmt_create":"2026-04-23T06:46:47.4563572+04:00","gmt_modified":"2026-04-23T06:46:47.4563572+04:00"},{"id":30224,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"2400ee9418e6ca496e1b25b5c0444248","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: build-mac.sh#35","gmt_create":"2026-04-23T06:46:47.4563572+04:00","gmt_modified":"2026-04-23T06:46:47.4563572+04:00"},{"id":30225,"source_id":"3e55b84725e9a2931cb48b11d42ef75c","target_id":"2400ee9418e6ca496e1b25b5c0444248","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35","gmt_create":"2026-04-23T06:46:47.4573573+04:00","gmt_modified":"2026-04-23T06:46:47.4573573+04:00"},{"id":30226,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"457ef8b5c7cbf6167a609a1d56e8062d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: build-mingw.bat#99","gmt_create":"2026-04-23T06:46:47.4678693+04:00","gmt_modified":"2026-04-23T06:46:47.4678693+04:00"},{"id":30227,"source_id":"3fbe84fabfaa10d8da23f6d4dad03692","target_id":"457ef8b5c7cbf6167a609a1d56e8062d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 99","gmt_create":"2026-04-23T06:46:47.4688679+04:00","gmt_modified":"2026-04-23T06:46:47.4688679+04:00"},{"id":30228,"source_id":"418196e8-0815-496e-b69d-8458e1f3cfef","target_id":"33a4e4430e70d59ac8350609498374cb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: build-msvc.bat#91","gmt_create":"2026-04-23T06:46:47.4688679+04:00","gmt_modified":"2026-04-23T06:46:47.4688679+04:00"},{"id":30229,"source_id":"1582cef3977fa0f573c3bdb3fe4a0045","target_id":"33a4e4430e70d59ac8350609498374cb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 91","gmt_create":"2026-04-23T06:46:47.4688679+04:00","gmt_modified":"2026-04-23T06:46:47.4688679+04:00"},{"id":30246,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"a7e56ec55d2393204c9701d977a9400c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2026-04-23T06:48:46.2426466+04:00","gmt_modified":"2026-04-23T06:48:46.2426466+04:00"},{"id":30248,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"4a06a01de185f2302afb08f24f3c2b84","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-88","gmt_create":"2026-04-23T06:48:46.2432729+04:00","gmt_modified":"2026-04-23T06:48:46.2432729+04:00"},{"id":30250,"source_id":"87c4f90564e8fbfb6348ad688ef97318","target_id":"afdbaea77133cc08160f2954aae9d02c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-52","gmt_create":"2026-04-23T06:48:46.2437761+04:00","gmt_modified":"2026-04-23T06:48:46.2437761+04:00"},{"id":30252,"source_id":"9560988721d95f90724da96e6a4ac318","target_id":"86be1cb2396b0667cd9b2676e146da4f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-52","gmt_create":"2026-04-23T06:48:46.2454239+04:00","gmt_modified":"2026-04-23T06:48:46.2454239+04:00"},{"id":30254,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"03671e2406d9aa4281ec8988ebd11ea3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-76","gmt_create":"2026-04-23T06:48:46.2459283+04:00","gmt_modified":"2026-04-23T06:48:46.2459283+04:00"},{"id":30256,"source_id":"87c4f90564e8fbfb6348ad688ef97318","target_id":"4d53110f843225004c76883ddaf8a3db","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-52","gmt_create":"2026-04-23T06:48:46.2464466+04:00","gmt_modified":"2026-04-23T06:48:46.2464466+04:00"},{"id":30258,"source_id":"104cf6b015d8e526f86f8f74b8d4d146","target_id":"6b4ecd2cef1f64d73ebb15271ad63dec","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30-158","gmt_create":"2026-04-23T06:48:46.2469786+04:00","gmt_modified":"2026-04-23T06:48:46.2469786+04:00"},{"id":30260,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"846c3fae1de48cd9c46b1ffde792c266","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 675-780","gmt_create":"2026-04-23T06:48:46.2469786+04:00","gmt_modified":"2026-04-23T06:48:46.2469786+04:00"},{"id":30262,"source_id":"104cf6b015d8e526f86f8f74b8d4d146","target_id":"42fe843c72050e328e7b8c97676e68ee","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-107","gmt_create":"2026-04-23T06:48:46.2474933+04:00","gmt_modified":"2026-04-23T06:48:46.2474933+04:00"},{"id":30264,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"9824dc418fd477d361e2cb113d2d8a6d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 885-987","gmt_create":"2026-04-23T06:48:46.2480112+04:00","gmt_modified":"2026-04-23T06:48:46.2480112+04:00"},{"id":30266,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"c70d834a6c61afda086e00d45a34530e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 789-883","gmt_create":"2026-04-23T06:48:46.2480112+04:00","gmt_modified":"2026-04-23T06:48:46.2480112+04:00"},{"id":30268,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"38ba886c685a78655cd83f13bc1ee1de","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1400-1484","gmt_create":"2026-04-23T06:48:46.2480112+04:00","gmt_modified":"2026-04-23T06:48:46.2480112+04:00"},{"id":30270,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"3f30e9195428c3c0d628347672216881","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1046-1288","gmt_create":"2026-04-23T06:48:46.2490142+04:00","gmt_modified":"2026-04-23T06:48:46.2490142+04:00"},{"id":30272,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"385e16c713d33cee472d76fd9309c8a7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1902-2038","gmt_create":"2026-04-23T06:48:46.2490142+04:00","gmt_modified":"2026-04-23T06:48:46.2490142+04:00"},{"id":30274,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"a656f741ca3a98ea4e39650246c13e31","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1470-1599","gmt_create":"2026-04-23T06:48:46.2490142+04:00","gmt_modified":"2026-04-23T06:48:46.2490142+04:00"},{"id":30276,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"210282284c4a151d5bb31f5c22acb0e2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2473-2510","gmt_create":"2026-04-23T06:48:46.2490142+04:00","gmt_modified":"2026-04-23T06:48:46.2490142+04:00"},{"id":30278,"source_id":"37fb39091ee4b69fe1e682497ff46b55","target_id":"fce82559c856b77e5143284446449214","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 247-273","gmt_create":"2026-04-23T06:48:46.2490142+04:00","gmt_modified":"2026-04-23T06:48:46.2490142+04:00"},{"id":30280,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"f9743c7d2ad207b1a79a0e95d75247cc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1418-1436","gmt_create":"2026-04-23T06:48:46.2490142+04:00","gmt_modified":"2026-04-23T06:48:46.2490142+04:00"},{"id":30282,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"d73dcca02dff8f3073d543232ea8d398","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 737-743","gmt_create":"2026-04-23T06:48:46.2506532+04:00","gmt_modified":"2026-04-23T06:48:46.2506532+04:00"},{"id":30284,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"71b4159a5d3213112920bd296d8e89bb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1390-1484","gmt_create":"2026-04-23T06:48:46.2506532+04:00","gmt_modified":"2026-04-23T06:48:46.2506532+04:00"},{"id":30286,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"ec58f910f97a726df18f75c0c17baada","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1440-1449","gmt_create":"2026-04-23T06:48:46.2515778+04:00","gmt_modified":"2026-04-23T06:48:46.2515778+04:00"},{"id":30288,"source_id":"571d673b1b49568d584e159036820875","target_id":"75b03c62708ffd28a4f9d687421e1c28","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 335-551","gmt_create":"2026-04-23T06:48:46.2515778+04:00","gmt_modified":"2026-04-23T06:48:46.2515778+04:00"},{"id":30290,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"a4baae31b894b18b4796bc14910ee131","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1326-1376","gmt_create":"2026-04-23T06:48:46.2525778+04:00","gmt_modified":"2026-04-23T06:48:46.2525778+04:00"},{"id":30292,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"0ae3da57453e773fb07f47dbd5886c6a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1426-1435","gmt_create":"2026-04-23T06:48:46.2525778+04:00","gmt_modified":"2026-04-23T06:48:46.2525778+04:00"},{"id":30294,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"492bfc10ec7008ed8d3c0fcb9eb2986e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 745-750","gmt_create":"2026-04-23T06:48:46.2535778+04:00","gmt_modified":"2026-04-23T06:48:46.2535778+04:00"},{"id":30296,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"c6fe65da69747dabf7418f6ebfbc16a6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 697-700","gmt_create":"2026-04-23T06:48:46.2535778+04:00","gmt_modified":"2026-04-23T06:48:46.2535778+04:00"},{"id":30298,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"2e53433527d0fe2c5b8af01e4c75ab33","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2831-2845","gmt_create":"2026-04-23T06:48:46.2535778+04:00","gmt_modified":"2026-04-23T06:48:46.2535778+04:00"},{"id":30300,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"3d5e7d45a447644705a300e602712ab4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1719-1748","gmt_create":"2026-04-23T06:48:46.2535778+04:00","gmt_modified":"2026-04-23T06:48:46.2535778+04:00"},{"id":30302,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"311030227d7a27b006fece17d9efd018","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1706-1748","gmt_create":"2026-04-23T06:48:46.2546702+04:00","gmt_modified":"2026-04-23T06:48:46.2546702+04:00"},{"id":30304,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"0fdcd022e550104e434876fa650f53c4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 490-560","gmt_create":"2026-04-23T06:48:46.2546702+04:00","gmt_modified":"2026-04-23T06:48:46.2546702+04:00"},{"id":30306,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"f0e049888c51f9cd8f614dd4d55fe05b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2945-2959","gmt_create":"2026-04-23T06:48:46.2546702+04:00","gmt_modified":"2026-04-23T06:48:46.2546702+04:00"},{"id":30308,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"29998ee4937bbfcaafdb8749dfb3fdf3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 441-5201","gmt_create":"2026-04-23T06:48:46.2556696+04:00","gmt_modified":"2026-04-23T06:48:46.2556696+04:00"},{"id":30310,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"30f19521c0c40fc613bf93a90c654dc9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 542-559","gmt_create":"2026-04-23T06:48:46.2650322+04:00","gmt_modified":"2026-04-23T06:48:46.2650322+04:00"},{"id":30312,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"6e3b8e0770e0fd14881374dd8b3c658e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2976-3009","gmt_create":"2026-04-23T06:48:46.2655384+04:00","gmt_modified":"2026-04-23T06:48:46.2655384+04:00"},{"id":30314,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"28efe21ebfbcc6e72bb32ca3977b1939","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2468-2570","gmt_create":"2026-04-23T06:48:46.2660616+04:00","gmt_modified":"2026-04-23T06:48:46.2660616+04:00"},{"id":30316,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"12dbcde9e60b1141f215fb60b089b7c8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 735-740","gmt_create":"2026-04-23T06:48:46.2666028+04:00","gmt_modified":"2026-04-23T06:48:46.2666028+04:00"},{"id":30318,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"b8f460ca6d8e0942ab1f7226cd2a1b21","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1814-1862","gmt_create":"2026-04-23T06:48:46.2666028+04:00","gmt_modified":"2026-04-23T06:48:46.2666028+04:00"},{"id":30320,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"739243787c097dbb8797bb297c748868","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 772-785","gmt_create":"2026-04-23T06:48:46.2666028+04:00","gmt_modified":"2026-04-23T06:48:46.2666028+04:00"},{"id":30322,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"8ae8252af5d5c484e0710b855ad18866","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 165-176","gmt_create":"2026-04-23T06:48:46.2671263+04:00","gmt_modified":"2026-04-23T06:48:46.2671263+04:00"},{"id":30324,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"444b9950972fec08b3139f4d50cf0a6e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1587-1596","gmt_create":"2026-04-23T06:48:46.2676452+04:00","gmt_modified":"2026-04-23T06:48:46.2676452+04:00"},{"id":30326,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"5abd9dec8f7100b36c876b18e58d4bb7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1610-1620","gmt_create":"2026-04-23T06:48:46.2676452+04:00","gmt_modified":"2026-04-23T06:48:46.2676452+04:00"},{"id":30328,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"2d8f8aa2a2e0d2b778c984550ade3061","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1812-1877","gmt_create":"2026-04-23T06:48:46.2681667+04:00","gmt_modified":"2026-04-23T06:48:46.2681667+04:00"},{"id":30330,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"8a1470c12fc58346550796f023996d4f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 24-34","gmt_create":"2026-04-23T06:48:46.2681667+04:00","gmt_modified":"2026-04-23T06:48:46.2681667+04:00"},{"id":30332,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"4ca7141219ec0e9f25ffdbdb9cda2fa1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2598-2680","gmt_create":"2026-04-23T06:48:46.2692203+04:00","gmt_modified":"2026-04-23T06:48:46.2692203+04:00"},{"id":30334,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"9c4238b8e0cf99b348e22120eac41904","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 364-432","gmt_create":"2026-04-23T06:48:46.2692203+04:00","gmt_modified":"2026-04-23T06:48:46.2692203+04:00"},{"id":30336,"source_id":"9560988721d95f90724da96e6a4ac318","target_id":"215a79715153cc7dbc2d358d6a91799d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-38","gmt_create":"2026-04-23T06:48:46.2697373+04:00","gmt_modified":"2026-04-23T06:48:46.2697373+04:00"},{"id":30338,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"bddad6a413d83352718b613e27b97469","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2294-2464","gmt_create":"2026-04-23T06:48:46.2702565+04:00","gmt_modified":"2026-04-23T06:48:46.2702565+04:00"},{"id":30340,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"cb7f8a8d2075a597d0647057d4371101","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1378-1464","gmt_create":"2026-04-23T06:48:46.2702565+04:00","gmt_modified":"2026-04-23T06:48:46.2702565+04:00"},{"id":30360,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"b790ddd3e717ed748c2e061559e92124","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-351","gmt_create":"2026-04-23T06:50:36.8628705+04:00","gmt_modified":"2026-04-23T06:50:36.8628705+04:00"},{"id":30362,"source_id":"e12a1d568ad99d9c23753af3b983d420","target_id":"a07ab3c4bae64fb9fbd9587bd3eaae39","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45-79","gmt_create":"2026-04-23T06:50:36.8633937+04:00","gmt_modified":"2026-04-23T06:50:36.8633937+04:00"},{"id":30364,"source_id":"a090337969d7a39c7cbc9737c926d289","target_id":"bd9136208fce359f28cad48005c18445","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-93","gmt_create":"2026-04-23T06:50:36.8633937+04:00","gmt_modified":"2026-04-23T06:50:36.8633937+04:00"},{"id":30366,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"8b8b5804e7fa05a13d3a7cf1869a318d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 72-95","gmt_create":"2026-04-23T06:50:36.8639228+04:00","gmt_modified":"2026-04-23T06:50:36.8639228+04:00"},{"id":30368,"source_id":"4810c013b14141360d4bcf40a8c63444","target_id":"ae1ad3620183690f60eeda5a30543601","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-106","gmt_create":"2026-04-23T06:50:36.8649523+04:00","gmt_modified":"2026-04-23T06:50:36.8649523+04:00"},{"id":30370,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"5f576e16df1d59d294a1af2f2658b7ba","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 190-304","gmt_create":"2026-04-23T06:50:36.8649523+04:00","gmt_modified":"2026-04-23T06:50:36.8649523+04:00"},{"id":30372,"source_id":"f6da664295247a02e1a87e6157ade267","target_id":"31c07b5a29db4c1cbb24f79829d347aa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 104-134","gmt_create":"2026-04-23T06:50:36.8659555+04:00","gmt_modified":"2026-04-23T06:50:36.8659555+04:00"},{"id":30374,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"3654987deb8e6274eefab9ca908412c0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1215-1246","gmt_create":"2026-04-23T06:50:36.8664592+04:00","gmt_modified":"2026-04-23T06:50:36.8664592+04:00"},{"id":30376,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"017fafdbdc8bb6416146dfb712f04d60","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 34-46","gmt_create":"2026-04-23T06:50:36.8664592+04:00","gmt_modified":"2026-04-23T06:50:36.8664592+04:00"},{"id":30378,"source_id":"abf923bd059721b5a0c6f9abfff538be","target_id":"7a699ba65a3b0ef1eb697c14a0dbead6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-45","gmt_create":"2026-04-23T06:50:36.8674632+04:00","gmt_modified":"2026-04-23T06:50:36.8674632+04:00"},{"id":30380,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"52af1c2eebb2a6ca81e46aa9efc36007","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-383","gmt_create":"2026-04-23T06:50:36.8674632+04:00","gmt_modified":"2026-04-23T06:50:36.8674632+04:00"},{"id":30382,"source_id":"e12a1d568ad99d9c23753af3b983d420","target_id":"31a472d3c3593f1079fe3844dbf8e5ea","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-85","gmt_create":"2026-04-23T06:50:36.8674632+04:00","gmt_modified":"2026-04-23T06:50:36.8674632+04:00"},{"id":30384,"source_id":"a090337969d7a39c7cbc9737c926d289","target_id":"e37ad396926e491f9e2cb7e97ebb983b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-99","gmt_create":"2026-04-23T06:50:36.8674632+04:00","gmt_modified":"2026-04-23T06:50:36.8674632+04:00"},{"id":30386,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"41c428afa5cdf049e5722a8af0a07120","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-573","gmt_create":"2026-04-23T06:50:36.8684663+04:00","gmt_modified":"2026-04-23T06:50:36.8684663+04:00"},{"id":30388,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"ca47b4e2578878f62204de1202dfcee9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-355","gmt_create":"2026-04-23T06:50:36.8684663+04:00","gmt_modified":"2026-04-23T06:50:36.8684663+04:00"},{"id":30390,"source_id":"f6da664295247a02e1a87e6157ade267","target_id":"65f079a0a8c1ddc294e55e30a905620b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-141","gmt_create":"2026-04-23T06:50:36.8684663+04:00","gmt_modified":"2026-04-23T06:50:36.8684663+04:00"},{"id":30392,"source_id":"4810c013b14141360d4bcf40a8c63444","target_id":"f64ddae8befa97072e025e25b465e7b9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-114","gmt_create":"2026-04-23T06:50:36.8694678+04:00","gmt_modified":"2026-04-23T06:50:36.8694678+04:00"},{"id":30394,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"ae7c55f38aae0b3478e12cbcf2b51454","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-6389","gmt_create":"2026-04-23T06:50:36.8694678+04:00","gmt_modified":"2026-04-23T06:50:36.8694678+04:00"},{"id":30396,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"654515d81715576dcb9f859a9aada0e9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-271","gmt_create":"2026-04-23T06:50:36.8694678+04:00","gmt_modified":"2026-04-23T06:50:36.8694678+04:00"},{"id":30398,"source_id":"abf923bd059721b5a0c6f9abfff538be","target_id":"48a79d6fc809620cef020aebdc89228c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-49","gmt_create":"2026-04-23T06:50:36.8704686+04:00","gmt_modified":"2026-04-23T06:50:36.8704686+04:00"},{"id":30400,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"5e80305e7a0dd4e813302d520287970c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 68-162","gmt_create":"2026-04-23T06:50:36.8704686+04:00","gmt_modified":"2026-04-23T06:50:36.8704686+04:00"},{"id":30402,"source_id":"44259eceb7b489d55fb322edef4c325f","target_id":"a29acb8824d619aed98f1d17496cc735","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 128-140","gmt_create":"2026-04-23T06:50:36.8704686+04:00","gmt_modified":"2026-04-23T06:50:36.8704686+04:00"},{"id":30404,"source_id":"7f5ebd18d8224ccabbd73a26fba17a38","target_id":"55b70b2d7f669af727f94be4a67ab19f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 49-72","gmt_create":"2026-04-23T06:50:36.880076+04:00","gmt_modified":"2026-04-23T06:50:36.880076+04:00"},{"id":30406,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"cd7fa56036ec7bfc753fb109e2481434","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 233-306","gmt_create":"2026-04-23T06:50:36.8810768+04:00","gmt_modified":"2026-04-23T06:50:36.8810768+04:00"},{"id":30408,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"4398c3ae2cfabc0607c0ef43245e9ed0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 424-799","gmt_create":"2026-04-23T06:50:36.8810768+04:00","gmt_modified":"2026-04-23T06:50:36.8810768+04:00"},{"id":30410,"source_id":"8fb5fbed1f7009b8445ba1ca2bb36e9e","target_id":"e485b1e17d34c5b6a8a52a62ed1e66f1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 100-174","gmt_create":"2026-04-23T06:50:36.8825809+04:00","gmt_modified":"2026-04-23T06:50:36.8825809+04:00"},{"id":30412,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"5361decb4da66a8be18f3e2460c4744a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 208-242","gmt_create":"2026-04-23T06:50:36.8825809+04:00","gmt_modified":"2026-04-23T06:50:36.8825809+04:00"},{"id":30414,"source_id":"44259eceb7b489d55fb322edef4c325f","target_id":"c25323732949b90908639a501eb595d3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 135-140","gmt_create":"2026-04-23T06:50:36.8825809+04:00","gmt_modified":"2026-04-23T06:50:36.8825809+04:00"},{"id":30416,"source_id":"7f5ebd18d8224ccabbd73a26fba17a38","target_id":"83977126829486b69fd3680d1a18d5b8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 69-72","gmt_create":"2026-04-23T06:50:36.8835864+04:00","gmt_modified":"2026-04-23T06:50:36.8835864+04:00"},{"id":30418,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"cd558ad15f0e6727fba1add71cac3e6f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 233-272","gmt_create":"2026-04-23T06:50:36.8835864+04:00","gmt_modified":"2026-04-23T06:50:36.8835864+04:00"},{"id":30420,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"17725c0e4268344a57e37a4181003dcd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 662-718","gmt_create":"2026-04-23T06:50:36.8835864+04:00","gmt_modified":"2026-04-23T06:50:36.8835864+04:00"},{"id":30422,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"19888e3e680c4c22af512bc7fece3cb4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 41-66","gmt_create":"2026-04-23T06:50:36.8845865+04:00","gmt_modified":"2026-04-23T06:50:36.8845865+04:00"},{"id":30424,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"f7cab905bd76aaebc62185660e82dae8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 244-338","gmt_create":"2026-04-23T06:50:36.8845865+04:00","gmt_modified":"2026-04-23T06:50:36.8845865+04:00"},{"id":30426,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"3c8030f286489dad4c619d038a966638","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 240-278","gmt_create":"2026-04-23T06:50:36.8845865+04:00","gmt_modified":"2026-04-23T06:50:36.8845865+04:00"},{"id":30428,"source_id":"44259eceb7b489d55fb322edef4c325f","target_id":"73ca44009706d11b1210c93a5ded6f30","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 237-283","gmt_create":"2026-04-23T06:50:36.8845865+04:00","gmt_modified":"2026-04-23T06:50:36.8845865+04:00"},{"id":30430,"source_id":"44259eceb7b489d55fb322edef4c325f","target_id":"66a467bd88b7277e2c4bb4cb7312f48f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 148-235","gmt_create":"2026-04-23T06:50:36.8845865+04:00","gmt_modified":"2026-04-23T06:50:36.8845865+04:00"},{"id":30432,"source_id":"7f5ebd18d8224ccabbd73a26fba17a38","target_id":"a2d760acb3b4737ac29dd99261de2de6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 132-177","gmt_create":"2026-04-23T06:50:36.8845865+04:00","gmt_modified":"2026-04-23T06:50:36.8845865+04:00"},{"id":30434,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"bf188abd0edd7c343537c5327855ecbe","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 82-106","gmt_create":"2026-04-23T06:50:36.8871003+04:00","gmt_modified":"2026-04-23T06:50:36.8871003+04:00"},{"id":30436,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"fc0674b52c4710c99699f8d656856fd3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 356-369","gmt_create":"2026-04-23T06:50:36.8881066+04:00","gmt_modified":"2026-04-23T06:50:36.8881066+04:00"},{"id":30438,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"d4955755779cc40ec116df2dc5af08d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 718-740","gmt_create":"2026-04-23T06:50:36.8881066+04:00","gmt_modified":"2026-04-23T06:50:36.8881066+04:00"},{"id":30440,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"4e5740097a51781620c6fa978577b87b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 169-242","gmt_create":"2026-04-23T06:50:36.8890992+04:00","gmt_modified":"2026-04-23T06:50:36.8890992+04:00"},{"id":30442,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"599a70fa63a5743f5c1137d5797ef215","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 310-338","gmt_create":"2026-04-23T06:50:36.8900991+04:00","gmt_modified":"2026-04-23T06:50:36.8900991+04:00"},{"id":30444,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"af26a48b00e9adab94afc7842437fe4a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 255-308","gmt_create":"2026-04-23T06:50:36.8900991+04:00","gmt_modified":"2026-04-23T06:50:36.8900991+04:00"},{"id":30446,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"c65e54c2253e6aa01f651ce5d20e30fe","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 58-58","gmt_create":"2026-04-23T06:50:36.8910979+04:00","gmt_modified":"2026-04-23T06:50:36.8910979+04:00"},{"id":30448,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"db6b74db4fa6d71a4f6cda8314e0a9c8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 175-279","gmt_create":"2026-04-23T06:50:36.8920985+04:00","gmt_modified":"2026-04-23T06:50:36.8920985+04:00"},{"id":30450,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"b10f496bac85711da4cffcd4b18cd456","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 428-480","gmt_create":"2026-04-23T06:50:36.8930999+04:00","gmt_modified":"2026-04-23T06:50:36.8930999+04:00"},{"id":30452,"source_id":"f6da664295247a02e1a87e6157ade267","target_id":"abb7010b1a4127c6eb74e70b8b8c1c8a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 47-71","gmt_create":"2026-04-23T06:50:36.8930999+04:00","gmt_modified":"2026-04-23T06:50:36.8930999+04:00"},{"id":30454,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"afac2a42df17577ba720e7f9a78558b0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 518-526","gmt_create":"2026-04-23T06:50:36.8940976+04:00","gmt_modified":"2026-04-23T06:50:36.8940976+04:00"},{"id":30456,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"8c6950a2fa040ec2bdb48c5c535e6290","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3598-3626","gmt_create":"2026-04-23T06:50:36.8940976+04:00","gmt_modified":"2026-04-23T06:50:36.8940976+04:00"},{"id":30458,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"9e28d240675906ef2e41016843e7e078","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 172-182","gmt_create":"2026-04-23T06:50:36.8940976+04:00","gmt_modified":"2026-04-23T06:50:36.8940976+04:00"},{"id":30460,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"b8131417d535236b70881242c8493825","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 340-354","gmt_create":"2026-04-23T06:50:36.8950983+04:00","gmt_modified":"2026-04-23T06:50:36.8950983+04:00"},{"id":30462,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"d8b3e996bfeacf634c11f3ef9c14b517","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 371-399","gmt_create":"2026-04-23T06:50:36.8950983+04:00","gmt_modified":"2026-04-23T06:50:36.8950983+04:00"},{"id":30464,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"924b5999e72f1f50661885d27aa679bf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-45","gmt_create":"2026-04-23T06:50:36.8966049+04:00","gmt_modified":"2026-04-23T06:50:36.8966049+04:00"},{"id":30466,"source_id":"e12a1d568ad99d9c23753af3b983d420","target_id":"9061b648f5c7a6fa04e5cdad74ea8e0c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-28","gmt_create":"2026-04-23T06:50:36.8966049+04:00","gmt_modified":"2026-04-23T06:50:36.8966049+04:00"},{"id":30468,"source_id":"a090337969d7a39c7cbc9737c926d289","target_id":"d047c2a99e186afd4cbe5d3b58a081ce","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-28","gmt_create":"2026-04-23T06:50:36.8976109+04:00","gmt_modified":"2026-04-23T06:50:36.8976109+04:00"},{"id":30470,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"cd3f7620124771b158733177b69ca004","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-35","gmt_create":"2026-04-23T06:50:36.8976109+04:00","gmt_modified":"2026-04-23T06:50:36.8976109+04:00"},{"id":30472,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"641e478753e03d4995662e0f71726f6e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-31","gmt_create":"2026-04-23T06:50:36.8986118+04:00","gmt_modified":"2026-04-23T06:50:36.8986118+04:00"},{"id":30474,"source_id":"f6da664295247a02e1a87e6157ade267","target_id":"0f02b5feb29747f31bd81ec24757a03c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-35","gmt_create":"2026-04-23T06:50:36.8986118+04:00","gmt_modified":"2026-04-23T06:50:36.8986118+04:00"},{"id":30476,"source_id":"4810c013b14141360d4bcf40a8c63444","target_id":"2bd5a533bf647831fd92ff4a1e0cbb9a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-31","gmt_create":"2026-04-23T06:50:36.8996121+04:00","gmt_modified":"2026-04-23T06:50:36.8996121+04:00"},{"id":30478,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"563df4f6b989068ffaf64cd348c73303","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 285-306","gmt_create":"2026-04-23T06:50:36.8996121+04:00","gmt_modified":"2026-04-23T06:50:36.8996121+04:00"},{"id":30480,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"1627c08f8d77e6bd16ff55f3c31a7214","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 48-50","gmt_create":"2026-04-23T06:50:36.8996121+04:00","gmt_modified":"2026-04-23T06:50:36.8996121+04:00"},{"id":30482,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"97c58147fee277e29c7fcfd2e1fad3d7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 314-325","gmt_create":"2026-04-23T06:50:36.8996121+04:00","gmt_modified":"2026-04-23T06:50:36.8996121+04:00"},{"id":30484,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"912dd19fed244fc2d5d8717d9d71351d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3448-3470","gmt_create":"2026-04-23T06:50:36.9006106+04:00","gmt_modified":"2026-04-23T06:50:36.9006106+04:00"},{"id":30486,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"8ca4e34ad148a456f53073ddc65d0d0b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-106","gmt_create":"2026-04-23T06:50:36.9006106+04:00","gmt_modified":"2026-04-23T06:50:36.9006106+04:00"},{"id":30488,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"2dccc9888fbe3d606e3c653137d8edbc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1239-1241","gmt_create":"2026-04-23T06:50:36.9006106+04:00","gmt_modified":"2026-04-23T06:50:36.9006106+04:00"},{"id":30507,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"9db09bc4b81abc778a2506dc78451a5f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-642","gmt_create":"2026-04-23T06:51:53.1377244+04:00","gmt_modified":"2026-04-23T06:51:53.1377244+04:00"},{"id":30510,"source_id":"a636cebf0fd48c268641a5544c551752","target_id":"38a56d06a16ce1ef149caadef5339e6c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-75","gmt_create":"2026-04-23T06:51:53.1387243+04:00","gmt_modified":"2026-04-23T06:51:53.1387243+04:00"},{"id":30512,"source_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","target_id":"3bdd5ce714e20d28cf824ab11101de66","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-302","gmt_create":"2026-04-23T06:51:53.1387243+04:00","gmt_modified":"2026-04-23T06:51:53.1387243+04:00"},{"id":30514,"source_id":"d136a3c86c240fca63a64546b4891416","target_id":"4d593097c4ba86d8ca3e25a81f16c555","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-76","gmt_create":"2026-04-23T06:51:53.1387243+04:00","gmt_modified":"2026-04-23T06:51:53.1387243+04:00"},{"id":30516,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"4ed327655b6918bf25321f12456ca6fe","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-414","gmt_create":"2026-04-23T06:51:53.1397241+04:00","gmt_modified":"2026-04-23T06:51:53.1397241+04:00"},{"id":30518,"source_id":"1e6f9e0c4241a3a53748ca848749cd9c","target_id":"d28dbbaa28da9765e4f285b5920dbcfd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-138","gmt_create":"2026-04-23T06:51:53.1409894+04:00","gmt_modified":"2026-04-23T06:51:53.1409894+04:00"},{"id":30521,"source_id":"5d124c256c0fcd736094cfbd39e807a2","target_id":"60acb53fc4c1cc7a5762164bdec8669a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-134","gmt_create":"2026-04-23T06:51:53.1414929+04:00","gmt_modified":"2026-04-23T06:51:53.1414929+04:00"},{"id":30523,"source_id":"5cdea1b55d11dd83076d2fe00b9305f3","target_id":"00037cec4c56edf1610ced428572bb7b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-154","gmt_create":"2026-04-23T06:51:53.1420143+04:00","gmt_modified":"2026-04-23T06:51:53.1420143+04:00"},{"id":30525,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"436bd6a2314e4b7f8ecf939765fd0b0b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2130-2140","gmt_create":"2026-04-23T06:51:53.1420143+04:00","gmt_modified":"2026-04-23T06:51:53.1420143+04:00"},{"id":30527,"source_id":"571d673b1b49568d584e159036820875","target_id":"8466f547c850a3f78b548ec3dfdfdf69","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 449-467","gmt_create":"2026-04-23T06:51:53.1420143+04:00","gmt_modified":"2026-04-23T06:51:53.1420143+04:00"},{"id":30529,"source_id":"f5e2709c934c90bed9814ff547a6da8e","target_id":"3c62831aa433234fc0f7306c1cf418d6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 111-118","gmt_create":"2026-04-23T06:51:53.1425283+04:00","gmt_modified":"2026-04-23T06:51:53.1425283+04:00"},{"id":30531,"source_id":"38e584d2e1cd119a9140300797cecf16","target_id":"bb1e3f10774a7b833f7750a99ab49904","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 225-279","gmt_create":"2026-04-23T06:51:53.143054+04:00","gmt_modified":"2026-04-23T06:51:53.143054+04:00"},{"id":30533,"source_id":"2e9e3cf1864f83b0b302ff86e7423752","target_id":"46ade8bd6f06d3d9a2c5022fd4ec7aaf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1200-1260","gmt_create":"2026-04-23T06:51:53.1435724+04:00","gmt_modified":"2026-04-23T06:51:53.1435724+04:00"},{"id":30535,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"3e1e44df30b6a111d9b185e887ed75e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1428-4828","gmt_create":"2026-04-23T06:51:53.1440973+04:00","gmt_modified":"2026-04-23T06:51:53.1440973+04:00"},{"id":30537,"source_id":"abf923bd059721b5a0c6f9abfff538be","target_id":"aaa79e38ddfcec40e12ba298218d83a8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-48","gmt_create":"2026-04-23T06:51:53.1446133+04:00","gmt_modified":"2026-04-23T06:51:53.1446133+04:00"},{"id":30539,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"5079f2c8e0fd2e2d3f902aa4eeb20eff","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 61-115","gmt_create":"2026-04-23T06:51:53.1456429+04:00","gmt_modified":"2026-04-23T06:51:53.1456429+04:00"},{"id":30541,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"a3f311781ebc595d7e91829970674d05","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 281-324","gmt_create":"2026-04-23T06:51:53.1461709+04:00","gmt_modified":"2026-04-23T06:51:53.1461709+04:00"},{"id":30543,"source_id":"a636cebf0fd48c268641a5544c551752","target_id":"554e05f2069045609b95ba69f9e954bb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-75","gmt_create":"2026-04-23T06:51:53.1461709+04:00","gmt_modified":"2026-04-23T06:51:53.1461709+04:00"},{"id":30545,"source_id":"d136a3c86c240fca63a64546b4891416","target_id":"56047023f5259cd1b3b53cc9276548f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-72","gmt_create":"2026-04-23T06:51:53.1461709+04:00","gmt_modified":"2026-04-23T06:51:53.1461709+04:00"},{"id":30547,"source_id":"1e6f9e0c4241a3a53748ca848749cd9c","target_id":"7d5a6b649ef8d177496d2e0b4f7d2ad2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 53-138","gmt_create":"2026-04-23T06:51:53.1466822+04:00","gmt_modified":"2026-04-23T06:51:53.1466822+04:00"},{"id":30549,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"efc19a66e9ef85b6ecd6479947124d6e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 929-984","gmt_create":"2026-04-23T06:51:53.1472003+04:00","gmt_modified":"2026-04-23T06:51:53.1472003+04:00"},{"id":30551,"source_id":"5cdea1b55d11dd83076d2fe00b9305f3","target_id":"90da84eb4c2939b17a99888253d3cfda","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-100","gmt_create":"2026-04-23T06:51:53.1472003+04:00","gmt_modified":"2026-04-23T06:51:53.1472003+04:00"},{"id":30553,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"2239009b61286c4b8bcb051f54239d4c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 94-184","gmt_create":"2026-04-23T06:51:53.1482372+04:00","gmt_modified":"2026-04-23T06:51:53.1482372+04:00"},{"id":30555,"source_id":"5d124c256c0fcd736094cfbd39e807a2","target_id":"e21f5adaef81169224a1ff756245f3b9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 83","gmt_create":"2026-04-23T06:51:53.1487514+04:00","gmt_modified":"2026-04-23T06:51:53.1487514+04:00"},{"id":30557,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"f61b06482f8c2019209eb97059fbdc05","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 330-410","gmt_create":"2026-04-23T06:51:53.1487514+04:00","gmt_modified":"2026-04-23T06:51:53.1487514+04:00"},{"id":30559,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"5eec20a2909cd9b68584bd0a13860691","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 134-184","gmt_create":"2026-04-23T06:51:53.1487514+04:00","gmt_modified":"2026-04-23T06:51:53.1487514+04:00"},{"id":30561,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"989129dd2c2f1d2c3d7097f01a59b580","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 503-519","gmt_create":"2026-04-23T06:51:53.1493283+04:00","gmt_modified":"2026-04-23T06:51:53.1493283+04:00"},{"id":30563,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"19ede27e5e317fb0f0663e332bff8e41","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 61-68","gmt_create":"2026-04-23T06:51:53.1498322+04:00","gmt_modified":"2026-04-23T06:51:53.1498322+04:00"},{"id":30565,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"d9d3ff89ba41e33306eec8a358564595","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2135-2136","gmt_create":"2026-04-23T06:51:53.1498322+04:00","gmt_modified":"2026-04-23T06:51:53.1498322+04:00"},{"id":30567,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"93890fe947bd608f34f438e179d3571b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 704-752","gmt_create":"2026-04-23T06:51:53.1509961+04:00","gmt_modified":"2026-04-23T06:51:53.1509961+04:00"},{"id":30569,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"c4d9e3bfee733cd59a96b18715e26fb7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3986-4039","gmt_create":"2026-04-23T06:51:53.1515119+04:00","gmt_modified":"2026-04-23T06:51:53.1515119+04:00"},{"id":30571,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"16943251fc40e2fea0bdc7df21d26d6c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4144-4175","gmt_create":"2026-04-23T06:51:53.1520274+04:00","gmt_modified":"2026-04-23T06:51:53.1520274+04:00"},{"id":30573,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"88b837eddc75e3df4a5dfb9d74a73902","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4384-4424","gmt_create":"2026-04-23T06:51:53.1520274+04:00","gmt_modified":"2026-04-23T06:51:53.1520274+04:00"},{"id":30575,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"635ae3a3b6d0c742a9aa8911ac0931a6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 70-73","gmt_create":"2026-04-23T06:51:53.1525455+04:00","gmt_modified":"2026-04-23T06:51:53.1525455+04:00"},{"id":30577,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"82c3275180f9bd52205d6daf10f0cec5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 292-292","gmt_create":"2026-04-23T06:51:53.1525455+04:00","gmt_modified":"2026-04-23T06:51:53.1525455+04:00"},{"id":30579,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"476e8657e2d378c04e3da9611464e3d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4460-4490","gmt_create":"2026-04-23T06:51:53.1530723+04:00","gmt_modified":"2026-04-23T06:51:53.1530723+04:00"},{"id":30581,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"73c75f43d010444cfbe1881aea68ac48","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 75-77","gmt_create":"2026-04-23T06:51:53.1530723+04:00","gmt_modified":"2026-04-23T06:51:53.1530723+04:00"},{"id":30583,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"777103f978c926dcb38467a4c4ef2784","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1147-1202","gmt_create":"2026-04-23T06:51:53.1541085+04:00","gmt_modified":"2026-04-23T06:51:53.1541085+04:00"},{"id":30585,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"d8d8a06f04792c8b0df2d56e01dc6a30","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-96","gmt_create":"2026-04-23T06:51:53.1546297+04:00","gmt_modified":"2026-04-23T06:51:53.1546297+04:00"},{"id":30587,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"a2fca797b3404d0b8784acaa98037b1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 340-350","gmt_create":"2026-04-23T06:51:53.1551465+04:00","gmt_modified":"2026-04-23T06:51:53.1551465+04:00"},{"id":30589,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"8e44126f8dd872a81f8f38af9407591a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4346-4366","gmt_create":"2026-04-23T06:51:53.1551465+04:00","gmt_modified":"2026-04-23T06:51:53.1551465+04:00"},{"id":30591,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"3fe5a707dc8f738fe4cdf90e202a1c00","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 948-970","gmt_create":"2026-04-23T06:51:53.1551465+04:00","gmt_modified":"2026-04-23T06:51:53.1551465+04:00"},{"id":30593,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"17c5a479c1681b9fa8a9c5b8710b3871","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3652-3711","gmt_create":"2026-04-23T06:51:53.1556648+04:00","gmt_modified":"2026-04-23T06:51:53.1556648+04:00"},{"id":30595,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"8df33f74931e748bdb279fb2a7413adc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 639-673","gmt_create":"2026-04-23T06:51:53.1561871+04:00","gmt_modified":"2026-04-23T06:51:53.1561871+04:00"},{"id":30597,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"b24701f580d2bf25220eb3d99d592d19","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 562-605","gmt_create":"2026-04-23T06:51:53.1561871+04:00","gmt_modified":"2026-04-23T06:51:53.1561871+04:00"},{"id":30599,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"5c7525643ec954836de9eb71b2ce4822","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 412-422","gmt_create":"2026-04-23T06:51:53.1573075+04:00","gmt_modified":"2026-04-23T06:51:53.1573075+04:00"},{"id":30601,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"ae8706017fbc3b8f0e9a7419f707fe07","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 454-482","gmt_create":"2026-04-23T06:51:53.1573075+04:00","gmt_modified":"2026-04-23T06:51:53.1573075+04:00"},{"id":30603,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"29a0badf88afa6e203d71a2431de6c46","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 148-164","gmt_create":"2026-04-23T06:51:53.1578293+04:00","gmt_modified":"2026-04-23T06:51:53.1578293+04:00"},{"id":30605,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"1eb3056b5625ce57c7d16199bad4ca50","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 546-556","gmt_create":"2026-04-23T06:51:53.1578293+04:00","gmt_modified":"2026-04-23T06:51:53.1578293+04:00"},{"id":30607,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"318c7e8695c6742e40f80ad9a0082f49","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 631-632","gmt_create":"2026-04-23T06:51:53.1578293+04:00","gmt_modified":"2026-04-23T06:51:53.1578293+04:00"},{"id":30609,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"e8c218094b7d5fe11a9456033ee18e06","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1106-1145","gmt_create":"2026-04-23T06:51:53.1583416+04:00","gmt_modified":"2026-04-23T06:51:53.1583416+04:00"},{"id":30611,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"d44399d7c886bd0af53610c96af0c6d3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1460-1470","gmt_create":"2026-04-23T06:51:53.1583416+04:00","gmt_modified":"2026-04-23T06:51:53.1583416+04:00"},{"id":30614,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"09be458eb6253d2844adf22b7dcb84ba","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1295-1377","gmt_create":"2026-04-23T06:51:53.1667205+04:00","gmt_modified":"2026-04-23T06:51:53.1667205+04:00"},{"id":30616,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"3ffb1aa7b6196bfe3957274bb7011011","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3444-3499","gmt_create":"2026-04-23T06:51:53.1667205+04:00","gmt_modified":"2026-04-23T06:51:53.1667205+04:00"},{"id":30618,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"43938d9f7207a68c93047be50bd9214d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 218-224","gmt_create":"2026-04-23T06:51:53.1672368+04:00","gmt_modified":"2026-04-23T06:51:53.1672368+04:00"},{"id":30620,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"19489c95f9be1c0698eb501b69b25848","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 284-307","gmt_create":"2026-04-23T06:51:53.1678006+04:00","gmt_modified":"2026-04-23T06:51:53.1678006+04:00"},{"id":30622,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"4dcf2a8108140e2a4f9394a44a2f7ffa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1158-1198","gmt_create":"2026-04-23T06:51:53.1678006+04:00","gmt_modified":"2026-04-23T06:51:53.1678006+04:00"},{"id":30624,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"15e142a5cb99c56ae0b43217664f73ee","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3652-3655","gmt_create":"2026-04-23T06:51:53.1683036+04:00","gmt_modified":"2026-04-23T06:51:53.1683036+04:00"},{"id":30626,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"4f85c4df0bd388bf50a20515ab2a2c2e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 93-141","gmt_create":"2026-04-23T06:51:53.1683036+04:00","gmt_modified":"2026-04-23T06:51:53.1683036+04:00"},{"id":30628,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"ce696f64e8f5dae1824847fbd5dd7337","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 458-584","gmt_create":"2026-04-23T06:51:53.1688173+04:00","gmt_modified":"2026-04-23T06:51:53.1688173+04:00"},{"id":30630,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"6deaa37979bf1b81c17e15e58b84a2f9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4334-4463","gmt_create":"2026-04-23T06:51:53.1688173+04:00","gmt_modified":"2026-04-23T06:51:53.1688173+04:00"},{"id":30632,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"f5a835a21e81cc09d6d98cf5622e74cc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2047-2144","gmt_create":"2026-04-23T06:51:53.1693339+04:00","gmt_modified":"2026-04-23T06:51:53.1693339+04:00"},{"id":30634,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"3a840e98c5fcf50c855208adc97b9f2e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4378-4416","gmt_create":"2026-04-23T06:51:53.1693339+04:00","gmt_modified":"2026-04-23T06:51:53.1693339+04:00"},{"id":30636,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"b3a7b4a8b89b5bad3984c5e327e81b02","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2125-2142","gmt_create":"2026-04-23T06:51:53.1693339+04:00","gmt_modified":"2026-04-23T06:51:53.1693339+04:00"},{"id":30638,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"6ff6a282d68d9e062ff275589155562f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4220-4230","gmt_create":"2026-04-23T06:51:53.1693339+04:00","gmt_modified":"2026-04-23T06:51:53.1693339+04:00"},{"id":30640,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"83a8eeb5dc84001310e511c73a0ba062","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4517-4620","gmt_create":"2026-04-23T06:51:53.1703376+04:00","gmt_modified":"2026-04-23T06:51:53.1703376+04:00"},{"id":30642,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"7a58e14fb571d992c6c872fd9006c534","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2026-04-23T06:51:53.1703376+04:00","gmt_modified":"2026-04-23T06:51:53.1703376+04:00"},{"id":30644,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"2aeed6e39aa3215de09f9294df95620f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-30","gmt_create":"2026-04-23T06:51:53.1703376+04:00","gmt_modified":"2026-04-23T06:51:53.1703376+04:00"},{"id":30646,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"b981ea0333bb902d1127f5b1e1911503","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 800-830","gmt_create":"2026-04-23T06:51:53.171955+04:00","gmt_modified":"2026-04-23T06:51:53.171955+04:00"},{"id":30648,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"8e13b7edb80b9f2e0685d26dea7bb043","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 270-279","gmt_create":"2026-04-23T06:51:53.171955+04:00","gmt_modified":"2026-04-23T06:51:53.171955+04:00"},{"id":30650,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"58f395968bb8027af7c74e913908a12d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 492-501","gmt_create":"2026-04-23T06:51:53.171955+04:00","gmt_modified":"2026-04-23T06:51:53.171955+04:00"},{"id":30651,"source_id":"b3ef69c4-9a18-48ea-8119-3457fab8a7a2","target_id":"aab844a1-51ae-4696-96ed-2d4903c8e95c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b3ef69c4-9a18-48ea-8119-3457fab8a7a2 -\u003e aab844a1-51ae-4696-96ed-2d4903c8e95c","gmt_create":"2026-04-23T06:51:53.7864102+04:00","gmt_modified":"2026-04-23T06:51:53.7864102+04:00"},{"id":30652,"source_id":"b3ef69c4-9a18-48ea-8119-3457fab8a7a2","target_id":"ebc6e2d6-0b85-4e39-a4f3-1481ed578543","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b3ef69c4-9a18-48ea-8119-3457fab8a7a2 -\u003e ebc6e2d6-0b85-4e39-a4f3-1481ed578543","gmt_create":"2026-04-23T06:51:53.7869524+04:00","gmt_modified":"2026-04-23T06:51:53.7869524+04:00"},{"id":30653,"source_id":"b3ef69c4-9a18-48ea-8119-3457fab8a7a2","target_id":"11a3f0cc-0550-4d22-84d7-48826fa26abe","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b3ef69c4-9a18-48ea-8119-3457fab8a7a2 -\u003e 11a3f0cc-0550-4d22-84d7-48826fa26abe","gmt_create":"2026-04-23T06:51:53.7869524+04:00","gmt_modified":"2026-04-23T06:51:53.7869524+04:00"},{"id":30654,"source_id":"b3ef69c4-9a18-48ea-8119-3457fab8a7a2","target_id":"5a194080-41c5-4f5f-aca3-22afce98407e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b3ef69c4-9a18-48ea-8119-3457fab8a7a2 -\u003e 5a194080-41c5-4f5f-aca3-22afce98407e","gmt_create":"2026-04-23T06:51:53.7874612+04:00","gmt_modified":"2026-04-23T06:51:53.7874612+04:00"},{"id":30655,"source_id":"b3ef69c4-9a18-48ea-8119-3457fab8a7a2","target_id":"cea6507f-ab8a-40e1-9f5d-043a1ef1478a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b3ef69c4-9a18-48ea-8119-3457fab8a7a2 -\u003e cea6507f-ab8a-40e1-9f5d-043a1ef1478a","gmt_create":"2026-04-23T06:51:53.7874612+04:00","gmt_modified":"2026-04-23T06:51:53.7874612+04:00"},{"id":30658,"source_id":"fb12fa88-1b7f-4e42-978a-50f1c7f6a91b","target_id":"9efd1632-3b7e-478a-8ec9-b8f6901bc80a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: fb12fa88-1b7f-4e42-978a-50f1c7f6a91b -\u003e 9efd1632-3b7e-478a-8ec9-b8f6901bc80a","gmt_create":"2026-04-23T06:51:53.7879795+04:00","gmt_modified":"2026-04-23T06:51:53.7879795+04:00"},{"id":30659,"source_id":"fb12fa88-1b7f-4e42-978a-50f1c7f6a91b","target_id":"581fc583-ffba-4ea2-9db6-f6ef47a37749","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: fb12fa88-1b7f-4e42-978a-50f1c7f6a91b -\u003e 581fc583-ffba-4ea2-9db6-f6ef47a37749","gmt_create":"2026-04-23T06:51:53.7884907+04:00","gmt_modified":"2026-04-23T06:51:53.7884907+04:00"},{"id":30660,"source_id":"c6417b92-8eeb-47a2-adb9-b3f20f58b67c","target_id":"c6932108-aec0-4bf5-9c51-221f37cba865","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6417b92-8eeb-47a2-adb9-b3f20f58b67c -\u003e c6932108-aec0-4bf5-9c51-221f37cba865","gmt_create":"2026-04-23T06:51:53.7884907+04:00","gmt_modified":"2026-04-23T06:51:53.7884907+04:00"},{"id":30661,"source_id":"c6417b92-8eeb-47a2-adb9-b3f20f58b67c","target_id":"10a114a5-9a01-48ee-af7f-b8d3858a5a9c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6417b92-8eeb-47a2-adb9-b3f20f58b67c -\u003e 10a114a5-9a01-48ee-af7f-b8d3858a5a9c","gmt_create":"2026-04-23T06:51:53.7890186+04:00","gmt_modified":"2026-04-23T06:51:53.7890186+04:00"},{"id":30662,"source_id":"c6417b92-8eeb-47a2-adb9-b3f20f58b67c","target_id":"a551b73c-4e9a-4860-81c2-173ec92097d4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6417b92-8eeb-47a2-adb9-b3f20f58b67c -\u003e a551b73c-4e9a-4860-81c2-173ec92097d4","gmt_create":"2026-04-23T06:51:53.7890186+04:00","gmt_modified":"2026-04-23T06:51:53.7890186+04:00"},{"id":30663,"source_id":"c6417b92-8eeb-47a2-adb9-b3f20f58b67c","target_id":"2cd6fcf9-82f4-4042-855e-fd40ec6a825c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6417b92-8eeb-47a2-adb9-b3f20f58b67c -\u003e 2cd6fcf9-82f4-4042-855e-fd40ec6a825c","gmt_create":"2026-04-23T06:51:53.7890186+04:00","gmt_modified":"2026-04-23T06:51:53.7890186+04:00"},{"id":30668,"source_id":"e00a4c9f-f2bd-4a3b-8a23-5c6b15243264","target_id":"78b647b3-e3a3-44fe-b2f2-3df8132000fa","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e00a4c9f-f2bd-4a3b-8a23-5c6b15243264 -\u003e 78b647b3-e3a3-44fe-b2f2-3df8132000fa","gmt_create":"2026-04-23T06:51:53.7900651+04:00","gmt_modified":"2026-04-23T06:51:53.7900651+04:00"},{"id":30669,"source_id":"e00a4c9f-f2bd-4a3b-8a23-5c6b15243264","target_id":"29c60e4b-bedd-49da-ad65-0bb2bf389352","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e00a4c9f-f2bd-4a3b-8a23-5c6b15243264 -\u003e 29c60e4b-bedd-49da-ad65-0bb2bf389352","gmt_create":"2026-04-23T06:51:53.7905743+04:00","gmt_modified":"2026-04-23T06:51:53.7905743+04:00"},{"id":30670,"source_id":"e00a4c9f-f2bd-4a3b-8a23-5c6b15243264","target_id":"f6ccaa92-08d3-4c74-ab62-ca912f5f4307","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e00a4c9f-f2bd-4a3b-8a23-5c6b15243264 -\u003e f6ccaa92-08d3-4c74-ab62-ca912f5f4307","gmt_create":"2026-04-23T06:51:53.7905743+04:00","gmt_modified":"2026-04-23T06:51:53.7905743+04:00"},{"id":30671,"source_id":"e00a4c9f-f2bd-4a3b-8a23-5c6b15243264","target_id":"af8dc25b-51f9-43a0-91a2-a0c293d102fe","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e00a4c9f-f2bd-4a3b-8a23-5c6b15243264 -\u003e af8dc25b-51f9-43a0-91a2-a0c293d102fe","gmt_create":"2026-04-23T06:51:53.7905743+04:00","gmt_modified":"2026-04-23T06:51:53.7905743+04:00"},{"id":30672,"source_id":"6e4a5dd8-da58-4bbb-99c7-2e0276ecf320","target_id":"2b610f75-570f-4afb-8cc7-1acc5cb266f9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e4a5dd8-da58-4bbb-99c7-2e0276ecf320 -\u003e 2b610f75-570f-4afb-8cc7-1acc5cb266f9","gmt_create":"2026-04-23T06:51:53.7910849+04:00","gmt_modified":"2026-04-23T06:51:53.7910849+04:00"},{"id":30673,"source_id":"6e4a5dd8-da58-4bbb-99c7-2e0276ecf320","target_id":"8c6bf6e5-b514-4f1d-9928-ca8fada91268","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e4a5dd8-da58-4bbb-99c7-2e0276ecf320 -\u003e 8c6bf6e5-b514-4f1d-9928-ca8fada91268","gmt_create":"2026-04-23T06:51:53.7910849+04:00","gmt_modified":"2026-04-23T06:51:53.7910849+04:00"},{"id":30674,"source_id":"6e4a5dd8-da58-4bbb-99c7-2e0276ecf320","target_id":"11f48434-b4e3-4a44-8398-8bc28594453a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e4a5dd8-da58-4bbb-99c7-2e0276ecf320 -\u003e 11f48434-b4e3-4a44-8398-8bc28594453a","gmt_create":"2026-04-23T06:51:53.7910849+04:00","gmt_modified":"2026-04-23T06:51:53.7910849+04:00"},{"id":30675,"source_id":"6e4a5dd8-da58-4bbb-99c7-2e0276ecf320","target_id":"46e8c3bf-bd6f-4c78-af50-5dbc5a514905","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e4a5dd8-da58-4bbb-99c7-2e0276ecf320 -\u003e 46e8c3bf-bd6f-4c78-af50-5dbc5a514905","gmt_create":"2026-04-23T06:51:53.7910849+04:00","gmt_modified":"2026-04-23T06:51:53.7910849+04:00"},{"id":30676,"source_id":"c6932108-aec0-4bf5-9c51-221f37cba865","target_id":"94a82512-369f-4529-8fa2-eddf8af042ba","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6932108-aec0-4bf5-9c51-221f37cba865 -\u003e 94a82512-369f-4529-8fa2-eddf8af042ba","gmt_create":"2026-04-23T06:51:53.7916049+04:00","gmt_modified":"2026-04-23T06:51:53.7916049+04:00"},{"id":30677,"source_id":"c6932108-aec0-4bf5-9c51-221f37cba865","target_id":"be2e8184-d028-4124-9ff1-fb18116037f4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6932108-aec0-4bf5-9c51-221f37cba865 -\u003e be2e8184-d028-4124-9ff1-fb18116037f4","gmt_create":"2026-04-23T06:51:53.7916049+04:00","gmt_modified":"2026-04-23T06:51:53.7916049+04:00"},{"id":30678,"source_id":"c6932108-aec0-4bf5-9c51-221f37cba865","target_id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6932108-aec0-4bf5-9c51-221f37cba865 -\u003e 49dd986a-a01e-4faf-9e42-2278b298e7d2","gmt_create":"2026-04-23T06:51:53.7921317+04:00","gmt_modified":"2026-04-23T06:51:53.7921317+04:00"},{"id":30679,"source_id":"c6932108-aec0-4bf5-9c51-221f37cba865","target_id":"06e7bdba-7c63-40f1-a827-186765fa6634","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6932108-aec0-4bf5-9c51-221f37cba865 -\u003e 06e7bdba-7c63-40f1-a827-186765fa6634","gmt_create":"2026-04-23T06:51:53.7921317+04:00","gmt_modified":"2026-04-23T06:51:53.7921317+04:00"},{"id":30680,"source_id":"c6932108-aec0-4bf5-9c51-221f37cba865","target_id":"1bd79ab7-a87d-4140-baf9-d7dced2080cf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6932108-aec0-4bf5-9c51-221f37cba865 -\u003e 1bd79ab7-a87d-4140-baf9-d7dced2080cf","gmt_create":"2026-04-23T06:51:53.7926455+04:00","gmt_modified":"2026-04-23T06:51:53.7926455+04:00"},{"id":30681,"source_id":"78b647b3-e3a3-44fe-b2f2-3df8132000fa","target_id":"68d45923-3806-4691-a79b-6960515cba32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 78b647b3-e3a3-44fe-b2f2-3df8132000fa -\u003e 68d45923-3806-4691-a79b-6960515cba32","gmt_create":"2026-04-23T06:51:53.7931554+04:00","gmt_modified":"2026-04-23T06:51:53.7931554+04:00"},{"id":30682,"source_id":"78b647b3-e3a3-44fe-b2f2-3df8132000fa","target_id":"4cae5d6e-a5e4-4917-b754-94b739f7810b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 78b647b3-e3a3-44fe-b2f2-3df8132000fa -\u003e 4cae5d6e-a5e4-4917-b754-94b739f7810b","gmt_create":"2026-04-23T06:51:53.7931554+04:00","gmt_modified":"2026-04-23T06:51:53.7931554+04:00"},{"id":30683,"source_id":"78b647b3-e3a3-44fe-b2f2-3df8132000fa","target_id":"e3283c06-b90c-4e16-ace9-dfe813416c46","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 78b647b3-e3a3-44fe-b2f2-3df8132000fa -\u003e e3283c06-b90c-4e16-ace9-dfe813416c46","gmt_create":"2026-04-23T06:51:53.7936644+04:00","gmt_modified":"2026-04-23T06:51:53.7936644+04:00"},{"id":30684,"source_id":"78b647b3-e3a3-44fe-b2f2-3df8132000fa","target_id":"0fe3bef0-ce62-4c69-9e42-2c4279692ce5","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 78b647b3-e3a3-44fe-b2f2-3df8132000fa -\u003e 0fe3bef0-ce62-4c69-9e42-2c4279692ce5","gmt_create":"2026-04-23T06:51:53.7936644+04:00","gmt_modified":"2026-04-23T06:51:53.7936644+04:00"},{"id":30685,"source_id":"10a114a5-9a01-48ee-af7f-b8d3858a5a9c","target_id":"3d6d5564-da18-4dd3-9c56-bfdf8b7c569d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 10a114a5-9a01-48ee-af7f-b8d3858a5a9c -\u003e 3d6d5564-da18-4dd3-9c56-bfdf8b7c569d","gmt_create":"2026-04-23T06:51:53.7936644+04:00","gmt_modified":"2026-04-23T06:51:53.7936644+04:00"},{"id":30686,"source_id":"10a114a5-9a01-48ee-af7f-b8d3858a5a9c","target_id":"cb59c51f-940a-480e-bdcc-b9d709e0628b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 10a114a5-9a01-48ee-af7f-b8d3858a5a9c -\u003e cb59c51f-940a-480e-bdcc-b9d709e0628b","gmt_create":"2026-04-23T06:51:53.7941774+04:00","gmt_modified":"2026-04-23T06:51:53.7941774+04:00"},{"id":30687,"source_id":"ebc6e2d6-0b85-4e39-a4f3-1481ed578543","target_id":"e6d961b0-63ae-4b7d-89df-3b29ba669b8d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ebc6e2d6-0b85-4e39-a4f3-1481ed578543 -\u003e e6d961b0-63ae-4b7d-89df-3b29ba669b8d","gmt_create":"2026-04-23T06:51:53.7946864+04:00","gmt_modified":"2026-04-23T06:51:53.7946864+04:00"},{"id":30688,"source_id":"ebc6e2d6-0b85-4e39-a4f3-1481ed578543","target_id":"49c97151-b7f5-47d6-beaf-7b55fdb8fa40","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ebc6e2d6-0b85-4e39-a4f3-1481ed578543 -\u003e 49c97151-b7f5-47d6-beaf-7b55fdb8fa40","gmt_create":"2026-04-23T06:51:53.795196+04:00","gmt_modified":"2026-04-23T06:51:53.795196+04:00"},{"id":30689,"source_id":"ebc6e2d6-0b85-4e39-a4f3-1481ed578543","target_id":"722769d8-4964-4378-8c18-75ab09381d8b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ebc6e2d6-0b85-4e39-a4f3-1481ed578543 -\u003e 722769d8-4964-4378-8c18-75ab09381d8b","gmt_create":"2026-04-23T06:51:53.795196+04:00","gmt_modified":"2026-04-23T06:51:53.795196+04:00"},{"id":30690,"source_id":"ebc6e2d6-0b85-4e39-a4f3-1481ed578543","target_id":"4a9be427-bea8-4544-b878-a7bd4d6fe135","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ebc6e2d6-0b85-4e39-a4f3-1481ed578543 -\u003e 4a9be427-bea8-4544-b878-a7bd4d6fe135","gmt_create":"2026-04-23T06:51:53.795196+04:00","gmt_modified":"2026-04-23T06:51:53.795196+04:00"},{"id":30691,"source_id":"a551b73c-4e9a-4860-81c2-173ec92097d4","target_id":"3cf7d295-dc75-43bb-88bd-43f9414fdd0b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a551b73c-4e9a-4860-81c2-173ec92097d4 -\u003e 3cf7d295-dc75-43bb-88bd-43f9414fdd0b","gmt_create":"2026-04-23T06:51:53.7957726+04:00","gmt_modified":"2026-04-23T06:51:53.7957726+04:00"},{"id":30692,"source_id":"a551b73c-4e9a-4860-81c2-173ec92097d4","target_id":"cf9a052e-4ced-484d-9869-1efdf69938cc","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a551b73c-4e9a-4860-81c2-173ec92097d4 -\u003e cf9a052e-4ced-484d-9869-1efdf69938cc","gmt_create":"2026-04-23T06:51:53.7962772+04:00","gmt_modified":"2026-04-23T06:51:53.7962772+04:00"},{"id":30693,"source_id":"a551b73c-4e9a-4860-81c2-173ec92097d4","target_id":"0afed60c-5a1d-4eca-8198-c13c66fa3a87","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a551b73c-4e9a-4860-81c2-173ec92097d4 -\u003e 0afed60c-5a1d-4eca-8198-c13c66fa3a87","gmt_create":"2026-04-23T06:51:53.7968011+04:00","gmt_modified":"2026-04-23T06:51:53.7968011+04:00"},{"id":30694,"source_id":"a551b73c-4e9a-4860-81c2-173ec92097d4","target_id":"115908bf-b23e-425a-a465-14deca30a28b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a551b73c-4e9a-4860-81c2-173ec92097d4 -\u003e 115908bf-b23e-425a-a465-14deca30a28b","gmt_create":"2026-04-23T06:51:53.7968011+04:00","gmt_modified":"2026-04-23T06:51:53.7968011+04:00"},{"id":30696,"source_id":"11a3f0cc-0550-4d22-84d7-48826fa26abe","target_id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 11a3f0cc-0550-4d22-84d7-48826fa26abe -\u003e 6b3de1c4-0bed-4a2d-8d01-764f3e44da73","gmt_create":"2026-04-23T06:51:53.7968011+04:00","gmt_modified":"2026-04-23T06:51:53.7968011+04:00"},{"id":30698,"source_id":"11a3f0cc-0550-4d22-84d7-48826fa26abe","target_id":"f10d3fa8-832c-4f96-9ebf-3c06f2b35f4f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 11a3f0cc-0550-4d22-84d7-48826fa26abe -\u003e f10d3fa8-832c-4f96-9ebf-3c06f2b35f4f","gmt_create":"2026-04-23T06:51:53.7978402+04:00","gmt_modified":"2026-04-23T06:51:53.7978402+04:00"},{"id":30699,"source_id":"5a194080-41c5-4f5f-aca3-22afce98407e","target_id":"8140185f-741a-4828-b727-52977e4fadca","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5a194080-41c5-4f5f-aca3-22afce98407e -\u003e 8140185f-741a-4828-b727-52977e4fadca","gmt_create":"2026-04-23T06:51:53.7978402+04:00","gmt_modified":"2026-04-23T06:51:53.7978402+04:00"},{"id":30700,"source_id":"5a194080-41c5-4f5f-aca3-22afce98407e","target_id":"d41ddaa7-6738-4106-a9f2-4b3bd859bed7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5a194080-41c5-4f5f-aca3-22afce98407e -\u003e d41ddaa7-6738-4106-a9f2-4b3bd859bed7","gmt_create":"2026-04-23T06:51:53.7978402+04:00","gmt_modified":"2026-04-23T06:51:53.7978402+04:00"},{"id":30701,"source_id":"5a194080-41c5-4f5f-aca3-22afce98407e","target_id":"bda7f43f-72e8-4bad-8b62-29e516c0f71e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5a194080-41c5-4f5f-aca3-22afce98407e -\u003e bda7f43f-72e8-4bad-8b62-29e516c0f71e","gmt_create":"2026-04-23T06:51:53.7978402+04:00","gmt_modified":"2026-04-23T06:51:53.7978402+04:00"},{"id":30702,"source_id":"5a194080-41c5-4f5f-aca3-22afce98407e","target_id":"7e2fa0ba-5607-4eaa-89f6-28498cf7f9cf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5a194080-41c5-4f5f-aca3-22afce98407e -\u003e 7e2fa0ba-5607-4eaa-89f6-28498cf7f9cf","gmt_create":"2026-04-23T06:51:53.7983518+04:00","gmt_modified":"2026-04-23T06:51:53.7983518+04:00"},{"id":30703,"source_id":"94a82512-369f-4529-8fa2-eddf8af042ba","target_id":"1253118c-3895-484a-8833-f8a75ad484cc","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 94a82512-369f-4529-8fa2-eddf8af042ba -\u003e 1253118c-3895-484a-8833-f8a75ad484cc","gmt_create":"2026-04-23T06:51:53.7983518+04:00","gmt_modified":"2026-04-23T06:51:53.7983518+04:00"},{"id":30704,"source_id":"94a82512-369f-4529-8fa2-eddf8af042ba","target_id":"d29576a1-94e5-4cc8-b6db-a26233208c1b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 94a82512-369f-4529-8fa2-eddf8af042ba -\u003e d29576a1-94e5-4cc8-b6db-a26233208c1b","gmt_create":"2026-04-23T06:51:53.798876+04:00","gmt_modified":"2026-04-23T06:51:53.798876+04:00"},{"id":30705,"source_id":"94a82512-369f-4529-8fa2-eddf8af042ba","target_id":"2c40d2b3-38f4-4d9b-8c7f-04e238f0f5c0","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 94a82512-369f-4529-8fa2-eddf8af042ba -\u003e 2c40d2b3-38f4-4d9b-8c7f-04e238f0f5c0","gmt_create":"2026-04-23T06:51:53.798876+04:00","gmt_modified":"2026-04-23T06:51:53.798876+04:00"},{"id":30706,"source_id":"94a82512-369f-4529-8fa2-eddf8af042ba","target_id":"dbb85b90-521b-4020-9481-157cbbf219f3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 94a82512-369f-4529-8fa2-eddf8af042ba -\u003e dbb85b90-521b-4020-9481-157cbbf219f3","gmt_create":"2026-04-23T06:51:53.7993891+04:00","gmt_modified":"2026-04-23T06:51:53.7993891+04:00"},{"id":30713,"source_id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","target_id":"c965ea0e-3788-4399-b1ad-a28b56e711c8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6b3de1c4-0bed-4a2d-8d01-764f3e44da73 -\u003e c965ea0e-3788-4399-b1ad-a28b56e711c8","gmt_create":"2026-04-23T06:51:53.8004118+04:00","gmt_modified":"2026-04-23T06:51:53.8004118+04:00"},{"id":30714,"source_id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","target_id":"96d18f3b-75bc-4b99-b280-3f74888d4d89","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6b3de1c4-0bed-4a2d-8d01-764f3e44da73 -\u003e 96d18f3b-75bc-4b99-b280-3f74888d4d89","gmt_create":"2026-04-23T06:51:53.8009241+04:00","gmt_modified":"2026-04-23T06:51:53.8009241+04:00"},{"id":30715,"source_id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","target_id":"3fd0ef61-a22e-47a1-a06e-fd6321efc9cd","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6b3de1c4-0bed-4a2d-8d01-764f3e44da73 -\u003e 3fd0ef61-a22e-47a1-a06e-fd6321efc9cd","gmt_create":"2026-04-23T06:51:53.8009241+04:00","gmt_modified":"2026-04-23T06:51:53.8009241+04:00"},{"id":30716,"source_id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","target_id":"872e2ac3-5c14-42c9-a3bb-38a8c46709fa","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6b3de1c4-0bed-4a2d-8d01-764f3e44da73 -\u003e 872e2ac3-5c14-42c9-a3bb-38a8c46709fa","gmt_create":"2026-04-23T06:51:53.8009241+04:00","gmt_modified":"2026-04-23T06:51:53.8009241+04:00"},{"id":30717,"source_id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","target_id":"3db17a7d-046c-4234-a9c3-2a0c3829f9e1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6b3de1c4-0bed-4a2d-8d01-764f3e44da73 -\u003e 3db17a7d-046c-4234-a9c3-2a0c3829f9e1","gmt_create":"2026-04-23T06:51:53.801434+04:00","gmt_modified":"2026-04-23T06:51:53.801434+04:00"},{"id":30718,"source_id":"be2e8184-d028-4124-9ff1-fb18116037f4","target_id":"19eb036e-1e87-426d-a5f0-911d5e1b48d6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: be2e8184-d028-4124-9ff1-fb18116037f4 -\u003e 19eb036e-1e87-426d-a5f0-911d5e1b48d6","gmt_create":"2026-04-23T06:51:53.801434+04:00","gmt_modified":"2026-04-23T06:51:53.801434+04:00"},{"id":30719,"source_id":"be2e8184-d028-4124-9ff1-fb18116037f4","target_id":"8ab5afd9-a2c3-4a4b-bebc-8a4c9c6b3c83","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: be2e8184-d028-4124-9ff1-fb18116037f4 -\u003e 8ab5afd9-a2c3-4a4b-bebc-8a4c9c6b3c83","gmt_create":"2026-04-23T06:51:53.8019455+04:00","gmt_modified":"2026-04-23T06:51:53.8019455+04:00"},{"id":30720,"source_id":"be2e8184-d028-4124-9ff1-fb18116037f4","target_id":"e9e4bec3-52c1-48e0-a514-51709f4313f3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: be2e8184-d028-4124-9ff1-fb18116037f4 -\u003e e9e4bec3-52c1-48e0-a514-51709f4313f3","gmt_create":"2026-04-23T06:51:53.8019455+04:00","gmt_modified":"2026-04-23T06:51:53.8019455+04:00"},{"id":30721,"source_id":"be2e8184-d028-4124-9ff1-fb18116037f4","target_id":"297b7a79-d227-41a0-bb25-238963d7cc1f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: be2e8184-d028-4124-9ff1-fb18116037f4 -\u003e 297b7a79-d227-41a0-bb25-238963d7cc1f","gmt_create":"2026-04-23T06:51:53.8019455+04:00","gmt_modified":"2026-04-23T06:51:53.8019455+04:00"},{"id":30722,"source_id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","target_id":"0cfd47e1-c711-4b9e-88f1-3f1d0f6fd470","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 49dd986a-a01e-4faf-9e42-2278b298e7d2 -\u003e 0cfd47e1-c711-4b9e-88f1-3f1d0f6fd470","gmt_create":"2026-04-23T06:51:53.8024824+04:00","gmt_modified":"2026-04-23T06:51:53.8024824+04:00"},{"id":30723,"source_id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","target_id":"48472fb0-8fb1-4c18-beaa-d528e772ad06","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 49dd986a-a01e-4faf-9e42-2278b298e7d2 -\u003e 48472fb0-8fb1-4c18-beaa-d528e772ad06","gmt_create":"2026-04-23T06:51:53.8024824+04:00","gmt_modified":"2026-04-23T06:51:53.8024824+04:00"},{"id":30724,"source_id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","target_id":"ff07e431-2871-4c03-9a48-df11b1c2d509","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 49dd986a-a01e-4faf-9e42-2278b298e7d2 -\u003e ff07e431-2871-4c03-9a48-df11b1c2d509","gmt_create":"2026-04-23T06:51:53.8024824+04:00","gmt_modified":"2026-04-23T06:51:53.8024824+04:00"},{"id":30725,"source_id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","target_id":"30d5a5ec-65f1-4bb4-9d03-adf9cee17919","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 49dd986a-a01e-4faf-9e42-2278b298e7d2 -\u003e 30d5a5ec-65f1-4bb4-9d03-adf9cee17919","gmt_create":"2026-04-23T06:51:53.8030117+04:00","gmt_modified":"2026-04-23T06:51:53.8030117+04:00"},{"id":30726,"source_id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","target_id":"bf906e37-8997-4f06-a99f-26dba3f43293","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 49dd986a-a01e-4faf-9e42-2278b298e7d2 -\u003e bf906e37-8997-4f06-a99f-26dba3f43293","gmt_create":"2026-04-23T06:51:53.8036053+04:00","gmt_modified":"2026-04-23T06:51:53.8036053+04:00"},{"id":30779,"source_id":"5d124c256c0fcd736094cfbd39e807a2","target_id":"4b8c8943a4768ebf03f79c2d2c3e4cb8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 86-86","gmt_create":"2026-04-23T07:16:50.6622922+04:00","gmt_modified":"2026-04-23T07:16:50.6622922+04:00"},{"id":30805,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"e462a61bcb0546ac7e51d4d77b5e78d7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 560-665","gmt_create":"2026-04-23T07:16:50.6663698+04:00","gmt_modified":"2026-04-23T07:16:50.6663698+04:00"},{"id":30807,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"e8266f9aae45a25637eeae664143da3a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 170-181","gmt_create":"2026-04-23T07:16:50.6673695+04:00","gmt_modified":"2026-04-23T07:16:50.6673695+04:00"},{"id":30809,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"10527b3f085bc23cb5a2ced3d43e605e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3616-3622","gmt_create":"2026-04-23T07:16:50.6683693+04:00","gmt_modified":"2026-04-23T07:16:50.6683693+04:00"},{"id":30826,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"a5a691e7d10617d28a320dc54d620ac0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-81","gmt_create":"2026-04-23T07:16:50.6708733+04:00","gmt_modified":"2026-04-23T07:16:50.6708733+04:00"},{"id":30828,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"131eb608030b3a04b016429fdb3d416a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3278-3281","gmt_create":"2026-04-23T07:16:50.6708733+04:00","gmt_modified":"2026-04-23T07:16:50.6708733+04:00"},{"id":30830,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"5244d6587cbf807d34a2848110b1b8ff","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3633-3636","gmt_create":"2026-04-23T07:16:50.6708733+04:00","gmt_modified":"2026-04-23T07:16:50.6708733+04:00"},{"id":30832,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"c8da7c90dc7ff2af502eb264eb4da4f8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3653-3656","gmt_create":"2026-04-23T07:16:50.6718782+04:00","gmt_modified":"2026-04-23T07:16:50.6718782+04:00"},{"id":30834,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"f2b6431fb26cd401e272c27017c72bf3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3671-3674","gmt_create":"2026-04-23T07:16:50.6718782+04:00","gmt_modified":"2026-04-23T07:16:50.6718782+04:00"},{"id":30908,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"2d7840ca18eae0c0962912ac837b7c1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 81-88","gmt_create":"2026-04-23T07:21:32.2494949+04:00","gmt_modified":"2026-04-23T07:21:32.2494949+04:00"},{"id":30932,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"c07484f955228ae2a641c6a9ecc218e1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-23T08:46:18.3406078+04:00","gmt_modified":"2026-04-23T08:46:18.3406078+04:00"},{"id":30933,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T08:46:18.3406078+04:00","gmt_modified":"2026-04-23T08:46:18.3406078+04:00"},{"id":30934,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"4036f8e38f752e8da82deeed190ddc06","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_connection.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30935,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"f6da664295247a02e1a87e6157ade267","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_database.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30936,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"4810c013b14141360d4bcf40a8c63444","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30937,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"32cf30b2e9094b9693ab53917b0a2eb3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30938,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"aa7de2818f0eacb01058838d2b81a9e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/core_messages.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30939,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"abf923bd059721b5a0c6f9abfff538be","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/exceptions.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30940,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"a090337969d7a39c7cbc9737c926d289","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/stcp_socket.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30941,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"e12a1d568ad99d9c23753af3b983d420","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message_oriented_connection.hpp","gmt_create":"2026-04-23T08:46:18.3416112+04:00","gmt_modified":"2026-04-23T08:46:18.3416112+04:00"},{"id":30942,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"1e6f9e0c4241a3a53748ca848749cd9c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-04-23T08:46:18.3440584+04:00","gmt_modified":"2026-04-23T08:46:18.3440584+04:00"},{"id":30943,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"4ec5dd7f21bde7651b20873b01f868c9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-23T08:46:18.3440584+04:00","gmt_modified":"2026-04-23T08:46:18.3440584+04:00"},{"id":30944,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"5a775a89bb87e70f60760941848117e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-23T08:46:18.3440584+04:00","gmt_modified":"2026-04-23T08:46:18.3440584+04:00"},{"id":30945,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"f5e2709c934c90bed9814ff547a6da8e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/config.hpp","gmt_create":"2026-04-23T08:46:18.3440584+04:00","gmt_modified":"2026-04-23T08:46:18.3440584+04:00"},{"id":30946,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"1386bfdeb86a81676e71a6f5e130486d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#180-355","gmt_create":"2026-04-23T08:46:18.3445785+04:00","gmt_modified":"2026-04-23T08:46:18.3445785+04:00"},{"id":30947,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"1386bfdeb86a81676e71a6f5e130486d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 180-355","gmt_create":"2026-04-23T08:46:18.3445785+04:00","gmt_modified":"2026-04-23T08:46:18.3445785+04:00"},{"id":30948,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"47828ff62fb0611c687e0ec3929a803f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#869-905","gmt_create":"2026-04-23T08:46:18.3445785+04:00","gmt_modified":"2026-04-23T08:46:18.3445785+04:00"},{"id":30949,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"47828ff62fb0611c687e0ec3929a803f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 869-905","gmt_create":"2026-04-23T08:46:18.3445785+04:00","gmt_modified":"2026-04-23T08:46:18.3445785+04:00"},{"id":30950,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"eca8efe2e83df0e4e7f0bb8711e2d3d4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#79-354","gmt_create":"2026-04-23T08:46:18.3445785+04:00","gmt_modified":"2026-04-23T08:46:18.3445785+04:00"},{"id":30951,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"eca8efe2e83df0e4e7f0bb8711e2d3d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-354","gmt_create":"2026-04-23T08:46:18.3445785+04:00","gmt_modified":"2026-04-23T08:46:18.3445785+04:00"},{"id":30952,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"31c07b5a29db4c1cbb24f79829d347aa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#104-134","gmt_create":"2026-04-23T08:46:18.3451042+04:00","gmt_modified":"2026-04-23T08:46:18.3451042+04:00"},{"id":30953,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"2b2ad90d8dded590d660844927f1808a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#42-114","gmt_create":"2026-04-23T08:46:18.3451042+04:00","gmt_modified":"2026-04-23T08:46:18.3451042+04:00"},{"id":30954,"source_id":"4810c013b14141360d4bcf40a8c63444","target_id":"2b2ad90d8dded590d660844927f1808a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-114","gmt_create":"2026-04-23T08:46:18.3451042+04:00","gmt_modified":"2026-04-23T08:46:18.3451042+04:00"},{"id":30955,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"5fd327370da6f7d0909df81ca8173374","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#111-120","gmt_create":"2026-04-23T08:46:18.3451042+04:00","gmt_modified":"2026-04-23T08:46:18.3451042+04:00"},{"id":30956,"source_id":"1e6f9e0c4241a3a53748ca848749cd9c","target_id":"5fd327370da6f7d0909df81ca8173374","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 111-120","gmt_create":"2026-04-23T08:46:18.3456218+04:00","gmt_modified":"2026-04-23T08:46:18.3456218+04:00"},{"id":30957,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"6deaa37979bf1b81c17e15e58b84a2f9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4334-4463","gmt_create":"2026-04-23T08:46:18.3456218+04:00","gmt_modified":"2026-04-23T08:46:18.3456218+04:00"},{"id":30958,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"db7f0e20d20c729cfc5585f1e0485172","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config.hpp#110-123","gmt_create":"2026-04-23T08:46:18.3456218+04:00","gmt_modified":"2026-04-23T08:46:18.3456218+04:00"},{"id":30959,"source_id":"f5e2709c934c90bed9814ff547a6da8e","target_id":"db7f0e20d20c729cfc5585f1e0485172","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 110-123","gmt_create":"2026-04-23T08:46:18.3461363+04:00","gmt_modified":"2026-04-23T08:46:18.3461363+04:00"},{"id":30960,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"5505ad3214e042feeb98d8ca38cc0e5b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#952-1047","gmt_create":"2026-04-23T08:46:18.3466537+04:00","gmt_modified":"2026-04-23T08:46:18.3466537+04:00"},{"id":30961,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"5505ad3214e042feeb98d8ca38cc0e5b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 952-1047","gmt_create":"2026-04-23T08:46:18.3466537+04:00","gmt_modified":"2026-04-23T08:46:18.3466537+04:00"},{"id":30962,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"1d3b2e6e4eb9c11a9e00355cc006c61e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#1623-1654","gmt_create":"2026-04-23T08:46:18.3466537+04:00","gmt_modified":"2026-04-23T08:46:18.3466537+04:00"},{"id":30963,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"1d3b2e6e4eb9c11a9e00355cc006c61e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1623-1654","gmt_create":"2026-04-23T08:46:18.3466537+04:00","gmt_modified":"2026-04-23T08:46:18.3466537+04:00"},{"id":30964,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"0cece6494088e7b65bd0e3a0aff77e9e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2282-2350","gmt_create":"2026-04-23T08:46:18.3466537+04:00","gmt_modified":"2026-04-23T08:46:18.3466537+04:00"},{"id":30965,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"0cece6494088e7b65bd0e3a0aff77e9e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2282-2350","gmt_create":"2026-04-23T08:46:18.3471815+04:00","gmt_modified":"2026-04-23T08:46:18.3471815+04:00"},{"id":30966,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"79e77d6e9212485bc9d0fdf1d6410ed4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#869-931","gmt_create":"2026-04-23T08:46:18.3471815+04:00","gmt_modified":"2026-04-23T08:46:18.3471815+04:00"},{"id":30967,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"79e77d6e9212485bc9d0fdf1d6410ed4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 869-931","gmt_create":"2026-04-23T08:46:18.3471815+04:00","gmt_modified":"2026-04-23T08:46:18.3471815+04:00"},{"id":30968,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"3d1618efce493d2298f79ed0f0166418","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2029-2230","gmt_create":"2026-04-23T08:46:18.3476959+04:00","gmt_modified":"2026-04-23T08:46:18.3476959+04:00"},{"id":30969,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"3d1618efce493d2298f79ed0f0166418","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2029-2230","gmt_create":"2026-04-23T08:46:18.3476959+04:00","gmt_modified":"2026-04-23T08:46:18.3476959+04:00"},{"id":30970,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"3ef7242e306c1972f455c516ad037647","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2232-2250","gmt_create":"2026-04-23T08:46:18.3476959+04:00","gmt_modified":"2026-04-23T08:46:18.3476959+04:00"},{"id":30971,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"3ef7242e306c1972f455c516ad037647","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2232-2250","gmt_create":"2026-04-23T08:46:18.3476959+04:00","gmt_modified":"2026-04-23T08:46:18.3476959+04:00"},{"id":30972,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"406f9521c4ead23ecb46eb387ea2ca80","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#1400-1621","gmt_create":"2026-04-23T08:46:18.3482105+04:00","gmt_modified":"2026-04-23T08:46:18.3482105+04:00"},{"id":30973,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"406f9521c4ead23ecb46eb387ea2ca80","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1400-1621","gmt_create":"2026-04-23T08:46:18.3482105+04:00","gmt_modified":"2026-04-23T08:46:18.3482105+04:00"},{"id":30974,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"dccb2f0ecc63153863ecafe8af55b7dd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#79-80","gmt_create":"2026-04-23T08:46:18.3482105+04:00","gmt_modified":"2026-04-23T08:46:18.3482105+04:00"},{"id":30975,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"dccb2f0ecc63153863ecafe8af55b7dd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-80","gmt_create":"2026-04-23T08:46:18.3482105+04:00","gmt_modified":"2026-04-23T08:46:18.3482105+04:00"},{"id":30976,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"c104a047d2e0286a416a50707ff31f75","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3117-3199","gmt_create":"2026-04-23T08:46:18.3487219+04:00","gmt_modified":"2026-04-23T08:46:18.3487219+04:00"},{"id":30977,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"c104a047d2e0286a416a50707ff31f75","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3117-3199","gmt_create":"2026-04-23T08:46:18.3487219+04:00","gmt_modified":"2026-04-23T08:46:18.3487219+04:00"},{"id":30978,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"f66169296c7e57bb31eb8bfbb97ec9c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#200-294","gmt_create":"2026-04-23T08:46:18.3487219+04:00","gmt_modified":"2026-04-23T08:46:18.3487219+04:00"},{"id":30979,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"f66169296c7e57bb31eb8bfbb97ec9c8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 200-294","gmt_create":"2026-04-23T08:46:18.3487219+04:00","gmt_modified":"2026-04-23T08:46:18.3487219+04:00"},{"id":30980,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"1970e34fadef96485269e5b4459078b1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#933-950","gmt_create":"2026-04-23T08:46:18.3487219+04:00","gmt_modified":"2026-04-23T08:46:18.3487219+04:00"},{"id":30981,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"1970e34fadef96485269e5b4459078b1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 933-950","gmt_create":"2026-04-23T08:46:18.3487219+04:00","gmt_modified":"2026-04-23T08:46:18.3487219+04:00"},{"id":30982,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"cfe6e43bf4714c16729e4589b894929a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#1686-1713","gmt_create":"2026-04-23T08:46:18.3492384+04:00","gmt_modified":"2026-04-23T08:46:18.3492384+04:00"},{"id":30983,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"cfe6e43bf4714c16729e4589b894929a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1686-1713","gmt_create":"2026-04-23T08:46:18.3492384+04:00","gmt_modified":"2026-04-23T08:46:18.3492384+04:00"},{"id":30984,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"ebf5643943fb83f7f0577c5391cdc29f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#211-296","gmt_create":"2026-04-23T08:46:18.3492384+04:00","gmt_modified":"2026-04-23T08:46:18.3492384+04:00"},{"id":30985,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"ebf5643943fb83f7f0577c5391cdc29f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 211-296","gmt_create":"2026-04-23T08:46:18.3492384+04:00","gmt_modified":"2026-04-23T08:46:18.3492384+04:00"},{"id":30986,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"abb42aa5deba88d8499bfa05522d04b8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#1788-1841","gmt_create":"2026-04-23T08:46:18.3492384+04:00","gmt_modified":"2026-04-23T08:46:18.3492384+04:00"},{"id":30987,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"abb42aa5deba88d8499bfa05522d04b8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1788-1841","gmt_create":"2026-04-23T08:46:18.358636+04:00","gmt_modified":"2026-04-23T08:46:18.358636+04:00"},{"id":30988,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"8910992f07461b10d88807a2dc107e31","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#1326-1398","gmt_create":"2026-04-23T08:46:18.359152+04:00","gmt_modified":"2026-04-23T08:46:18.359152+04:00"},{"id":30989,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"8910992f07461b10d88807a2dc107e31","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1326-1398","gmt_create":"2026-04-23T08:46:18.359152+04:00","gmt_modified":"2026-04-23T08:46:18.359152+04:00"},{"id":30990,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"fd51f4f0db3db3df7716cbbb1debe572","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2830-2892","gmt_create":"2026-04-23T08:46:18.359152+04:00","gmt_modified":"2026-04-23T08:46:18.359152+04:00"},{"id":30991,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"fd51f4f0db3db3df7716cbbb1debe572","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2830-2892","gmt_create":"2026-04-23T08:46:18.359152+04:00","gmt_modified":"2026-04-23T08:46:18.359152+04:00"},{"id":30992,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"b9e952a855bb6a183f302fe56963d21c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#111-217","gmt_create":"2026-04-23T08:46:18.359152+04:00","gmt_modified":"2026-04-23T08:46:18.359152+04:00"},{"id":30993,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"b9e952a855bb6a183f302fe56963d21c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 111-217","gmt_create":"2026-04-23T08:46:18.359152+04:00","gmt_modified":"2026-04-23T08:46:18.359152+04:00"},{"id":30994,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"48c21c33524e92ceea06033be614b235","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3574-3629","gmt_create":"2026-04-23T08:46:18.3597763+04:00","gmt_modified":"2026-04-23T08:46:18.3597763+04:00"},{"id":30995,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"48c21c33524e92ceea06033be614b235","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3574-3629","gmt_create":"2026-04-23T08:46:18.3597763+04:00","gmt_modified":"2026-04-23T08:46:18.3597763+04:00"},{"id":30996,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"7e0b537a82d1f588c679300874997b9d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3436-3458","gmt_create":"2026-04-23T08:46:18.3597763+04:00","gmt_modified":"2026-04-23T08:46:18.3597763+04:00"},{"id":30997,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"7e0b537a82d1f588c679300874997b9d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3436-3458","gmt_create":"2026-04-23T08:46:18.3597763+04:00","gmt_modified":"2026-04-23T08:46:18.3597763+04:00"},{"id":30998,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"750e5499f686ed5cf00da793ffff700d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/exceptions.hpp#45","gmt_create":"2026-04-23T08:46:18.3602792+04:00","gmt_modified":"2026-04-23T08:46:18.3602792+04:00"},{"id":30999,"source_id":"abf923bd059721b5a0c6f9abfff538be","target_id":"750e5499f686ed5cf00da793ffff700d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45","gmt_create":"2026-04-23T08:46:18.3602792+04:00","gmt_modified":"2026-04-23T08:46:18.3602792+04:00"},{"id":31000,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"0455ab6d2af86bb4904447c2872c0c53","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3444-3458","gmt_create":"2026-04-23T08:46:18.3602792+04:00","gmt_modified":"2026-04-23T08:46:18.3602792+04:00"},{"id":31001,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"0455ab6d2af86bb4904447c2872c0c53","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3444-3458","gmt_create":"2026-04-23T08:46:18.3608115+04:00","gmt_modified":"2026-04-23T08:46:18.3608115+04:00"},{"id":31002,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"6e81216a32202b37bf1e51becbd96ee5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3574-3595","gmt_create":"2026-04-23T08:46:18.3608115+04:00","gmt_modified":"2026-04-23T08:46:18.3608115+04:00"},{"id":31003,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"6e81216a32202b37bf1e51becbd96ee5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3574-3595","gmt_create":"2026-04-23T08:46:18.3608115+04:00","gmt_modified":"2026-04-23T08:46:18.3608115+04:00"},{"id":31004,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"9aab1633519dd82fa80f9dae679c6e67","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3436-3449","gmt_create":"2026-04-23T08:46:18.3608115+04:00","gmt_modified":"2026-04-23T08:46:18.3608115+04:00"},{"id":31005,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"9aab1633519dd82fa80f9dae679c6e67","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3436-3449","gmt_create":"2026-04-23T08:46:18.3613279+04:00","gmt_modified":"2026-04-23T08:46:18.3613279+04:00"},{"id":31006,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"09f1af7d59dbdb0fbf48bb43ee73810a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3428-3449","gmt_create":"2026-04-23T08:46:18.3613279+04:00","gmt_modified":"2026-04-23T08:46:18.3613279+04:00"},{"id":31007,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"09f1af7d59dbdb0fbf48bb43ee73810a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3428-3449","gmt_create":"2026-04-23T08:46:18.3613279+04:00","gmt_modified":"2026-04-23T08:46:18.3613279+04:00"},{"id":31008,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"5308ccfa8580b1876716b44b1f28861a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#260-262","gmt_create":"2026-04-23T08:46:18.3613279+04:00","gmt_modified":"2026-04-23T08:46:18.3613279+04:00"},{"id":31009,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"5308ccfa8580b1876716b44b1f28861a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 260-262","gmt_create":"2026-04-23T08:46:18.3613279+04:00","gmt_modified":"2026-04-23T08:46:18.3613279+04:00"},{"id":31010,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"99bf9466ee39733484e42b24dcac4661","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#80-87","gmt_create":"2026-04-23T08:46:18.3618533+04:00","gmt_modified":"2026-04-23T08:46:18.3618533+04:00"},{"id":31011,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"99bf9466ee39733484e42b24dcac4661","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 80-87","gmt_create":"2026-04-23T08:46:18.3618533+04:00","gmt_modified":"2026-04-23T08:46:18.3618533+04:00"},{"id":31012,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"e806bda1a9e889983105fe61c6d9db2d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2251-2280","gmt_create":"2026-04-23T08:46:18.362368+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"id":31013,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"e806bda1a9e889983105fe61c6d9db2d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2251-2280","gmt_create":"2026-04-23T08:46:18.362368+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"id":31014,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"5ce89ecce18bb64f98f6719d9ec00e43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2137-2168","gmt_create":"2026-04-23T08:46:18.362368+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"id":31015,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"5ce89ecce18bb64f98f6719d9ec00e43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2137-2168","gmt_create":"2026-04-23T08:46:18.362368+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"id":31016,"source_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","target_id":"f1396eb83cd882dc7f1cf702aace14ed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4455-4460","gmt_create":"2026-04-23T08:46:18.362368+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"id":31017,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"f1396eb83cd882dc7f1cf702aace14ed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4455-4460","gmt_create":"2026-04-23T08:46:18.362368+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"id":31102,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"8114d7a38e6d9b53917762786e49ecc5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-6424","gmt_create":"2026-04-23T08:48:15.4563297+04:00","gmt_modified":"2026-04-23T08:48:15.4563297+04:00"},{"id":31110,"source_id":"5d124c256c0fcd736094cfbd39e807a2","target_id":"209f7b117b7f7bb00470bddded3c2398","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-136","gmt_create":"2026-04-23T08:48:15.4642292+04:00","gmt_modified":"2026-04-23T08:48:15.4642292+04:00"},{"id":31113,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"7cc5b740b5c5c8e957b1ac116c71feeb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1420-1430","gmt_create":"2026-04-23T08:48:15.4648283+04:00","gmt_modified":"2026-04-23T08:48:15.4648283+04:00"},{"id":31119,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"dd263a594e39d8c84ce42b6efb76acd5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3185-3384","gmt_create":"2026-04-23T08:48:15.4654177+04:00","gmt_modified":"2026-04-23T08:48:15.4654177+04:00"},{"id":31122,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"944bb65381e9048751328749ccfb5732","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 181-196","gmt_create":"2026-04-23T08:48:15.4654177+04:00","gmt_modified":"2026-04-23T08:48:15.4654177+04:00"},{"id":31137,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"a7c9e78b9bf59b6a3989c0339f9f5991","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1424-1426","gmt_create":"2026-04-23T08:48:15.4689421+04:00","gmt_modified":"2026-04-23T08:48:15.4689421+04:00"},{"id":31165,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"ea1944a89359ddbccd657fb47a341ead","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1216-1286","gmt_create":"2026-04-23T08:48:15.4729776+04:00","gmt_modified":"2026-04-23T08:48:15.4729776+04:00"},{"id":31188,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"4036f8e38f752e8da82deeed190ddc06","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_connection.hpp","gmt_create":"2026-04-23T09:39:39.4672709+04:00","gmt_modified":"2026-04-23T09:39:39.4672709+04:00"},{"id":31189,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"03ba9497d2e4b912db997e43e1b9c653","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_connection.cpp","gmt_create":"2026-04-23T09:39:39.4672709+04:00","gmt_modified":"2026-04-23T09:39:39.4672709+04:00"},{"id":31190,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"c07484f955228ae2a641c6a9ecc218e1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-23T09:39:39.4677708+04:00","gmt_modified":"2026-04-23T09:39:39.4677708+04:00"},{"id":31191,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T09:39:39.4677708+04:00","gmt_modified":"2026-04-23T09:39:39.4677708+04:00"},{"id":31192,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"e12a1d568ad99d9c23753af3b983d420","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message_oriented_connection.hpp","gmt_create":"2026-04-23T09:39:39.4682736+04:00","gmt_modified":"2026-04-23T09:39:39.4682736+04:00"},{"id":31193,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"44259eceb7b489d55fb322edef4c325f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/message_oriented_connection.cpp","gmt_create":"2026-04-23T09:39:39.4682736+04:00","gmt_modified":"2026-04-23T09:39:39.4682736+04:00"},{"id":31194,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"a090337969d7a39c7cbc9737c926d289","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/stcp_socket.hpp","gmt_create":"2026-04-23T09:39:39.4682736+04:00","gmt_modified":"2026-04-23T09:39:39.4682736+04:00"},{"id":31195,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"7f5ebd18d8224ccabbd73a26fba17a38","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/stcp_socket.cpp","gmt_create":"2026-04-23T09:39:39.4688088+04:00","gmt_modified":"2026-04-23T09:39:39.4688088+04:00"},{"id":31196,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"aa7de2818f0eacb01058838d2b81a9e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/core_messages.hpp","gmt_create":"2026-04-23T09:39:39.4688088+04:00","gmt_modified":"2026-04-23T09:39:39.4688088+04:00"},{"id":31197,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"f5ad8f25a7e1c10d29fdcfd7b3eadb75","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/core_messages.cpp","gmt_create":"2026-04-23T09:39:39.4688088+04:00","gmt_modified":"2026-04-23T09:39:39.4688088+04:00"},{"id":31198,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"32cf30b2e9094b9693ab53917b0a2eb3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-04-23T09:39:39.4688088+04:00","gmt_modified":"2026-04-23T09:39:39.4688088+04:00"},{"id":31199,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"f6da664295247a02e1a87e6157ade267","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_database.hpp","gmt_create":"2026-04-23T09:39:39.4688088+04:00","gmt_modified":"2026-04-23T09:39:39.4688088+04:00"},{"id":31200,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8fb5fbed1f7009b8445ba1ca2bb36e9e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_database.cpp","gmt_create":"2026-04-23T09:39:39.4688088+04:00","gmt_modified":"2026-04-23T09:39:39.4688088+04:00"},{"id":31201,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"4810c013b14141360d4bcf40a8c63444","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-04-23T09:39:39.4698144+04:00","gmt_modified":"2026-04-23T09:39:39.4698144+04:00"},{"id":31202,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"abf923bd059721b5a0c6f9abfff538be","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/exceptions.hpp","gmt_create":"2026-04-23T09:39:39.4698144+04:00","gmt_modified":"2026-04-23T09:39:39.4698144+04:00"},{"id":31203,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8ed00ab8494d32c90e1ebf81d2421989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T09:39:39.4698144+04:00","gmt_modified":"2026-04-23T09:39:39.4698144+04:00"},{"id":31204,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"5a775a89bb87e70f60760941848117e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-23T09:39:39.4698144+04:00","gmt_modified":"2026-04-23T09:39:39.4698144+04:00"},{"id":31205,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"4ec5dd7f21bde7651b20873b01f868c9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-23T09:39:39.4703568+04:00","gmt_modified":"2026-04-23T09:39:39.4703568+04:00"},{"id":31206,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"5d124c256c0fcd736094cfbd39e807a2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database_exceptions.hpp","gmt_create":"2026-04-23T09:39:39.4703568+04:00","gmt_modified":"2026-04-23T09:39:39.4703568+04:00"},{"id":31207,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"21bfc0180b7699a6df5d595a956c92ec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.hpp","gmt_create":"2026-04-23T09:39:39.4703568+04:00","gmt_modified":"2026-04-23T09:39:39.4703568+04:00"},{"id":31208,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T09:39:39.4703568+04:00","gmt_modified":"2026-04-23T09:39:39.4703568+04:00"},{"id":31209,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"37fb39091ee4b69fe1e682497ff46b55","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-23T09:39:39.4703568+04:00","gmt_modified":"2026-04-23T09:39:39.4703568+04:00"},{"id":31210,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"16a4e2bff0288ec68e9817239c754aed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-23T09:39:39.471294+04:00","gmt_modified":"2026-04-23T09:39:39.471294+04:00"},{"id":31211,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"b790ddd3e717ed748c2e061559e92124","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#79-351","gmt_create":"2026-04-23T09:39:39.471294+04:00","gmt_modified":"2026-04-23T09:39:39.471294+04:00"},{"id":31212,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"a07ab3c4bae64fb9fbd9587bd3eaae39","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#45-79","gmt_create":"2026-04-23T09:39:39.4717975+04:00","gmt_modified":"2026-04-23T09:39:39.4717975+04:00"},{"id":31213,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"bd9136208fce359f28cad48005c18445","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#37-93","gmt_create":"2026-04-23T09:39:39.4717975+04:00","gmt_modified":"2026-04-23T09:39:39.4717975+04:00"},{"id":31214,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8b8b5804e7fa05a13d3a7cf1869a318d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#72-95","gmt_create":"2026-04-23T09:39:39.4724097+04:00","gmt_modified":"2026-04-23T09:39:39.4724097+04:00"},{"id":31215,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"ae1ad3620183690f60eeda5a30543601","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#42-106","gmt_create":"2026-04-23T09:39:39.4724097+04:00","gmt_modified":"2026-04-23T09:39:39.4724097+04:00"},{"id":31216,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"5f576e16df1d59d294a1af2f2658b7ba","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#190-304","gmt_create":"2026-04-23T09:39:39.4729143+04:00","gmt_modified":"2026-04-23T09:39:39.4729143+04:00"},{"id":31217,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"31c07b5a29db4c1cbb24f79829d347aa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#104-134","gmt_create":"2026-04-23T09:39:39.4729143+04:00","gmt_modified":"2026-04-23T09:39:39.4729143+04:00"},{"id":31218,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"9924fc699c3105d1f92a1d1add05b6bc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#593-601","gmt_create":"2026-04-23T09:39:39.4729143+04:00","gmt_modified":"2026-04-23T09:39:39.4729143+04:00"},{"id":31219,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"9924fc699c3105d1f92a1d1add05b6bc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 593-601","gmt_create":"2026-04-23T09:39:39.4729143+04:00","gmt_modified":"2026-04-23T09:39:39.4729143+04:00"},{"id":31220,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8d21063080bca8794d81c136ded83883","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5240-5274","gmt_create":"2026-04-23T09:39:39.4739204+04:00","gmt_modified":"2026-04-23T09:39:39.4739204+04:00"},{"id":31221,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"8d21063080bca8794d81c136ded83883","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5240-5274","gmt_create":"2026-04-23T09:39:39.4739204+04:00","gmt_modified":"2026-04-23T09:39:39.4739204+04:00"},{"id":31222,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"d63a843046b69fbb600d08397a3d24b2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#689-697","gmt_create":"2026-04-23T09:39:39.4739204+04:00","gmt_modified":"2026-04-23T09:39:39.4739204+04:00"},{"id":31223,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"d63a843046b69fbb600d08397a3d24b2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 689-697","gmt_create":"2026-04-23T09:39:39.4739204+04:00","gmt_modified":"2026-04-23T09:39:39.4739204+04:00"},{"id":31224,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"60563e45be74bbac873efa1574b0b44b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#3039-3045","gmt_create":"2026-04-23T09:39:39.4739204+04:00","gmt_modified":"2026-04-23T09:39:39.4739204+04:00"},{"id":31225,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"60563e45be74bbac873efa1574b0b44b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3039-3045","gmt_create":"2026-04-23T09:39:39.4739204+04:00","gmt_modified":"2026-04-23T09:39:39.4739204+04:00"},{"id":31226,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"3654987deb8e6274eefab9ca908412c0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1215-1246","gmt_create":"2026-04-23T09:39:39.4749198+04:00","gmt_modified":"2026-04-23T09:39:39.4749198+04:00"},{"id":31227,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"017fafdbdc8bb6416146dfb712f04d60","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#34-46","gmt_create":"2026-04-23T09:39:39.4749198+04:00","gmt_modified":"2026-04-23T09:39:39.4749198+04:00"},{"id":31228,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"7a699ba65a3b0ef1eb697c14a0dbead6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/exceptions.hpp#33-45","gmt_create":"2026-04-23T09:39:39.4749198+04:00","gmt_modified":"2026-04-23T09:39:39.4749198+04:00"},{"id":31229,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"52af1c2eebb2a6ca81e46aa9efc36007","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#1-383","gmt_create":"2026-04-23T09:39:39.4749198+04:00","gmt_modified":"2026-04-23T09:39:39.4749198+04:00"},{"id":31230,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"31a472d3c3593f1079fe3844dbf8e5ea","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#1-85","gmt_create":"2026-04-23T09:39:39.4761368+04:00","gmt_modified":"2026-04-23T09:39:39.4761368+04:00"},{"id":31231,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"e37ad396926e491f9e2cb7e97ebb983b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#1-99","gmt_create":"2026-04-23T09:39:39.4761368+04:00","gmt_modified":"2026-04-23T09:39:39.4761368+04:00"},{"id":31232,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"41c428afa5cdf049e5722a8af0a07120","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#1-573","gmt_create":"2026-04-23T09:39:39.4766405+04:00","gmt_modified":"2026-04-23T09:39:39.4766405+04:00"},{"id":31233,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"ca47b4e2578878f62204de1202dfcee9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#1-355","gmt_create":"2026-04-23T09:39:39.4766405+04:00","gmt_modified":"2026-04-23T09:39:39.4766405+04:00"},{"id":31234,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"65f079a0a8c1ddc294e55e30a905620b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#1-141","gmt_create":"2026-04-23T09:39:39.4771576+04:00","gmt_modified":"2026-04-23T09:39:39.4771576+04:00"},{"id":31235,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"f64ddae8befa97072e025e25b465e7b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#1-114","gmt_create":"2026-04-23T09:39:39.4771576+04:00","gmt_modified":"2026-04-23T09:39:39.4771576+04:00"},{"id":31236,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"ae7c55f38aae0b3478e12cbcf2b51454","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1-6389","gmt_create":"2026-04-23T09:39:39.4776688+04:00","gmt_modified":"2026-04-23T09:39:39.4776688+04:00"},{"id":31237,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"654515d81715576dcb9f859a9aada0e9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#1-271","gmt_create":"2026-04-23T09:39:39.4781886+04:00","gmt_modified":"2026-04-23T09:39:39.4781886+04:00"},{"id":31238,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"48a79d6fc809620cef020aebdc89228c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/exceptions.hpp#1-49","gmt_create":"2026-04-23T09:39:39.4781886+04:00","gmt_modified":"2026-04-23T09:39:39.4781886+04:00"},{"id":31239,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"5e80305e7a0dd4e813302d520287970c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#68-162","gmt_create":"2026-04-23T09:39:39.4792207+04:00","gmt_modified":"2026-04-23T09:39:39.4792207+04:00"},{"id":31240,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"a29acb8824d619aed98f1d17496cc735","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#128-140","gmt_create":"2026-04-23T09:39:39.4792207+04:00","gmt_modified":"2026-04-23T09:39:39.4792207+04:00"},{"id":31241,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"55b70b2d7f669af727f94be4a67ab19f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#49-72","gmt_create":"2026-04-23T09:39:39.479728+04:00","gmt_modified":"2026-04-23T09:39:39.479728+04:00"},{"id":31242,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"cd7fa56036ec7bfc753fb109e2481434","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#233-306","gmt_create":"2026-04-23T09:39:39.4802463+04:00","gmt_modified":"2026-04-23T09:39:39.4802463+04:00"},{"id":31243,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"4398c3ae2cfabc0607c0ef43245e9ed0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#424-799","gmt_create":"2026-04-23T09:39:39.4802463+04:00","gmt_modified":"2026-04-23T09:39:39.4802463+04:00"},{"id":31244,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"e485b1e17d34c5b6a8a52a62ed1e66f1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_database.cpp#100-174","gmt_create":"2026-04-23T09:39:39.4802463+04:00","gmt_modified":"2026-04-23T09:39:39.4802463+04:00"},{"id":31245,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"4b8c8943a4768ebf03f79c2d2c3e4cb8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database_exceptions.hpp#86-86","gmt_create":"2026-04-23T09:39:39.4817905+04:00","gmt_modified":"2026-04-23T09:39:39.4817905+04:00"},{"id":31246,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"5361decb4da66a8be18f3e2460c4744a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#208-242","gmt_create":"2026-04-23T09:39:39.4823132+04:00","gmt_modified":"2026-04-23T09:39:39.4823132+04:00"},{"id":31247,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"c25323732949b90908639a501eb595d3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#135-140","gmt_create":"2026-04-23T09:39:39.4823132+04:00","gmt_modified":"2026-04-23T09:39:39.4823132+04:00"},{"id":31248,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"83977126829486b69fd3680d1a18d5b8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#69-72","gmt_create":"2026-04-23T09:39:39.4823132+04:00","gmt_modified":"2026-04-23T09:39:39.4823132+04:00"},{"id":31249,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"cd558ad15f0e6727fba1add71cac3e6f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#233-272","gmt_create":"2026-04-23T09:39:39.4823132+04:00","gmt_modified":"2026-04-23T09:39:39.4823132+04:00"},{"id":31250,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"17725c0e4268344a57e37a4181003dcd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#662-718","gmt_create":"2026-04-23T09:39:39.4831665+04:00","gmt_modified":"2026-04-23T09:39:39.4831665+04:00"},{"id":31251,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"19888e3e680c4c22af512bc7fece3cb4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#41-66","gmt_create":"2026-04-23T09:39:39.4836895+04:00","gmt_modified":"2026-04-23T09:39:39.4836895+04:00"},{"id":31252,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"f7cab905bd76aaebc62185660e82dae8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#244-338","gmt_create":"2026-04-23T09:39:39.4842099+04:00","gmt_modified":"2026-04-23T09:39:39.4842099+04:00"},{"id":31253,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"3c8030f286489dad4c619d038a966638","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#240-278","gmt_create":"2026-04-23T09:39:39.4842099+04:00","gmt_modified":"2026-04-23T09:39:39.4842099+04:00"},{"id":31254,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"73ca44009706d11b1210c93a5ded6f30","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#237-283","gmt_create":"2026-04-23T09:39:39.4847252+04:00","gmt_modified":"2026-04-23T09:39:39.4847252+04:00"},{"id":31255,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"66a467bd88b7277e2c4bb4cb7312f48f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#148-235","gmt_create":"2026-04-23T09:39:39.4847252+04:00","gmt_modified":"2026-04-23T09:39:39.4847252+04:00"},{"id":31256,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"a2d760acb3b4737ac29dd99261de2de6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#132-177","gmt_create":"2026-04-23T09:39:39.485761+04:00","gmt_modified":"2026-04-23T09:39:39.485761+04:00"},{"id":31257,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"bf188abd0edd7c343537c5327855ecbe","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#82-106","gmt_create":"2026-04-23T09:39:39.4878578+04:00","gmt_modified":"2026-04-23T09:39:39.4878578+04:00"},{"id":31258,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"fc0674b52c4710c99699f8d656856fd3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#356-369","gmt_create":"2026-04-23T09:39:39.4878578+04:00","gmt_modified":"2026-04-23T09:39:39.4878578+04:00"},{"id":31259,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"d4955755779cc40ec116df2dc5af08d4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#718-740","gmt_create":"2026-04-23T09:39:39.4883728+04:00","gmt_modified":"2026-04-23T09:39:39.4883728+04:00"},{"id":31260,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"f7a932b6ffbae4962c88c344b881fab7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5272-5274","gmt_create":"2026-04-23T09:39:39.4883728+04:00","gmt_modified":"2026-04-23T09:39:39.4883728+04:00"},{"id":31261,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"f7a932b6ffbae4962c88c344b881fab7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5272-5274","gmt_create":"2026-04-23T09:39:39.4888906+04:00","gmt_modified":"2026-04-23T09:39:39.4888906+04:00"},{"id":31262,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"4e5740097a51781620c6fa978577b87b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#169-242","gmt_create":"2026-04-23T09:39:39.4888906+04:00","gmt_modified":"2026-04-23T09:39:39.4888906+04:00"},{"id":31263,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"599a70fa63a5743f5c1137d5797ef215","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#310-338","gmt_create":"2026-04-23T09:39:39.4899317+04:00","gmt_modified":"2026-04-23T09:39:39.4899317+04:00"},{"id":31264,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"af26a48b00e9adab94afc7842437fe4a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#255-308","gmt_create":"2026-04-23T09:39:39.4904627+04:00","gmt_modified":"2026-04-23T09:39:39.4904627+04:00"},{"id":31265,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"c65e54c2253e6aa01f651ce5d20e30fe","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#58-58","gmt_create":"2026-04-23T09:39:39.4904627+04:00","gmt_modified":"2026-04-23T09:39:39.4904627+04:00"},{"id":31266,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"db6b74db4fa6d71a4f6cda8314e0a9c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#175-279","gmt_create":"2026-04-23T09:39:39.4909819+04:00","gmt_modified":"2026-04-23T09:39:39.4909819+04:00"},{"id":31267,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"b10f496bac85711da4cffcd4b18cd456","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#428-480","gmt_create":"2026-04-23T09:39:39.4909819+04:00","gmt_modified":"2026-04-23T09:39:39.4909819+04:00"},{"id":31268,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"abb7010b1a4127c6eb74e70b8b8c1c8a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#47-71","gmt_create":"2026-04-23T09:39:39.4909819+04:00","gmt_modified":"2026-04-23T09:39:39.4909819+04:00"},{"id":31269,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"afac2a42df17577ba720e7f9a78558b0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#518-526","gmt_create":"2026-04-23T09:39:39.4909819+04:00","gmt_modified":"2026-04-23T09:39:39.4909819+04:00"},{"id":31270,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"a286ff3cf9e0c77d710f0468ff80ab71","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5265-5274","gmt_create":"2026-04-23T09:39:39.4925906+04:00","gmt_modified":"2026-04-23T09:39:39.4925906+04:00"},{"id":31271,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"a286ff3cf9e0c77d710f0468ff80ab71","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5265-5274","gmt_create":"2026-04-23T09:39:39.4925906+04:00","gmt_modified":"2026-04-23T09:39:39.4925906+04:00"},{"id":31272,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8c6950a2fa040ec2bdb48c5c535e6290","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3598-3626","gmt_create":"2026-04-23T09:39:39.4934934+04:00","gmt_modified":"2026-04-23T09:39:39.4934934+04:00"},{"id":31273,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"9e28d240675906ef2e41016843e7e078","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#172-182","gmt_create":"2026-04-23T09:39:39.4934934+04:00","gmt_modified":"2026-04-23T09:39:39.4934934+04:00"},{"id":31274,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"13386e3e76ae725d30c4b4dca682ae19","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#599-600","gmt_create":"2026-04-23T09:39:39.4934934+04:00","gmt_modified":"2026-04-23T09:39:39.4934934+04:00"},{"id":31275,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"13386e3e76ae725d30c4b4dca682ae19","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 599-600","gmt_create":"2026-04-23T09:39:39.4934934+04:00","gmt_modified":"2026-04-23T09:39:39.4934934+04:00"},{"id":31276,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8c7fe145e6668a0589833613de05ef8e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#96-101","gmt_create":"2026-04-23T09:39:39.4964928+04:00","gmt_modified":"2026-04-23T09:39:39.4964928+04:00"},{"id":31277,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"8c7fe145e6668a0589833613de05ef8e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 96-101","gmt_create":"2026-04-23T09:39:39.4964928+04:00","gmt_modified":"2026-04-23T09:39:39.4964928+04:00"},{"id":31278,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"e462a61bcb0546ac7e51d4d77b5e78d7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#560-665","gmt_create":"2026-04-23T09:39:39.4964928+04:00","gmt_modified":"2026-04-23T09:39:39.4964928+04:00"},{"id":31279,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"e8266f9aae45a25637eeae664143da3a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#170-181","gmt_create":"2026-04-23T09:39:39.4964928+04:00","gmt_modified":"2026-04-23T09:39:39.4964928+04:00"},{"id":31280,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"10527b3f085bc23cb5a2ced3d43e605e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3616-3622","gmt_create":"2026-04-23T09:39:39.4964928+04:00","gmt_modified":"2026-04-23T09:39:39.4964928+04:00"},{"id":31281,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"b8131417d535236b70881242c8493825","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#340-354","gmt_create":"2026-04-23T09:39:39.4981079+04:00","gmt_modified":"2026-04-23T09:39:39.4981079+04:00"},{"id":31282,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"d8b3e996bfeacf634c11f3ef9c14b517","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#371-399","gmt_create":"2026-04-23T09:39:39.4981079+04:00","gmt_modified":"2026-04-23T09:39:39.4981079+04:00"},{"id":31283,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"924b5999e72f1f50661885d27aa679bf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#26-45","gmt_create":"2026-04-23T09:39:39.5009988+04:00","gmt_modified":"2026-04-23T09:39:39.5009988+04:00"},{"id":31284,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"9061b648f5c7a6fa04e5cdad74ea8e0c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#26-28","gmt_create":"2026-04-23T09:39:39.5019992+04:00","gmt_modified":"2026-04-23T09:39:39.5019992+04:00"},{"id":31285,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"d047c2a99e186afd4cbe5d3b58a081ce","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#26-28","gmt_create":"2026-04-23T09:39:39.5019992+04:00","gmt_modified":"2026-04-23T09:39:39.5019992+04:00"},{"id":31286,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"cd3f7620124771b158733177b69ca004","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#26-35","gmt_create":"2026-04-23T09:39:39.5019992+04:00","gmt_modified":"2026-04-23T09:39:39.5019992+04:00"},{"id":31287,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"641e478753e03d4995662e0f71726f6e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#26-31","gmt_create":"2026-04-23T09:39:39.5019992+04:00","gmt_modified":"2026-04-23T09:39:39.5019992+04:00"},{"id":31288,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"0f02b5feb29747f31bd81ec24757a03c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#26-35","gmt_create":"2026-04-23T09:39:39.5029989+04:00","gmt_modified":"2026-04-23T09:39:39.5029989+04:00"},{"id":31289,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"2bd5a533bf647831fd92ff4a1e0cbb9a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#26-31","gmt_create":"2026-04-23T09:39:39.5029989+04:00","gmt_modified":"2026-04-23T09:39:39.5029989+04:00"},{"id":31290,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"563df4f6b989068ffaf64cd348c73303","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#285-306","gmt_create":"2026-04-23T09:39:39.5039987+04:00","gmt_modified":"2026-04-23T09:39:39.5039987+04:00"},{"id":31291,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"1627c08f8d77e6bd16ff55f3c31a7214","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#48-50","gmt_create":"2026-04-23T09:39:39.5039987+04:00","gmt_modified":"2026-04-23T09:39:39.5039987+04:00"},{"id":31292,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"97c58147fee277e29c7fcfd2e1fad3d7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#314-325","gmt_create":"2026-04-23T09:39:39.5049987+04:00","gmt_modified":"2026-04-23T09:39:39.5049987+04:00"},{"id":31293,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"912dd19fed244fc2d5d8717d9d71351d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3448-3470","gmt_create":"2026-04-23T09:39:39.5049987+04:00","gmt_modified":"2026-04-23T09:39:39.5049987+04:00"},{"id":31294,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"8ca4e34ad148a456f53073ddc65d0d0b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#26-106","gmt_create":"2026-04-23T09:39:39.5059989+04:00","gmt_modified":"2026-04-23T09:39:39.5059989+04:00"},{"id":31295,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"2dccc9888fbe3d606e3c653137d8edbc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1239-1241","gmt_create":"2026-04-23T09:39:39.5059989+04:00","gmt_modified":"2026-04-23T09:39:39.5059989+04:00"},{"id":31296,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"a5a691e7d10617d28a320dc54d620ac0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#79-81","gmt_create":"2026-04-23T09:39:39.5069987+04:00","gmt_modified":"2026-04-23T09:39:39.5069987+04:00"},{"id":31297,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"131eb608030b3a04b016429fdb3d416a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3278-3281","gmt_create":"2026-04-23T09:39:39.5069987+04:00","gmt_modified":"2026-04-23T09:39:39.5069987+04:00"},{"id":31298,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"5244d6587cbf807d34a2848110b1b8ff","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3633-3636","gmt_create":"2026-04-23T09:39:39.5069987+04:00","gmt_modified":"2026-04-23T09:39:39.5069987+04:00"},{"id":31299,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"c8da7c90dc7ff2af502eb264eb4da4f8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3653-3656","gmt_create":"2026-04-23T09:39:39.5069987+04:00","gmt_modified":"2026-04-23T09:39:39.5069987+04:00"},{"id":31300,"source_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","target_id":"f2b6431fb26cd401e272c27017c72bf3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3671-3674","gmt_create":"2026-04-23T09:39:39.5069987+04:00","gmt_modified":"2026-04-23T09:39:39.5069987+04:00"},{"id":31325,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"16a19aa5bcebe9921d90618856c818f2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-561","gmt_create":"2026-04-23T09:40:28.0285681+04:00","gmt_modified":"2026-04-23T09:40:28.0285681+04:00"},{"id":31327,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"beb7270033f72ea030a658ed50661db0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 206-456","gmt_create":"2026-04-23T09:40:28.0291509+04:00","gmt_modified":"2026-04-23T09:40:28.0291509+04:00"},{"id":31329,"source_id":"1e6f9e0c4241a3a53748ca848749cd9c","target_id":"3b2b487096be43e59f5232729909dca6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 53-125","gmt_create":"2026-04-23T09:40:28.0296537+04:00","gmt_modified":"2026-04-23T09:40:28.0296537+04:00"},{"id":31331,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"8f12f59f3a806a27f415ac33df1ff302","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-245","gmt_create":"2026-04-23T09:40:28.0296537+04:00","gmt_modified":"2026-04-23T09:40:28.0296537+04:00"},{"id":31333,"source_id":"a636cebf0fd48c268641a5544c551752","target_id":"1a28848df3aef58b055a3cbae076ffb5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-04-23T09:40:28.0296537+04:00","gmt_modified":"2026-04-23T09:40:28.0296537+04:00"},{"id":31335,"source_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","target_id":"50e79df334a3bb7b66eda6917902a0d5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 230-302","gmt_create":"2026-04-23T09:40:28.030657+04:00","gmt_modified":"2026-04-23T09:40:28.030657+04:00"},{"id":31337,"source_id":"d136a3c86c240fca63a64546b4891416","target_id":"f95834333ba4c5190b2391b54acf946f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-75","gmt_create":"2026-04-23T09:40:28.030657+04:00","gmt_modified":"2026-04-23T09:40:28.030657+04:00"},{"id":31339,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"a29442fd9e1534478ed2c7ff68c012e3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 161-382","gmt_create":"2026-04-23T09:40:28.032751+04:00","gmt_modified":"2026-04-23T09:40:28.032751+04:00"},{"id":31341,"source_id":"de06c0b429208d005ec4e2b38a7b6678","target_id":"87d3f7f5e4b3b275a1f5c62a722a0c7b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 44-146","gmt_create":"2026-04-23T09:40:28.032751+04:00","gmt_modified":"2026-04-23T09:40:28.032751+04:00"},{"id":31343,"source_id":"d1302454310309381c9368910649870f","target_id":"027e3be7967b0260b348fb2f05d14abd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-226","gmt_create":"2026-04-23T09:40:28.0333912+04:00","gmt_modified":"2026-04-23T09:40:28.0333912+04:00"},{"id":31345,"source_id":"58dab1fa0c82c6d488c1c385549bf65f","target_id":"9532c9bc52ca2d2988bed522e150643c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-143","gmt_create":"2026-04-23T09:40:28.0333912+04:00","gmt_modified":"2026-04-23T09:40:28.0333912+04:00"},{"id":31347,"source_id":"f2e0ab4a21a05fb2b13f0fa0f497f4ae","target_id":"fe18bd4856c81bb8a8a870b01bcb9097","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-132","gmt_create":"2026-04-23T09:40:28.0338944+04:00","gmt_modified":"2026-04-23T09:40:28.0338944+04:00"},{"id":31349,"source_id":"705e8221610923620972eca797fa6db6","target_id":"1e6ec0f9484d9bd2c1919f9c52c43a1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-47","gmt_create":"2026-04-23T09:40:28.0338944+04:00","gmt_modified":"2026-04-23T09:40:28.0338944+04:00"},{"id":31351,"source_id":"6448b32a9d85a70c1c5dece30706f077","target_id":"66c076e1ffb51e2df0f99d765a976edf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-56","gmt_create":"2026-04-23T09:40:28.0344058+04:00","gmt_modified":"2026-04-23T09:40:28.0344058+04:00"},{"id":31353,"source_id":"c70e20aa89698498e7c8e639e9dda898","target_id":"50f895a6649a0d8198a41a111d1d585a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-45","gmt_create":"2026-04-23T09:40:28.0344058+04:00","gmt_modified":"2026-04-23T09:40:28.0344058+04:00"},{"id":31355,"source_id":"c7f289a817d1cf2f2edb643d7c388364","target_id":"fc3df8af7443986c214f3999cd7ce457","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-79","gmt_create":"2026-04-23T09:40:28.0349163+04:00","gmt_modified":"2026-04-23T09:40:28.0349163+04:00"},{"id":31357,"source_id":"f46b9fad5bc65772c0ace22913bdad84","target_id":"67fbfc5e36027ec77b25d6c86003a38f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-26","gmt_create":"2026-04-23T09:40:28.0349163+04:00","gmt_modified":"2026-04-23T09:40:28.0349163+04:00"},{"id":31359,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"462e2bcbab867587a9b198b4f6fb8299","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 360-432","gmt_create":"2026-04-23T09:40:28.0354253+04:00","gmt_modified":"2026-04-23T09:40:28.0354253+04:00"},{"id":31361,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"ef245c2d66c3fb194a0aa1c9dd0f9df4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 980-1200","gmt_create":"2026-04-23T09:40:28.0354253+04:00","gmt_modified":"2026-04-23T09:40:28.0354253+04:00"},{"id":31363,"source_id":"2a488975038d8060fc2bec6672254f8e","target_id":"6eecf475e7edebd6f7012094ec32f048","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 132-154","gmt_create":"2026-04-23T09:40:28.0359355+04:00","gmt_modified":"2026-04-23T09:40:28.0359355+04:00"},{"id":31365,"source_id":"988bb985afa7b7add75e4415b239b6a6","target_id":"e57df16c7fa45b4bb9cbc87c046ef61f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 234-253","gmt_create":"2026-04-23T09:40:28.0364444+04:00","gmt_modified":"2026-04-23T09:40:28.0364444+04:00"},{"id":31367,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"4d11d9a124ba78c619ab8972eb02200d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 56-110","gmt_create":"2026-04-23T09:40:28.036961+04:00","gmt_modified":"2026-04-23T09:40:28.036961+04:00"},{"id":31369,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"a8155a4afab33387a822f670e6673f99","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 206-350","gmt_create":"2026-04-23T09:40:28.036961+04:00","gmt_modified":"2026-04-23T09:40:28.036961+04:00"},{"id":31371,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"3424ea448861e3b0a7e659d0fa397328","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 800-925","gmt_create":"2026-04-23T09:40:28.0374702+04:00","gmt_modified":"2026-04-23T09:40:28.0374702+04:00"},{"id":31373,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"304c7132f9cc0ceeaedaf20752d64d3e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-90","gmt_create":"2026-04-23T09:40:28.0374702+04:00","gmt_modified":"2026-04-23T09:40:28.0374702+04:00"},{"id":31375,"source_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","target_id":"2440453ed344e775de034d6fceab96fa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 253-257","gmt_create":"2026-04-23T09:40:28.037983+04:00","gmt_modified":"2026-04-23T09:40:28.037983+04:00"},{"id":31377,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"506b638fbd5c12dacae95b6b6d5e81d3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 211-230","gmt_create":"2026-04-23T09:40:28.0384939+04:00","gmt_modified":"2026-04-23T09:40:28.0384939+04:00"},{"id":31379,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"7d502c275227ff6a0dad8a6b2cbb0ea2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 168-210","gmt_create":"2026-04-23T09:40:28.0384939+04:00","gmt_modified":"2026-04-23T09:40:28.0384939+04:00"},{"id":31381,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"066f963089585bde1998d3a7cf600f90","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 111-558","gmt_create":"2026-04-23T09:40:28.0390067+04:00","gmt_modified":"2026-04-23T09:40:28.0390067+04:00"},{"id":31383,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"099a7ddd20bd6626a898e0cf7ddbcf93","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 47-90","gmt_create":"2026-04-23T09:40:28.04001+04:00","gmt_modified":"2026-04-23T09:40:28.04001+04:00"},{"id":31385,"source_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","target_id":"7caa4d3b24ca280339e15eea6b2ea386","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 134-194","gmt_create":"2026-04-23T09:40:28.04001+04:00","gmt_modified":"2026-04-23T09:40:28.04001+04:00"},{"id":31387,"source_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","target_id":"0d6c107155ed183ee5ba1d947aa60b6f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 195-227","gmt_create":"2026-04-23T09:40:28.04001+04:00","gmt_modified":"2026-04-23T09:40:28.04001+04:00"},{"id":31389,"source_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","target_id":"07077c35993e2bcc1e6ad243210658c5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 270-285","gmt_create":"2026-04-23T09:40:28.04001+04:00","gmt_modified":"2026-04-23T09:40:28.04001+04:00"},{"id":31391,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"85aba7789e2ca1fe6fcb650fb9a272e5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 161-230","gmt_create":"2026-04-23T09:40:28.0415287+04:00","gmt_modified":"2026-04-23T09:40:28.0415287+04:00"},{"id":31393,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"9071f8d009e4bdc3aabd93156adf0ae5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 356-411","gmt_create":"2026-04-23T09:40:28.0415287+04:00","gmt_modified":"2026-04-23T09:40:28.0415287+04:00"},{"id":31395,"source_id":"d1302454310309381c9368910649870f","target_id":"4a3b4526826da2c57a82aebb48c143a1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-141","gmt_create":"2026-04-23T09:40:28.0425326+04:00","gmt_modified":"2026-04-23T09:40:28.0425326+04:00"},{"id":31397,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"202fe515b0495ce4d9e3461872b5a7a5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 252-286","gmt_create":"2026-04-23T09:40:28.0435324+04:00","gmt_modified":"2026-04-23T09:40:28.0435324+04:00"},{"id":31401,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"0f8940d10bd3fa25101b8055831b577b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 434-491","gmt_create":"2026-04-23T09:40:28.0530711+04:00","gmt_modified":"2026-04-23T09:40:28.0530711+04:00"},{"id":31404,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"1512721e67f0287c71ea498a2bbd1d29","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1000-1200","gmt_create":"2026-04-23T09:40:28.054071+04:00","gmt_modified":"2026-04-23T09:40:28.054071+04:00"},{"id":31406,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"ba755b39604252e4cb43e1706e777543","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 57-64","gmt_create":"2026-04-23T09:40:28.054071+04:00","gmt_modified":"2026-04-23T09:40:28.054071+04:00"},{"id":31408,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"7d02365c3f2f3efaf9155d970698aec7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3985-4051","gmt_create":"2026-04-23T09:40:28.054071+04:00","gmt_modified":"2026-04-23T09:40:28.054071+04:00"},{"id":31410,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"c77aaa56525d9c318664af3ff4ce6135","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 391-417","gmt_create":"2026-04-23T09:40:28.054071+04:00","gmt_modified":"2026-04-23T09:40:28.054071+04:00"},{"id":31412,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"615af9a2f6b8b4df327446e4e8bcc1ae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1014-1032","gmt_create":"2026-04-23T09:40:28.0550709+04:00","gmt_modified":"2026-04-23T09:40:28.0550709+04:00"},{"id":31414,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"a3a37e841fb1ecbb2442040ac90e3198","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 100-113","gmt_create":"2026-04-23T09:40:28.0550709+04:00","gmt_modified":"2026-04-23T09:40:28.0550709+04:00"},{"id":31416,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"d3151694a1313762475ee616a2a3cfe0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 58-113","gmt_create":"2026-04-23T09:40:28.0550709+04:00","gmt_modified":"2026-04-23T09:40:28.0550709+04:00"},{"id":31418,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"821eb1ee66481f4569602f236fd2444b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1018-1032","gmt_create":"2026-04-23T09:40:28.056071+04:00","gmt_modified":"2026-04-23T09:40:28.056071+04:00"},{"id":31420,"source_id":"571d673b1b49568d584e159036820875","target_id":"32d5e27edefa46b873fef98c512612b4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 286","gmt_create":"2026-04-23T09:40:28.056071+04:00","gmt_modified":"2026-04-23T09:40:28.056071+04:00"},{"id":31422,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"43d8be46f85d6fc08ba611213afd35db","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3446-3456","gmt_create":"2026-04-23T09:40:28.056071+04:00","gmt_modified":"2026-04-23T09:40:28.056071+04:00"},{"id":31424,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"f9e256558b0a310a3aebb8b9ebb0a744","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1770-1771","gmt_create":"2026-04-23T09:40:28.056071+04:00","gmt_modified":"2026-04-23T09:40:28.056071+04:00"},{"id":31426,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"93dcb94717b1b034e4d9565c437aad1b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2428-2444","gmt_create":"2026-04-23T09:40:28.0570707+04:00","gmt_modified":"2026-04-23T09:40:28.0570707+04:00"},{"id":31428,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"af05147b54f6ad328cd4b288e3985511","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3276-3280","gmt_create":"2026-04-23T09:40:28.0570707+04:00","gmt_modified":"2026-04-23T09:40:28.0570707+04:00"},{"id":31430,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"22e052dd8ab0fdf27afc32b483a37ff7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5295-5303","gmt_create":"2026-04-23T09:40:28.0570707+04:00","gmt_modified":"2026-04-23T09:40:28.0570707+04:00"},{"id":31432,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"a655f35ca12d3877c0294e186b5a5f5d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-561","gmt_create":"2026-04-23T09:40:28.0570707+04:00","gmt_modified":"2026-04-23T09:40:28.0570707+04:00"},{"id":31434,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"0fd95d3fb8e19f476ee368c9acadc148","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-04-23T09:40:28.0580719+04:00","gmt_modified":"2026-04-23T09:40:28.0580719+04:00"},{"id":31436,"source_id":"1e6f9e0c4241a3a53748ca848749cd9c","target_id":"33b697d7ffcdd3aa1d3e2c8f8e5fca15","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-125","gmt_create":"2026-04-23T09:40:28.0580719+04:00","gmt_modified":"2026-04-23T09:40:28.0580719+04:00"},{"id":31438,"source_id":"d136a3c86c240fca63a64546b4891416","target_id":"3736c5a5a1ddf339e5556de0656bfcdf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-75","gmt_create":"2026-04-23T09:40:28.0580719+04:00","gmt_modified":"2026-04-23T09:40:28.0580719+04:00"},{"id":31440,"source_id":"de06c0b429208d005ec4e2b38a7b6678","target_id":"00eee107c9ba823018067fbd4827abdc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-246","gmt_create":"2026-04-23T09:40:28.0580719+04:00","gmt_modified":"2026-04-23T09:40:28.0580719+04:00"},{"id":31442,"source_id":"d1302454310309381c9368910649870f","target_id":"7032d2c44cd05c33be8de43f6514c7d6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-226","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31444,"source_id":"58dab1fa0c82c6d488c1c385549bf65f","target_id":"39c686d025e553f6bad7d2fec4a739ae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-565","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31446,"source_id":"f2e0ab4a21a05fb2b13f0fa0f497f4ae","target_id":"03ff87c3dad6c3f5807e0006d9b49e7b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-313","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31448,"source_id":"705e8221610923620972eca797fa6db6","target_id":"3147d19a66720276e968aa6544a4292b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-137","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31450,"source_id":"6448b32a9d85a70c1c5dece30706f077","target_id":"0bf9b2bbe6504edfbc3f8394b947929b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-56","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31452,"source_id":"c70e20aa89698498e7c8e639e9dda898","target_id":"3efe898414dcae3fffd2e9c1c0679311","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-62","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31454,"source_id":"c7f289a817d1cf2f2edb643d7c388364","target_id":"48ad93138afd2c83193d808d04cb5573","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-80","gmt_create":"2026-04-23T09:40:28.059071+04:00","gmt_modified":"2026-04-23T09:40:28.059071+04:00"},{"id":31456,"source_id":"f46b9fad5bc65772c0ace22913bdad84","target_id":"b9b4e1e0a88a6640c5e8a94801dbff57","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-27","gmt_create":"2026-04-23T09:40:28.0605744+04:00","gmt_modified":"2026-04-23T09:40:28.0605744+04:00"},{"id":31458,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"ed272eaaa4bd0adbed874f87308f6c81","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-526","gmt_create":"2026-04-23T09:40:28.0605744+04:00","gmt_modified":"2026-04-23T09:40:28.0605744+04:00"},{"id":31460,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"973b0384238fe7370822559425a96f5b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-1976","gmt_create":"2026-04-23T09:40:28.0605744+04:00","gmt_modified":"2026-04-23T09:40:28.0605744+04:00"},{"id":31462,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"3fd5da634ff647b8e47fa2d9f2b10947","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 232-248","gmt_create":"2026-04-23T09:40:28.0605744+04:00","gmt_modified":"2026-04-23T09:40:28.0605744+04:00"},{"id":31464,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"abf26b07298df44b8ad0f82418a28240","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 270-350","gmt_create":"2026-04-23T09:40:28.0615779+04:00","gmt_modified":"2026-04-23T09:40:28.0615779+04:00"},{"id":31466,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"ff2523d2df1db0e5eacb85bdae3f2688","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 368-430","gmt_create":"2026-04-23T09:40:28.0615779+04:00","gmt_modified":"2026-04-23T09:40:28.0615779+04:00"},{"id":31468,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"68b6c0503834784566bd470237e6fbbb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 832-844","gmt_create":"2026-04-23T09:40:28.0615779+04:00","gmt_modified":"2026-04-23T09:40:28.0615779+04:00"},{"id":31470,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"b15e11d3471309dbff74358ab3b597bb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 371-380","gmt_create":"2026-04-23T09:40:28.0615779+04:00","gmt_modified":"2026-04-23T09:40:28.0615779+04:00"},{"id":31472,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"532edf497ce380a6eff5d3fe76792a3c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1018-1020","gmt_create":"2026-04-23T09:40:28.0625776+04:00","gmt_modified":"2026-04-23T09:40:28.0625776+04:00"},{"id":31474,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"57dca27aac4631b2a09561ab190bd578","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 936-970","gmt_create":"2026-04-23T09:40:28.0625776+04:00","gmt_modified":"2026-04-23T09:40:28.0625776+04:00"},{"id":31476,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"98a4db8754b7f187508af46bdd8019c2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 136-169","gmt_create":"2026-04-23T09:40:28.0635789+04:00","gmt_modified":"2026-04-23T09:40:28.0635789+04:00"},{"id":31478,"source_id":"4ec5dd7f21bde7651b20873b01f868c9","target_id":"4227ba2bea4520b3ea3ac8c104d6634e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 92-124","gmt_create":"2026-04-23T09:40:28.0635789+04:00","gmt_modified":"2026-04-23T09:40:28.0635789+04:00"},{"id":31480,"source_id":"9a05c42951266743e782ce0775e5bd42","target_id":"5e74ba9791165e9a27dc768aced92cb8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 62-64","gmt_create":"2026-04-23T09:40:28.0645785+04:00","gmt_modified":"2026-04-23T09:40:28.0645785+04:00"},{"id":31482,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"03795feb7ae28b007d7a6e71efd6e49b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 234-236","gmt_create":"2026-04-23T09:40:28.0645785+04:00","gmt_modified":"2026-04-23T09:40:28.0645785+04:00"},{"id":31484,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"a62449c820dada6775c37fa7b8a9450b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-53","gmt_create":"2026-04-23T09:40:28.0645785+04:00","gmt_modified":"2026-04-23T09:40:28.0645785+04:00"},{"id":31485,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"9a05c42951266743e782ce0775e5bd42","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-04-23T09:42:13.8543347+04:00","gmt_modified":"2026-04-23T09:42:13.8543347+04:00"},{"id":31486,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"5a775a89bb87e70f60760941848117e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-23T09:42:13.8543347+04:00","gmt_modified":"2026-04-23T09:42:13.8543347+04:00"},{"id":31487,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"a636cebf0fd48c268641a5544c551752","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/block_log.hpp","gmt_create":"2026-04-23T09:42:13.8543347+04:00","gmt_modified":"2026-04-23T09:42:13.8543347+04:00"},{"id":31488,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/block_log.cpp","gmt_create":"2026-04-23T09:42:13.8548528+04:00","gmt_modified":"2026-04-23T09:42:13.8548528+04:00"},{"id":31489,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"d136a3c86c240fca63a64546b4891416","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/dlt_block_log.hpp","gmt_create":"2026-04-23T09:42:13.8548528+04:00","gmt_modified":"2026-04-23T09:42:13.8548528+04:00"},{"id":31490,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"71cbf21e4bf2a2b603ad1183369ec65f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-23T09:42:13.8548528+04:00","gmt_modified":"2026-04-23T09:42:13.8548528+04:00"},{"id":31491,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"1e6f9e0c4241a3a53748ca848749cd9c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-04-23T09:42:13.8548528+04:00","gmt_modified":"2026-04-23T09:42:13.8548528+04:00"},{"id":31492,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"4ec5dd7f21bde7651b20873b01f868c9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-23T09:42:13.8548528+04:00","gmt_modified":"2026-04-23T09:42:13.8548528+04:00"},{"id":31493,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"5d124c256c0fcd736094cfbd39e807a2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database_exceptions.hpp","gmt_create":"2026-04-23T09:42:13.8553709+04:00","gmt_modified":"2026-04-23T09:42:13.8553709+04:00"},{"id":31494,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T09:42:13.8557407+04:00","gmt_modified":"2026-04-23T09:42:13.8557407+04:00"},{"id":31495,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"5cdea1b55d11dd83076d2fe00b9305f3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/db_with.hpp","gmt_create":"2026-04-23T09:42:13.8557407+04:00","gmt_modified":"2026-04-23T09:42:13.8557407+04:00"},{"id":31496,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"571d673b1b49568d584e159036820875","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-23T09:42:13.8557407+04:00","gmt_modified":"2026-04-23T09:42:13.8557407+04:00"},{"id":31497,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"f5e2709c934c90bed9814ff547a6da8e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/config.hpp","gmt_create":"2026-04-23T09:42:13.8562433+04:00","gmt_modified":"2026-04-23T09:42:13.8562433+04:00"},{"id":31498,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"38e584d2e1cd119a9140300797cecf16","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/chainbase/src/chainbase.cpp","gmt_create":"2026-04-23T09:42:13.8563176+04:00","gmt_modified":"2026-04-23T09:42:13.8563176+04:00"},{"id":31499,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"2e9e3cf1864f83b0b302ff86e7423752","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/chainbase/include/chainbase/chainbase.hpp","gmt_create":"2026-04-23T09:42:13.8563176+04:00","gmt_modified":"2026-04-23T09:42:13.8563176+04:00"},{"id":31500,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T09:42:13.8563176+04:00","gmt_modified":"2026-04-23T09:42:13.8563176+04:00"},{"id":31501,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"abf923bd059721b5a0c6f9abfff538be","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/exceptions.hpp","gmt_create":"2026-04-23T09:42:13.8568201+04:00","gmt_modified":"2026-04-23T09:42:13.8568201+04:00"},{"id":31502,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8ed00ab8494d32c90e1ebf81d2421989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T09:42:13.8568975+04:00","gmt_modified":"2026-04-23T09:42:13.8568975+04:00"},{"id":31503,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"9db09bc4b81abc778a2506dc78451a5f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#1-642","gmt_create":"2026-04-23T09:42:13.8568975+04:00","gmt_modified":"2026-04-23T09:42:13.8568975+04:00"},{"id":31504,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8114d7a38e6d9b53917762786e49ecc5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1-6424","gmt_create":"2026-04-23T09:42:13.8568975+04:00","gmt_modified":"2026-04-23T09:42:13.8568975+04:00"},{"id":31505,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"38a56d06a16ce1ef149caadef5339e6c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/block_log.hpp#1-75","gmt_create":"2026-04-23T09:42:13.8568975+04:00","gmt_modified":"2026-04-23T09:42:13.8568975+04:00"},{"id":31506,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"3bdd5ce714e20d28cf824ab11101de66","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/block_log.cpp#1-302","gmt_create":"2026-04-23T09:42:13.8578231+04:00","gmt_modified":"2026-04-23T09:42:13.8578231+04:00"},{"id":31507,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"4d593097c4ba86d8ca3e25a81f16c555","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#1-76","gmt_create":"2026-04-23T09:42:13.8578231+04:00","gmt_modified":"2026-04-23T09:42:13.8578231+04:00"},{"id":31508,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"4ed327655b6918bf25321f12456ca6fe","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#1-414","gmt_create":"2026-04-23T09:42:13.8583266+04:00","gmt_modified":"2026-04-23T09:42:13.8583266+04:00"},{"id":31509,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"d28dbbaa28da9765e4f285b5920dbcfd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#1-138","gmt_create":"2026-04-23T09:42:13.8583266+04:00","gmt_modified":"2026-04-23T09:42:13.8583266+04:00"},{"id":31510,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"654515d81715576dcb9f859a9aada0e9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#1-271","gmt_create":"2026-04-23T09:42:13.8583266+04:00","gmt_modified":"2026-04-23T09:42:13.8583266+04:00"},{"id":31511,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"209f7b117b7f7bb00470bddded3c2398","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database_exceptions.hpp#1-136","gmt_create":"2026-04-23T09:42:13.8583266+04:00","gmt_modified":"2026-04-23T09:42:13.8583266+04:00"},{"id":31512,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"00037cec4c56edf1610ced428572bb7b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/db_with.hpp#1-154","gmt_create":"2026-04-23T09:42:13.8593295+04:00","gmt_modified":"2026-04-23T09:42:13.8593295+04:00"},{"id":31513,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"7cc5b740b5c5c8e957b1ac116c71feeb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1420-1430","gmt_create":"2026-04-23T09:42:13.8594175+04:00","gmt_modified":"2026-04-23T09:42:13.8594175+04:00"},{"id":31514,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8466f547c850a3f78b548ec3dfdfdf69","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#449-467","gmt_create":"2026-04-23T09:42:13.8594175+04:00","gmt_modified":"2026-04-23T09:42:13.8594175+04:00"},{"id":31515,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"3c62831aa433234fc0f7306c1cf418d6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config.hpp#111-118","gmt_create":"2026-04-23T09:42:13.8594175+04:00","gmt_modified":"2026-04-23T09:42:13.8594175+04:00"},{"id":31516,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"bb1e3f10774a7b833f7750a99ab49904","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/src/chainbase.cpp#225-279","gmt_create":"2026-04-23T09:42:13.8594175+04:00","gmt_modified":"2026-04-23T09:42:13.8594175+04:00"},{"id":31517,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"46ade8bd6f06d3d9a2c5022fd4ec7aaf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#1200-1260","gmt_create":"2026-04-23T09:42:13.8594175+04:00","gmt_modified":"2026-04-23T09:42:13.8594175+04:00"},{"id":31518,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"dd263a594e39d8c84ce42b6efb76acd5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3185-3384","gmt_create":"2026-04-23T09:42:13.8594175+04:00","gmt_modified":"2026-04-23T09:42:13.8594175+04:00"},{"id":31519,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"aaa79e38ddfcec40e12ba298218d83a8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/exceptions.hpp#27-48","gmt_create":"2026-04-23T09:42:13.8609968+04:00","gmt_modified":"2026-04-23T09:42:13.8609968+04:00"},{"id":31520,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"944bb65381e9048751328749ccfb5732","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#181-196","gmt_create":"2026-04-23T09:42:13.8609968+04:00","gmt_modified":"2026-04-23T09:42:13.8609968+04:00"},{"id":31521,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"5079f2c8e0fd2e2d3f902aa4eeb20eff","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#61-115","gmt_create":"2026-04-23T09:42:13.8639228+04:00","gmt_modified":"2026-04-23T09:42:13.8639228+04:00"},{"id":31522,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"a3f311781ebc595d7e91829970674d05","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#281-324","gmt_create":"2026-04-23T09:42:13.8644261+04:00","gmt_modified":"2026-04-23T09:42:13.8644261+04:00"},{"id":31523,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"554e05f2069045609b95ba69f9e954bb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/block_log.hpp#38-75","gmt_create":"2026-04-23T09:42:13.8704949+04:00","gmt_modified":"2026-04-23T09:42:13.8704949+04:00"},{"id":31524,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"56047023f5259cd1b3b53cc9276548f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#35-72","gmt_create":"2026-04-23T09:42:13.8704949+04:00","gmt_modified":"2026-04-23T09:42:13.8704949+04:00"},{"id":31525,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"7d5a6b649ef8d177496d2e0b4f7d2ad2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#53-138","gmt_create":"2026-04-23T09:42:13.8704949+04:00","gmt_modified":"2026-04-23T09:42:13.8704949+04:00"},{"id":31526,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"efc19a66e9ef85b6ecd6479947124d6e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#929-984","gmt_create":"2026-04-23T09:42:13.8714948+04:00","gmt_modified":"2026-04-23T09:42:13.8714948+04:00"},{"id":31527,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"90da84eb4c2939b17a99888253d3cfda","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/db_with.hpp#33-100","gmt_create":"2026-04-23T09:42:13.8714948+04:00","gmt_modified":"2026-04-23T09:42:13.8714948+04:00"},{"id":31528,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"2239009b61286c4b8bcb051f54239d4c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#94-184","gmt_create":"2026-04-23T09:42:13.873495+04:00","gmt_modified":"2026-04-23T09:42:13.873495+04:00"},{"id":31529,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"e21f5adaef81169224a1ff756245f3b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database_exceptions.hpp#83","gmt_create":"2026-04-23T09:42:13.873495+04:00","gmt_modified":"2026-04-23T09:42:13.873495+04:00"},{"id":31530,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"f61b06482f8c2019209eb97059fbdc05","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#330-410","gmt_create":"2026-04-23T09:42:13.873495+04:00","gmt_modified":"2026-04-23T09:42:13.873495+04:00"},{"id":31531,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"5eec20a2909cd9b68584bd0a13860691","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#134-184","gmt_create":"2026-04-23T09:42:13.8744948+04:00","gmt_modified":"2026-04-23T09:42:13.8744948+04:00"},{"id":31532,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"989129dd2c2f1d2c3d7097f01a59b580","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#503-519","gmt_create":"2026-04-23T09:42:13.8744948+04:00","gmt_modified":"2026-04-23T09:42:13.8744948+04:00"},{"id":31533,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"19ede27e5e317fb0f0663e332bff8e41","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#61-68","gmt_create":"2026-04-23T09:42:13.8754948+04:00","gmt_modified":"2026-04-23T09:42:13.8754948+04:00"},{"id":31534,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"a7c9e78b9bf59b6a3989c0339f9f5991","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1424-1426","gmt_create":"2026-04-23T09:42:13.8754948+04:00","gmt_modified":"2026-04-23T09:42:13.8754948+04:00"},{"id":31535,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"93890fe947bd608f34f438e179d3571b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#704-752","gmt_create":"2026-04-23T09:42:13.8764948+04:00","gmt_modified":"2026-04-23T09:42:13.8764948+04:00"},{"id":31536,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"c4d9e3bfee733cd59a96b18715e26fb7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#3986-4039","gmt_create":"2026-04-23T09:42:13.8774949+04:00","gmt_modified":"2026-04-23T09:42:13.8774949+04:00"},{"id":31537,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"16943251fc40e2fea0bdc7df21d26d6c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4144-4175","gmt_create":"2026-04-23T09:42:13.8774949+04:00","gmt_modified":"2026-04-23T09:42:13.8774949+04:00"},{"id":31538,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"88b837eddc75e3df4a5dfb9d74a73902","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4384-4424","gmt_create":"2026-04-23T09:42:13.8774949+04:00","gmt_modified":"2026-04-23T09:42:13.8774949+04:00"},{"id":31539,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"635ae3a3b6d0c742a9aa8911ac0931a6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#70-73","gmt_create":"2026-04-23T09:42:13.8774949+04:00","gmt_modified":"2026-04-23T09:42:13.8774949+04:00"},{"id":31540,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"82c3275180f9bd52205d6daf10f0cec5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#292-292","gmt_create":"2026-04-23T09:42:13.8784947+04:00","gmt_modified":"2026-04-23T09:42:13.8784947+04:00"},{"id":31541,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"476e8657e2d378c04e3da9611464e3d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4460-4490","gmt_create":"2026-04-23T09:42:13.8784947+04:00","gmt_modified":"2026-04-23T09:42:13.8784947+04:00"},{"id":31542,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"73c75f43d010444cfbe1881aea68ac48","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#75-77","gmt_create":"2026-04-23T09:42:13.8784947+04:00","gmt_modified":"2026-04-23T09:42:13.8784947+04:00"},{"id":31543,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"777103f978c926dcb38467a4c4ef2784","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1147-1202","gmt_create":"2026-04-23T09:42:13.8784947+04:00","gmt_modified":"2026-04-23T09:42:13.8784947+04:00"},{"id":31544,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"d8d8a06f04792c8b0df2d56e01dc6a30","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#79-96","gmt_create":"2026-04-23T09:42:13.8800617+04:00","gmt_modified":"2026-04-23T09:42:13.8800617+04:00"},{"id":31545,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"a2fca797b3404d0b8784acaa98037b1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#340-350","gmt_create":"2026-04-23T09:42:13.8800617+04:00","gmt_modified":"2026-04-23T09:42:13.8800617+04:00"},{"id":31546,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8e44126f8dd872a81f8f38af9407591a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4346-4366","gmt_create":"2026-04-23T09:42:13.8810008+04:00","gmt_modified":"2026-04-23T09:42:13.8810008+04:00"},{"id":31547,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"3fe5a707dc8f738fe4cdf90e202a1c00","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#948-970","gmt_create":"2026-04-23T09:42:13.8810008+04:00","gmt_modified":"2026-04-23T09:42:13.8810008+04:00"},{"id":31548,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"17c5a479c1681b9fa8a9c5b8710b3871","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#3652-3711","gmt_create":"2026-04-23T09:42:13.8810008+04:00","gmt_modified":"2026-04-23T09:42:13.8810008+04:00"},{"id":31549,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8df33f74931e748bdb279fb2a7413adc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#639-673","gmt_create":"2026-04-23T09:42:13.8820007+04:00","gmt_modified":"2026-04-23T09:42:13.8820007+04:00"},{"id":31550,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"b24701f580d2bf25220eb3d99d592d19","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#562-605","gmt_create":"2026-04-23T09:42:13.8820007+04:00","gmt_modified":"2026-04-23T09:42:13.8820007+04:00"},{"id":31551,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"5c7525643ec954836de9eb71b2ce4822","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#412-422","gmt_create":"2026-04-23T09:42:13.8820007+04:00","gmt_modified":"2026-04-23T09:42:13.8820007+04:00"},{"id":31552,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"ae8706017fbc3b8f0e9a7419f707fe07","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#454-482","gmt_create":"2026-04-23T09:42:13.8830007+04:00","gmt_modified":"2026-04-23T09:42:13.8830007+04:00"},{"id":31553,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"29a0badf88afa6e203d71a2431de6c46","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#148-164","gmt_create":"2026-04-23T09:42:13.8830007+04:00","gmt_modified":"2026-04-23T09:42:13.8830007+04:00"},{"id":31554,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"1eb3056b5625ce57c7d16199bad4ca50","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#546-556","gmt_create":"2026-04-23T09:42:13.8840008+04:00","gmt_modified":"2026-04-23T09:42:13.8840008+04:00"},{"id":31555,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"318c7e8695c6742e40f80ad9a0082f49","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#631-632","gmt_create":"2026-04-23T09:42:13.8840008+04:00","gmt_modified":"2026-04-23T09:42:13.8840008+04:00"},{"id":31556,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"e8c218094b7d5fe11a9456033ee18e06","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1106-1145","gmt_create":"2026-04-23T09:42:13.8840008+04:00","gmt_modified":"2026-04-23T09:42:13.8840008+04:00"},{"id":31557,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"d44399d7c886bd0af53610c96af0c6d3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1460-1470","gmt_create":"2026-04-23T09:42:13.8840008+04:00","gmt_modified":"2026-04-23T09:42:13.8840008+04:00"},{"id":31558,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"017fafdbdc8bb6416146dfb712f04d60","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#34-46","gmt_create":"2026-04-23T09:42:13.8850007+04:00","gmt_modified":"2026-04-23T09:42:13.8850007+04:00"},{"id":31559,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"2d7840ca18eae0c0962912ac837b7c1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#81-88","gmt_create":"2026-04-23T09:42:13.8850007+04:00","gmt_modified":"2026-04-23T09:42:13.8850007+04:00"},{"id":31560,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"09be458eb6253d2844adf22b7dcb84ba","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1295-1377","gmt_create":"2026-04-23T09:42:13.8860008+04:00","gmt_modified":"2026-04-23T09:42:13.8860008+04:00"},{"id":31561,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"ea1944a89359ddbccd657fb47a341ead","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1216-1286","gmt_create":"2026-04-23T09:42:13.8860008+04:00","gmt_modified":"2026-04-23T09:42:13.8860008+04:00"},{"id":31562,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"caf41318a9685f0d4a55bc4793962169","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#175-192","gmt_create":"2026-04-23T09:42:13.8870007+04:00","gmt_modified":"2026-04-23T09:42:13.8870007+04:00"},{"id":31563,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"caf41318a9685f0d4a55bc4793962169","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 175-192","gmt_create":"2026-04-23T09:42:13.8870007+04:00","gmt_modified":"2026-04-23T09:42:13.8870007+04:00"},{"id":31564,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"341122c5fe576375c3baabbb0ec15efd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3192-3211","gmt_create":"2026-04-23T09:42:13.8870007+04:00","gmt_modified":"2026-04-23T09:42:13.8870007+04:00"},{"id":31565,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"341122c5fe576375c3baabbb0ec15efd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3192-3211","gmt_create":"2026-04-23T09:42:13.8870007+04:00","gmt_modified":"2026-04-23T09:42:13.8870007+04:00"},{"id":31566,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"3ffb1aa7b6196bfe3957274bb7011011","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#3444-3499","gmt_create":"2026-04-23T09:42:13.8890007+04:00","gmt_modified":"2026-04-23T09:42:13.8890007+04:00"},{"id":31567,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"43938d9f7207a68c93047be50bd9214d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#218-224","gmt_create":"2026-04-23T09:42:13.8890007+04:00","gmt_modified":"2026-04-23T09:42:13.8890007+04:00"},{"id":31568,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"19489c95f9be1c0698eb501b69b25848","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#284-307","gmt_create":"2026-04-23T09:42:13.890639+04:00","gmt_modified":"2026-04-23T09:42:13.890639+04:00"},{"id":31569,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"4dcf2a8108140e2a4f9394a44a2f7ffa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1158-1198","gmt_create":"2026-04-23T09:42:13.8911418+04:00","gmt_modified":"2026-04-23T09:42:13.8911418+04:00"},{"id":31570,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"15e142a5cb99c56ae0b43217664f73ee","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#3652-3655","gmt_create":"2026-04-23T09:42:13.8912129+04:00","gmt_modified":"2026-04-23T09:42:13.8912129+04:00"},{"id":31571,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"4f85c4df0bd388bf50a20515ab2a2c2e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#93-141","gmt_create":"2026-04-23T09:42:13.8912129+04:00","gmt_modified":"2026-04-23T09:42:13.8912129+04:00"},{"id":31572,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"ce696f64e8f5dae1824847fbd5dd7337","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#458-584","gmt_create":"2026-04-23T09:42:13.8917155+04:00","gmt_modified":"2026-04-23T09:42:13.8917155+04:00"},{"id":31573,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"6deaa37979bf1b81c17e15e58b84a2f9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4334-4463","gmt_create":"2026-04-23T09:42:13.8917155+04:00","gmt_modified":"2026-04-23T09:42:13.8917155+04:00"},{"id":31574,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"f5a835a21e81cc09d6d98cf5622e74cc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2047-2144","gmt_create":"2026-04-23T09:42:13.8927184+04:00","gmt_modified":"2026-04-23T09:42:13.8927184+04:00"},{"id":31575,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"3a840e98c5fcf50c855208adc97b9f2e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4378-4416","gmt_create":"2026-04-23T09:42:13.8927184+04:00","gmt_modified":"2026-04-23T09:42:13.8927184+04:00"},{"id":31576,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"b3a7b4a8b89b5bad3984c5e327e81b02","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2125-2142","gmt_create":"2026-04-23T09:42:13.8927184+04:00","gmt_modified":"2026-04-23T09:42:13.8927184+04:00"},{"id":31577,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"6ff6a282d68d9e062ff275589155562f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4220-4230","gmt_create":"2026-04-23T09:42:13.8937184+04:00","gmt_modified":"2026-04-23T09:42:13.8937184+04:00"},{"id":31578,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"83a8eeb5dc84001310e511c73a0ba062","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4517-4620","gmt_create":"2026-04-23T09:42:13.8937184+04:00","gmt_modified":"2026-04-23T09:42:13.8937184+04:00"},{"id":31579,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"7a58e14fb571d992c6c872fd9006c534","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#1-10","gmt_create":"2026-04-23T09:42:13.8947186+04:00","gmt_modified":"2026-04-23T09:42:13.8947186+04:00"},{"id":31580,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"2aeed6e39aa3215de09f9294df95620f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1-30","gmt_create":"2026-04-23T09:42:13.8947186+04:00","gmt_modified":"2026-04-23T09:42:13.8947186+04:00"},{"id":31581,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"b981ea0333bb902d1127f5b1e1911503","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#800-830","gmt_create":"2026-04-23T09:42:13.8967184+04:00","gmt_modified":"2026-04-23T09:42:13.8967184+04:00"},{"id":31582,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"8e13b7edb80b9f2e0685d26dea7bb043","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#270-279","gmt_create":"2026-04-23T09:42:13.8967184+04:00","gmt_modified":"2026-04-23T09:42:13.8967184+04:00"},{"id":31583,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"58f395968bb8027af7c74e913908a12d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#492-501","gmt_create":"2026-04-23T09:42:13.8967184+04:00","gmt_modified":"2026-04-23T09:42:13.8967184+04:00"},{"id":31639,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"e8fc4f78dc6c018fb182ce7216a577c7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5241-5274","gmt_create":"2026-04-23T09:45:28.276178+04:00","gmt_modified":"2026-04-23T09:45:28.276178+04:00"},{"id":31641,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"af2c19f2568561b67f019a505b8c1e2a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 284-290","gmt_create":"2026-04-23T09:45:28.2766836+04:00","gmt_modified":"2026-04-23T09:45:28.2766836+04:00"},{"id":31643,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"80a6cf4c3a34c0380cfa7e2bbce50695","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 86-88","gmt_create":"2026-04-23T09:45:28.2766836+04:00","gmt_modified":"2026-04-23T09:45:28.2766836+04:00"},{"id":31657,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"7005600676a1aac078451cab6f714a9c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: README.md","gmt_create":"2026-04-23T09:46:06.508913+04:00","gmt_modified":"2026-04-23T09:46:06.508913+04:00"},{"id":31658,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"3d04b0b0f0eb354aa6f47833f6b3b993","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/plugin.md","gmt_create":"2026-04-23T09:46:06.5095525+04:00","gmt_modified":"2026-04-23T09:46:06.5095525+04:00"},{"id":31659,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"37fb39091ee4b69fe1e682497ff46b55","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-23T09:46:06.5100555+04:00","gmt_modified":"2026-04-23T09:46:06.5100555+04:00"},{"id":31660,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"de0fafbf85e2109ebd021f91113f4c4e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/CMakeLists.txt","gmt_create":"2026-04-23T09:46:06.5100555+04:00","gmt_modified":"2026-04-23T09:46:06.5100555+04:00"},{"id":31661,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"8236bb0464725a19a16e9e7bd0d10b5a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-04-23T09:46:06.5100555+04:00","gmt_modified":"2026-04-23T09:46:06.5100555+04:00"},{"id":31662,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"fdee35c26d891fe544cc27cdb3ead3bf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","gmt_create":"2026-04-23T09:46:06.5100555+04:00","gmt_modified":"2026-04-23T09:46:06.5100555+04:00"},{"id":31663,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"4a4ce940f1e4d0377b80944b807f7236","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/database_api/include/graphene/plugins/database_api/plugin.hpp","gmt_create":"2026-04-23T09:46:06.5100555+04:00","gmt_modified":"2026-04-23T09:46:06.5100555+04:00"},{"id":31664,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"d0fb72b813916ea9f35db2f6cd39bd1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp","gmt_create":"2026-04-23T09:46:06.5110591+04:00","gmt_modified":"2026-04-23T09:46:06.5110591+04:00"},{"id":31665,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"cfd0645ffe0098ddfeb689dc6608a9e9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","gmt_create":"2026-04-23T09:46:06.5110591+04:00","gmt_modified":"2026-04-23T09:46:06.5110591+04:00"},{"id":31666,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"fb1da1d76a9c97ea5b78a1aa200c3ec1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp","gmt_create":"2026-04-23T09:46:06.5110591+04:00","gmt_modified":"2026-04-23T09:46:06.5110591+04:00"},{"id":31667,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"eda094f6c7f30e5af92cd6361249ffed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/CMakeLists.txt","gmt_create":"2026-04-23T09:46:06.5110591+04:00","gmt_modified":"2026-04-23T09:46:06.5110591+04:00"},{"id":31668,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"8ed00ab8494d32c90e1ebf81d2421989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T09:46:06.5110591+04:00","gmt_modified":"2026-04-23T09:46:06.5110591+04:00"},{"id":31669,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"84f302d721cd2a423f647f2b50183558","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp","gmt_create":"2026-04-23T09:46:06.5110591+04:00","gmt_modified":"2026-04-23T09:46:06.5110591+04:00"},{"id":31670,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"10461f81e6789cf5385cca1e62af9d4d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","gmt_create":"2026-04-23T09:46:06.512059+04:00","gmt_modified":"2026-04-23T09:46:06.512059+04:00"},{"id":31671,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"9560988721d95f90724da96e6a4ac318","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/CMakeLists.txt","gmt_create":"2026-04-23T09:46:06.5122838+04:00","gmt_modified":"2026-04-23T09:46:06.5122838+04:00"},{"id":31672,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T09:46:06.5122838+04:00","gmt_modified":"2026-04-23T09:46:06.5122838+04:00"},{"id":31673,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"ae112bbcc58229a7363c2eb7dfc2d58d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/debug_node/plugin.cpp","gmt_create":"2026-04-23T09:46:06.5122838+04:00","gmt_modified":"2026-04-23T09:46:06.5122838+04:00"},{"id":31674,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"049b280127deb064471c9f9f3eba5a5b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/operations.hpp","gmt_create":"2026-04-23T09:46:06.5127885+04:00","gmt_modified":"2026-04-23T09:46:06.5127885+04:00"},{"id":31675,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"beabef111a7a2136152008b444da9246","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/chain_evaluator.cpp","gmt_create":"2026-04-23T09:46:06.5127885+04:00","gmt_modified":"2026-04-23T09:46:06.5127885+04:00"},{"id":31676,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"5a775a89bb87e70f60760941848117e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-23T09:46:06.5127885+04:00","gmt_modified":"2026-04-23T09:46:06.5127885+04:00"},{"id":31677,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"71cbf21e4bf2a2b603ad1183369ec65f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-23T09:46:06.5127885+04:00","gmt_modified":"2026-04-23T09:46:06.5127885+04:00"},{"id":31678,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"d136a3c86c240fca63a64546b4891416","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/dlt_block_log.hpp","gmt_create":"2026-04-23T09:46:06.5143946+04:00","gmt_modified":"2026-04-23T09:46:06.5143946+04:00"},{"id":31679,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T09:46:06.5148974+04:00","gmt_modified":"2026-04-23T09:46:06.5148974+04:00"},{"id":31680,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"2c29b33616609cdb7494a96cdf0810bc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_connection.hpp","gmt_create":"2026-04-23T09:46:06.5148974+04:00","gmt_modified":"2026-04-23T09:46:06.5148974+04:00"},{"id":31681,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"e6e4173796f1dde64bec92ed8c9462c3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/core_messages.hpp","gmt_create":"2026-04-23T09:46:06.5148974+04:00","gmt_modified":"2026-04-23T09:46:06.5148974+04:00"},{"id":31682,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"64b5113e7dbca1ab08e087f095423e81","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/network/ip.hpp","gmt_create":"2026-04-23T09:46:06.5148974+04:00","gmt_modified":"2026-04-23T09:46:06.5148974+04:00"},{"id":31683,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"0181fe0bb863b7fe871e3af8ad113ddf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/network/ip.cpp","gmt_create":"2026-04-23T09:46:06.5148974+04:00","gmt_modified":"2026-04-23T09:46:06.5148974+04:00"},{"id":31684,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"95ce48240aa09e3af69ee56050284497","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: programs/util/newplugin.py","gmt_create":"2026-04-23T09:46:06.5148974+04:00","gmt_modified":"2026-04-23T09:46:06.5148974+04:00"},{"id":31685,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"16a4e2bff0288ec68e9817239c754aed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-23T09:46:06.5154161+04:00","gmt_modified":"2026-04-23T09:46:06.5154161+04:00"},{"id":31686,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"d0c48b21ac92d8d2ce3620cecd2dcc6b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp#84-118","gmt_create":"2026-04-23T09:46:06.5154161+04:00","gmt_modified":"2026-04-23T09:46:06.5154161+04:00"},{"id":31687,"source_id":"d0fb72b813916ea9f35db2f6cd39bd1e","target_id":"d0c48b21ac92d8d2ce3620cecd2dcc6b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 84-118","gmt_create":"2026-04-23T09:46:06.5154161+04:00","gmt_modified":"2026-04-23T09:46:06.5154161+04:00"},{"id":31688,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"e2a70c9ef153c8f80372be8adbf3b8ce","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/include/graphene/plugins/chain/plugin.hpp#21-96","gmt_create":"2026-04-23T09:46:06.5154161+04:00","gmt_modified":"2026-04-23T09:46:06.5154161+04:00"},{"id":31689,"source_id":"8236bb0464725a19a16e9e7bd0d10b5a","target_id":"e2a70c9ef153c8f80372be8adbf3b8ce","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 21-96","gmt_create":"2026-04-23T09:46:06.5154161+04:00","gmt_modified":"2026-04-23T09:46:06.5154161+04:00"},{"id":31690,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"fc8bf356e433ceaaeeefdfbb09cc2a19","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp#32-57","gmt_create":"2026-04-23T09:46:06.5159297+04:00","gmt_modified":"2026-04-23T09:46:06.5159297+04:00"},{"id":31691,"source_id":"fdee35c26d891fe544cc27cdb3ead3bf","target_id":"fc8bf356e433ceaaeeefdfbb09cc2a19","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 32-57","gmt_create":"2026-04-23T09:46:06.5159297+04:00","gmt_modified":"2026-04-23T09:46:06.5159297+04:00"},{"id":31692,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"cf291e1486819970446472cc11d8ddc8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/database_api/include/graphene/plugins/database_api/plugin.hpp#179-403","gmt_create":"2026-04-23T09:46:06.5159297+04:00","gmt_modified":"2026-04-23T09:46:06.5159297+04:00"},{"id":31693,"source_id":"4a4ce940f1e4d0377b80944b807f7236","target_id":"cf291e1486819970446472cc11d8ddc8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 179-403","gmt_create":"2026-04-23T09:46:06.5159297+04:00","gmt_modified":"2026-04-23T09:46:06.5159297+04:00"},{"id":31694,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"9bbb84eee1aef90348c72e75495dcaef","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/account_history/include/graphene/plugins/account_history/plugin.hpp#59-97","gmt_create":"2026-04-23T09:46:06.516443+04:00","gmt_modified":"2026-04-23T09:46:06.516443+04:00"},{"id":31695,"source_id":"cfd0645ffe0098ddfeb689dc6608a9e9","target_id":"9bbb84eee1aef90348c72e75495dcaef","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 59-97","gmt_create":"2026-04-23T09:46:06.516443+04:00","gmt_modified":"2026-04-23T09:46:06.516443+04:00"},{"id":31696,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"e6df5f4cb7c0988a61c77ddbef242064","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp#18-52","gmt_create":"2026-04-23T09:46:06.516443+04:00","gmt_modified":"2026-04-23T09:46:06.516443+04:00"},{"id":31697,"source_id":"fb1da1d76a9c97ea5b78a1aa200c3ec1","target_id":"e6df5f4cb7c0988a61c77ddbef242064","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-52","gmt_create":"2026-04-23T09:46:06.516443+04:00","gmt_modified":"2026-04-23T09:46:06.516443+04:00"},{"id":31698,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"aedc52070cb049a70230d94dbec9127d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp#14-47","gmt_create":"2026-04-23T09:46:06.516443+04:00","gmt_modified":"2026-04-23T09:46:06.516443+04:00"},{"id":31699,"source_id":"84f302d721cd2a423f647f2b50183558","target_id":"aedc52070cb049a70230d94dbec9127d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-47","gmt_create":"2026-04-23T09:46:06.5169659+04:00","gmt_modified":"2026-04-23T09:46:06.5169659+04:00"},{"id":31700,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"03671e2406d9aa4281ec8988ebd11ea3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#42-76","gmt_create":"2026-04-23T09:46:06.5169659+04:00","gmt_modified":"2026-04-23T09:46:06.5169659+04:00"},{"id":31701,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"56047023f5259cd1b3b53cc9276548f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#35-72","gmt_create":"2026-04-23T09:46:06.5169659+04:00","gmt_modified":"2026-04-23T09:46:06.5169659+04:00"},{"id":31702,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"72db60f93c1fd9e588e73681846094ac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#203-257","gmt_create":"2026-04-23T09:46:06.5169659+04:00","gmt_modified":"2026-04-23T09:46:06.5169659+04:00"},{"id":31703,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"72db60f93c1fd9e588e73681846094ac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 203-257","gmt_create":"2026-04-23T09:46:06.517489+04:00","gmt_modified":"2026-04-23T09:46:06.517489+04:00"},{"id":31704,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"bc58f817a47b66576115a959ef4e8de1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#688-697","gmt_create":"2026-04-23T09:46:06.517489+04:00","gmt_modified":"2026-04-23T09:46:06.517489+04:00"},{"id":31705,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"bc58f817a47b66576115a959ef4e8de1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 688-697","gmt_create":"2026-04-23T09:46:06.5180014+04:00","gmt_modified":"2026-04-23T09:46:06.5180014+04:00"},{"id":31706,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"60563e45be74bbac873efa1574b0b44b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#3039-3045","gmt_create":"2026-04-23T09:46:06.5180014+04:00","gmt_modified":"2026-04-23T09:46:06.5180014+04:00"},{"id":31707,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"eb47238d4d9c0bc7677c0adbb5315621","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/CMakeLists.txt#1-12","gmt_create":"2026-04-23T09:46:06.5180014+04:00","gmt_modified":"2026-04-23T09:46:06.5180014+04:00"},{"id":31708,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"85674b47bf8d255b25d55436d1c99ffc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/plugin.md#1-28","gmt_create":"2026-04-23T09:46:06.5180014+04:00","gmt_modified":"2026-04-23T09:46:06.5180014+04:00"},{"id":31709,"source_id":"3d04b0b0f0eb354aa6f47833f6b3b993","target_id":"85674b47bf8d255b25d55436d1c99ffc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-28","gmt_create":"2026-04-23T09:46:06.5180014+04:00","gmt_modified":"2026-04-23T09:46:06.5180014+04:00"},{"id":31710,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"8cd5d1f215bde6f6ccb9eb381d24bd40","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp#109-113","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31711,"source_id":"d0fb72b813916ea9f35db2f6cd39bd1e","target_id":"8cd5d1f215bde6f6ccb9eb381d24bd40","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 109-113","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31712,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"af8f81a3a4d58504e328d1f8a62b88a3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/include/graphene/plugins/chain/plugin.hpp#88-91","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31713,"source_id":"8236bb0464725a19a16e9e7bd0d10b5a","target_id":"af8f81a3a4d58504e328d1f8a62b88a3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 88-91","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31714,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"1e1cfcc720247454cb277d6e96e30ebc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#60-76","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31715,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"1e1cfcc720247454cb277d6e96e30ebc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 60-76","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31716,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"102e2a7219b22a82d3b64b983854fc33","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp#38-55","gmt_create":"2026-04-23T09:46:06.5190041+04:00","gmt_modified":"2026-04-23T09:46:06.5190041+04:00"},{"id":31717,"source_id":"d0fb72b813916ea9f35db2f6cd39bd1e","target_id":"102e2a7219b22a82d3b64b983854fc33","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-55","gmt_create":"2026-04-23T09:46:06.5206016+04:00","gmt_modified":"2026-04-23T09:46:06.5206016+04:00"},{"id":31718,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"cb378cc1cd10872797bc4b4e065102e0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/include/graphene/plugins/chain/plugin.hpp#36-42","gmt_create":"2026-04-23T09:46:06.5206573+04:00","gmt_modified":"2026-04-23T09:46:06.5206573+04:00"},{"id":31719,"source_id":"8236bb0464725a19a16e9e7bd0d10b5a","target_id":"cb378cc1cd10872797bc4b4e065102e0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-42","gmt_create":"2026-04-23T09:46:06.5206573+04:00","gmt_modified":"2026-04-23T09:46:06.5206573+04:00"},{"id":31720,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"9bd9537dad06007198cf14e878c23c41","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp#19-31","gmt_create":"2026-04-23T09:46:06.5206573+04:00","gmt_modified":"2026-04-23T09:46:06.5206573+04:00"},{"id":31721,"source_id":"fdee35c26d891fe544cc27cdb3ead3bf","target_id":"9bd9537dad06007198cf14e878c23c41","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-31","gmt_create":"2026-04-23T09:46:06.5206573+04:00","gmt_modified":"2026-04-23T09:46:06.5206573+04:00"},{"id":31722,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"787937c04d31ae8f6b77aa3debcbf6d3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/database_api/include/graphene/plugins/database_api/plugin.hpp#188-191","gmt_create":"2026-04-23T09:46:06.5206573+04:00","gmt_modified":"2026-04-23T09:46:06.5206573+04:00"},{"id":31723,"source_id":"4a4ce940f1e4d0377b80944b807f7236","target_id":"787937c04d31ae8f6b77aa3debcbf6d3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 188-191","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31724,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"b034b054ce403f3ec2fd88efb89a0a16","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/database_api/include/graphene/plugins/database_api/plugin.hpp#227-398","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31725,"source_id":"4a4ce940f1e4d0377b80944b807f7236","target_id":"b034b054ce403f3ec2fd88efb89a0a16","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 227-398","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31726,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"3fb330c8287106665726a28567c92a5c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/account_history/include/graphene/plugins/account_history/plugin.hpp#61-65","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31727,"source_id":"cfd0645ffe0098ddfeb689dc6608a9e9","target_id":"3fb330c8287106665726a28567c92a5c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 61-65","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31728,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"3429b78850d8fa62c3600571b75d52ed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/account_history/include/graphene/plugins/account_history/plugin.hpp#83-92","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31729,"source_id":"cfd0645ffe0098ddfeb689dc6608a9e9","target_id":"3429b78850d8fa62c3600571b75d52ed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 83-92","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31730,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"42b40fe3d2456078c7b0ed92b1492ec0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#259-277","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31731,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"42b40fe3d2456078c7b0ed92b1492ec0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 259-277","gmt_create":"2026-04-23T09:46:06.5216049+04:00","gmt_modified":"2026-04-23T09:46:06.5216049+04:00"},{"id":31732,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"2ef0c3b5ceddd702ed88edc8b9e4fdff","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp#20-20","gmt_create":"2026-04-23T09:46:06.5226056+04:00","gmt_modified":"2026-04-23T09:46:06.5226056+04:00"},{"id":31733,"source_id":"fb1da1d76a9c97ea5b78a1aa200c3ec1","target_id":"2ef0c3b5ceddd702ed88edc8b9e4fdff","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-20","gmt_create":"2026-04-23T09:46:06.5226056+04:00","gmt_modified":"2026-04-23T09:46:06.5226056+04:00"},{"id":31734,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"3db7c2b0d8dc0e8758f4c15214e61313","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp#40-49","gmt_create":"2026-04-23T09:46:06.5226056+04:00","gmt_modified":"2026-04-23T09:46:06.5226056+04:00"},{"id":31735,"source_id":"fb1da1d76a9c97ea5b78a1aa200c3ec1","target_id":"3db7c2b0d8dc0e8758f4c15214e61313","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-49","gmt_create":"2026-04-23T09:46:06.5226056+04:00","gmt_modified":"2026-04-23T09:46:06.5226056+04:00"},{"id":31736,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"de6fb7cc69ccd55320fdfeb942f0bb25","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp#17-19","gmt_create":"2026-04-23T09:46:06.5301535+04:00","gmt_modified":"2026-04-23T09:46:06.5301535+04:00"},{"id":31737,"source_id":"84f302d721cd2a423f647f2b50183558","target_id":"de6fb7cc69ccd55320fdfeb942f0bb25","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 17-19","gmt_create":"2026-04-23T09:46:06.5301535+04:00","gmt_modified":"2026-04-23T09:46:06.5301535+04:00"},{"id":31738,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"10062bf67720c6d65bf29b7e05e53fac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#46-87","gmt_create":"2026-04-23T09:46:06.5316566+04:00","gmt_modified":"2026-04-23T09:46:06.5316566+04:00"},{"id":31739,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"10062bf67720c6d65bf29b7e05e53fac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 46-87","gmt_create":"2026-04-23T09:46:06.5316566+04:00","gmt_modified":"2026-04-23T09:46:06.5316566+04:00"},{"id":31740,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"adbd3b90842a67e229e9a1dcedaf1a32","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/plugin.md#11-20","gmt_create":"2026-04-23T09:46:06.5316566+04:00","gmt_modified":"2026-04-23T09:46:06.5316566+04:00"},{"id":31741,"source_id":"3d04b0b0f0eb354aa6f47833f6b3b993","target_id":"adbd3b90842a67e229e9a1dcedaf1a32","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-20","gmt_create":"2026-04-23T09:46:06.5326603+04:00","gmt_modified":"2026-04-23T09:46:06.5326603+04:00"},{"id":31742,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"dc48b7238cc66df599dae38b1c050814","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/account_history/include/graphene/plugins/account_history/plugin.hpp#77-77","gmt_create":"2026-04-23T09:46:06.5326603+04:00","gmt_modified":"2026-04-23T09:46:06.5326603+04:00"},{"id":31743,"source_id":"cfd0645ffe0098ddfeb689dc6608a9e9","target_id":"dc48b7238cc66df599dae38b1c050814","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 77-77","gmt_create":"2026-04-23T09:46:06.5326603+04:00","gmt_modified":"2026-04-23T09:46:06.5326603+04:00"},{"id":31744,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"9332a2a76a3443a79be6fa8dc4048438","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/include/graphene/plugins/chain/plugin.hpp#21-42","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31745,"source_id":"8236bb0464725a19a16e9e7bd0d10b5a","target_id":"9332a2a76a3443a79be6fa8dc4048438","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 21-42","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31746,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"b4316318a9574951ff8938c6d99004a5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp#32-43","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31747,"source_id":"fdee35c26d891fe544cc27cdb3ead3bf","target_id":"b4316318a9574951ff8938c6d99004a5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 32-43","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31748,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"70f14f1ee65c0139809ace82cf50998f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/database_api/include/graphene/plugins/database_api/plugin.hpp#179-186","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31749,"source_id":"4a4ce940f1e4d0377b80944b807f7236","target_id":"70f14f1ee65c0139809ace82cf50998f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 179-186","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31750,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"56db7e7959757db95bf454286870321f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/account_history/include/graphene/plugins/account_history/plugin.hpp#59-70","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31751,"source_id":"cfd0645ffe0098ddfeb689dc6608a9e9","target_id":"56db7e7959757db95bf454286870321f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 59-70","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31752,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"60c1f99ef18eeb91f1374893134e9dee","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp#18-32","gmt_create":"2026-04-23T09:46:06.5336603+04:00","gmt_modified":"2026-04-23T09:46:06.5336603+04:00"},{"id":31753,"source_id":"fb1da1d76a9c97ea5b78a1aa200c3ec1","target_id":"60c1f99ef18eeb91f1374893134e9dee","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-32","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31754,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"45dba84487f57c51ee08aecf5d9363b5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp#14-41","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31755,"source_id":"84f302d721cd2a423f647f2b50183558","target_id":"45dba84487f57c51ee08aecf5d9363b5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-41","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31756,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"be3f355927902abbacc66fc8ef8d725e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#42-54","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31757,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"be3f355927902abbacc66fc8ef8d725e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-54","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31758,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"b66594f96f1242e29c2ab2acf84ecd32","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/util/newplugin.py#225-246","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31759,"source_id":"95ce48240aa09e3af69ee56050284497","target_id":"b66594f96f1242e29c2ab2acf84ecd32","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 225-246","gmt_create":"2026-04-23T09:46:06.5346611+04:00","gmt_modified":"2026-04-23T09:46:06.5346611+04:00"},{"id":31760,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"c62e1397b94795e465fbc14ea472574b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/util/newplugin.py#168-173","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31761,"source_id":"95ce48240aa09e3af69ee56050284497","target_id":"c62e1397b94795e465fbc14ea472574b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 168-173","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31762,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"aa6229d2d48c7826205ea87375adc9fe","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/plugin.md#21-28","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31763,"source_id":"3d04b0b0f0eb354aa6f47833f6b3b993","target_id":"aa6229d2d48c7826205ea87375adc9fe","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 21-28","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31764,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"a3f311781ebc595d7e91829970674d05","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#281-324","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31765,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"82c3275180f9bd52205d6daf10f0cec5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#292-292","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31766,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"35d24cfc3a718f73aa7c90cbb070354a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#313-317","gmt_create":"2026-04-23T09:46:06.5356603+04:00","gmt_modified":"2026-04-23T09:46:06.5356603+04:00"},{"id":31767,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"35d24cfc3a718f73aa7c90cbb070354a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 313-317","gmt_create":"2026-04-23T09:46:06.5366601+04:00","gmt_modified":"2026-04-23T09:46:06.5366601+04:00"},{"id":31768,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"c3c45afd2ec0895d4db392cbb92a0eff","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#13-33","gmt_create":"2026-04-23T09:46:06.5366601+04:00","gmt_modified":"2026-04-23T09:46:06.5366601+04:00"},{"id":31769,"source_id":"d136a3c86c240fca63a64546b4891416","target_id":"c3c45afd2ec0895d4db392cbb92a0eff","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-33","gmt_create":"2026-04-23T09:46:06.5366601+04:00","gmt_modified":"2026-04-23T09:46:06.5366601+04:00"},{"id":31770,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"612f94b42fe205b777c3de4c66a78590","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#1-200","gmt_create":"2026-04-23T09:46:06.5366601+04:00","gmt_modified":"2026-04-23T09:46:06.5366601+04:00"},{"id":31771,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"612f94b42fe205b777c3de4c66a78590","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-04-23T09:46:06.5366601+04:00","gmt_modified":"2026-04-23T09:46:06.5366601+04:00"},{"id":31772,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"889576d5248af3e761d8b8f11edbdc3c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#356-382","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31773,"source_id":"71cbf21e4bf2a2b603ad1183369ec65f","target_id":"889576d5248af3e761d8b8f11edbdc3c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 356-382","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31774,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"84c8c2c812e14b7b135e30884b54750b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#558-567","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31775,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"84c8c2c812e14b7b135e30884b54750b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 558-567","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31776,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"a4cd9ca5a718782864b0a097cf977152","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#596-600","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31777,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"a4cd9ca5a718782864b0a097cf977152","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 596-600","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31778,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"223f9c99ce62468c734d65e2870a2d24","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#618-622","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31779,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"223f9c99ce62468c734d65e2870a2d24","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 618-622","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31780,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"be23399b5f0fe8ce230c4fd71dc41290","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#104-164","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31781,"source_id":"37fb39091ee4b69fe1e682497ff46b55","target_id":"be23399b5f0fe8ce230c4fd71dc41290","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 104-164","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31782,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"6475fdf01f4a4784fc1ea9af9ec30f40","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#15-41","gmt_create":"2026-04-23T09:46:06.5376605+04:00","gmt_modified":"2026-04-23T09:46:06.5376605+04:00"},{"id":31783,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"6475fdf01f4a4784fc1ea9af9ec30f40","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-41","gmt_create":"2026-04-23T09:46:06.5386604+04:00","gmt_modified":"2026-04-23T09:46:06.5386604+04:00"},{"id":31784,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"6661694400eeda9076974f6ffb08ad9e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#265-276","gmt_create":"2026-04-23T09:46:06.5386604+04:00","gmt_modified":"2026-04-23T09:46:06.5386604+04:00"},{"id":31785,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"6661694400eeda9076974f6ffb08ad9e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 265-276","gmt_create":"2026-04-23T09:46:06.5386604+04:00","gmt_modified":"2026-04-23T09:46:06.5386604+04:00"},{"id":31786,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"caa0a3bdbedddb20962f5622f4cb96de","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#118-165","gmt_create":"2026-04-23T09:46:06.5397449+04:00","gmt_modified":"2026-04-23T09:46:06.5397449+04:00"},{"id":31787,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"caa0a3bdbedddb20962f5622f4cb96de","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 118-165","gmt_create":"2026-04-23T09:46:06.5397449+04:00","gmt_modified":"2026-04-23T09:46:06.5397449+04:00"},{"id":31788,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"2f48af123d7c717d87efa86a897072cf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#558-580","gmt_create":"2026-04-23T09:46:06.5397449+04:00","gmt_modified":"2026-04-23T09:46:06.5397449+04:00"},{"id":31789,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"2f48af123d7c717d87efa86a897072cf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 558-580","gmt_create":"2026-04-23T09:46:06.5397449+04:00","gmt_modified":"2026-04-23T09:46:06.5397449+04:00"},{"id":31790,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"d39d62435004686304b872d1aa167517","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#599-620","gmt_create":"2026-04-23T09:46:06.5397449+04:00","gmt_modified":"2026-04-23T09:46:06.5397449+04:00"},{"id":31791,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"d39d62435004686304b872d1aa167517","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 599-620","gmt_create":"2026-04-23T09:46:06.5407289+04:00","gmt_modified":"2026-04-23T09:46:06.5407289+04:00"},{"id":31792,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"d966b10c5f40e64a1511a7ee158e788f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#623-640","gmt_create":"2026-04-23T09:46:06.5407289+04:00","gmt_modified":"2026-04-23T09:46:06.5407289+04:00"},{"id":31793,"source_id":"5a775a89bb87e70f60760941848117e7","target_id":"d966b10c5f40e64a1511a7ee158e788f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 623-640","gmt_create":"2026-04-23T09:46:06.5407289+04:00","gmt_modified":"2026-04-23T09:46:06.5407289+04:00"},{"id":31794,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"bfb352c37c5651f8e364f9838b375902","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5254-5274","gmt_create":"2026-04-23T09:46:06.5407289+04:00","gmt_modified":"2026-04-23T09:46:06.5407289+04:00"},{"id":31795,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"bfb352c37c5651f8e364f9838b375902","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5254-5274","gmt_create":"2026-04-23T09:46:06.5417261+04:00","gmt_modified":"2026-04-23T09:46:06.5417261+04:00"},{"id":31796,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"160368e3339d4e55ddfe248fd538d1e3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/CMakeLists.txt#27-34","gmt_create":"2026-04-23T09:46:06.5417261+04:00","gmt_modified":"2026-04-23T09:46:06.5417261+04:00"},{"id":31797,"source_id":"eda094f6c7f30e5af92cd6361249ffed","target_id":"160368e3339d4e55ddfe248fd538d1e3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-34","gmt_create":"2026-04-23T09:46:06.5417261+04:00","gmt_modified":"2026-04-23T09:46:06.5417261+04:00"},{"id":31798,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"215a79715153cc7dbc2d358d6a91799d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/CMakeLists.txt#27-38","gmt_create":"2026-04-23T09:46:06.543726+04:00","gmt_modified":"2026-04-23T09:46:06.543726+04:00"},{"id":31799,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"232a0b4952b0a88c2a0f43241176fca6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#500-508","gmt_create":"2026-04-23T09:46:06.5447262+04:00","gmt_modified":"2026-04-23T09:46:06.5447262+04:00"},{"id":31800,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"232a0b4952b0a88c2a0f43241176fca6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 500-508","gmt_create":"2026-04-23T09:46:06.5447262+04:00","gmt_modified":"2026-04-23T09:46:06.5447262+04:00"},{"id":31801,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"9c2392ab068c0dda02cdfe33eceff8e4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/network/ip.hpp#69-71","gmt_create":"2026-04-23T09:46:06.5447262+04:00","gmt_modified":"2026-04-23T09:46:06.5447262+04:00"},{"id":31802,"source_id":"64b5113e7dbca1ab08e087f095423e81","target_id":"9c2392ab068c0dda02cdfe33eceff8e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 69-71","gmt_create":"2026-04-23T09:46:06.5447262+04:00","gmt_modified":"2026-04-23T09:46:06.5447262+04:00"},{"id":31803,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"f1e088088369adcf3d462fe0e2d53dbf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/network/ip.cpp#35-39","gmt_create":"2026-04-23T09:46:06.545726+04:00","gmt_modified":"2026-04-23T09:46:06.545726+04:00"},{"id":31804,"source_id":"0181fe0bb863b7fe871e3af8ad113ddf","target_id":"f1e088088369adcf3d462fe0e2d53dbf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-39","gmt_create":"2026-04-23T09:46:06.545726+04:00","gmt_modified":"2026-04-23T09:46:06.545726+04:00"},{"id":31805,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"ec0a7e38def2d8b0f21be32808de7860","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/network/ip.hpp#12-87","gmt_create":"2026-04-23T09:46:06.5467265+04:00","gmt_modified":"2026-04-23T09:46:06.5467265+04:00"},{"id":31806,"source_id":"64b5113e7dbca1ab08e087f095423e81","target_id":"ec0a7e38def2d8b0f21be32808de7860","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-87","gmt_create":"2026-04-23T09:46:06.5467265+04:00","gmt_modified":"2026-04-23T09:46:06.5467265+04:00"},{"id":31807,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"d43daaa87560a3c4b045281357a6a2b3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/network/ip.cpp#14-87","gmt_create":"2026-04-23T09:46:06.5467265+04:00","gmt_modified":"2026-04-23T09:46:06.5467265+04:00"},{"id":31808,"source_id":"0181fe0bb863b7fe871e3af8ad113ddf","target_id":"d43daaa87560a3c4b045281357a6a2b3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-87","gmt_create":"2026-04-23T09:46:06.5467265+04:00","gmt_modified":"2026-04-23T09:46:06.5467265+04:00"},{"id":31809,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"e50a77e5ebfe7749756f98da252dca65","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.hpp#109-110","gmt_create":"2026-04-23T09:46:06.5467265+04:00","gmt_modified":"2026-04-23T09:46:06.5467265+04:00"},{"id":31810,"source_id":"2c29b33616609cdb7494a96cdf0810bc","target_id":"e50a77e5ebfe7749756f98da252dca65","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 109-110","gmt_create":"2026-04-23T09:46:06.547727+04:00","gmt_modified":"2026-04-23T09:46:06.547727+04:00"},{"id":31811,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"ead7dae43935af711da9e9fb0ee57e55","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#4900-4903","gmt_create":"2026-04-23T09:46:06.547727+04:00","gmt_modified":"2026-04-23T09:46:06.547727+04:00"},{"id":31812,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"ead7dae43935af711da9e9fb0ee57e55","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4900-4903","gmt_create":"2026-04-23T09:46:06.547727+04:00","gmt_modified":"2026-04-23T09:46:06.547727+04:00"},{"id":31813,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"bb8a03040c7dd5ef23842135f12c7ada","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/core_messages.hpp#333-345","gmt_create":"2026-04-23T09:46:06.547727+04:00","gmt_modified":"2026-04-23T09:46:06.547727+04:00"},{"id":31814,"source_id":"e6e4173796f1dde64bec92ed8c9462c3","target_id":"bb8a03040c7dd5ef23842135f12c7ada","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 333-345","gmt_create":"2026-04-23T09:46:06.547727+04:00","gmt_modified":"2026-04-23T09:46:06.547727+04:00"},{"id":31815,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"4d389798bfd10ffa507b4eff702ce895","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/include/graphene/plugins/chain/plugin.hpp#21-24","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31816,"source_id":"8236bb0464725a19a16e9e7bd0d10b5a","target_id":"4d389798bfd10ffa507b4eff702ce895","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 21-24","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31817,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"b299205c99b9ae5248e438a5b8bc28f2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp#32-38","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31818,"source_id":"fdee35c26d891fe544cc27cdb3ead3bf","target_id":"b299205c99b9ae5248e438a5b8bc28f2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 32-38","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31819,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"a23a1085e2cc69dadf154e51b819127d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#44-44","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31820,"source_id":"10461f81e6789cf5385cca1e62af9d4d","target_id":"a23a1085e2cc69dadf154e51b819127d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 44-44","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31821,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"f5ba325b3d9da76e3ebc5613f9cd98a2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#35-35","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31822,"source_id":"d136a3c86c240fca63a64546b4891416","target_id":"f5ba325b3d9da76e3ebc5613f9cd98a2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-35","gmt_create":"2026-04-23T09:46:06.5487264+04:00","gmt_modified":"2026-04-23T09:46:06.5487264+04:00"},{"id":31823,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"eb78713649c3eafb6435d5b0e39b4508","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/operations.hpp#14-27","gmt_create":"2026-04-23T09:46:06.5502296+04:00","gmt_modified":"2026-04-23T09:46:06.5502296+04:00"},{"id":31824,"source_id":"049b280127deb064471c9f9f3eba5a5b","target_id":"eb78713649c3eafb6435d5b0e39b4508","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-27","gmt_create":"2026-04-23T09:46:06.5502296+04:00","gmt_modified":"2026-04-23T09:46:06.5502296+04:00"},{"id":31825,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"7e1cfebaa5e9eeb729552133622ecb43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/chain_evaluator.cpp#216-216","gmt_create":"2026-04-23T09:46:06.5502296+04:00","gmt_modified":"2026-04-23T09:46:06.5502296+04:00"},{"id":31826,"source_id":"beabef111a7a2136152008b444da9246","target_id":"7e1cfebaa5e9eeb729552133622ecb43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 216-216","gmt_create":"2026-04-23T09:46:06.5502296+04:00","gmt_modified":"2026-04-23T09:46:06.5502296+04:00"},{"id":31827,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"fbee98959255e2b7f556fd6d47d1b069","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/chain_evaluator.cpp#551-551","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31828,"source_id":"beabef111a7a2136152008b444da9246","target_id":"fbee98959255e2b7f556fd6d47d1b069","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 551-551","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31829,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"2a9174de7944c932a866d3cbce97a49b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/chain_evaluator.cpp#1296-1296","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31830,"source_id":"beabef111a7a2136152008b444da9246","target_id":"2a9174de7944c932a866d3cbce97a49b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1296-1296","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31831,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"ff2d25a7450347c4a58d6558b6ef2187","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#499-528","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31832,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"ff2d25a7450347c4a58d6558b6ef2187","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 499-528","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31833,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"428c4550bf78909ea1be0331756cac88","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/debug_node/plugin.cpp#124-128","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31834,"source_id":"ae112bbcc58229a7363c2eb7dfc2d58d","target_id":"428c4550bf78909ea1be0331756cac88","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 124-128","gmt_create":"2026-04-23T09:46:06.5512339+04:00","gmt_modified":"2026-04-23T09:46:06.5512339+04:00"},{"id":31835,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"bd1c1b5f3a896d421fb3435f617724c1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp#103-107","gmt_create":"2026-04-23T09:46:06.5522362+04:00","gmt_modified":"2026-04-23T09:46:06.5522362+04:00"},{"id":31836,"source_id":"d0fb72b813916ea9f35db2f6cd39bd1e","target_id":"bd1c1b5f3a896d421fb3435f617724c1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 103-107","gmt_create":"2026-04-23T09:46:06.5522362+04:00","gmt_modified":"2026-04-23T09:46:06.5522362+04:00"},{"id":31837,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"1bc773b8020617c00ac7460f95d1a182","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#142-164","gmt_create":"2026-04-23T09:46:06.5532345+04:00","gmt_modified":"2026-04-23T09:46:06.5532345+04:00"},{"id":31838,"source_id":"37fb39091ee4b69fe1e682497ff46b55","target_id":"1bc773b8020617c00ac7460f95d1a182","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 142-164","gmt_create":"2026-04-23T09:46:06.5532345+04:00","gmt_modified":"2026-04-23T09:46:06.5532345+04:00"},{"id":31839,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"fcb075ef-b146-4755-ab58-212aed8a9478","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dccbfa78-83ae-4fee-9212-5ac10c7424f6 -\u003e fcb075ef-b146-4755-ab58-212aed8a9478","gmt_create":"2026-04-23T09:46:07.1965762+04:00","gmt_modified":"2026-04-23T09:46:07.1965762+04:00"},{"id":31850,"source_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","target_id":"f6b39e62-2b94-459e-8a9c-d731c54bcde6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 67bce420-e9f6-4b70-b83a-d19411a2f09e -\u003e f6b39e62-2b94-459e-8a9c-d731c54bcde6","gmt_create":"2026-04-23T09:46:07.2089507+04:00","gmt_modified":"2026-04-23T09:46:07.2089507+04:00"},{"id":31866,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"8ed917d817d567a488d62920baedadcc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 689-698","gmt_create":"2026-04-23T11:16:32.2952029+04:00","gmt_modified":"2026-04-23T11:16:32.2952029+04:00"},{"id":31869,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"7925b0a796bd493a01da486c70d0ab64","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 714-715","gmt_create":"2026-04-23T11:16:32.2962084+04:00","gmt_modified":"2026-04-23T11:16:32.2962084+04:00"},{"id":31872,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"1ae9e34ac2be4ef2ed3da08a43b3ca1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 592-600","gmt_create":"2026-04-23T11:16:32.2980412+04:00","gmt_modified":"2026-04-23T11:16:32.2980412+04:00"},{"id":31874,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"ef3997991d9cf249bb80090feb23abdc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 689-706","gmt_create":"2026-04-23T11:16:32.303035+04:00","gmt_modified":"2026-04-23T11:16:32.303035+04:00"},{"id":31877,"source_id":"7f5ebd18d8224ccabbd73a26fba17a38","target_id":"b136009499eb952960a997500371c413","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-92","gmt_create":"2026-04-23T11:16:32.3036563+04:00","gmt_modified":"2026-04-23T11:16:32.3036563+04:00"},{"id":31879,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"9f67fdb767ce515af96c465dbbb1fe8f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 497-521","gmt_create":"2026-04-23T11:16:32.3046838+04:00","gmt_modified":"2026-04-23T11:16:32.3046838+04:00"},{"id":31881,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"acad8673bff956aca1d53443f4ba5739","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 780-785","gmt_create":"2026-04-23T11:16:32.3046838+04:00","gmt_modified":"2026-04-23T11:16:32.3046838+04:00"},{"id":31884,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"ffcabaf2fce1313ba726f943d26bdf4a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 537-540","gmt_create":"2026-04-23T11:16:32.3056929+04:00","gmt_modified":"2026-04-23T11:16:32.3056929+04:00"},{"id":31886,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"2ed9aa8440a7a4d0e1b58d003e493158","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 786-792","gmt_create":"2026-04-23T11:16:32.3056929+04:00","gmt_modified":"2026-04-23T11:16:32.3056929+04:00"},{"id":31888,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"d1be4370926b5262daf2447b9745d905","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 487-495","gmt_create":"2026-04-23T11:16:32.3056929+04:00","gmt_modified":"2026-04-23T11:16:32.3056929+04:00"},{"id":31890,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"5fdf8584baa2beb83725ffd40a065ff4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 52-56","gmt_create":"2026-04-23T11:16:32.3056929+04:00","gmt_modified":"2026-04-23T11:16:32.3056929+04:00"},{"id":31892,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"034d2639f50a8ac9d67ffbf0594a6afa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 441-445","gmt_create":"2026-04-23T11:16:32.3071675+04:00","gmt_modified":"2026-04-23T11:16:32.3071675+04:00"},{"id":31894,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"65d8ec4282c90ca603928ff3ca7a8c1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 169-206","gmt_create":"2026-04-23T11:16:32.3071675+04:00","gmt_modified":"2026-04-23T11:16:32.3071675+04:00"},{"id":31896,"source_id":"7f5ebd18d8224ccabbd73a26fba17a38","target_id":"9483fd3d971ce258539c764b97277642","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 49-66","gmt_create":"2026-04-23T11:16:32.3071675+04:00","gmt_modified":"2026-04-23T11:16:32.3071675+04:00"},{"id":31898,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"b798a371453386ed55f39515a7f187ce","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 223-239","gmt_create":"2026-04-23T11:16:32.3071675+04:00","gmt_modified":"2026-04-23T11:16:32.3071675+04:00"},{"id":31901,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"9adff7a947c035e71543339de4f875ec","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 638-640","gmt_create":"2026-04-23T11:16:32.3071675+04:00","gmt_modified":"2026-04-23T11:16:32.3071675+04:00"},{"id":31904,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"6b49cb375a448fd15559d24da7d7e23c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 548-567","gmt_create":"2026-04-23T11:16:32.3086705+04:00","gmt_modified":"2026-04-23T11:16:32.3086705+04:00"},{"id":31907,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"3edc836b9f3a1df5c933c63ecc8ce954","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 55-106","gmt_create":"2026-04-23T11:16:32.3086705+04:00","gmt_modified":"2026-04-23T11:16:32.3086705+04:00"},{"id":31909,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"7b44d15de5faea5ec5d9aa45843a4779","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-136","gmt_create":"2026-04-23T11:16:32.3096745+04:00","gmt_modified":"2026-04-23T11:16:32.3096745+04:00"},{"id":31911,"source_id":"c6fa8e83f2cf8a08be2de60d97f4a9f8","target_id":"5d3ecf8dbda10c5dac6bfd961791d02b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-132","gmt_create":"2026-04-23T11:16:32.3102676+04:00","gmt_modified":"2026-04-23T11:16:32.3102676+04:00"},{"id":31913,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"e5968eacd23776d0e60478ea5cc7d523","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 403-405","gmt_create":"2026-04-23T11:16:32.3102676+04:00","gmt_modified":"2026-04-23T11:16:32.3102676+04:00"},{"id":31915,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"3942d16870ce25abce21196a1bb5866b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 112-136","gmt_create":"2026-04-23T11:16:32.3118754+04:00","gmt_modified":"2026-04-23T11:16:32.3118754+04:00"},{"id":31917,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"2c8c910dec8b5db99994a8643fd780e8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5259-5262","gmt_create":"2026-04-23T11:16:32.3118754+04:00","gmt_modified":"2026-04-23T11:16:32.3118754+04:00"},{"id":31919,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"d48e61b6c0afbe8b0a4d20deff593854","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 467-482","gmt_create":"2026-04-23T11:16:32.3254446+04:00","gmt_modified":"2026-04-23T11:16:32.3254446+04:00"},{"id":31921,"source_id":"475c2f17a00cd4de82dd54bf0a8126ac","target_id":"b07b9e450af40c43c796bcc7ecf03443","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-107","gmt_create":"2026-04-23T11:16:32.326568+04:00","gmt_modified":"2026-04-23T11:16:32.326568+04:00"},{"id":31922,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"16a4e2bff0288ec68e9817239c754aed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-23T11:18:10.1718157+04:00","gmt_modified":"2026-04-23T11:18:10.1718157+04:00"},{"id":31923,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"c6fa8e83f2cf8a08be2de60d97f4a9f8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_testnet.ini","gmt_create":"2026-04-23T11:18:10.1718157+04:00","gmt_modified":"2026-04-23T11:18:10.1718157+04:00"},{"id":31924,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"475c2f17a00cd4de82dd54bf0a8126ac","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_witness.ini","gmt_create":"2026-04-23T11:18:10.1718157+04:00","gmt_modified":"2026-04-23T11:18:10.1718157+04:00"},{"id":31925,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"56e73581fcc11e3d5d304c4453d84a9f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_mongo.ini","gmt_create":"2026-04-23T11:18:10.1733476+04:00","gmt_modified":"2026-04-23T11:18:10.1733476+04:00"},{"id":31926,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"1703516eef21eec01e919079e221dabb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_debug.ini","gmt_create":"2026-04-23T11:18:10.1733476+04:00","gmt_modified":"2026-04-23T11:18:10.1733476+04:00"},{"id":31927,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"77d7d5cae5b2ba02b7b3e0116c821669","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_debug_mongo.ini","gmt_create":"2026-04-23T11:18:10.1733476+04:00","gmt_modified":"2026-04-23T11:18:10.1733476+04:00"},{"id":31928,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"48369ee5882470d563a4a3760712465a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-production","gmt_create":"2026-04-23T11:18:10.1749628+04:00","gmt_modified":"2026-04-23T11:18:10.1749628+04:00"},{"id":31929,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"5c83db7209d29d47467923bf09fbb420","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-testnet","gmt_create":"2026-04-23T11:18:10.1758853+04:00","gmt_modified":"2026-04-23T11:18:10.1758853+04:00"},{"id":31930,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/docker/Dockerfile-lowmem","gmt_create":"2026-04-23T11:18:10.1758853+04:00","gmt_modified":"2026-04-23T11:18:10.1758853+04:00"},{"id":31931,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"295d36eeed1ab98565250d89d54cc36a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/vizd.sh","gmt_create":"2026-04-23T11:18:10.1758853+04:00","gmt_modified":"2026-04-23T11:18:10.1758853+04:00"},{"id":31932,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"988bb985afa7b7add75e4415b239b6a6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: programs/vizd/main.cpp","gmt_create":"2026-04-23T11:18:10.1768854+04:00","gmt_modified":"2026-04-23T11:18:10.1768854+04:00"},{"id":31933,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"32cf30b2e9094b9693ab53917b0a2eb3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-04-23T11:18:10.1768854+04:00","gmt_modified":"2026-04-23T11:18:10.1768854+04:00"},{"id":31934,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"33769e7ecefb7ac442a88bcc6e7fe7db","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/building.md","gmt_create":"2026-04-23T11:18:10.1768854+04:00","gmt_modified":"2026-04-23T11:18:10.1768854+04:00"},{"id":31935,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"2422c587506c0b05e97687067ae1d1cf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/testnet.md","gmt_create":"2026-04-23T11:18:10.1768854+04:00","gmt_modified":"2026-04-23T11:18:10.1768854+04:00"},{"id":31936,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"3d04b0b0f0eb354aa6f47833f6b3b993","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/plugin.md","gmt_create":"2026-04-23T11:18:10.1778826+04:00","gmt_modified":"2026-04-23T11:18:10.1778826+04:00"},{"id":31937,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"571d673b1b49568d584e159036820875","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-23T11:18:10.1778826+04:00","gmt_modified":"2026-04-23T11:18:10.1778826+04:00"},{"id":31938,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"3a1c05308902dc684e85898a790b0e07","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/config_testnet.hpp","gmt_create":"2026-04-23T11:18:10.1778826+04:00","gmt_modified":"2026-04-23T11:18:10.1778826+04:00"},{"id":31939,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"f5e2709c934c90bed9814ff547a6da8e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/config.hpp","gmt_create":"2026-04-23T11:18:10.1778826+04:00","gmt_modified":"2026-04-23T11:18:10.1778826+04:00"},{"id":31940,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"37fb39091ee4b69fe1e682497ff46b55","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-23T11:18:10.1778826+04:00","gmt_modified":"2026-04-23T11:18:10.1778826+04:00"},{"id":31941,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T11:18:10.1778826+04:00","gmt_modified":"2026-04-23T11:18:10.1778826+04:00"},{"id":31942,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"d478cca230f790bc8f1573f56a55a987","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/plugin.cpp","gmt_create":"2026-04-23T11:18:10.1788825+04:00","gmt_modified":"2026-04-23T11:18:10.1788825+04:00"},{"id":31943,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"1c1b4b5872b3e0fa0bef4de9fb558675","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/appbase/application.cpp","gmt_create":"2026-04-23T11:18:10.1788825+04:00","gmt_modified":"2026-04-23T11:18:10.1788825+04:00"},{"id":31944,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"7b44d15de5faea5ec5d9aa45843a4779","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#1-136","gmt_create":"2026-04-23T11:18:10.1788825+04:00","gmt_modified":"2026-04-23T11:18:10.1788825+04:00"},{"id":31945,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"5d3ecf8dbda10c5dac6bfd961791d02b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_testnet.ini#1-132","gmt_create":"2026-04-23T11:18:10.1788825+04:00","gmt_modified":"2026-04-23T11:18:10.1788825+04:00"},{"id":31946,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"f5e62fc26a62060b28ed790b81427d7c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_witness.ini#1-138","gmt_create":"2026-04-23T11:18:10.1788825+04:00","gmt_modified":"2026-04-23T11:18:10.1788825+04:00"},{"id":31947,"source_id":"475c2f17a00cd4de82dd54bf0a8126ac","target_id":"f5e62fc26a62060b28ed790b81427d7c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-138","gmt_create":"2026-04-23T11:18:10.1803889+04:00","gmt_modified":"2026-04-23T11:18:10.1803889+04:00"},{"id":31948,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"1259b9b4603fb7654c05f55dda13086b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_mongo.ini#1-135","gmt_create":"2026-04-23T11:18:10.1804428+04:00","gmt_modified":"2026-04-23T11:18:10.1804428+04:00"},{"id":31949,"source_id":"56e73581fcc11e3d5d304c4453d84a9f","target_id":"1259b9b4603fb7654c05f55dda13086b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-135","gmt_create":"2026-04-23T11:18:10.1804428+04:00","gmt_modified":"2026-04-23T11:18:10.1804428+04:00"},{"id":31950,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"f879c180ea600db69334ce6c60ebfc67","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_debug.ini#1-126","gmt_create":"2026-04-23T11:18:10.1804428+04:00","gmt_modified":"2026-04-23T11:18:10.1804428+04:00"},{"id":31951,"source_id":"1703516eef21eec01e919079e221dabb","target_id":"f879c180ea600db69334ce6c60ebfc67","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-126","gmt_create":"2026-04-23T11:18:10.1813957+04:00","gmt_modified":"2026-04-23T11:18:10.1813957+04:00"},{"id":31952,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"89065e1727f834ef21b27213c44f73d8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_debug_mongo.ini#1-135","gmt_create":"2026-04-23T11:18:10.1813957+04:00","gmt_modified":"2026-04-23T11:18:10.1813957+04:00"},{"id":31953,"source_id":"77d7d5cae5b2ba02b7b3e0116c821669","target_id":"89065e1727f834ef21b27213c44f73d8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-135","gmt_create":"2026-04-23T11:18:10.1813957+04:00","gmt_modified":"2026-04-23T11:18:10.1813957+04:00"},{"id":31954,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"a508dd7eb64847424ab271643cd9888c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-production#1-88","gmt_create":"2026-04-23T11:18:10.1823954+04:00","gmt_modified":"2026-04-23T11:18:10.1823954+04:00"},{"id":31955,"source_id":"48369ee5882470d563a4a3760712465a","target_id":"a508dd7eb64847424ab271643cd9888c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-88","gmt_create":"2026-04-23T11:18:10.1823954+04:00","gmt_modified":"2026-04-23T11:18:10.1823954+04:00"},{"id":31956,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"cfae55af59e33580d0ead5c9858873b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-testnet#1-88","gmt_create":"2026-04-23T11:18:10.1823954+04:00","gmt_modified":"2026-04-23T11:18:10.1823954+04:00"},{"id":31957,"source_id":"5c83db7209d29d47467923bf09fbb420","target_id":"cfae55af59e33580d0ead5c9858873b9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-88","gmt_create":"2026-04-23T11:18:10.1823954+04:00","gmt_modified":"2026-04-23T11:18:10.1823954+04:00"},{"id":31958,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"e50af0202c9d2df3c95dcd52b22a7875","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-lowmem#1-82","gmt_create":"2026-04-23T11:18:10.1833948+04:00","gmt_modified":"2026-04-23T11:18:10.1833948+04:00"},{"id":31959,"source_id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","target_id":"e50af0202c9d2df3c95dcd52b22a7875","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-82","gmt_create":"2026-04-23T11:18:10.1833948+04:00","gmt_modified":"2026-04-23T11:18:10.1833948+04:00"},{"id":31960,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"02d97913f7b4b7815c62c96757406f05","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/vizd.sh#1-82","gmt_create":"2026-04-23T11:18:10.1833948+04:00","gmt_modified":"2026-04-23T11:18:10.1833948+04:00"},{"id":31961,"source_id":"295d36eeed1ab98565250d89d54cc36a","target_id":"02d97913f7b4b7815c62c96757406f05","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-82","gmt_create":"2026-04-23T11:18:10.1833948+04:00","gmt_modified":"2026-04-23T11:18:10.1833948+04:00"},{"id":31962,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"3ecc8f59e40237d675df5dc5f2ab9e3f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#106-158","gmt_create":"2026-04-23T11:18:10.1833948+04:00","gmt_modified":"2026-04-23T11:18:10.1833948+04:00"},{"id":31963,"source_id":"988bb985afa7b7add75e4415b239b6a6","target_id":"3ecc8f59e40237d675df5dc5f2ab9e3f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 106-158","gmt_create":"2026-04-23T11:18:10.1843971+04:00","gmt_modified":"2026-04-23T11:18:10.1843971+04:00"},{"id":31964,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"8ea516cf0275c865b6616ac02038e975","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#167-191","gmt_create":"2026-04-23T11:18:10.1863975+04:00","gmt_modified":"2026-04-23T11:18:10.1863975+04:00"},{"id":31965,"source_id":"988bb985afa7b7add75e4415b239b6a6","target_id":"8ea516cf0275c865b6616ac02038e975","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 167-191","gmt_create":"2026-04-23T11:18:10.1873973+04:00","gmt_modified":"2026-04-23T11:18:10.1873973+04:00"},{"id":31966,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"9e64b3a2336887764e7763504ce8f71e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#194-289","gmt_create":"2026-04-23T11:18:10.1873973+04:00","gmt_modified":"2026-04-23T11:18:10.1873973+04:00"},{"id":31967,"source_id":"988bb985afa7b7add75e4415b239b6a6","target_id":"9e64b3a2336887764e7763504ce8f71e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 194-289","gmt_create":"2026-04-23T11:18:10.1873973+04:00","gmt_modified":"2026-04-23T11:18:10.1873973+04:00"},{"id":31968,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"c0e776269c77e718b0080a3324a03252","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/vizd.sh#13-81","gmt_create":"2026-04-23T11:18:10.1883963+04:00","gmt_modified":"2026-04-23T11:18:10.1883963+04:00"},{"id":31969,"source_id":"295d36eeed1ab98565250d89d54cc36a","target_id":"c0e776269c77e718b0080a3324a03252","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-81","gmt_create":"2026-04-23T11:18:10.1883963+04:00","gmt_modified":"2026-04-23T11:18:10.1883963+04:00"},{"id":31970,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"723df9738dcc68a8f36385eac9a23b58","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#112-139","gmt_create":"2026-04-23T11:18:10.1883963+04:00","gmt_modified":"2026-04-23T11:18:10.1883963+04:00"},{"id":31971,"source_id":"988bb985afa7b7add75e4415b239b6a6","target_id":"723df9738dcc68a8f36385eac9a23b58","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 112-139","gmt_create":"2026-04-23T11:18:10.1883963+04:00","gmt_modified":"2026-04-23T11:18:10.1883963+04:00"},{"id":31972,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"66d4da5ca8d98cc1daac8e113015bc44","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#211-289","gmt_create":"2026-04-23T11:18:10.1893961+04:00","gmt_modified":"2026-04-23T11:18:10.1893961+04:00"},{"id":31973,"source_id":"988bb985afa7b7add75e4415b239b6a6","target_id":"66d4da5ca8d98cc1daac8e113015bc44","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 211-289","gmt_create":"2026-04-23T11:18:10.1893961+04:00","gmt_modified":"2026-04-23T11:18:10.1893961+04:00"},{"id":31974,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"02a59ce905e8fa73dd8ca7f928ca2193","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#118-136","gmt_create":"2026-04-23T11:18:10.1893961+04:00","gmt_modified":"2026-04-23T11:18:10.1893961+04:00"},{"id":31975,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"02a59ce905e8fa73dd8ca7f928ca2193","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 118-136","gmt_create":"2026-04-23T11:18:10.1909049+04:00","gmt_modified":"2026-04-23T11:18:10.1909049+04:00"},{"id":31976,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"11a4a0b249c7d67d935d0f973bbfbf9e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/vizd.sh#17-37","gmt_create":"2026-04-23T11:18:10.1911374+04:00","gmt_modified":"2026-04-23T11:18:10.1911374+04:00"},{"id":31977,"source_id":"295d36eeed1ab98565250d89d54cc36a","target_id":"11a4a0b249c7d67d935d0f973bbfbf9e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 17-37","gmt_create":"2026-04-23T11:18:10.1911374+04:00","gmt_modified":"2026-04-23T11:18:10.1911374+04:00"},{"id":31978,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"8d40a619d37d62a4174c9e4f961de6bc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/vizd.sh#62-72","gmt_create":"2026-04-23T11:18:10.1919151+04:00","gmt_modified":"2026-04-23T11:18:10.1919151+04:00"},{"id":31979,"source_id":"295d36eeed1ab98565250d89d54cc36a","target_id":"8d40a619d37d62a4174c9e4f961de6bc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 62-72","gmt_create":"2026-04-23T11:18:10.1919151+04:00","gmt_modified":"2026-04-23T11:18:10.1919151+04:00"},{"id":31980,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"f61e616c21dc286dc1ae08fad69742ae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/vizd.sh#74-81","gmt_create":"2026-04-23T11:18:10.1919151+04:00","gmt_modified":"2026-04-23T11:18:10.1919151+04:00"},{"id":31981,"source_id":"295d36eeed1ab98565250d89d54cc36a","target_id":"f61e616c21dc286dc1ae08fad69742ae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 74-81","gmt_create":"2026-04-23T11:18:10.1919151+04:00","gmt_modified":"2026-04-23T11:18:10.1919151+04:00"},{"id":31982,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"b577652662571d1a6efff44b8a3bedac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-lowmem#45-51","gmt_create":"2026-04-23T11:18:10.192918+04:00","gmt_modified":"2026-04-23T11:18:10.192918+04:00"},{"id":31983,"source_id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","target_id":"b577652662571d1a6efff44b8a3bedac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45-51","gmt_create":"2026-04-23T11:18:10.192918+04:00","gmt_modified":"2026-04-23T11:18:10.192918+04:00"},{"id":31984,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"27e17a8b16a2046c86431c4efb55c490","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/building.md#11-15","gmt_create":"2026-04-23T11:18:10.1939152+04:00","gmt_modified":"2026-04-23T11:18:10.1939152+04:00"},{"id":31985,"source_id":"33769e7ecefb7ac442a88bcc6e7fe7db","target_id":"27e17a8b16a2046c86431c4efb55c490","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-15","gmt_create":"2026-04-23T11:18:10.1939152+04:00","gmt_modified":"2026-04-23T11:18:10.1939152+04:00"},{"id":31986,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"f95c6fd9bbadfc95b3e751af0eedc850","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#73-85","gmt_create":"2026-04-23T11:18:10.1949131+04:00","gmt_modified":"2026-04-23T11:18:10.1949131+04:00"},{"id":31987,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"f95c6fd9bbadfc95b3e751af0eedc850","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 73-85","gmt_create":"2026-04-23T11:18:10.1949131+04:00","gmt_modified":"2026-04-23T11:18:10.1949131+04:00"},{"id":31988,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"d7563de88c1c2455fbab29fc8bf59151","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_testnet.ini#69-73","gmt_create":"2026-04-23T11:18:10.1949131+04:00","gmt_modified":"2026-04-23T11:18:10.1949131+04:00"},{"id":31989,"source_id":"c6fa8e83f2cf8a08be2de60d97f4a9f8","target_id":"d7563de88c1c2455fbab29fc8bf59151","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 69-73","gmt_create":"2026-04-23T11:18:10.1949131+04:00","gmt_modified":"2026-04-23T11:18:10.1949131+04:00"},{"id":31990,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"66a1852e5ddbbf1c1e3623904184dd7f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_witness.ini#72-84","gmt_create":"2026-04-23T11:18:10.1959128+04:00","gmt_modified":"2026-04-23T11:18:10.1959128+04:00"},{"id":31991,"source_id":"475c2f17a00cd4de82dd54bf0a8126ac","target_id":"66a1852e5ddbbf1c1e3623904184dd7f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 72-84","gmt_create":"2026-04-23T11:18:10.1959128+04:00","gmt_modified":"2026-04-23T11:18:10.1959128+04:00"},{"id":31992,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"fac32e0593f6022cefafd878acb27805","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#1-16","gmt_create":"2026-04-23T11:18:10.1959128+04:00","gmt_modified":"2026-04-23T11:18:10.1959128+04:00"},{"id":31993,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"fac32e0593f6022cefafd878acb27805","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-16","gmt_create":"2026-04-23T11:18:10.1959128+04:00","gmt_modified":"2026-04-23T11:18:10.1959128+04:00"},{"id":31994,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"f230a2eda062b0bb4b25752269697907","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_testnet.ini#1-11","gmt_create":"2026-04-23T11:18:10.1959128+04:00","gmt_modified":"2026-04-23T11:18:10.1959128+04:00"},{"id":31995,"source_id":"c6fa8e83f2cf8a08be2de60d97f4a9f8","target_id":"f230a2eda062b0bb4b25752269697907","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-11","gmt_create":"2026-04-23T11:18:10.196919+04:00","gmt_modified":"2026-04-23T11:18:10.196919+04:00"},{"id":31996,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"5b0c578c897b0e81a8472eb992c1948c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_witness.ini#1-15","gmt_create":"2026-04-23T11:18:10.196919+04:00","gmt_modified":"2026-04-23T11:18:10.196919+04:00"},{"id":31997,"source_id":"475c2f17a00cd4de82dd54bf0a8126ac","target_id":"5b0c578c897b0e81a8472eb992c1948c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2026-04-23T11:18:10.196919+04:00","gmt_modified":"2026-04-23T11:18:10.196919+04:00"},{"id":31998,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"6ee3005060680b6efd42fd067cd1b6fa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#54-56","gmt_create":"2026-04-23T11:18:10.196919+04:00","gmt_modified":"2026-04-23T11:18:10.196919+04:00"},{"id":31999,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"6ee3005060680b6efd42fd067cd1b6fa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 54-56","gmt_create":"2026-04-23T11:18:10.196919+04:00","gmt_modified":"2026-04-23T11:18:10.196919+04:00"},{"id":32000,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"2a51e3bcda512928b2c175f069b49da1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#105-106","gmt_create":"2026-04-23T11:18:10.1979134+04:00","gmt_modified":"2026-04-23T11:18:10.1979134+04:00"},{"id":32001,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"2a51e3bcda512928b2c175f069b49da1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 105-106","gmt_create":"2026-04-23T11:18:10.1979134+04:00","gmt_modified":"2026-04-23T11:18:10.1979134+04:00"},{"id":32002,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"e0fb8983bc6bcc17a8c8c5ad398307ba","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/plugin.md#14-18","gmt_create":"2026-04-23T11:18:10.1989135+04:00","gmt_modified":"2026-04-23T11:18:10.1989135+04:00"},{"id":32003,"source_id":"3d04b0b0f0eb354aa6f47833f6b3b993","target_id":"e0fb8983bc6bcc17a8c8c5ad398307ba","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-18","gmt_create":"2026-04-23T11:18:10.1999146+04:00","gmt_modified":"2026-04-23T11:18:10.1999146+04:00"},{"id":32004,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"dc45b878fea55940e84795c898d534e2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#17-72","gmt_create":"2026-04-23T11:18:10.1999146+04:00","gmt_modified":"2026-04-23T11:18:10.1999146+04:00"},{"id":32005,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"dc45b878fea55940e84795c898d534e2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 17-72","gmt_create":"2026-04-23T11:18:10.1999146+04:00","gmt_modified":"2026-04-23T11:18:10.1999146+04:00"},{"id":32006,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"9b21fb63c2c0f7d75fdcc009d4ec9797","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#49-67","gmt_create":"2026-04-23T11:18:10.1999146+04:00","gmt_modified":"2026-04-23T11:18:10.1999146+04:00"},{"id":32007,"source_id":"16a4e2bff0288ec68e9817239c754aed","target_id":"9b21fb63c2c0f7d75fdcc009d4ec9797","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 49-67","gmt_create":"2026-04-23T11:18:10.1999146+04:00","gmt_modified":"2026-04-23T11:18:10.1999146+04:00"},{"id":32008,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"0c2dc00bd927808ce5deb1882d22281e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2974-2983","gmt_create":"2026-04-23T11:18:10.2014205+04:00","gmt_modified":"2026-04-23T11:18:10.2014205+04:00"},{"id":32009,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"0c2dc00bd927808ce5deb1882d22281e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2974-2983","gmt_create":"2026-04-23T11:18:10.2169904+04:00","gmt_modified":"2026-04-23T11:18:10.2169904+04:00"},{"id":32010,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"b605e7c4ef39a7dcf4decc6078a67230","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#3044-3050","gmt_create":"2026-04-23T11:18:10.2179489+04:00","gmt_modified":"2026-04-23T11:18:10.2179489+04:00"},{"id":32011,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"b605e7c4ef39a7dcf4decc6078a67230","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3044-3050","gmt_create":"2026-04-23T11:18:10.2179489+04:00","gmt_modified":"2026-04-23T11:18:10.2179489+04:00"},{"id":32012,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"585169926520ae8df39c3a059f57c8d0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#3070-3090","gmt_create":"2026-04-23T11:18:10.2179489+04:00","gmt_modified":"2026-04-23T11:18:10.2179489+04:00"},{"id":32013,"source_id":"418562d4716f53d3060f183ffa64036c","target_id":"585169926520ae8df39c3a059f57c8d0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3070-3090","gmt_create":"2026-04-23T11:18:10.2179489+04:00","gmt_modified":"2026-04-23T11:18:10.2179489+04:00"},{"id":32014,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"e6f25269916d6af7894cc98681fba58a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#352-355","gmt_create":"2026-04-23T11:18:10.2189476+04:00","gmt_modified":"2026-04-23T11:18:10.2189476+04:00"},{"id":32015,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"e6f25269916d6af7894cc98681fba58a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 352-355","gmt_create":"2026-04-23T11:18:10.2189476+04:00","gmt_modified":"2026-04-23T11:18:10.2189476+04:00"},{"id":32016,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"8cef3542a1f8beb59e711d1019148801","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/appbase/application.cpp#298-300","gmt_create":"2026-04-23T11:18:10.2189476+04:00","gmt_modified":"2026-04-23T11:18:10.2189476+04:00"},{"id":32017,"source_id":"1c1b4b5872b3e0fa0bef4de9fb558675","target_id":"8cef3542a1f8beb59e711d1019148801","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 298-300","gmt_create":"2026-04-23T11:18:10.2189476+04:00","gmt_modified":"2026-04-23T11:18:10.2189476+04:00"},{"id":32018,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"9e7faefdb8e8ae15d81ef925ba52ede7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#1-365","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32019,"source_id":"37fb39091ee4b69fe1e682497ff46b55","target_id":"9e7faefdb8e8ae15d81ef925ba52ede7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-365","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32020,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"b3d3f4e10ccf640de58c527e09a7f0ea","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-production#74-87","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32021,"source_id":"48369ee5882470d563a4a3760712465a","target_id":"b3d3f4e10ccf640de58c527e09a7f0ea","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 74-87","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32022,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"ff12cf82125b232102ae8ec380b68997","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-testnet#75-87","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32023,"source_id":"5c83db7209d29d47467923bf09fbb420","target_id":"ff12cf82125b232102ae8ec380b68997","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 75-87","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32024,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"3f3c0b55c7eafaf833e73e62b702d574","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-lowmem#68-81","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32025,"source_id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","target_id":"3f3c0b55c7eafaf833e73e62b702d574","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 68-81","gmt_create":"2026-04-23T11:18:10.2199492+04:00","gmt_modified":"2026-04-23T11:18:10.2199492+04:00"},{"id":32026,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"8e0b63e0554f6ef9ba9046c1e9e43a45","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-production#46-52","gmt_create":"2026-04-23T11:18:10.2209495+04:00","gmt_modified":"2026-04-23T11:18:10.2209495+04:00"},{"id":32027,"source_id":"48369ee5882470d563a4a3760712465a","target_id":"8e0b63e0554f6ef9ba9046c1e9e43a45","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 46-52","gmt_create":"2026-04-23T11:18:10.2209495+04:00","gmt_modified":"2026-04-23T11:18:10.2209495+04:00"},{"id":32028,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"3cff82760ed755da0f3b8ef754b949b7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/docker/Dockerfile-testnet#46-52","gmt_create":"2026-04-23T11:18:10.2209495+04:00","gmt_modified":"2026-04-23T11:18:10.2209495+04:00"},{"id":32029,"source_id":"5c83db7209d29d47467923bf09fbb420","target_id":"3cff82760ed755da0f3b8ef754b949b7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 46-52","gmt_create":"2026-04-23T11:18:10.2209495+04:00","gmt_modified":"2026-04-23T11:18:10.2209495+04:00"},{"id":32030,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"7d4fe637b747b179eb9a0fed7f670bf8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/testnet.md#21-37","gmt_create":"2026-04-23T11:18:10.2225603+04:00","gmt_modified":"2026-04-23T11:18:10.2225603+04:00"},{"id":32031,"source_id":"2422c587506c0b05e97687067ae1d1cf","target_id":"7d4fe637b747b179eb9a0fed7f670bf8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 21-37","gmt_create":"2026-04-23T11:18:10.2225603+04:00","gmt_modified":"2026-04-23T11:18:10.2225603+04:00"},{"id":32032,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"ddbee7a909c340a5ede92adff06a411b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/vizd.sh#44-53","gmt_create":"2026-04-23T11:18:10.2234598+04:00","gmt_modified":"2026-04-23T11:18:10.2234598+04:00"},{"id":32033,"source_id":"295d36eeed1ab98565250d89d54cc36a","target_id":"ddbee7a909c340a5ede92adff06a411b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 44-53","gmt_create":"2026-04-23T11:18:10.2234598+04:00","gmt_modified":"2026-04-23T11:18:10.2234598+04:00"},{"id":32034,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"b33b3396bd5cb46ada1e5bf1c2e4bae9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#125-130","gmt_create":"2026-04-23T11:18:10.2244611+04:00","gmt_modified":"2026-04-23T11:18:10.2244611+04:00"},{"id":32035,"source_id":"571d673b1b49568d584e159036820875","target_id":"b33b3396bd5cb46ada1e5bf1c2e4bae9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 125-130","gmt_create":"2026-04-23T11:18:10.2244611+04:00","gmt_modified":"2026-04-23T11:18:10.2244611+04:00"},{"id":32036,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"ad929e01065409fab84d7e5e33b73eb3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config_testnet.hpp#57-59","gmt_create":"2026-04-23T11:18:10.2244611+04:00","gmt_modified":"2026-04-23T11:18:10.2244611+04:00"},{"id":32037,"source_id":"3a1c05308902dc684e85898a790b0e07","target_id":"ad929e01065409fab84d7e5e33b73eb3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 57-59","gmt_create":"2026-04-23T11:18:10.2244611+04:00","gmt_modified":"2026-04-23T11:18:10.2244611+04:00"},{"id":32038,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"4c4362032489436035a502ce6ad07ea6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config.hpp#57-59","gmt_create":"2026-04-23T11:18:10.2244611+04:00","gmt_modified":"2026-04-23T11:18:10.2244611+04:00"},{"id":32039,"source_id":"f5e2709c934c90bed9814ff547a6da8e","target_id":"4c4362032489436035a502ce6ad07ea6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 57-59","gmt_create":"2026-04-23T11:18:10.2244611+04:00","gmt_modified":"2026-04-23T11:18:10.2244611+04:00"},{"id":32040,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"9a05c42951266743e782ce0775e5bd42","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-04-23T11:18:36.4265185+04:00","gmt_modified":"2026-04-23T11:18:36.4265185+04:00"},{"id":32041,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"5a775a89bb87e70f60760941848117e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-23T11:18:36.4265185+04:00","gmt_modified":"2026-04-23T11:18:36.4265185+04:00"},{"id":32042,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"de06c0b429208d005ec4e2b38a7b6678","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/chain_object_types.hpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32043,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"d1302454310309381c9368910649870f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/chain_objects.hpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32044,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"1e6f9e0c4241a3a53748ca848749cd9c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32045,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"4ec5dd7f21bde7651b20873b01f868c9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32046,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a636cebf0fd48c268641a5544c551752","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/block_log.hpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32047,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"aa1ac1734ffa0ca1fb1ec42168f601e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/block_log.cpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32048,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"d136a3c86c240fca63a64546b4891416","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/dlt_block_log.hpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32049,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"71cbf21e4bf2a2b603ad1183369ec65f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32050,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"58dab1fa0c82c6d488c1c385549bf65f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/account_object.hpp","gmt_create":"2026-04-23T11:18:36.427523+04:00","gmt_modified":"2026-04-23T11:18:36.427523+04:00"},{"id":32051,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"f2e0ab4a21a05fb2b13f0fa0f497f4ae","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/witness_objects.hpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32052,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"705e8221610923620972eca797fa6db6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/committee_objects.hpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32053,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"6448b32a9d85a70c1c5dece30706f077","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/transaction_object.hpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32054,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"c70e20aa89698498e7c8e639e9dda898","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/evaluator.hpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32055,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"c7f289a817d1cf2f2edb643d7c388364","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/chain_evaluator.hpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32056,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"f46b9fad5bc65772c0ace22913bdad84","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/operation_notification.hpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32057,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"d478cca230f790bc8f1573f56a55a987","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/plugin.cpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32058,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32059,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32060,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"571d673b1b49568d584e159036820875","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-23T11:18:36.4285236+04:00","gmt_modified":"2026-04-23T11:18:36.4285236+04:00"},{"id":32061,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"2a488975038d8060fc2bec6672254f8e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/log/console_appender.cpp","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32062,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"988bb985afa7b7add75e4415b239b6a6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: programs/vizd/main.cpp","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32063,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"16a19aa5bcebe9921d90618856c818f2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#36-561","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32064,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"beb7270033f72ea030a658ed50661db0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#206-456","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32065,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"3b2b487096be43e59f5232729909dca6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#53-125","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32066,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"8f12f59f3a806a27f415ac33df1ff302","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#1-245","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32067,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"1a28848df3aef58b055a3cbae076ffb5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/block_log.hpp#1-200","gmt_create":"2026-04-23T11:18:36.4295224+04:00","gmt_modified":"2026-04-23T11:18:36.4295224+04:00"},{"id":32068,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"50e79df334a3bb7b66eda6917902a0d5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/block_log.cpp#230-302","gmt_create":"2026-04-23T11:18:36.4305228+04:00","gmt_modified":"2026-04-23T11:18:36.4305228+04:00"},{"id":32069,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"f95834333ba4c5190b2391b54acf946f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#35-75","gmt_create":"2026-04-23T11:18:36.4305228+04:00","gmt_modified":"2026-04-23T11:18:36.4305228+04:00"},{"id":32070,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a29442fd9e1534478ed2c7ff68c012e3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#161-382","gmt_create":"2026-04-23T11:18:36.4305228+04:00","gmt_modified":"2026-04-23T11:18:36.4305228+04:00"},{"id":32071,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"87d3f7f5e4b3b275a1f5c62a722a0c7b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_object_types.hpp#44-146","gmt_create":"2026-04-23T11:18:36.4305228+04:00","gmt_modified":"2026-04-23T11:18:36.4305228+04:00"},{"id":32072,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"027e3be7967b0260b348fb2f05d14abd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_objects.hpp#20-226","gmt_create":"2026-04-23T11:18:36.4305228+04:00","gmt_modified":"2026-04-23T11:18:36.4305228+04:00"},{"id":32073,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"9532c9bc52ca2d2988bed522e150643c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/account_object.hpp#20-143","gmt_create":"2026-04-23T11:18:36.4305228+04:00","gmt_modified":"2026-04-23T11:18:36.4305228+04:00"},{"id":32074,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"fe18bd4856c81bb8a8a870b01bcb9097","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/witness_objects.hpp#27-132","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32075,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"1e6ec0f9484d9bd2c1919f9c52c43a1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/committee_objects.hpp#15-47","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32076,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"66c076e1ffb51e2df0f99d765a976edf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/transaction_object.hpp#19-56","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32077,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"50f895a6649a0d8198a41a111d1d585a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/evaluator.hpp#11-45","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32078,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"fc3df8af7443986c214f3999cd7ce457","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_evaluator.hpp#14-79","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32079,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"67fbfc5e36027ec77b25d6c86003a38f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/operation_notification.hpp#11-26","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32080,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"462e2bcbab867587a9b198b4f6fb8299","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#360-432","gmt_create":"2026-04-23T11:18:36.4315218+04:00","gmt_modified":"2026-04-23T11:18:36.4315218+04:00"},{"id":32081,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"ef245c2d66c3fb194a0aa1c9dd0f9df4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#980-1200","gmt_create":"2026-04-23T11:18:36.432523+04:00","gmt_modified":"2026-04-23T11:18:36.432523+04:00"},{"id":32082,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"6eecf475e7edebd6f7012094ec32f048","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/log/console_appender.cpp#132-154","gmt_create":"2026-04-23T11:18:36.432523+04:00","gmt_modified":"2026-04-23T11:18:36.432523+04:00"},{"id":32083,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"e57df16c7fa45b4bb9cbc87c046ef61f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#234-253","gmt_create":"2026-04-23T11:18:36.432523+04:00","gmt_modified":"2026-04-23T11:18:36.432523+04:00"},{"id":32084,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"4d11d9a124ba78c619ab8972eb02200d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#56-110","gmt_create":"2026-04-23T11:18:36.432523+04:00","gmt_modified":"2026-04-23T11:18:36.432523+04:00"},{"id":32085,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a8155a4afab33387a822f670e6673f99","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#206-350","gmt_create":"2026-04-23T11:18:36.432523+04:00","gmt_modified":"2026-04-23T11:18:36.432523+04:00"},{"id":32086,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"3424ea448861e3b0a7e659d0fa397328","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#800-925","gmt_create":"2026-04-23T11:18:36.4335224+04:00","gmt_modified":"2026-04-23T11:18:36.4335224+04:00"},{"id":32087,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"304c7132f9cc0ceeaedaf20752d64d3e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#33-90","gmt_create":"2026-04-23T11:18:36.4335224+04:00","gmt_modified":"2026-04-23T11:18:36.4335224+04:00"},{"id":32088,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"2440453ed344e775de034d6fceab96fa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/block_log.cpp#253-257","gmt_create":"2026-04-23T11:18:36.4335224+04:00","gmt_modified":"2026-04-23T11:18:36.4335224+04:00"},{"id":32089,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"506b638fbd5c12dacae95b6b6d5e81d3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#211-230","gmt_create":"2026-04-23T11:18:36.4335224+04:00","gmt_modified":"2026-04-23T11:18:36.4335224+04:00"},{"id":32090,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"7d502c275227ff6a0dad8a6b2cbb0ea2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#168-210","gmt_create":"2026-04-23T11:18:36.4335224+04:00","gmt_modified":"2026-04-23T11:18:36.4335224+04:00"},{"id":32091,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"066f963089585bde1998d3a7cf600f90","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#111-558","gmt_create":"2026-04-23T11:18:36.4345222+04:00","gmt_modified":"2026-04-23T11:18:36.4345222+04:00"},{"id":32092,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"099a7ddd20bd6626a898e0cf7ddbcf93","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#47-90","gmt_create":"2026-04-23T11:18:36.4355232+04:00","gmt_modified":"2026-04-23T11:18:36.4355232+04:00"},{"id":32093,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"7caa4d3b24ca280339e15eea6b2ea386","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/block_log.cpp#134-194","gmt_create":"2026-04-23T11:18:36.4355232+04:00","gmt_modified":"2026-04-23T11:18:36.4355232+04:00"},{"id":32094,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"0d6c107155ed183ee5ba1d947aa60b6f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/block_log.cpp#195-227","gmt_create":"2026-04-23T11:18:36.4355232+04:00","gmt_modified":"2026-04-23T11:18:36.4355232+04:00"},{"id":32095,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"07077c35993e2bcc1e6ad243210658c5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/block_log.cpp#270-285","gmt_create":"2026-04-23T11:18:36.4355232+04:00","gmt_modified":"2026-04-23T11:18:36.4355232+04:00"},{"id":32096,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"85aba7789e2ca1fe6fcb650fb9a272e5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#161-230","gmt_create":"2026-04-23T11:18:36.4365237+04:00","gmt_modified":"2026-04-23T11:18:36.4365237+04:00"},{"id":32097,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"9071f8d009e4bdc3aabd93156adf0ae5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#356-411","gmt_create":"2026-04-23T11:18:36.4365237+04:00","gmt_modified":"2026-04-23T11:18:36.4365237+04:00"},{"id":32098,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"4a3b4526826da2c57a82aebb48c143a1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_objects.hpp#20-141","gmt_create":"2026-04-23T11:18:36.4365237+04:00","gmt_modified":"2026-04-23T11:18:36.4365237+04:00"},{"id":32099,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"202fe515b0495ce4d9e3461872b5a7a5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#252-286","gmt_create":"2026-04-23T11:18:36.4375809+04:00","gmt_modified":"2026-04-23T11:18:36.4375809+04:00"},{"id":32100,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"4dcf2a8108140e2a4f9394a44a2f7ffa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1158-1198","gmt_create":"2026-04-23T11:18:36.4385815+04:00","gmt_modified":"2026-04-23T11:18:36.4385815+04:00"},{"id":32101,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"9c4238b8e0cf99b348e22120eac41904","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#364-432","gmt_create":"2026-04-23T11:18:36.4385815+04:00","gmt_modified":"2026-04-23T11:18:36.4385815+04:00"},{"id":32102,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"0f8940d10bd3fa25101b8055831b577b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#434-491","gmt_create":"2026-04-23T11:18:36.4395812+04:00","gmt_modified":"2026-04-23T11:18:36.4395812+04:00"},{"id":32103,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a3f311781ebc595d7e91829970674d05","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#281-324","gmt_create":"2026-04-23T11:18:36.4395812+04:00","gmt_modified":"2026-04-23T11:18:36.4395812+04:00"},{"id":32104,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"1512721e67f0287c71ea498a2bbd1d29","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1000-1200","gmt_create":"2026-04-23T11:18:36.4395812+04:00","gmt_modified":"2026-04-23T11:18:36.4395812+04:00"},{"id":32105,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"ba755b39604252e4cb43e1706e777543","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#57-64","gmt_create":"2026-04-23T11:18:36.4395812+04:00","gmt_modified":"2026-04-23T11:18:36.4395812+04:00"},{"id":32106,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"7d02365c3f2f3efaf9155d970698aec7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#3985-4051","gmt_create":"2026-04-23T11:18:36.4395812+04:00","gmt_modified":"2026-04-23T11:18:36.4395812+04:00"},{"id":32107,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"c77aaa56525d9c318664af3ff4ce6135","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#391-417","gmt_create":"2026-04-23T11:18:36.4405807+04:00","gmt_modified":"2026-04-23T11:18:36.4405807+04:00"},{"id":32108,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"615af9a2f6b8b4df327446e4e8bcc1ae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1014-1032","gmt_create":"2026-04-23T11:18:36.4405807+04:00","gmt_modified":"2026-04-23T11:18:36.4405807+04:00"},{"id":32109,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a3a37e841fb1ecbb2442040ac90e3198","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#100-113","gmt_create":"2026-04-23T11:18:36.4405807+04:00","gmt_modified":"2026-04-23T11:18:36.4405807+04:00"},{"id":32110,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"d3151694a1313762475ee616a2a3cfe0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#58-113","gmt_create":"2026-04-23T11:18:36.4405807+04:00","gmt_modified":"2026-04-23T11:18:36.4405807+04:00"},{"id":32111,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"821eb1ee66481f4569602f236fd2444b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1018-1032","gmt_create":"2026-04-23T11:18:36.4415808+04:00","gmt_modified":"2026-04-23T11:18:36.4415808+04:00"},{"id":32112,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"32d5e27edefa46b873fef98c512612b4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#286","gmt_create":"2026-04-23T11:18:36.4415808+04:00","gmt_modified":"2026-04-23T11:18:36.4415808+04:00"},{"id":32113,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"43d8be46f85d6fc08ba611213afd35db","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3446-3456","gmt_create":"2026-04-23T11:18:36.4415808+04:00","gmt_modified":"2026-04-23T11:18:36.4415808+04:00"},{"id":32114,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"f9e256558b0a310a3aebb8b9ebb0a744","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1770-1771","gmt_create":"2026-04-23T11:18:36.4415808+04:00","gmt_modified":"2026-04-23T11:18:36.4415808+04:00"},{"id":32115,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"93dcb94717b1b034e4d9565c437aad1b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#2428-2444","gmt_create":"2026-04-23T11:18:36.4425809+04:00","gmt_modified":"2026-04-23T11:18:36.4425809+04:00"},{"id":32116,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"af05147b54f6ad328cd4b288e3985511","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3276-3280","gmt_create":"2026-04-23T11:18:36.4425809+04:00","gmt_modified":"2026-04-23T11:18:36.4425809+04:00"},{"id":32117,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"22e052dd8ab0fdf27afc32b483a37ff7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#5295-5303","gmt_create":"2026-04-23T11:18:36.4425809+04:00","gmt_modified":"2026-04-23T11:18:36.4425809+04:00"},{"id":32118,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"79d9f0965fb73ee6e499532bdd2c72c3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#58-121","gmt_create":"2026-04-23T11:18:36.4425809+04:00","gmt_modified":"2026-04-23T11:18:36.4425809+04:00"},{"id":32119,"source_id":"d478cca230f790bc8f1573f56a55a987","target_id":"79d9f0965fb73ee6e499532bdd2c72c3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 58-121","gmt_create":"2026-04-23T11:18:36.4425809+04:00","gmt_modified":"2026-04-23T11:18:36.4425809+04:00"},{"id":32120,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a655f35ca12d3877c0294e186b5a5f5d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#1-561","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32121,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"0fd95d3fb8e19f476ee368c9acadc148","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1-200","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32122,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"33b697d7ffcdd3aa1d3e2c8f8e5fca15","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#1-125","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32123,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"3736c5a5a1ddf339e5556de0656bfcdf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#1-75","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32124,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"00eee107c9ba823018067fbd4827abdc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_object_types.hpp#1-246","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32125,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"7032d2c44cd05c33be8de43f6514c7d6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_objects.hpp#1-226","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32126,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"39c686d025e553f6bad7d2fec4a739ae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/account_object.hpp#1-565","gmt_create":"2026-04-23T11:18:36.4435817+04:00","gmt_modified":"2026-04-23T11:18:36.4435817+04:00"},{"id":32127,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"03ff87c3dad6c3f5807e0006d9b49e7b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/witness_objects.hpp#1-313","gmt_create":"2026-04-23T11:18:36.4445815+04:00","gmt_modified":"2026-04-23T11:18:36.4445815+04:00"},{"id":32128,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"3147d19a66720276e968aa6544a4292b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/committee_objects.hpp#1-137","gmt_create":"2026-04-23T11:18:36.4445815+04:00","gmt_modified":"2026-04-23T11:18:36.4445815+04:00"},{"id":32129,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"0bf9b2bbe6504edfbc3f8394b947929b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/transaction_object.hpp#1-56","gmt_create":"2026-04-23T11:18:36.4445815+04:00","gmt_modified":"2026-04-23T11:18:36.4445815+04:00"},{"id":32130,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"3efe898414dcae3fffd2e9c1c0679311","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/evaluator.hpp#1-62","gmt_create":"2026-04-23T11:18:36.4445815+04:00","gmt_modified":"2026-04-23T11:18:36.4445815+04:00"},{"id":32131,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"48ad93138afd2c83193d808d04cb5573","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_evaluator.hpp#1-80","gmt_create":"2026-04-23T11:18:36.454601+04:00","gmt_modified":"2026-04-23T11:18:36.454601+04:00"},{"id":32132,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"b9b4e1e0a88a6640c5e8a94801dbff57","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/operation_notification.hpp#1-27","gmt_create":"2026-04-23T11:18:36.4556033+04:00","gmt_modified":"2026-04-23T11:18:36.4556033+04:00"},{"id":32133,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"ed272eaaa4bd0adbed874f87308f6c81","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#1-526","gmt_create":"2026-04-23T11:18:36.4556033+04:00","gmt_modified":"2026-04-23T11:18:36.4556033+04:00"},{"id":32134,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"973b0384238fe7370822559425a96f5b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1-1976","gmt_create":"2026-04-23T11:18:36.4556033+04:00","gmt_modified":"2026-04-23T11:18:36.4556033+04:00"},{"id":32135,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"3fd5da634ff647b8e47fa2d9f2b10947","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#232-248","gmt_create":"2026-04-23T11:18:36.4556033+04:00","gmt_modified":"2026-04-23T11:18:36.4556033+04:00"},{"id":32136,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"abf26b07298df44b8ad0f82418a28240","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#270-350","gmt_create":"2026-04-23T11:18:36.4566004+04:00","gmt_modified":"2026-04-23T11:18:36.4566004+04:00"},{"id":32137,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"ff2523d2df1db0e5eacb85bdae3f2688","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#368-430","gmt_create":"2026-04-23T11:18:36.4566004+04:00","gmt_modified":"2026-04-23T11:18:36.4566004+04:00"},{"id":32138,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"68b6c0503834784566bd470237e6fbbb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#832-844","gmt_create":"2026-04-23T11:18:36.4566004+04:00","gmt_modified":"2026-04-23T11:18:36.4566004+04:00"},{"id":32139,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"b15e11d3471309dbff74358ab3b597bb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#371-380","gmt_create":"2026-04-23T11:18:36.4566004+04:00","gmt_modified":"2026-04-23T11:18:36.4566004+04:00"},{"id":32140,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"532edf497ce380a6eff5d3fe76792a3c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1018-1020","gmt_create":"2026-04-23T11:18:36.4566004+04:00","gmt_modified":"2026-04-23T11:18:36.4566004+04:00"},{"id":32141,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"57dca27aac4631b2a09561ab190bd578","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#936-970","gmt_create":"2026-04-23T11:18:36.4576731+04:00","gmt_modified":"2026-04-23T11:18:36.4576731+04:00"},{"id":32142,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"98a4db8754b7f187508af46bdd8019c2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#136-169","gmt_create":"2026-04-23T11:18:36.4576731+04:00","gmt_modified":"2026-04-23T11:18:36.4576731+04:00"},{"id":32143,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"4227ba2bea4520b3ea3ac8c104d6634e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#92-124","gmt_create":"2026-04-23T11:18:36.4576731+04:00","gmt_modified":"2026-04-23T11:18:36.4576731+04:00"},{"id":32144,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"5e74ba9791165e9a27dc768aced92cb8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#62-64","gmt_create":"2026-04-23T11:18:36.4586728+04:00","gmt_modified":"2026-04-23T11:18:36.4586728+04:00"},{"id":32145,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"03795feb7ae28b007d7a6e71efd6e49b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#234-236","gmt_create":"2026-04-23T11:18:36.4586728+04:00","gmt_modified":"2026-04-23T11:18:36.4586728+04:00"},{"id":32146,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a62449c820dada6775c37fa7b8a9450b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#50-53","gmt_create":"2026-04-23T11:18:36.4586728+04:00","gmt_modified":"2026-04-23T11:18:36.4586728+04:00"},{"id":32220,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"9a735450-ec59-49ef-9d42-609483ce0279","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9032efbf-122b-4ac0-9b47-6531642636d2 -\u003e 9a735450-ec59-49ef-9d42-609483ce0279","gmt_create":"2026-04-23T11:21:41.6274385+04:00","gmt_modified":"2026-04-23T11:21:41.6274385+04:00"},{"id":32221,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"418196e8-0815-496e-b69d-8458e1f3cfef","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9032efbf-122b-4ac0-9b47-6531642636d2 -\u003e 418196e8-0815-496e-b69d-8458e1f3cfef","gmt_create":"2026-04-23T11:21:41.6290145+04:00","gmt_modified":"2026-04-23T11:21:41.6290145+04:00"},{"id":32222,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"898244dc-5466-4c8c-abac-5a7f753e3b91","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9032efbf-122b-4ac0-9b47-6531642636d2 -\u003e 898244dc-5466-4c8c-abac-5a7f753e3b91","gmt_create":"2026-04-23T11:21:41.6290145+04:00","gmt_modified":"2026-04-23T11:21:41.6290145+04:00"},{"id":32224,"source_id":"11a3f0cc-0550-4d22-84d7-48826fa26abe","target_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 11a3f0cc-0550-4d22-84d7-48826fa26abe -\u003e 813fff1c-5fce-4cd6-83ae-53e339f99daf","gmt_create":"2026-04-23T11:21:41.6309482+04:00","gmt_modified":"2026-04-23T11:21:41.6309482+04:00"},{"id":32225,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e 67bce420-e9f6-4b70-b83a-d19411a2f09e","gmt_create":"2026-04-23T11:21:41.6319482+04:00","gmt_modified":"2026-04-23T11:21:41.6319482+04:00"},{"id":32226,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"c7648a28-5402-4b7e-8491-fb811d7b2518","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e c7648a28-5402-4b7e-8491-fb811d7b2518","gmt_create":"2026-04-23T11:21:41.6329559+04:00","gmt_modified":"2026-04-23T11:21:41.6329559+04:00"},{"id":32227,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"995e608b-33c4-4619-ad28-cdb33c1fee75","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e 995e608b-33c4-4619-ad28-cdb33c1fee75","gmt_create":"2026-04-23T11:21:41.6329559+04:00","gmt_modified":"2026-04-23T11:21:41.6329559+04:00"},{"id":32228,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"656aa75c-bf21-48c1-b44c-4dcab2afee14","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e 656aa75c-bf21-48c1-b44c-4dcab2afee14","gmt_create":"2026-04-23T11:21:41.6329559+04:00","gmt_modified":"2026-04-23T11:21:41.6329559+04:00"},{"id":32229,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"6852cf61-cd7b-42c3-95c0-829c87723676","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e 6852cf61-cd7b-42c3-95c0-829c87723676","gmt_create":"2026-04-23T11:21:41.6329559+04:00","gmt_modified":"2026-04-23T11:21:41.6329559+04:00"},{"id":32230,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"a8c70538-5565-4aff-b524-86870480084b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e a8c70538-5565-4aff-b524-86870480084b","gmt_create":"2026-04-23T11:21:41.6329559+04:00","gmt_modified":"2026-04-23T11:21:41.6329559+04:00"},{"id":32231,"source_id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","target_id":"297ae328-3c35-473b-b605-27f95b1a62f3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 813fff1c-5fce-4cd6-83ae-53e339f99daf -\u003e 297ae328-3c35-473b-b605-27f95b1a62f3","gmt_create":"2026-04-23T11:21:41.6339501+04:00","gmt_modified":"2026-04-23T11:21:41.6339501+04:00"},{"id":32250,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"79ab2542b5c96058f09208f1cd2cd6fd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 72-573","gmt_create":"2026-04-23T11:46:31.2627681+04:00","gmt_modified":"2026-04-23T11:46:31.2627681+04:00"},{"id":32256,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"05b62d2805cb3a311c10475a638f22d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 500-560","gmt_create":"2026-04-23T11:46:31.2662711+04:00","gmt_modified":"2026-04-23T11:46:31.2662711+04:00"},{"id":32258,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"cf043d8e90537efdf39b7880e8959da4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5281-5286","gmt_create":"2026-04-23T11:46:31.2672413+04:00","gmt_modified":"2026-04-23T11:46:31.2672413+04:00"},{"id":32267,"source_id":"32cf30b2e9094b9693ab53917b0a2eb3","target_id":"fed4d7f6216f50b46ffc2f059db54915","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-106","gmt_create":"2026-04-23T11:46:31.2713523+04:00","gmt_modified":"2026-04-23T11:46:31.2713523+04:00"},{"id":32269,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"df5f1767872da5ad020edc60475ab9b9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-742","gmt_create":"2026-04-23T11:46:31.2719619+04:00","gmt_modified":"2026-04-23T11:46:31.2719619+04:00"},{"id":32271,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"b32ad9e7a8c85cae6d0a130d7399ace9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 182-304","gmt_create":"2026-04-23T11:46:31.2724671+04:00","gmt_modified":"2026-04-23T11:46:31.2724671+04:00"},{"id":32273,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"be6d9b8a21e11f9cb8bac726d2b15873","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 780-790","gmt_create":"2026-04-23T11:46:31.274874+04:00","gmt_modified":"2026-04-23T11:46:31.274874+04:00"},{"id":32281,"source_id":"03ba9497d2e4b912db997e43e1b9c653","target_id":"395304bf3b17e833fe3418a2227e8d20","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 310-354","gmt_create":"2026-04-23T11:46:31.2825525+04:00","gmt_modified":"2026-04-23T11:46:31.2825525+04:00"},{"id":32283,"source_id":"f5ad8f25a7e1c10d29fdcfd7b3eadb75","target_id":"bd2df0ef0f3a3569038ff93abf7f049a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30-49","gmt_create":"2026-04-23T11:46:31.2836686+04:00","gmt_modified":"2026-04-23T11:46:31.2836686+04:00"},{"id":32287,"source_id":"7f5ebd18d8224ccabbd73a26fba17a38","target_id":"d0629cc7855cceaf537ab39cb2b4e1cf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 49-177","gmt_create":"2026-04-23T11:46:31.2859917+04:00","gmt_modified":"2026-04-23T11:46:31.2859917+04:00"},{"id":32289,"source_id":"8fb5fbed1f7009b8445ba1ca2bb36e9e","target_id":"3865aa6bd2579d32e36d7fa59c617b84","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 41-82","gmt_create":"2026-04-23T11:46:31.2879953+04:00","gmt_modified":"2026-04-23T11:46:31.2879953+04:00"},{"id":32292,"source_id":"4810c013b14141360d4bcf40a8c63444","target_id":"ea4c7e04621ef7790eb86a4d944b26e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 70-105","gmt_create":"2026-04-23T11:46:31.2894511+04:00","gmt_modified":"2026-04-23T11:46:31.2894511+04:00"},{"id":32294,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"5263aa5e9c9cc4ee3589a4347ba00d1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3710-3723","gmt_create":"2026-04-23T11:46:31.290027+04:00","gmt_modified":"2026-04-23T11:46:31.290027+04:00"},{"id":32296,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"a3e7a4bb9a35beeeca37a93cc44b85f2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 312-381","gmt_create":"2026-04-23T11:46:31.2906092+04:00","gmt_modified":"2026-04-23T11:46:31.2906092+04:00"},{"id":32298,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"c07e1357b4c5c16aa56461f40df51f3f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 383-420","gmt_create":"2026-04-23T11:46:31.2911848+04:00","gmt_modified":"2026-04-23T11:46:31.2911848+04:00"},{"id":32300,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"ab29edddf2ddea94dfa66818525a4f69","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 173-179","gmt_create":"2026-04-23T11:46:31.2916873+04:00","gmt_modified":"2026-04-23T11:46:31.2916873+04:00"},{"id":32302,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"a047fc28da4096adb5975768b23d6568","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4920-4970","gmt_create":"2026-04-23T11:46:31.2917882+04:00","gmt_modified":"2026-04-23T11:46:31.2917882+04:00"},{"id":32304,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"87ef8faa755216d0d684261ca4cf1296","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5128-5131","gmt_create":"2026-04-23T11:46:31.2929421+04:00","gmt_modified":"2026-04-23T11:46:31.2929421+04:00"},{"id":32306,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"36c1fcbd66f9c3ed0ccd021257219b26","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 322-346","gmt_create":"2026-04-23T11:46:31.2934449+04:00","gmt_modified":"2026-04-23T11:46:31.2934449+04:00"},{"id":32308,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"8bc218238f6ca1f8614c8573c3d99ddb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 428-448","gmt_create":"2026-04-23T11:46:31.2934449+04:00","gmt_modified":"2026-04-23T11:46:31.2934449+04:00"},{"id":32310,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"edb1f25b3c55f03a9497c43c9ed563d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4900-4970","gmt_create":"2026-04-23T11:46:31.2944509+04:00","gmt_modified":"2026-04-23T11:46:31.2944509+04:00"},{"id":32312,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"f865c1de13ecfad0ba10d76be6f51e79","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4164-4168","gmt_create":"2026-04-23T11:46:31.297516+04:00","gmt_modified":"2026-04-23T11:46:31.297516+04:00"},{"id":32314,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"46360683264d8d799f49154a37e77c95","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 298-304","gmt_create":"2026-04-23T11:46:31.2980977+04:00","gmt_modified":"2026-04-23T11:46:31.2980977+04:00"},{"id":32316,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"92a7248b320d281221528fd4b3586fae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 616-618","gmt_create":"2026-04-23T11:46:31.298679+04:00","gmt_modified":"2026-04-23T11:46:31.298679+04:00"},{"id":32318,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"d3c1206d30a580d9a1f8e5f0a0e37caa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-28","gmt_create":"2026-04-23T11:46:31.2992586+04:00","gmt_modified":"2026-04-23T11:46:31.2992586+04:00"},{"id":32320,"source_id":"4036f8e38f752e8da82deeed190ddc06","target_id":"47a7ec224c52b37cda36330051d8989e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-29","gmt_create":"2026-04-23T11:46:31.2992586+04:00","gmt_modified":"2026-04-23T11:46:31.2992586+04:00"},{"id":32322,"source_id":"aa7de2818f0eacb01058838d2b81a9e7","target_id":"46f63b299b6fb267a4f639c2d0d892de","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-28","gmt_create":"2026-04-23T11:46:31.2998389+04:00","gmt_modified":"2026-04-23T11:46:31.2998389+04:00"},{"id":32325,"source_id":"e12a1d568ad99d9c23753af3b983d420","target_id":"094de29302ce2b97582033a6a5e5f81d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-27","gmt_create":"2026-04-23T11:46:31.3004545+04:00","gmt_modified":"2026-04-23T11:46:31.3004545+04:00"},{"id":32327,"source_id":"f6da664295247a02e1a87e6157ade267","target_id":"c57df28bcfcd9ae39dd00ccdbfab27c0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 39-45","gmt_create":"2026-04-23T11:46:31.3039408+04:00","gmt_modified":"2026-04-23T11:46:31.3039408+04:00"},{"id":32329,"source_id":"c07484f955228ae2a641c6a9ecc218e1","target_id":"cda16bb7e30e75cab0c3ba93c74374ac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 288-298","gmt_create":"2026-04-23T11:46:31.3054239+04:00","gmt_modified":"2026-04-23T11:46:31.3054239+04:00"},{"id":32331,"source_id":"4810c013b14141360d4bcf40a8c63444","target_id":"8ee1a4f18a4402289535e116f51b9516","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 85-105","gmt_create":"2026-04-23T11:46:31.3060537+04:00","gmt_modified":"2026-04-23T11:46:31.3060537+04:00"},{"id":32411,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"32cf30b2e9094b9693ab53917b0a2eb3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-04-23T12:16:49.7816966+04:00","gmt_modified":"2026-04-23T12:16:49.7816966+04:00"},{"id":32412,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T12:16:49.7816966+04:00","gmt_modified":"2026-04-23T12:16:49.7816966+04:00"},{"id":32413,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"03ba9497d2e4b912db997e43e1b9c653","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_connection.cpp","gmt_create":"2026-04-23T12:16:49.7822096+04:00","gmt_modified":"2026-04-23T12:16:49.7822096+04:00"},{"id":32414,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"7f5ebd18d8224ccabbd73a26fba17a38","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/stcp_socket.cpp","gmt_create":"2026-04-23T12:16:49.7822096+04:00","gmt_modified":"2026-04-23T12:16:49.7822096+04:00"},{"id":32415,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"8ed00ab8494d32c90e1ebf81d2421989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T12:16:49.7822096+04:00","gmt_modified":"2026-04-23T12:16:49.7822096+04:00"},{"id":32416,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"16a4e2bff0288ec68e9817239c754aed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-23T12:16:49.7822096+04:00","gmt_modified":"2026-04-23T12:16:49.7822096+04:00"},{"id":32417,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"c6fa8e83f2cf8a08be2de60d97f4a9f8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_testnet.ini","gmt_create":"2026-04-23T12:16:49.7822096+04:00","gmt_modified":"2026-04-23T12:16:49.7822096+04:00"},{"id":32418,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"475c2f17a00cd4de82dd54bf0a8126ac","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_witness.ini","gmt_create":"2026-04-23T12:16:49.7822096+04:00","gmt_modified":"2026-04-23T12:16:49.7822096+04:00"},{"id":32419,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"1703516eef21eec01e919079e221dabb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_debug.ini","gmt_create":"2026-04-23T12:16:49.7827198+04:00","gmt_modified":"2026-04-23T12:16:49.7827198+04:00"},{"id":32420,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"56e73581fcc11e3d5d304c4453d84a9f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_mongo.ini","gmt_create":"2026-04-23T12:16:49.7827198+04:00","gmt_modified":"2026-04-23T12:16:49.7827198+04:00"},{"id":32421,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"fb22ad271c25ac4291c3d91edf5eb0b9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_stock_exchange.ini","gmt_create":"2026-04-23T12:16:49.7827198+04:00","gmt_modified":"2026-04-23T12:16:49.7827198+04:00"},{"id":32422,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"c07484f955228ae2a641c6a9ecc218e1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-23T12:16:49.7827198+04:00","gmt_modified":"2026-04-23T12:16:49.7827198+04:00"},{"id":32423,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"f6da664295247a02e1a87e6157ade267","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_database.hpp","gmt_create":"2026-04-23T12:16:49.7832373+04:00","gmt_modified":"2026-04-23T12:16:49.7832373+04:00"},{"id":32424,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"4810c013b14141360d4bcf40a8c63444","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-04-23T12:16:49.7832373+04:00","gmt_modified":"2026-04-23T12:16:49.7832373+04:00"},{"id":32425,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"10461f81e6789cf5385cca1e62af9d4d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","gmt_create":"2026-04-23T12:16:49.7832373+04:00","gmt_modified":"2026-04-23T12:16:49.7832373+04:00"},{"id":32426,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T12:16:49.7832373+04:00","gmt_modified":"2026-04-23T12:16:49.7832373+04:00"},{"id":32427,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"37fb39091ee4b69fe1e682497ff46b55","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-23T12:16:49.7832373+04:00","gmt_modified":"2026-04-23T12:16:49.7832373+04:00"},{"id":32428,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"8ed917d817d567a488d62920baedadcc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#689-698","gmt_create":"2026-04-23T12:16:49.7832373+04:00","gmt_modified":"2026-04-23T12:16:49.7832373+04:00"},{"id":32429,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"bfb352c37c5651f8e364f9838b375902","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5254-5274","gmt_create":"2026-04-23T12:16:49.7837541+04:00","gmt_modified":"2026-04-23T12:16:49.7837541+04:00"},{"id":32430,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"7925b0a796bd493a01da486c70d0ab64","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#714-715","gmt_create":"2026-04-23T12:16:49.7837541+04:00","gmt_modified":"2026-04-23T12:16:49.7837541+04:00"},{"id":32431,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"8c7fe145e6668a0589833613de05ef8e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#96-101","gmt_create":"2026-04-23T12:16:49.7837541+04:00","gmt_modified":"2026-04-23T12:16:49.7837541+04:00"},{"id":32432,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"1ae9e34ac2be4ef2ed3da08a43b3ca1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#592-600","gmt_create":"2026-04-23T12:16:49.7842785+04:00","gmt_modified":"2026-04-23T12:16:49.7842785+04:00"},{"id":32433,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"ef3997991d9cf249bb80090feb23abdc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#689-706","gmt_create":"2026-04-23T12:16:49.7853971+04:00","gmt_modified":"2026-04-23T12:16:49.7853971+04:00"},{"id":32434,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"5e80305e7a0dd4e813302d520287970c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#68-162","gmt_create":"2026-04-23T12:16:49.7853971+04:00","gmt_modified":"2026-04-23T12:16:49.7853971+04:00"},{"id":32435,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"b136009499eb952960a997500371c413","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#37-92","gmt_create":"2026-04-23T12:16:49.7859252+04:00","gmt_modified":"2026-04-23T12:16:49.7859252+04:00"},{"id":32436,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"302a2b97d7155d06fda21dbeb2f1b54a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#585-649","gmt_create":"2026-04-23T12:16:49.7864439+04:00","gmt_modified":"2026-04-23T12:16:49.7864439+04:00"},{"id":32437,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"302a2b97d7155d06fda21dbeb2f1b54a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 585-649","gmt_create":"2026-04-23T12:16:49.7869713+04:00","gmt_modified":"2026-04-23T12:16:49.7869713+04:00"},{"id":32438,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"6af8eb79e9f65f7ea2c694223695d9a3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#812-820","gmt_create":"2026-04-23T12:16:49.7869713+04:00","gmt_modified":"2026-04-23T12:16:49.7869713+04:00"},{"id":32439,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"6af8eb79e9f65f7ea2c694223695d9a3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 812-820","gmt_create":"2026-04-23T12:16:49.7869713+04:00","gmt_modified":"2026-04-23T12:16:49.7869713+04:00"},{"id":32440,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"9f67fdb767ce515af96c465dbbb1fe8f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#497-521","gmt_create":"2026-04-23T12:16:49.7880162+04:00","gmt_modified":"2026-04-23T12:16:49.7880162+04:00"},{"id":32441,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"acad8673bff956aca1d53443f4ba5739","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#780-785","gmt_create":"2026-04-23T12:16:49.7880162+04:00","gmt_modified":"2026-04-23T12:16:49.7880162+04:00"},{"id":32442,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"abb7010b1a4127c6eb74e70b8b8c1c8a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#47-71","gmt_create":"2026-04-23T12:16:49.7880162+04:00","gmt_modified":"2026-04-23T12:16:49.7880162+04:00"},{"id":32443,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"ffcabaf2fce1313ba726f943d26bdf4a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#537-540","gmt_create":"2026-04-23T12:16:49.7885316+04:00","gmt_modified":"2026-04-23T12:16:49.7885316+04:00"},{"id":32444,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"2ed9aa8440a7a4d0e1b58d003e493158","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#786-792","gmt_create":"2026-04-23T12:16:49.7885316+04:00","gmt_modified":"2026-04-23T12:16:49.7885316+04:00"},{"id":32445,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"d1be4370926b5262daf2447b9745d905","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#487-495","gmt_create":"2026-04-23T12:16:49.7885316+04:00","gmt_modified":"2026-04-23T12:16:49.7885316+04:00"},{"id":32446,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"5fdf8584baa2beb83725ffd40a065ff4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#52-56","gmt_create":"2026-04-23T12:16:49.7890494+04:00","gmt_modified":"2026-04-23T12:16:49.7890494+04:00"},{"id":32447,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"034d2639f50a8ac9d67ffbf0594a6afa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#441-445","gmt_create":"2026-04-23T12:16:49.7890494+04:00","gmt_modified":"2026-04-23T12:16:49.7890494+04:00"},{"id":32448,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"65d8ec4282c90ca603928ff3ca7a8c1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#169-206","gmt_create":"2026-04-23T12:16:49.7890494+04:00","gmt_modified":"2026-04-23T12:16:49.7890494+04:00"},{"id":32449,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"9483fd3d971ce258539c764b97277642","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#49-66","gmt_create":"2026-04-23T12:16:49.7895652+04:00","gmt_modified":"2026-04-23T12:16:49.7895652+04:00"},{"id":32450,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"b798a371453386ed55f39515a7f187ce","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#223-239","gmt_create":"2026-04-23T12:16:49.7895652+04:00","gmt_modified":"2026-04-23T12:16:49.7895652+04:00"},{"id":32451,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"1627c08f8d77e6bd16ff55f3c31a7214","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#48-50","gmt_create":"2026-04-23T12:16:49.7895652+04:00","gmt_modified":"2026-04-23T12:16:49.7895652+04:00"},{"id":32452,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"9adff7a947c035e71543339de4f875ec","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#638-640","gmt_create":"2026-04-23T12:16:49.7895652+04:00","gmt_modified":"2026-04-23T12:16:49.7895652+04:00"},{"id":32453,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"afac2a42df17577ba720e7f9a78558b0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#518-526","gmt_create":"2026-04-23T12:16:49.7895652+04:00","gmt_modified":"2026-04-23T12:16:49.7895652+04:00"},{"id":32454,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"6b49cb375a448fd15559d24da7d7e23c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#548-567","gmt_create":"2026-04-23T12:16:49.7895652+04:00","gmt_modified":"2026-04-23T12:16:49.7895652+04:00"},{"id":32455,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"97c58147fee277e29c7fcfd2e1fad3d7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#314-325","gmt_create":"2026-04-23T12:16:49.7905694+04:00","gmt_modified":"2026-04-23T12:16:49.7905694+04:00"},{"id":32456,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"3edc836b9f3a1df5c933c63ecc8ce954","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#55-106","gmt_create":"2026-04-23T12:16:49.7905694+04:00","gmt_modified":"2026-04-23T12:16:49.7905694+04:00"},{"id":32457,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"7b44d15de5faea5ec5d9aa45843a4779","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#1-136","gmt_create":"2026-04-23T12:16:49.7905694+04:00","gmt_modified":"2026-04-23T12:16:49.7905694+04:00"},{"id":32458,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"5d3ecf8dbda10c5dac6bfd961791d02b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_testnet.ini#1-132","gmt_create":"2026-04-23T12:16:49.7905694+04:00","gmt_modified":"2026-04-23T12:16:49.7905694+04:00"},{"id":32459,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"e5968eacd23776d0e60478ea5cc7d523","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#403-405","gmt_create":"2026-04-23T12:16:49.7931475+04:00","gmt_modified":"2026-04-23T12:16:49.7931475+04:00"},{"id":32460,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"3942d16870ce25abce21196a1bb5866b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#112-136","gmt_create":"2026-04-23T12:16:49.7931475+04:00","gmt_modified":"2026-04-23T12:16:49.7931475+04:00"},{"id":32461,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"2c8c910dec8b5db99994a8643fd780e8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5259-5262","gmt_create":"2026-04-23T12:16:49.7931475+04:00","gmt_modified":"2026-04-23T12:16:49.7931475+04:00"},{"id":32462,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"d48e61b6c0afbe8b0a4d20deff593854","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#467-482","gmt_create":"2026-04-23T12:16:49.7931475+04:00","gmt_modified":"2026-04-23T12:16:49.7931475+04:00"},{"id":32463,"source_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","target_id":"b07b9e450af40c43c796bcc7ecf03443","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_witness.ini#1-107","gmt_create":"2026-04-23T12:16:49.7931475+04:00","gmt_modified":"2026-04-23T12:16:49.7931475+04:00"},{"id":32464,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"c07484f955228ae2a641c6a9ecc218e1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-23T12:16:50.9750027+04:00","gmt_modified":"2026-04-23T12:16:50.9750027+04:00"},{"id":32465,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T12:16:50.9755195+04:00","gmt_modified":"2026-04-23T12:16:50.9755195+04:00"},{"id":32466,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"4036f8e38f752e8da82deeed190ddc06","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_connection.hpp","gmt_create":"2026-04-23T12:16:50.9755195+04:00","gmt_modified":"2026-04-23T12:16:50.9755195+04:00"},{"id":32467,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"03ba9497d2e4b912db997e43e1b9c653","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_connection.cpp","gmt_create":"2026-04-23T12:16:50.9755195+04:00","gmt_modified":"2026-04-23T12:16:50.9755195+04:00"},{"id":32468,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"aa7de2818f0eacb01058838d2b81a9e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/core_messages.hpp","gmt_create":"2026-04-23T12:16:50.9755195+04:00","gmt_modified":"2026-04-23T12:16:50.9755195+04:00"},{"id":32469,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"f5ad8f25a7e1c10d29fdcfd7b3eadb75","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/core_messages.cpp","gmt_create":"2026-04-23T12:16:50.9755195+04:00","gmt_modified":"2026-04-23T12:16:50.9755195+04:00"},{"id":32470,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"a090337969d7a39c7cbc9737c926d289","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/stcp_socket.hpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32471,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"7f5ebd18d8224ccabbd73a26fba17a38","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/stcp_socket.cpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32472,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"f6da664295247a02e1a87e6157ade267","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_database.hpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32473,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"8fb5fbed1f7009b8445ba1ca2bb36e9e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_database.cpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32474,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"4810c013b14141360d4bcf40a8c63444","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32475,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"e12a1d568ad99d9c23753af3b983d420","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message_oriented_connection.hpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32476,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"32cf30b2e9094b9693ab53917b0a2eb3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-04-23T12:16:50.9760485+04:00","gmt_modified":"2026-04-23T12:16:50.9760485+04:00"},{"id":32477,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"8ed00ab8494d32c90e1ebf81d2421989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T12:16:50.9765651+04:00","gmt_modified":"2026-04-23T12:16:50.9765651+04:00"},{"id":32478,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"5f576e16df1d59d294a1af2f2658b7ba","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#190-304","gmt_create":"2026-04-23T12:16:50.9841599+04:00","gmt_modified":"2026-04-23T12:16:50.9841599+04:00"},{"id":32479,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"b790ddd3e717ed748c2e061559e92124","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#79-351","gmt_create":"2026-04-23T12:16:50.9851835+04:00","gmt_modified":"2026-04-23T12:16:50.9851835+04:00"},{"id":32480,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"ae1ad3620183690f60eeda5a30543601","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#42-106","gmt_create":"2026-04-23T12:16:50.9851835+04:00","gmt_modified":"2026-04-23T12:16:50.9851835+04:00"},{"id":32481,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"79ab2542b5c96058f09208f1cd2cd6fd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#72-573","gmt_create":"2026-04-23T12:16:50.9861842+04:00","gmt_modified":"2026-04-23T12:16:50.9861842+04:00"},{"id":32482,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"bd9136208fce359f28cad48005c18445","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#37-93","gmt_create":"2026-04-23T12:16:50.9861842+04:00","gmt_modified":"2026-04-23T12:16:50.9861842+04:00"},{"id":32483,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"31c07b5a29db4c1cbb24f79829d347aa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#104-134","gmt_create":"2026-04-23T12:16:50.9861842+04:00","gmt_modified":"2026-04-23T12:16:50.9861842+04:00"},{"id":32484,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"a07ab3c4bae64fb9fbd9587bd3eaae39","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#45-79","gmt_create":"2026-04-23T12:16:50.9861842+04:00","gmt_modified":"2026-04-23T12:16:50.9861842+04:00"},{"id":32485,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"8ca4e34ad148a456f53073ddc65d0d0b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#26-106","gmt_create":"2026-04-23T12:16:50.9871852+04:00","gmt_modified":"2026-04-23T12:16:50.9871852+04:00"},{"id":32486,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"05b62d2805cb3a311c10475a638f22d4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#500-560","gmt_create":"2026-04-23T12:16:50.9871852+04:00","gmt_modified":"2026-04-23T12:16:50.9871852+04:00"},{"id":32487,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"cf043d8e90537efdf39b7880e8959da4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5281-5286","gmt_create":"2026-04-23T12:16:50.9871852+04:00","gmt_modified":"2026-04-23T12:16:50.9871852+04:00"},{"id":32488,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"93d54ced192f760547e10eb155a75d8e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#346-347","gmt_create":"2026-04-23T12:16:50.9871852+04:00","gmt_modified":"2026-04-23T12:16:50.9871852+04:00"},{"id":32489,"source_id":"8c1f057e068af3d7a13214f05a59ed6d","target_id":"93d54ced192f760547e10eb155a75d8e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 346-347","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32490,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"ca47b4e2578878f62204de1202dfcee9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#1-355","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32491,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"52af1c2eebb2a6ca81e46aa9efc36007","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#1-383","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32492,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"41c428afa5cdf049e5722a8af0a07120","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#1-573","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32493,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"e37ad396926e491f9e2cb7e97ebb983b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#1-99","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32494,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"65f079a0a8c1ddc294e55e30a905620b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#1-141","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32495,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"f64ddae8befa97072e025e25b465e7b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#1-114","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32496,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"31a472d3c3593f1079fe3844dbf8e5ea","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#1-85","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32497,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"fed4d7f6216f50b46ffc2f059db54915","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#1-106","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32498,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"df5f1767872da5ad020edc60475ab9b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#1-742","gmt_create":"2026-04-23T12:16:50.9881852+04:00","gmt_modified":"2026-04-23T12:16:50.9881852+04:00"},{"id":32499,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"b32ad9e7a8c85cae6d0a130d7399ace9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#182-304","gmt_create":"2026-04-23T12:16:50.9896888+04:00","gmt_modified":"2026-04-23T12:16:50.9896888+04:00"},{"id":32500,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"be6d9b8a21e11f9cb8bac726d2b15873","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#780-790","gmt_create":"2026-04-23T12:16:50.9896888+04:00","gmt_modified":"2026-04-23T12:16:50.9896888+04:00"},{"id":32501,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"5361decb4da66a8be18f3e2460c4744a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#208-242","gmt_create":"2026-04-23T12:16:50.9906927+04:00","gmt_modified":"2026-04-23T12:16:50.9906927+04:00"},{"id":32502,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"83977126829486b69fd3680d1a18d5b8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#69-72","gmt_create":"2026-04-23T12:16:50.9906927+04:00","gmt_modified":"2026-04-23T12:16:50.9906927+04:00"},{"id":32503,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"4398c3ae2cfabc0607c0ef43245e9ed0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#424-799","gmt_create":"2026-04-23T12:16:50.9906927+04:00","gmt_modified":"2026-04-23T12:16:50.9906927+04:00"},{"id":32504,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"bf188abd0edd7c343537c5327855ecbe","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#82-106","gmt_create":"2026-04-23T12:16:50.9906927+04:00","gmt_modified":"2026-04-23T12:16:50.9906927+04:00"},{"id":32505,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"65d8ec4282c90ca603928ff3ca7a8c1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#169-206","gmt_create":"2026-04-23T12:16:50.9916934+04:00","gmt_modified":"2026-04-23T12:16:50.9916934+04:00"},{"id":32506,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"19888e3e680c4c22af512bc7fece3cb4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#41-66","gmt_create":"2026-04-23T12:16:50.9916934+04:00","gmt_modified":"2026-04-23T12:16:50.9916934+04:00"},{"id":32507,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"395304bf3b17e833fe3418a2227e8d20","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#310-354","gmt_create":"2026-04-23T12:16:50.9916934+04:00","gmt_modified":"2026-04-23T12:16:50.9916934+04:00"},{"id":32508,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"bd2df0ef0f3a3569038ff93abf7f049a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/core_messages.cpp#30-49","gmt_create":"2026-04-23T12:16:50.9916934+04:00","gmt_modified":"2026-04-23T12:16:50.9916934+04:00"},{"id":32509,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"55b70b2d7f669af727f94be4a67ab19f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#49-72","gmt_create":"2026-04-23T12:16:50.9926928+04:00","gmt_modified":"2026-04-23T12:16:50.9926928+04:00"},{"id":32510,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"a2d760acb3b4737ac29dd99261de2de6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#132-177","gmt_create":"2026-04-23T12:16:50.9926928+04:00","gmt_modified":"2026-04-23T12:16:50.9926928+04:00"},{"id":32511,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"d0629cc7855cceaf537ab39cb2b4e1cf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#49-177","gmt_create":"2026-04-23T12:16:50.9926928+04:00","gmt_modified":"2026-04-23T12:16:50.9926928+04:00"},{"id":32512,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"3865aa6bd2579d32e36d7fa59c617b84","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_database.cpp#41-82","gmt_create":"2026-04-23T12:16:50.9936941+04:00","gmt_modified":"2026-04-23T12:16:50.9936941+04:00"},{"id":32513,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"e485b1e17d34c5b6a8a52a62ed1e66f1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_database.cpp#100-174","gmt_create":"2026-04-23T12:16:50.9936941+04:00","gmt_modified":"2026-04-23T12:16:50.9936941+04:00"},{"id":32514,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"ea4c7e04621ef7790eb86a4d944b26e4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#70-105","gmt_create":"2026-04-23T12:16:50.9936941+04:00","gmt_modified":"2026-04-23T12:16:50.9936941+04:00"},{"id":32515,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"5263aa5e9c9cc4ee3589a4347ba00d1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3710-3723","gmt_create":"2026-04-23T12:16:50.9936941+04:00","gmt_modified":"2026-04-23T12:16:50.9936941+04:00"},{"id":32516,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"a3e7a4bb9a35beeeca37a93cc44b85f2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#312-381","gmt_create":"2026-04-23T12:16:50.994694+04:00","gmt_modified":"2026-04-23T12:16:50.994694+04:00"},{"id":32517,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"c07e1357b4c5c16aa56461f40df51f3f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#383-420","gmt_create":"2026-04-23T12:16:50.994694+04:00","gmt_modified":"2026-04-23T12:16:50.994694+04:00"},{"id":32518,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"ab29edddf2ddea94dfa66818525a4f69","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#173-179","gmt_create":"2026-04-23T12:16:50.994694+04:00","gmt_modified":"2026-04-23T12:16:50.994694+04:00"},{"id":32519,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"a047fc28da4096adb5975768b23d6568","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#4920-4970","gmt_create":"2026-04-23T12:16:50.994694+04:00","gmt_modified":"2026-04-23T12:16:50.994694+04:00"},{"id":32520,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"87ef8faa755216d0d684261ca4cf1296","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5128-5131","gmt_create":"2026-04-23T12:16:50.994694+04:00","gmt_modified":"2026-04-23T12:16:50.994694+04:00"},{"id":32521,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"36c1fcbd66f9c3ed0ccd021257219b26","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#322-346","gmt_create":"2026-04-23T12:16:50.994694+04:00","gmt_modified":"2026-04-23T12:16:50.994694+04:00"},{"id":32522,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"8bc218238f6ca1f8614c8573c3d99ddb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#428-448","gmt_create":"2026-04-23T12:16:50.9956936+04:00","gmt_modified":"2026-04-23T12:16:50.9956936+04:00"},{"id":32523,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"edb1f25b3c55f03a9497c43c9ed563d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#4900-4970","gmt_create":"2026-04-23T12:16:50.9956936+04:00","gmt_modified":"2026-04-23T12:16:50.9956936+04:00"},{"id":32524,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"f865c1de13ecfad0ba10d76be6f51e79","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#4164-4168","gmt_create":"2026-04-23T12:16:50.9956936+04:00","gmt_modified":"2026-04-23T12:16:50.9956936+04:00"},{"id":32525,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"46360683264d8d799f49154a37e77c95","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#298-304","gmt_create":"2026-04-23T12:16:50.9956936+04:00","gmt_modified":"2026-04-23T12:16:50.9956936+04:00"},{"id":32526,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"92a7248b320d281221528fd4b3586fae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#616-618","gmt_create":"2026-04-23T12:16:50.9966925+04:00","gmt_modified":"2026-04-23T12:16:50.9966925+04:00"},{"id":32527,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"d3c1206d30a580d9a1f8e5f0a0e37caa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#26-28","gmt_create":"2026-04-23T12:16:50.9966925+04:00","gmt_modified":"2026-04-23T12:16:50.9966925+04:00"},{"id":32528,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"47a7ec224c52b37cda36330051d8989e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#26-29","gmt_create":"2026-04-23T12:16:50.9966925+04:00","gmt_modified":"2026-04-23T12:16:50.9966925+04:00"},{"id":32529,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"46f63b299b6fb267a4f639c2d0d892de","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#26-28","gmt_create":"2026-04-23T12:16:50.9966925+04:00","gmt_modified":"2026-04-23T12:16:50.9966925+04:00"},{"id":32530,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"d047c2a99e186afd4cbe5d3b58a081ce","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#26-28","gmt_create":"2026-04-23T12:16:50.9966925+04:00","gmt_modified":"2026-04-23T12:16:50.9966925+04:00"},{"id":32531,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"094de29302ce2b97582033a6a5e5f81d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#26-27","gmt_create":"2026-04-23T12:16:50.9976929+04:00","gmt_modified":"2026-04-23T12:16:50.9976929+04:00"},{"id":32532,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"c57df28bcfcd9ae39dd00ccdbfab27c0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#39-45","gmt_create":"2026-04-23T12:16:50.9986922+04:00","gmt_modified":"2026-04-23T12:16:50.9986922+04:00"},{"id":32533,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"cda16bb7e30e75cab0c3ba93c74374ac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#288-298","gmt_create":"2026-04-23T12:16:50.9986922+04:00","gmt_modified":"2026-04-23T12:16:50.9986922+04:00"},{"id":32534,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"8ee1a4f18a4402289535e116f51b9516","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#85-105","gmt_create":"2026-04-23T12:16:50.9986922+04:00","gmt_modified":"2026-04-23T12:16:50.9986922+04:00"},{"id":32535,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"418562d4716f53d3060f183ffa64036c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-23T12:18:55.5917463+04:00","gmt_modified":"2026-04-23T12:18:55.5917463+04:00"},{"id":32536,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"10461f81e6789cf5385cca1e62af9d4d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","gmt_create":"2026-04-23T12:18:55.5917463+04:00","gmt_modified":"2026-04-23T12:18:55.5917463+04:00"},{"id":32537,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"87c4f90564e8fbfb6348ad688ef97318","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","gmt_create":"2026-04-23T12:18:55.5917463+04:00","gmt_modified":"2026-04-23T12:18:55.5917463+04:00"},{"id":32538,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"104cf6b015d8e526f86f8f74b8d4d146","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","gmt_create":"2026-04-23T12:18:55.5917463+04:00","gmt_modified":"2026-04-23T12:18:55.5917463+04:00"},{"id":32539,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"9560988721d95f90724da96e6a4ac318","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/CMakeLists.txt","gmt_create":"2026-04-23T12:18:55.5922614+04:00","gmt_modified":"2026-04-23T12:18:55.5922614+04:00"},{"id":32540,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"a5860d2a0d6204ef8d91570a638adcb3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/snapshot.json","gmt_create":"2026-04-23T12:18:55.5922614+04:00","gmt_modified":"2026-04-23T12:18:55.5922614+04:00"},{"id":32541,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"1fef1de4422f2252e104a5abd7e7c5cb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/snapshot-testnet.json","gmt_create":"2026-04-23T12:18:55.5922614+04:00","gmt_modified":"2026-04-23T12:18:55.5922614+04:00"},{"id":32542,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"37fb39091ee4b69fe1e682497ff46b55","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-23T12:18:55.5922614+04:00","gmt_modified":"2026-04-23T12:18:55.5922614+04:00"},{"id":32543,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"d478cca230f790bc8f1573f56a55a987","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/plugin.cpp","gmt_create":"2026-04-23T12:18:55.5922614+04:00","gmt_modified":"2026-04-23T12:18:55.5922614+04:00"},{"id":32544,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"8236bb0464725a19a16e9e7bd0d10b5a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-04-23T12:18:55.5922614+04:00","gmt_modified":"2026-04-23T12:18:55.5922614+04:00"},{"id":32545,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"5a775a89bb87e70f60760941848117e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-23T12:18:55.5927766+04:00","gmt_modified":"2026-04-23T12:18:55.5927766+04:00"},{"id":32546,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"571d673b1b49568d584e159036820875","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-23T12:18:55.5927766+04:00","gmt_modified":"2026-04-23T12:18:55.5927766+04:00"},{"id":32547,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"71cbf21e4bf2a2b603ad1183369ec65f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-23T12:18:55.5927766+04:00","gmt_modified":"2026-04-23T12:18:55.5927766+04:00"},{"id":32548,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"08a8508b82e7873a40cd73c18c5113d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/interprocess/file_mutex.cpp","gmt_create":"2026-04-23T12:18:55.5927766+04:00","gmt_modified":"2026-04-23T12:18:55.5927766+04:00"},{"id":32549,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"16a4e2bff0288ec68e9817239c754aed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-23T12:18:55.5927766+04:00","gmt_modified":"2026-04-23T12:18:55.5927766+04:00"},{"id":32550,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"8c1f057e068af3d7a13214f05a59ed6d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-23T12:18:55.5932898+04:00","gmt_modified":"2026-04-23T12:18:55.5932898+04:00"},{"id":32551,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"c07484f955228ae2a641c6a9ecc218e1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-23T12:18:55.5932898+04:00","gmt_modified":"2026-04-23T12:18:55.5932898+04:00"},{"id":32552,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"8ed00ab8494d32c90e1ebf81d2421989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T12:18:55.5932898+04:00","gmt_modified":"2026-04-23T12:18:55.5932898+04:00"},{"id":32553,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"f49eb1acdefd29c4b322dfa68d449774","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/log/logger_config.cpp","gmt_create":"2026-04-23T12:18:55.5932898+04:00","gmt_modified":"2026-04-23T12:18:55.5932898+04:00"},{"id":32554,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"2a488975038d8060fc2bec6672254f8e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/log/console_appender.cpp","gmt_create":"2026-04-23T12:18:55.5932898+04:00","gmt_modified":"2026-04-23T12:18:55.5932898+04:00"},{"id":32555,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"a7e56ec55d2393204c9701d977a9400c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1-50","gmt_create":"2026-04-23T12:18:55.5932898+04:00","gmt_modified":"2026-04-23T12:18:55.5932898+04:00"},{"id":32556,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"4a06a01de185f2302afb08f24f3c2b84","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#1-88","gmt_create":"2026-04-23T12:18:55.5938061+04:00","gmt_modified":"2026-04-23T12:18:55.5938061+04:00"},{"id":32557,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"afdbaea77133cc08160f2954aae9d02c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp#1-52","gmt_create":"2026-04-23T12:18:55.5938061+04:00","gmt_modified":"2026-04-23T12:18:55.5938061+04:00"},{"id":32558,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"86be1cb2396b0667cd9b2676e146da4f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/CMakeLists.txt#1-52","gmt_create":"2026-04-23T12:18:55.5938061+04:00","gmt_modified":"2026-04-23T12:18:55.5938061+04:00"},{"id":32559,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"03671e2406d9aa4281ec8988ebd11ea3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#42-76","gmt_create":"2026-04-23T12:18:55.5943204+04:00","gmt_modified":"2026-04-23T12:18:55.5943204+04:00"},{"id":32560,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"4d53110f843225004c76883ddaf8a3db","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp#16-52","gmt_create":"2026-04-23T12:18:55.5943204+04:00","gmt_modified":"2026-04-23T12:18:55.5943204+04:00"},{"id":32561,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"6b4ecd2cef1f64d73ebb15271ad63dec","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp#30-158","gmt_create":"2026-04-23T12:18:55.5943204+04:00","gmt_modified":"2026-04-23T12:18:55.5943204+04:00"},{"id":32562,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"846c3fae1de48cd9c46b1ffde792c266","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#675-780","gmt_create":"2026-04-23T12:18:55.5943204+04:00","gmt_modified":"2026-04-23T12:18:55.5943204+04:00"},{"id":32563,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"42fe843c72050e328e7b8c97676e68ee","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp#37-107","gmt_create":"2026-04-23T12:18:55.5953258+04:00","gmt_modified":"2026-04-23T12:18:55.5953258+04:00"},{"id":32564,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"9824dc418fd477d361e2cb113d2d8a6d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#885-987","gmt_create":"2026-04-23T12:18:55.5958305+04:00","gmt_modified":"2026-04-23T12:18:55.5958305+04:00"},{"id":32565,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"c70d834a6c61afda086e00d45a34530e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#789-883","gmt_create":"2026-04-23T12:18:55.5958305+04:00","gmt_modified":"2026-04-23T12:18:55.5958305+04:00"},{"id":32566,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"38ba886c685a78655cd83f13bc1ee1de","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1400-1484","gmt_create":"2026-04-23T12:18:55.5958305+04:00","gmt_modified":"2026-04-23T12:18:55.5958305+04:00"},{"id":32567,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"3f30e9195428c3c0d628347672216881","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1046-1288","gmt_create":"2026-04-23T12:18:55.5958305+04:00","gmt_modified":"2026-04-23T12:18:55.5958305+04:00"},{"id":32568,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"385e16c713d33cee472d76fd9309c8a7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1902-2038","gmt_create":"2026-04-23T12:18:55.5958305+04:00","gmt_modified":"2026-04-23T12:18:55.5958305+04:00"},{"id":32569,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"a656f741ca3a98ea4e39650246c13e31","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1470-1599","gmt_create":"2026-04-23T12:18:55.5968364+04:00","gmt_modified":"2026-04-23T12:18:55.5968364+04:00"},{"id":32570,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"210282284c4a151d5bb31f5c22acb0e2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2473-2510","gmt_create":"2026-04-23T12:18:55.5968364+04:00","gmt_modified":"2026-04-23T12:18:55.5968364+04:00"},{"id":32571,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"fce82559c856b77e5143284446449214","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#247-273","gmt_create":"2026-04-23T12:18:55.5968364+04:00","gmt_modified":"2026-04-23T12:18:55.5968364+04:00"},{"id":32572,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"f9743c7d2ad207b1a79a0e95d75247cc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1418-1436","gmt_create":"2026-04-23T12:18:55.5968364+04:00","gmt_modified":"2026-04-23T12:18:55.5968364+04:00"},{"id":32573,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"d73dcca02dff8f3073d543232ea8d398","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#737-743","gmt_create":"2026-04-23T12:18:55.5968364+04:00","gmt_modified":"2026-04-23T12:18:55.5968364+04:00"},{"id":32574,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"71b4159a5d3213112920bd296d8e89bb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1390-1484","gmt_create":"2026-04-23T12:18:55.597844+04:00","gmt_modified":"2026-04-23T12:18:55.597844+04:00"},{"id":32575,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"ec58f910f97a726df18f75c0c17baada","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1440-1449","gmt_create":"2026-04-23T12:18:55.597844+04:00","gmt_modified":"2026-04-23T12:18:55.597844+04:00"},{"id":32576,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"75b03c62708ffd28a4f9d687421e1c28","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#335-551","gmt_create":"2026-04-23T12:18:55.597844+04:00","gmt_modified":"2026-04-23T12:18:55.597844+04:00"},{"id":32577,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"a4baae31b894b18b4796bc14910ee131","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1326-1376","gmt_create":"2026-04-23T12:18:55.597844+04:00","gmt_modified":"2026-04-23T12:18:55.597844+04:00"},{"id":32578,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"0ae3da57453e773fb07f47dbd5886c6a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1426-1435","gmt_create":"2026-04-23T12:18:55.597844+04:00","gmt_modified":"2026-04-23T12:18:55.597844+04:00"},{"id":32579,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"492bfc10ec7008ed8d3c0fcb9eb2986e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#745-750","gmt_create":"2026-04-23T12:18:55.6064466+04:00","gmt_modified":"2026-04-23T12:18:55.6064466+04:00"},{"id":32580,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"c6fe65da69747dabf7418f6ebfbc16a6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#697-700","gmt_create":"2026-04-23T12:18:55.6074454+04:00","gmt_modified":"2026-04-23T12:18:55.6074454+04:00"},{"id":32581,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"2e53433527d0fe2c5b8af01e4c75ab33","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2831-2845","gmt_create":"2026-04-23T12:18:55.6074454+04:00","gmt_modified":"2026-04-23T12:18:55.6074454+04:00"},{"id":32582,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"3d5e7d45a447644705a300e602712ab4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1719-1748","gmt_create":"2026-04-23T12:18:55.6074454+04:00","gmt_modified":"2026-04-23T12:18:55.6074454+04:00"},{"id":32583,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"311030227d7a27b006fece17d9efd018","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1706-1748","gmt_create":"2026-04-23T12:18:55.6074454+04:00","gmt_modified":"2026-04-23T12:18:55.6074454+04:00"},{"id":32584,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"0fdcd022e550104e434876fa650f53c4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#490-560","gmt_create":"2026-04-23T12:18:55.6074454+04:00","gmt_modified":"2026-04-23T12:18:55.6074454+04:00"},{"id":32585,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"f0e049888c51f9cd8f614dd4d55fe05b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2945-2959","gmt_create":"2026-04-23T12:18:55.6084457+04:00","gmt_modified":"2026-04-23T12:18:55.6084457+04:00"},{"id":32586,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"29998ee4937bbfcaafdb8749dfb3fdf3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#441-5201","gmt_create":"2026-04-23T12:18:55.6084457+04:00","gmt_modified":"2026-04-23T12:18:55.6084457+04:00"},{"id":32587,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"30f19521c0c40fc613bf93a90c654dc9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#542-559","gmt_create":"2026-04-23T12:18:55.6084457+04:00","gmt_modified":"2026-04-23T12:18:55.6084457+04:00"},{"id":32588,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"6e3b8e0770e0fd14881374dd8b3c658e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2976-3009","gmt_create":"2026-04-23T12:18:55.6084457+04:00","gmt_modified":"2026-04-23T12:18:55.6084457+04:00"},{"id":32589,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"28efe21ebfbcc6e72bb32ca3977b1939","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2468-2570","gmt_create":"2026-04-23T12:18:55.6094482+04:00","gmt_modified":"2026-04-23T12:18:55.6094482+04:00"},{"id":32590,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"d63a843046b69fbb600d08397a3d24b2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#689-697","gmt_create":"2026-04-23T12:18:55.6094482+04:00","gmt_modified":"2026-04-23T12:18:55.6094482+04:00"},{"id":32591,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"e8fc4f78dc6c018fb182ce7216a577c7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5241-5274","gmt_create":"2026-04-23T12:18:55.6094482+04:00","gmt_modified":"2026-04-23T12:18:55.6094482+04:00"},{"id":32592,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"af2c19f2568561b67f019a505b8c1e2a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#284-290","gmt_create":"2026-04-23T12:18:55.6094482+04:00","gmt_modified":"2026-04-23T12:18:55.6094482+04:00"},{"id":32593,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"80a6cf4c3a34c0380cfa7e2bbce50695","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#86-88","gmt_create":"2026-04-23T12:18:55.6094482+04:00","gmt_modified":"2026-04-23T12:18:55.6094482+04:00"},{"id":32594,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"12dbcde9e60b1141f215fb60b089b7c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#735-740","gmt_create":"2026-04-23T12:18:55.6094482+04:00","gmt_modified":"2026-04-23T12:18:55.6094482+04:00"},{"id":32595,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"b8f460ca6d8e0942ab1f7226cd2a1b21","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1814-1862","gmt_create":"2026-04-23T12:18:55.6104484+04:00","gmt_modified":"2026-04-23T12:18:55.6104484+04:00"},{"id":32596,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"739243787c097dbb8797bb297c748868","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#772-785","gmt_create":"2026-04-23T12:18:55.6104484+04:00","gmt_modified":"2026-04-23T12:18:55.6104484+04:00"},{"id":32597,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"db7e02e69db0e8586e85ce97afc5cb39","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#339-374","gmt_create":"2026-04-23T12:18:55.6104484+04:00","gmt_modified":"2026-04-23T12:18:55.6104484+04:00"},{"id":32598,"source_id":"37fb39091ee4b69fe1e682497ff46b55","target_id":"db7e02e69db0e8586e85ce97afc5cb39","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 339-374","gmt_create":"2026-04-23T12:18:55.6104484+04:00","gmt_modified":"2026-04-23T12:18:55.6104484+04:00"},{"id":32599,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"302a2b97d7155d06fda21dbeb2f1b54a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#585-649","gmt_create":"2026-04-23T12:18:55.6104484+04:00","gmt_modified":"2026-04-23T12:18:55.6104484+04:00"},{"id":32600,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"41cf0afd5318bbd8764352fab2436ad5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#673-677","gmt_create":"2026-04-23T12:18:55.6104484+04:00","gmt_modified":"2026-04-23T12:18:55.6104484+04:00"},{"id":32601,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"41cf0afd5318bbd8764352fab2436ad5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 673-677","gmt_create":"2026-04-23T12:18:55.6114487+04:00","gmt_modified":"2026-04-23T12:18:55.6114487+04:00"},{"id":32602,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"5d91b76995b1b78e1207caddc6168d8b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#744-755","gmt_create":"2026-04-23T12:18:55.6114487+04:00","gmt_modified":"2026-04-23T12:18:55.6114487+04:00"},{"id":32603,"source_id":"8ed00ab8494d32c90e1ebf81d2421989","target_id":"5d91b76995b1b78e1207caddc6168d8b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 744-755","gmt_create":"2026-04-23T12:18:55.6114487+04:00","gmt_modified":"2026-04-23T12:18:55.6114487+04:00"},{"id":32604,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"8ae8252af5d5c484e0710b855ad18866","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#165-176","gmt_create":"2026-04-23T12:18:55.6114487+04:00","gmt_modified":"2026-04-23T12:18:55.6114487+04:00"},{"id":32605,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"444b9950972fec08b3139f4d50cf0a6e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1587-1596","gmt_create":"2026-04-23T12:18:55.6114487+04:00","gmt_modified":"2026-04-23T12:18:55.6114487+04:00"},{"id":32606,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"5abd9dec8f7100b36c876b18e58d4bb7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1610-1620","gmt_create":"2026-04-23T12:18:55.6114487+04:00","gmt_modified":"2026-04-23T12:18:55.6114487+04:00"},{"id":32607,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"2d8f8aa2a2e0d2b778c984550ade3061","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1812-1877","gmt_create":"2026-04-23T12:18:55.6124457+04:00","gmt_modified":"2026-04-23T12:18:55.6124457+04:00"},{"id":32608,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"8a1470c12fc58346550796f023996d4f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#24-34","gmt_create":"2026-04-23T12:18:55.6124457+04:00","gmt_modified":"2026-04-23T12:18:55.6124457+04:00"},{"id":32609,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"4ca7141219ec0e9f25ffdbdb9cda2fa1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2598-2680","gmt_create":"2026-04-23T12:18:55.6124457+04:00","gmt_modified":"2026-04-23T12:18:55.6124457+04:00"},{"id":32610,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"9c4238b8e0cf99b348e22120eac41904","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#364-432","gmt_create":"2026-04-23T12:18:55.6124457+04:00","gmt_modified":"2026-04-23T12:18:55.6124457+04:00"},{"id":32611,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"215a79715153cc7dbc2d358d6a91799d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/CMakeLists.txt#27-38","gmt_create":"2026-04-23T12:18:55.6124457+04:00","gmt_modified":"2026-04-23T12:18:55.6124457+04:00"},{"id":32612,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"bddad6a413d83352718b613e27b97469","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2294-2464","gmt_create":"2026-04-23T12:18:55.6134455+04:00","gmt_modified":"2026-04-23T12:18:55.6134455+04:00"},{"id":32613,"source_id":"9d3780f6-5f89-404f-acb7-3406999412cc","target_id":"cb7f8a8d2075a597d0647057d4371101","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1378-1464","gmt_create":"2026-04-23T12:18:55.6134455+04:00","gmt_modified":"2026-04-23T12:18:55.6134455+04:00"},{"id":32614,"source_id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","target_id":"9d3780f6-5f89-404f-acb7-3406999412cc","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dccbfa78-83ae-4fee-9212-5ac10c7424f6 -\u003e 9d3780f6-5f89-404f-acb7-3406999412cc","gmt_create":"2026-04-23T12:18:56.216174+04:00","gmt_modified":"2026-04-23T12:18:56.216174+04:00"},{"id":32615,"source_id":"9032efbf-122b-4ac0-9b47-6531642636d2","target_id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9032efbf-122b-4ac0-9b47-6531642636d2 -\u003e 3d9ef584-1d54-4c52-bdce-636c5bde9f59","gmt_create":"2026-04-23T12:18:56.2171774+04:00","gmt_modified":"2026-04-23T12:18:56.2171774+04:00"},{"id":32616,"source_id":"11a3f0cc-0550-4d22-84d7-48826fa26abe","target_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 11a3f0cc-0550-4d22-84d7-48826fa26abe -\u003e b37927e4-88c1-4fe1-afa6-b1368bf27344","gmt_create":"2026-04-23T12:18:56.2186844+04:00","gmt_modified":"2026-04-23T12:18:56.2186844+04:00"},{"id":32617,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b37927e4-88c1-4fe1-afa6-b1368bf27344 -\u003e f28ee86a-fca4-470c-8556-7a946ee49c7d","gmt_create":"2026-04-23T12:18:56.2221956+04:00","gmt_modified":"2026-04-23T12:18:56.2221956+04:00"},{"id":32618,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b37927e4-88c1-4fe1-afa6-b1368bf27344 -\u003e 3d4850df-edca-433b-93aa-7b4e8b2ca3da","gmt_create":"2026-04-23T12:18:56.2221956+04:00","gmt_modified":"2026-04-23T12:18:56.2221956+04:00"},{"id":32619,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"fe73f758-2211-4ca5-91c7-8e3ca561726f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b37927e4-88c1-4fe1-afa6-b1368bf27344 -\u003e fe73f758-2211-4ca5-91c7-8e3ca561726f","gmt_create":"2026-04-23T12:18:56.2221956+04:00","gmt_modified":"2026-04-23T12:18:56.2221956+04:00"},{"id":32620,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"75b86f21-0ff1-48aa-91f6-8385cce6206d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b37927e4-88c1-4fe1-afa6-b1368bf27344 -\u003e 75b86f21-0ff1-48aa-91f6-8385cce6206d","gmt_create":"2026-04-23T12:18:56.2221956+04:00","gmt_modified":"2026-04-23T12:18:56.2221956+04:00"},{"id":32621,"source_id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","target_id":"40533d38-e516-4c32-be8b-d1775c29cffd","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b37927e4-88c1-4fe1-afa6-b1368bf27344 -\u003e 40533d38-e516-4c32-be8b-d1775c29cffd","gmt_create":"2026-04-23T12:18:56.2221956+04:00","gmt_modified":"2026-04-23T12:18:56.2221956+04:00"}],"source_files":[{"id":"5b1863c24f95c4307bc9d6bd13495e98","path":".gitmodules","filename":".gitmodules","gmt_create":"2026-04-23T06:46:47.4139817+04:00","gmt_modified":"2026-04-23T06:46:47.4139817+04:00"},{"id":"e1da3cd2e6e4f1c39a468f27c18fed86","path":"thirdparty/fc/.gitmodules","filename":".gitmodules","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"59aed13dec3dec090ca4238d87a33a3e","path":"thirdparty/fc/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"9ef0f7dd92ad42844d61d049ea2e91f7","path":"thirdparty/chainbase/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"ea84849af043a9e7eabccf5474037fdf","path":"thirdparty/appbase/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"bbbcb34fa600f3efb29ca006ef2eff66","path":"CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"33769e7ecefb7ac442a88bcc6e7fe7db","path":"documentation/building.md","filename":"building.md","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"e15d33f14b3a5dc9ebc5e50072c39aa1","path":".travis.yml","filename":".travis.yml","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"48369ee5882470d563a4a3760712465a","path":"share/vizd/docker/Dockerfile-production","filename":"Dockerfile-production","gmt_create":"2026-04-23T06:46:47.4144987+04:00","gmt_modified":"2026-04-23T06:46:47.4144987+04:00"},{"id":"5c83db7209d29d47467923bf09fbb420","path":"share/vizd/docker/Dockerfile-testnet","filename":"Dockerfile-testnet","gmt_create":"2026-04-23T06:46:47.4150128+04:00","gmt_modified":"2026-04-23T06:46:47.4150128+04:00"},{"id":"a4c9b2fe8fbb390d04b65fe4b8fd4170","path":"share/vizd/docker/Dockerfile-lowmem","filename":"Dockerfile-lowmem","gmt_create":"2026-04-23T06:46:47.4150128+04:00","gmt_modified":"2026-04-23T06:46:47.4150128+04:00"},{"id":"70883dd54389a65e0c6792812c73a8e2","path":"share/vizd/docker/Dockerfile-mongo","filename":"Dockerfile-mongo","gmt_create":"2026-04-23T06:46:47.4150128+04:00","gmt_modified":"2026-04-23T06:46:47.4150128+04:00"},{"id":"8119d11d74306341a650d0a8c0c5605b","path":".github/workflows/docker-main.yml","filename":"docker-main.yml","gmt_create":"2026-04-23T06:46:47.4150128+04:00","gmt_modified":"2026-04-23T06:46:47.4150128+04:00"},{"id":"fe40dc0bce746a9c7f466b6eb7abb86b","path":"libraries/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"de0fafbf85e2109ebd021f91113f4c4e","path":"plugins/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"3c826f15ca54d3363e6a7af0b5686211","path":"programs/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"586d0a978dde912618689cf19874dd4b","path":"thirdparty/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"922b8fed67a0bf6bcc7f3f4a2eb38ddd","path":"programs/vizd/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"48a318f357a885ebfef27b84ef5565ee","path":"build-linux.sh","filename":"build-linux.sh","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"3e55b84725e9a2931cb48b11d42ef75c","path":"build-mac.sh","filename":"build-mac.sh","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"3fbe84fabfaa10d8da23f6d4dad03692","path":"build-mingw.bat","filename":"build-mingw.bat","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"1582cef3977fa0f573c3bdb3fe4a0045","path":"build-msvc.bat","filename":"build-msvc.bat","gmt_create":"2026-04-23T06:46:47.4155294+04:00","gmt_modified":"2026-04-23T06:46:47.4155294+04:00"},{"id":"418562d4716f53d3060f183ffa64036c","path":"plugins/snapshot/plugin.cpp","filename":"plugin.cpp","gmt_create":"2026-04-23T06:48:46.2316277+04:00","gmt_modified":"2026-04-23T06:48:46.2316277+04:00"},{"id":"10461f81e6789cf5385cca1e62af9d4d","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-23T06:48:46.2316277+04:00","gmt_modified":"2026-04-23T06:48:46.2316277+04:00"},{"id":"87c4f90564e8fbfb6348ad688ef97318","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","filename":"snapshot_types.hpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"104cf6b015d8e526f86f8f74b8d4d146","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","filename":"snapshot_serializer.hpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"9560988721d95f90724da96e6a4ac318","path":"plugins/snapshot/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"a5860d2a0d6204ef8d91570a638adcb3","path":"share/vizd/snapshot.json","filename":"snapshot.json","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"1fef1de4422f2252e104a5abd7e7c5cb","path":"share/vizd/snapshot-testnet.json","filename":"snapshot-testnet.json","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"37fb39091ee4b69fe1e682497ff46b55","path":"documentation/snapshot-plugin.md","filename":"snapshot-plugin.md","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"d478cca230f790bc8f1573f56a55a987","path":"plugins/chain/plugin.cpp","filename":"plugin.cpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"8236bb0464725a19a16e9e7bd0d10b5a","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"5a775a89bb87e70f60760941848117e7","path":"libraries/chain/database.cpp","filename":"database.cpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"571d673b1b49568d584e159036820875","path":"plugins/witness/witness.cpp","filename":"witness.cpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"71cbf21e4bf2a2b603ad1183369ec65f","path":"libraries/chain/dlt_block_log.cpp","filename":"dlt_block_log.cpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"08a8508b82e7873a40cd73c18c5113d0","path":"thirdparty/fc/src/interprocess/file_mutex.cpp","filename":"file_mutex.cpp","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"16a4e2bff0288ec68e9817239c754aed","path":"share/vizd/config/config.ini","filename":"config.ini","gmt_create":"2026-04-23T06:48:46.2321307+04:00","gmt_modified":"2026-04-23T06:48:46.2321307+04:00"},{"id":"4036f8e38f752e8da82deeed190ddc06","path":"libraries/network/include/graphene/network/peer_connection.hpp","filename":"peer_connection.hpp","gmt_create":"2026-04-23T06:50:36.8452139+04:00","gmt_modified":"2026-04-23T06:50:36.8452139+04:00"},{"id":"03ba9497d2e4b912db997e43e1b9c653","path":"libraries/network/peer_connection.cpp","filename":"peer_connection.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"c07484f955228ae2a641c6a9ecc218e1","path":"libraries/network/include/graphene/network/node.hpp","filename":"node.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"8c1f057e068af3d7a13214f05a59ed6d","path":"libraries/network/node.cpp","filename":"node.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"e12a1d568ad99d9c23753af3b983d420","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","filename":"message_oriented_connection.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"44259eceb7b489d55fb322edef4c325f","path":"libraries/network/message_oriented_connection.cpp","filename":"message_oriented_connection.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"a090337969d7a39c7cbc9737c926d289","path":"libraries/network/include/graphene/network/stcp_socket.hpp","filename":"stcp_socket.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"7f5ebd18d8224ccabbd73a26fba17a38","path":"libraries/network/stcp_socket.cpp","filename":"stcp_socket.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"aa7de2818f0eacb01058838d2b81a9e7","path":"libraries/network/include/graphene/network/core_messages.hpp","filename":"core_messages.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"f5ad8f25a7e1c10d29fdcfd7b3eadb75","path":"libraries/network/core_messages.cpp","filename":"core_messages.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"32cf30b2e9094b9693ab53917b0a2eb3","path":"libraries/network/include/graphene/network/config.hpp","filename":"config.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"f6da664295247a02e1a87e6157ade267","path":"libraries/network/include/graphene/network/peer_database.hpp","filename":"peer_database.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"8fb5fbed1f7009b8445ba1ca2bb36e9e","path":"libraries/network/peer_database.cpp","filename":"peer_database.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"4810c013b14141360d4bcf40a8c63444","path":"libraries/network/include/graphene/network/message.hpp","filename":"message.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"abf923bd059721b5a0c6f9abfff538be","path":"libraries/network/include/graphene/network/exceptions.hpp","filename":"exceptions.hpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"8ed00ab8494d32c90e1ebf81d2421989","path":"plugins/p2p/p2p_plugin.cpp","filename":"p2p_plugin.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"4ec5dd7f21bde7651b20873b01f868c9","path":"libraries/chain/fork_database.cpp","filename":"fork_database.cpp","gmt_create":"2026-04-23T06:50:36.8457194+04:00","gmt_modified":"2026-04-23T06:50:36.8457194+04:00"},{"id":"9a05c42951266743e782ce0775e5bd42","path":"libraries/chain/include/graphene/chain/database.hpp","filename":"database.hpp","gmt_create":"2026-04-23T06:51:53.107459+04:00","gmt_modified":"2026-04-23T06:51:53.107459+04:00"},{"id":"a636cebf0fd48c268641a5544c551752","path":"libraries/chain/include/graphene/chain/block_log.hpp","filename":"block_log.hpp","gmt_create":"2026-04-23T06:51:53.107459+04:00","gmt_modified":"2026-04-23T06:51:53.107459+04:00"},{"id":"aa1ac1734ffa0ca1fb1ec42168f601e7","path":"libraries/chain/block_log.cpp","filename":"block_log.cpp","gmt_create":"2026-04-23T06:51:53.1080602+04:00","gmt_modified":"2026-04-23T06:51:53.1080602+04:00"},{"id":"d136a3c86c240fca63a64546b4891416","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","filename":"dlt_block_log.hpp","gmt_create":"2026-04-23T06:51:53.1080602+04:00","gmt_modified":"2026-04-23T06:51:53.1080602+04:00"},{"id":"1e6f9e0c4241a3a53748ca848749cd9c","path":"libraries/chain/include/graphene/chain/fork_database.hpp","filename":"fork_database.hpp","gmt_create":"2026-04-23T06:51:53.1080602+04:00","gmt_modified":"2026-04-23T06:51:53.1080602+04:00"},{"id":"5d124c256c0fcd736094cfbd39e807a2","path":"libraries/chain/include/graphene/chain/database_exceptions.hpp","filename":"database_exceptions.hpp","gmt_create":"2026-04-23T06:51:53.1080602+04:00","gmt_modified":"2026-04-23T06:51:53.1080602+04:00"},{"id":"5cdea1b55d11dd83076d2fe00b9305f3","path":"libraries/chain/include/graphene/chain/db_with.hpp","filename":"db_with.hpp","gmt_create":"2026-04-23T06:51:53.1080602+04:00","gmt_modified":"2026-04-23T06:51:53.1080602+04:00"},{"id":"f5e2709c934c90bed9814ff547a6da8e","path":"libraries/protocol/include/graphene/protocol/config.hpp","filename":"config.hpp","gmt_create":"2026-04-23T06:51:53.1085644+04:00","gmt_modified":"2026-04-23T06:51:53.1085644+04:00"},{"id":"38e584d2e1cd119a9140300797cecf16","path":"thirdparty/chainbase/src/chainbase.cpp","filename":"chainbase.cpp","gmt_create":"2026-04-23T06:51:53.1085644+04:00","gmt_modified":"2026-04-23T06:51:53.1085644+04:00"},{"id":"2e9e3cf1864f83b0b302ff86e7423752","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","filename":"chainbase.hpp","gmt_create":"2026-04-23T06:51:53.1085644+04:00","gmt_modified":"2026-04-23T06:51:53.1085644+04:00"},{"id":"21bfc0180b7699a6df5d595a956c92ec","path":"plugins/snapshot/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-23T09:39:39.4181973+04:00","gmt_modified":"2026-04-23T09:39:39.4181973+04:00"},{"id":"de06c0b429208d005ec4e2b38a7b6678","path":"libraries/chain/include/graphene/chain/chain_object_types.hpp","filename":"chain_object_types.hpp","gmt_create":"2026-04-23T09:40:27.9949788+04:00","gmt_modified":"2026-04-23T09:40:27.9949788+04:00"},{"id":"d1302454310309381c9368910649870f","path":"libraries/chain/include/graphene/chain/chain_objects.hpp","filename":"chain_objects.hpp","gmt_create":"2026-04-23T09:40:27.9949788+04:00","gmt_modified":"2026-04-23T09:40:27.9949788+04:00"},{"id":"58dab1fa0c82c6d488c1c385549bf65f","path":"libraries/chain/include/graphene/chain/account_object.hpp","filename":"account_object.hpp","gmt_create":"2026-04-23T09:40:27.995815+04:00","gmt_modified":"2026-04-23T09:40:27.995815+04:00"},{"id":"f2e0ab4a21a05fb2b13f0fa0f497f4ae","path":"libraries/chain/include/graphene/chain/witness_objects.hpp","filename":"witness_objects.hpp","gmt_create":"2026-04-23T09:40:27.995815+04:00","gmt_modified":"2026-04-23T09:40:27.995815+04:00"},{"id":"705e8221610923620972eca797fa6db6","path":"libraries/chain/include/graphene/chain/committee_objects.hpp","filename":"committee_objects.hpp","gmt_create":"2026-04-23T09:40:27.995815+04:00","gmt_modified":"2026-04-23T09:40:27.995815+04:00"},{"id":"6448b32a9d85a70c1c5dece30706f077","path":"libraries/chain/include/graphene/chain/transaction_object.hpp","filename":"transaction_object.hpp","gmt_create":"2026-04-23T09:40:27.995815+04:00","gmt_modified":"2026-04-23T09:40:27.995815+04:00"},{"id":"c70e20aa89698498e7c8e639e9dda898","path":"libraries/chain/include/graphene/chain/evaluator.hpp","filename":"evaluator.hpp","gmt_create":"2026-04-23T09:40:27.995815+04:00","gmt_modified":"2026-04-23T09:40:27.995815+04:00"},{"id":"c7f289a817d1cf2f2edb643d7c388364","path":"libraries/chain/include/graphene/chain/chain_evaluator.hpp","filename":"chain_evaluator.hpp","gmt_create":"2026-04-23T09:40:27.996318+04:00","gmt_modified":"2026-04-23T09:40:27.996318+04:00"},{"id":"f46b9fad5bc65772c0ace22913bdad84","path":"libraries/chain/include/graphene/chain/operation_notification.hpp","filename":"operation_notification.hpp","gmt_create":"2026-04-23T09:40:27.9963916+04:00","gmt_modified":"2026-04-23T09:40:27.9963916+04:00"},{"id":"2a488975038d8060fc2bec6672254f8e","path":"thirdparty/fc/src/log/console_appender.cpp","filename":"console_appender.cpp","gmt_create":"2026-04-23T09:40:27.9963916+04:00","gmt_modified":"2026-04-23T09:40:27.9963916+04:00"},{"id":"988bb985afa7b7add75e4415b239b6a6","path":"programs/vizd/main.cpp","filename":"main.cpp","gmt_create":"2026-04-23T09:40:27.9968944+04:00","gmt_modified":"2026-04-23T09:40:27.9968944+04:00"},{"id":"7005600676a1aac078451cab6f714a9c","path":"README.md","filename":"README.md","gmt_create":"2026-04-23T09:46:06.4694888+04:00","gmt_modified":"2026-04-23T09:46:06.4694888+04:00"},{"id":"3d04b0b0f0eb354aa6f47833f6b3b993","path":"documentation/plugin.md","filename":"plugin.md","gmt_create":"2026-04-23T09:46:06.4694888+04:00","gmt_modified":"2026-04-23T09:46:06.4694888+04:00"},{"id":"fdee35c26d891fe544cc27cdb3ead3bf","path":"plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","filename":"webserver_plugin.hpp","gmt_create":"2026-04-23T09:46:06.4700645+04:00","gmt_modified":"2026-04-23T09:46:06.4700645+04:00"},{"id":"4a4ce940f1e4d0377b80944b807f7236","path":"plugins/database_api/include/graphene/plugins/database_api/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-23T09:46:06.4700645+04:00","gmt_modified":"2026-04-23T09:46:06.4700645+04:00"},{"id":"d0fb72b813916ea9f35db2f6cd39bd1e","path":"plugins/json_rpc/include/graphene/plugins/json_rpc/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-23T09:46:06.4700645+04:00","gmt_modified":"2026-04-23T09:46:06.4700645+04:00"},{"id":"cfd0645ffe0098ddfeb689dc6608a9e9","path":"plugins/account_history/include/graphene/plugins/account_history/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-23T09:46:06.4706447+04:00","gmt_modified":"2026-04-23T09:46:06.4706447+04:00"},{"id":"fb1da1d76a9c97ea5b78a1aa200c3ec1","path":"plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp","filename":"p2p_plugin.hpp","gmt_create":"2026-04-23T09:46:06.4706447+04:00","gmt_modified":"2026-04-23T09:46:06.4706447+04:00"},{"id":"eda094f6c7f30e5af92cd6361249ffed","path":"plugins/p2p/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-23T09:46:06.4706447+04:00","gmt_modified":"2026-04-23T09:46:06.4706447+04:00"},{"id":"84f302d721cd2a423f647f2b50183558","path":"plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_plugin.hpp","filename":"mongo_db_plugin.hpp","gmt_create":"2026-04-23T09:46:06.4706447+04:00","gmt_modified":"2026-04-23T09:46:06.4706447+04:00"},{"id":"ae112bbcc58229a7363c2eb7dfc2d58d","path":"plugins/debug_node/plugin.cpp","filename":"plugin.cpp","gmt_create":"2026-04-23T09:46:06.4711493+04:00","gmt_modified":"2026-04-23T09:46:06.4711493+04:00"},{"id":"049b280127deb064471c9f9f3eba5a5b","path":"libraries/protocol/include/graphene/protocol/operations.hpp","filename":"operations.hpp","gmt_create":"2026-04-23T09:46:06.4711493+04:00","gmt_modified":"2026-04-23T09:46:06.4711493+04:00"},{"id":"beabef111a7a2136152008b444da9246","path":"libraries/chain/chain_evaluator.cpp","filename":"chain_evaluator.cpp","gmt_create":"2026-04-23T09:46:06.4711493+04:00","gmt_modified":"2026-04-23T09:46:06.4711493+04:00"},{"id":"2c29b33616609cdb7494a96cdf0810bc","path":"libraries/network/peer_connection.hpp","filename":"peer_connection.hpp","gmt_create":"2026-04-23T09:46:06.4717074+04:00","gmt_modified":"2026-04-23T09:46:06.4717074+04:00"},{"id":"e6e4173796f1dde64bec92ed8c9462c3","path":"libraries/network/core_messages.hpp","filename":"core_messages.hpp","gmt_create":"2026-04-23T09:46:06.4717074+04:00","gmt_modified":"2026-04-23T09:46:06.4717074+04:00"},{"id":"64b5113e7dbca1ab08e087f095423e81","path":"thirdparty/fc/include/fc/network/ip.hpp","filename":"ip.hpp","gmt_create":"2026-04-23T09:46:06.4717074+04:00","gmt_modified":"2026-04-23T09:46:06.4717074+04:00"},{"id":"0181fe0bb863b7fe871e3af8ad113ddf","path":"thirdparty/fc/src/network/ip.cpp","filename":"ip.cpp","gmt_create":"2026-04-23T09:46:06.4717074+04:00","gmt_modified":"2026-04-23T09:46:06.4717074+04:00"},{"id":"95ce48240aa09e3af69ee56050284497","path":"programs/util/newplugin.py","filename":"newplugin.py","gmt_create":"2026-04-23T09:46:06.4722115+04:00","gmt_modified":"2026-04-23T09:46:06.4722115+04:00"},{"id":"c6fa8e83f2cf8a08be2de60d97f4a9f8","path":"share/vizd/config/config_testnet.ini","filename":"config_testnet.ini","gmt_create":"2026-04-23T11:16:32.2829997+04:00","gmt_modified":"2026-04-23T11:16:32.2829997+04:00"},{"id":"475c2f17a00cd4de82dd54bf0a8126ac","path":"share/vizd/config/config_witness.ini","filename":"config_witness.ini","gmt_create":"2026-04-23T11:16:32.2829997+04:00","gmt_modified":"2026-04-23T11:16:32.2829997+04:00"},{"id":"56e73581fcc11e3d5d304c4453d84a9f","path":"share/vizd/config/config_mongo.ini","filename":"config_mongo.ini","gmt_create":"2026-04-23T11:18:10.1518461+04:00","gmt_modified":"2026-04-23T11:18:10.1518461+04:00"},{"id":"1703516eef21eec01e919079e221dabb","path":"share/vizd/config/config_debug.ini","filename":"config_debug.ini","gmt_create":"2026-04-23T11:18:10.1518461+04:00","gmt_modified":"2026-04-23T11:18:10.1518461+04:00"},{"id":"77d7d5cae5b2ba02b7b3e0116c821669","path":"share/vizd/config/config_debug_mongo.ini","filename":"config_debug_mongo.ini","gmt_create":"2026-04-23T11:18:10.1518461+04:00","gmt_modified":"2026-04-23T11:18:10.1518461+04:00"},{"id":"295d36eeed1ab98565250d89d54cc36a","path":"share/vizd/vizd.sh","filename":"vizd.sh","gmt_create":"2026-04-23T11:18:10.1518461+04:00","gmt_modified":"2026-04-23T11:18:10.1518461+04:00"},{"id":"2422c587506c0b05e97687067ae1d1cf","path":"documentation/testnet.md","filename":"testnet.md","gmt_create":"2026-04-23T11:18:10.1523611+04:00","gmt_modified":"2026-04-23T11:18:10.1523611+04:00"},{"id":"3a1c05308902dc684e85898a790b0e07","path":"libraries/protocol/include/graphene/protocol/config_testnet.hpp","filename":"config_testnet.hpp","gmt_create":"2026-04-23T11:18:10.1523611+04:00","gmt_modified":"2026-04-23T11:18:10.1523611+04:00"},{"id":"1c1b4b5872b3e0fa0bef4de9fb558675","path":"thirdparty/appbase/application.cpp","filename":"application.cpp","gmt_create":"2026-04-23T11:18:10.15288+04:00","gmt_modified":"2026-04-23T11:18:10.15288+04:00"},{"id":"f49eb1acdefd29c4b322dfa68d449774","path":"thirdparty/fc/src/log/logger_config.cpp","filename":"logger_config.cpp","gmt_create":"2026-04-23T11:21:40.9934436+04:00","gmt_modified":"2026-04-23T11:21:40.9934436+04:00"},{"id":"fb22ad271c25ac4291c3d91edf5eb0b9","path":"share/vizd/config/config_stock_exchange.ini","filename":"config_stock_exchange.ini","gmt_create":"2026-04-23T12:16:49.771073+04:00","gmt_modified":"2026-04-23T12:16:49.771073+04:00"}],"wiki_catalogs":[{"id":"c665e222-676e-4279-9041-a736a7d52cba","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Project Overview","description":"overview","prompt":"Create comprehensive content for the VIZ CPP Node project overview section. Explain the project's purpose as a Graphene-based blockchain implementation with Fair-DPOS consensus algorithm, its architecture as a full consensus node for the VIZ World platform, and its relationship to the broader blockchain ecosystem. Document the core value proposition, target audience (node operators, application developers, wallet developers), and key differentiators from other blockchain implementations. Include both conceptual overviews for beginners new to blockchain technology and technical highlights for experienced developers. Use terminology consistent with the VIZ codebase. Provide practical examples demonstrating common use cases such as running a full node, developing applications, and operating witness nodes. Document the project's position in the Graphene blockchain family and its unique features like Fair-DPOS consensus and social network integration.","progress_status":"completed","dependent_files":"README.md,programs/vizd/main.cpp,libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:31:56+04:00","raw_data":"WikiEncrypted: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"},{"id":"5d0929ac-019d-4924-9f9a-e6cf337e333c","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"System Overview","description":"system-overview","prompt":"Create comprehensive content for the VIZ CPP Node system overview section. Explain the overall architecture showing how the main vizd process orchestrates all components including the plugin system, core libraries, and external dependencies. Document the modular design that allows for flexible feature addition and removal through plugins. Describe the relationship between the application framework (appbase), the blockchain core (chain library), protocol definitions (protocol library), networking (network library), and wallet functionality (wallet library). Include system boundaries showing how the node interacts with peers, handles API requests, and manages persistent state. Provide high-level component diagrams illustrating the data flow from JSON-RPC requests through plugins to database operations, and explain the observer pattern used for event-driven architecture. Address the separation of concerns between different library layers and how they work together to form a complete blockchain node.","parent_id":"61cc85da-b705-41e4-9860-17177048c2ee","progress_status":"completed","dependent_files":"programs/vizd/main.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/protocol/include/graphene/protocol/operations.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:39:03+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"9c29a057-ce87-4636-9143-abbbe00af3e4","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Build System","description":"build-system","prompt":"Create comprehensive build system documentation for VIZ CPP Node. Document the CMake-based build configuration including cross-platform compilation, dependency management, and build targets. Explain the build helper tools including configure_build.py, cat_parts.py, and newplugin.py. Cover Docker-based development and production builds with detailed instructions for different environments. Document build options, compiler flags, and optimization settings. Include practical examples of common build scenarios such as development builds, release builds, and cross-compilation. Address troubleshooting common build issues, dependency conflicts, and platform-specific compilation problems. Explain the relationship between build configuration and runtime performance, making it accessible to developers while providing sufficient technical depth for advanced build customization.","parent_id":"3d7f67ff-d926-43f9-aa40-274a8bcc5a87","progress_status":"completed","dependent_files":"install-deps-linux.sh,build-linux.sh,build-mac.sh,build-mingw.bat,build-msvc.bat,CMakeLists.txt,programs/build_helpers/,share/vizd/docker/,.github/workflows/","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-04-21T16:26:53+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"69a80de1-f730-485d-a13f-c4efe84c9103","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Node Configuration","description":"node-configuration","prompt":"Create comprehensive node configuration documentation for VIZ CPP Node. Document the complete configuration file structure including all available parameters, their purposes, default values, and acceptable ranges. Explain different node types (full node, witness node, low-memory node, testnet node) and their specific configuration requirements. Cover essential settings such as database location, plugin activation, network parameters, and performance tuning options. Document authentication settings, API access controls, and security configurations. Include practical examples of common configuration scenarios for different deployment environments. Address parameter validation, configuration file syntax, and troubleshooting invalid configurations. Provide guidance on configuration file organization, backup strategies, and version management.","parent_id":"52d3664a-1bc3-416d-af24-b6826b0eb20a","progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_testnet.ini,share/vizd/config/config_witness.ini,share/vizd/config/config_mongo.ini,share/vizd/config/config_debug.ini","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-03-03T07:40:51+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"25110dbd-3911-48e1-b870-29607c837581","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Node Deployment","description":"node-deployment","prompt":"Create comprehensive node deployment documentation for VIZ CPP Node. Document production deployment strategies including hardware requirements, system prerequisites, and installation procedures. Cover different node types including full nodes, witness nodes, and seed nodes with their specific configuration requirements and operational procedures. Explain the node startup process, configuration file management, and service integration. Include step-by-step installation guides for different operating systems, dependency management, and build optimization. Document performance tuning parameters, resource allocation recommendations, and capacity planning. Address security hardening procedures, firewall configuration, and access control setup. Provide troubleshooting guidance for common deployment issues, startup failures, and configuration errors.","parent_id":"0a29818d-c5c4-477a-9a73-6cb166a647ae","progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/vizd.sh,programs/vizd/main.cpp,documentation/building.md","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-03-03T07:40:48+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"49484629-248e-40b5-b6b4-1664eab348dc","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Plugin Lifecycle and Registration","description":"plugin-lifecycle-registration","prompt":"Create comprehensive content for plugin lifecycle and registration mechanisms. Document the complete plugin lifecycle from initialization to shutdown, including the plugin_initialize, plugin_startup, and plugin_shutdown phases. Explain how plugins register themselves with the appbase framework and the role of APPBASE_PLUGIN_REQUIRES macro in dependency management. Detail the plugin registration process in main.cpp and how the application framework manages plugin loading order. Include concrete examples of plugin initialization sequences and dependency resolution. Document the plugin naming conventions, static name() method implementation, and how plugins declare their requirements. Address plugin startup timing, error handling during initialization, and graceful shutdown procedures. Provide practical examples of plugin registration patterns and common pitfalls to avoid.","parent_id":"48bf8158-7839-4c2c-a50d-7cc05923bd1c","progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,plugins/snapshot/plugin.cpp,programs/vizd/main.cpp,libraries/utilities/include/graphene/utilities/git_revision.hpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-04-20T10:26:06+04:00","raw_data":"WikiEncrypted:FgT6N5UmoqQ/n0GhU4kWL0J+Fybs3wSrBZ8i488xBvorI6lbBGjTYhS7bWXZzNetCm3S8JjcFgc9memzvSTO1YQPmT49Uldgjtl2WhFXjcF3WJX4hC0AP6UDYCYSCpEQRv9FPzViWgqq1DAOKLH+wBLA4uPKXHhu9yy+0mxa4aF6S4miAF3erjorTWHLA6eZthaZDF/KtxoS72PiMdX7my+r/UgxX2mhhzK4HFwOQsfLffXQD0QEh+3jSSXo7zksFg4c4HtLPHVniAghLUc4FaiLk4QFZXlsjRxPv9BGuHwpHdYEuf1paaNdIBxZnU6TwCa2zP+eoetFX/hv9cLPE3l34RJBTe3wc1a7XFlDFibG7B0J+cLTdLAoBbZhRWjZtE1jZ38MG19LiU8RC+/BMnG3Kez75HzaUyTdmrrQqVdzv7kWmLDr2ThjIUaJ8DQkZy04RHRESRIBA1lgvJHZvMT8NcvJs61mGdbbjPgm//7a9yxi7My3yX1iwGRqn3a/Lqro9m0YGAhxPL3igGWL4/yIH8gO/GppVOau8yklmHGVQu9sgROoFomlNcZjIUhjPnw/uM0DWMPEnpH8Oc+fqNXXVp8wpQDodiD65535YGFCx/7KABM6loSnvsPbRWYb9pV0KYB0b14G8jaRpOJbgJCApsYhcqTu5sydWErz6v3gUjTszz6cmK/3bvjy0SMoAl7MNDMYebUs8cZiR+8GzHYcHPs9ryxF5ofTQio5BxnxbKH1X7JB00SJVWogJHRL1KkShj5Asor6n/UugH/W+tclRJ/mK9WdtxaV1ifY61reOTJUCmD/eHgvDixPIrC6Z791SNiFzhWLqSJBwOIDrud9LLoSUYWRST13iunjJcEYVzRGkVxR2OU6rsDDFeb+ECIRi4WVM5Kte43i303/Po3fmPSmSdts5p3TU75MteEn71R5ONoH1vNowPjsyuyqGtNssow9U0prKW0nE5FZbXXi3IXUkFWtWroI0kR2htD6Ef70I+bG1C8j+UlcvM9Poffck/PbEruGH+aavXpaxMRcayIT6SGBEy4u+Iu6nughmmP9wKpSzEpStW6ZqgNOnYuOBqJihAHjutfprPUcZjdoifyNNnKRNxBO8EPMBsrIPEysvB7ubU5r0Gb29skV8Wb9LVqm5nGLBC24s8G5bmDfHCqyVxbx+b8AJOVVhAu8dKQK2Pt92R+PXA+VoTQEc0oaxgvsNPJjBx0W/dItwgUB+nItoqSytXeiucfQhINaKD6Ws/KvGKk3mRaS8i6KOJB0V0RoWpwWP0ZjUCGYZXr1i65I9ni82/QtacyhPKeR/dV508moShmcw2S3eD8BqmGKSnPAF7tH8RzIPcvuOFYLH9e7FNcoKV2NhKeNUgZdvVwTcf1NTZTx2ri19AUCa4vIawJUyhQ3/r7UxLrvqBxK8daQ+thKHrXe1gN1K0XAMQoNWSPy+srNGqhpD427EDMl03T99zDRZ8LbeufN2/KsYohFnR/rMKAsI/E1L0YR/5ZNtEKxqNbr68ADWZkE2Sup6GtbMqDmmgYV5G6HXTQsV5ZXSRJnextrT5JNJEoLW+HfSOESLc4syDu5fdoTXi7i772CuEzigL1YKaV1TzR4fpoHzc/CZh6rVObeBEVxqkaLniq228ZuM2e6omqfcHId8BjTE7hi5cBczbOJbVaUEErzMdIvr0EfHByOxwctdQ7JGbMQnxGnYwv2IqQgD1roNER2MFVMmabYAxqqlVGJvH4bRS4uAIK9R6j9O15/bsjfnsWIutsiUJq7WtMZ","layer_level":2},{"id":"41af7577-4b84-4bdb-832b-9539190e7ea9","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Hardfork Management","description":"hardfork-management","prompt":"Create comprehensive hardfork management documentation for VIZ CPP Node. Document the hardfork system architecture including version management, scheduled upgrades, and backward compatibility handling. Explain the hardfork directory structure and how hardfork files are processed during node startup. Detail the migration procedures for upgrading from older versions, including data schema changes and state transitions. Cover the hardfork evaluation system and how different operation types are handled across hardfork boundaries. Document the rollback mechanisms and recovery procedures for failed upgrades. Include practical examples of implementing custom hardfork logic, adding new operation types, and modifying existing behavior. Address common hardfork scenarios such as protocol changes, bug fixes, and feature additions. Provide troubleshooting guidance for hardfork-related issues and validation procedures for ensuring successful upgrades.","parent_id":"1ff378ae-ab40-445d-8853-ba7c346a78a2","progress_status":"completed","dependent_files":"libraries/chain/hardfork.d/0-preamble.hf,libraries/chain/database.cpp,libraries/chain/hardfork.d/12.hf,libraries/protocol/include/graphene/protocol/config.hpp,libraries/chain/hardfork.d/,libraries/chain/chain_evaluator.cpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-04-20T11:24:22+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"289967d5-f89a-42cd-b660-b89842524e73","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Transaction Processing Pipeline","description":"transaction-processing","prompt":"Create comprehensive documentation for the transaction processing pipeline in the VIZ node. Explain the complete flow from transaction reception through validation, operation processing, authority verification, and state application. Document the transaction validation stages including syntax checking, signature verification, and operation validation. Detail the evaluator registry mechanism and how different operation types are processed through their respective evaluators. Include the transaction object lifecycle, from creation to final application. Explain error handling throughout the pipeline and rollback mechanisms. Document performance optimizations like batch processing and caching strategies used during transaction validation.","parent_id":"971f0bb4-1d2d-4258-92c8-080f826ba913","progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/protocol/transaction.cpp,libraries/chain/transaction_object.cpp,libraries/chain/chain_evaluator.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-03T07:53:30+04:00","raw_data":"WikiEncrypted:pze/wTPA8hT9dADtWGlHVecGIju168riPHUw4TY8/AOhja4aeOzUlmfgdY/KTiokGkE0pwevgTXyU4//H92NNxIZ90VqY2mbD0yvEYoazibaKq9O1InwoMVUng4EkSsQB9oHT43atze2e4KWPpApnOpuXM/kNSqRnBSucHXjsMd+Tjj5PradoQvpJLU8cQA/Z7rNIJC0cpQOT83jnvDj0V6NqUee6Tv82FRi8ClWzP6EZWLJOwLqfzlzlavNBvEzOVrawfC21Hgjv0XI+S8iljUPDEK+/k4kPqQwBtNAZVNvSxdOMdQQd4H8dHYj42tsWQ4M2CHxt/jWDy4RZ7gusItaB76xjlAkrZESkdwZBkd//EMqxuKfE/A4/LQdGHNOTm+uaj6m8t76OHM9h4VR9V4eueF6t3bMM8jowIFMUsjHBlU+dkSn/NSR6LigMB4jIbNt61XMmwk1mFvwxws6PxL8XqLxS6WdTzKfDE4/IBBD7TZqimc2cA4z2+g/OZ39ZEQlIpiv8/TzTdAWlsxWrctDiJB94u/AwbbOehhEdFH2nS66e1wKUfknITsWMgsuyzC0CfWRd/fwrEG58bYEi74d+wo1sJlOuZEBaSfMiOosE7wvOH3oQ8Y2UgwJ0vjzgZUiE9G0ScjOOZWniMF0bqPEe06ztnJIGeefrHJOWjdIfN1dkS9ufS455XmgRlNSE/NqG4hDmxF9R9NWjkexlSw2BcqQfD6budkT9gXrT+DmvhvTAZNbhg3rbqVluS4bL3ruC2r+ajzWHoYzImenOWqpDXtY3PDdWzlF25dvXKPOiFCgnpIhx4/aEBmvfoFugNyi2rgkZ/GxUvgLFwYxUWsrXzOW3ghrF82KYZiOzclpGc9/z4O3aOx2rsywhd3+bwSLqnWiTUPCcJaACADsGSIk2O+4SSb/+dGgJEi0+9f+XVUkdntAmb/GY0r1Pj9Aggwk6gllw1jhIAFrhSeeN9YQkHHngVWQDTIqpEZrLiK8l9KRp0xOidl2MSvQPSjBk4h2qqynktmU6u6INK0QjvFuStt1EBvl9TX3ObV9TqdxQyTeD4wyygPZWQEip1CHg04iAihm5uA9siBylj/kLKn9MnuWugqJDyQmvMVc7PXW2PjXtPzhW7/Jb/SHMJoTD4Gr9dGOx46lLwizMVmH+Wdgu7ThE5TRiLm3zbM6Vva42JyyhlKovJOwOzbdE7oL4PEURcpIb7CwrNkCvuOclVRFhgGE6YTkuBTdHLlFpLoInX5qE2OW9+ydHnq5m3kxjp0jqHR1FEndp/SOAgjK8j5GUBfktjso1ePTCXqGifq82fcPCltrzG7k2QOtOSECTUa+pOeVnhutaJ3CR//hRALu3mrquQnFk0tLrX117kwCT9zFNRljPROygJRvN4BCTzDJgnqakMlqteAIkiRD3Fb0oHccw3FqJPY5lOQvvyGOgQeuBimDKH34MRTRl3pkYQbHOqjUqUi035eAfFu0Rvt/1KkKcP/6anglXytX8/wCssuFHVX8WLr/XarAK8wkI0F8fuBcwaifM6C4xWQNCD3dZMCNDxfik3SCqkRtAzmd1xC3HA1SQ5I/qlbrtzwC","layer_level":2},{"id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Chain Library","description":"chain-library","prompt":"Create comprehensive content for the Chain Library, which serves as the core blockchain state management system. Document the database.hpp/cpp implementation that handles blockchain state persistence, block validation, and fork resolution. Explain the chain_objects.hpp and chain_object_types.hpp that define the complete blockchain data model including account objects, transaction objects, witness objects, and committee objects. Detail the fork_database.hpp implementation for handling blockchain forks and maintaining consensus. Cover the block_log.hpp functionality for efficient block storage and retrieval. Include the database API methods for querying blockchain state, managing object lifecycles, and handling state transitions. Document the evaluator system for operation processing and the observer pattern implementation for event-driven architecture. Provide examples of common database operations, state queries, and performance optimization techniques.","parent_id":"f0c815e1-40a5-43ea-b849-ddfc5fa665c1","progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,plugins/chain/include/graphene/plugins/chain/plugin.hpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/database.cpp,libraries/chain/include/graphene/chain/chain_objects.hpp,libraries/chain/include/graphene/chain/chain_object_types.hpp,libraries/chain/include/graphene/chain/fork_database.hpp,libraries/chain/include/graphene/chain/block_log.hpp,libraries/chain/include/graphene/chain/transaction_object.hpp,libraries/chain/include/graphene/chain/account_object.hpp,libraries/chain/include/graphene/chain/witness_objects.hpp,libraries/chain/include/graphene/chain/committee_objects.hpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-04-23T11:18:36.4596728+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"9cba4008-bdf5-47d9-9b5b-25e71815c8c6","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"CMake Configuration","description":"cmake-configuration","prompt":"Create comprehensive CMake configuration documentation for VIZ CPP Node. Document the primary CMakeLists.txt structure including project setup, compiler requirements (GCC 4.8+, Clang 3.3+), and platform-specific configurations for Windows, macOS, and Linux. Explain build options including BUILD_TESTNET, LOW_MEMORY_NODE, CHAINBASE_CHECK_LOCKING, and ENABLE_MONGO_PLUGIN with their effects on compilation flags and feature availability. Detail the Boost library configuration with required components and static/dynamic linking options. Document compiler flags for different platforms, optimization settings, and debug/release configurations. Include practical examples of common CMake invocations for development, testing, and production builds. Address troubleshooting build configuration issues, dependency resolution problems, and platform-specific compilation challenges.","parent_id":"9c29a057-ce87-4636-9143-abbbe00af3e4","progress_status":"completed","dependent_files":"CMakeLists.txt,programs/build_helpers/configure_build.py,programs/build_helpers/CMakeLists.txt","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-03-03T07:53:46+04:00","raw_data":"WikiEncrypted:g3OHqDqjdBWAhmAZ37hW4JJS2u8qzwOVBZXve9aVGP6gazow1Wn8Wd0+UNTa//LywYD6BGd6YGJkamwOkpXAoi0OlYTJa1FWkUUdxN1EH33gTvgfxPrMV7qyTVAROvgnOaS+tl2HssNZt7914i9BaqorW50sTZye5RfdS89LYex/7mydM08IxLGVg4gJKjYPQuSdcpIS1hg+PsDlN9X/Ug8WYWzJ+yxiG9mx1LcaQ+EI6rrhmGEdPeGU6Qw9fk7ruPSqXVu9l9r4mKjSvUhBVKVkT1jFCBng1YqT9JGF0Ab6sCFyIsYqqszQOLVi+oQb1sqQjqb3zoWeB3SFa1Lms0I815Os4GqTE5eta8dnR9ObaTP2AARVEVUdZ6XTwAhUmyuVXzTyZN1URmGpLwWgMrDc7yhhGMV7769Lp1+4GlGgsYH3BI4ib6bfIlNusoofQp42/eD+SyU89DesRdReUag/QKOjfpsM4gI5MmmTVf7/VR5anxsQqwRyee+KZc9tNkW8u1ACyQ4rBstC3cBbHCmXMO3IBU0SyeskR3omlFced0DsX1iB9QuorjlKPKOnDPGIduPawhEA9p2q/FGQlRvsy69nI4aoEAtK8a1J2btjSCNTptMk8up5/UXig8N3WCwoOHQWylIeW1FS+voCO++HTscJGW8SiGRJ4Hy4okzLnJYhSbr2PCfyU0Ky/55gZOzwUC0tUzLaYJFPT6DhdVrucg/2QGwEW3Qr9xTXZWw3dbwyyJruOZAz9myg8yALLUnLa2oPa6JVEa8rMEXPYxLwUtxTvUz/9bta1Bk+8fV+yOKErm3S3c1Iy4rvdFrAw7EnK51nRMEgByN+6Mhz2At31gy/QH6NlKr9W84zJhxL89GRL+fFeY+cqb+D67sAZwA5Os1+hmQnNA0+Br0N5RCQFesEkPBNwX/P+dCzjBFVVFQJisw5esrClIk6Tyd6ZKfkBanNs/6jz0xhs4J4cSZEuVF1pZ5EuixRGZW9lG1ggwrToUFbxK/vlC48sFwKgMqKHoGLc3hYxJnNlOBzRmeUI0NkdGyBuynWi0YwdOhD+09MwmNRaykuqjMww/WUUvF8ZBftLHxEbkRWve/phBWR3zEpEWL7hxR0ofgKgm3y1glXck1Z4D6MFhfdGwNSXyxqBm/AAmQKEXGL2XLWC6HndhK60NNddB6HnvXjUpoJGUSL27pegS/wjGD2vIA5HXH68AzH+yt9UEj1PKzxWR1Zz9HaStw5nObACNkxOW4w/+j74auyHjuFC3/Hivjjf4vmpEAeRih0rkX3wAoDqZyG7g52qWlnNwPy/KoX2pJd87L865JOVDOXYigrgrSgb2t/CZVhSYYvk5bLD5RxJIbjyewxJ8dsPJ3k9edjffT6KwJ6N53zENqv1r6PPWxM2OVhkwbnKaIw9jBL+sA41LyFEcDjG8lzKt2jHbZvSlGkFf/GMK8ULEEMcLmhsz9337fYZohcNiYN9XyRV6WIL4steB3eN0xB7x25P+N+SzYXoVP4WJdaVruEIzfzwoN0yC4v9dhAWgq4exjh9o3QbKTxrsDjyG0PjP4gBYGypP4906w87pWPHheId+lDzjmGW09YAmm6Hg6SB285rTwUs1mbeWfEq3Xg4wqmBWF8gQp/ux8in34C2cYdn8ytE52DOq5OZbPQ4L9+/cMeoXuJZUBBxogig+Q8Qa3pwTCeedNxpddMOO6/qrfMbIaCm7xlKAkvQs31RM3WucVcQeDtL/0CpS/ECiSuk5lvuqy7Ua3KtF22KFv4BRoxy3FZZTUSw76br3o0DmfPWrDJYT1VoRMKMjztGzsy9kF7S5xcml4w3JpuWP559CFPYHvxznYSLIm6QhlLbIUKsz9WGweCxOnj09bqNE+GvddfuRisAa4=","layer_level":2},{"id":"74938232-897d-4eee-8d0c-5646023bb077","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Unit Testing Infrastructure","description":"unit-testing-infrastructure","prompt":"Create comprehensive unit testing infrastructure documentation for VIZ CPP Node. Document the Boost.Test framework setup and configuration used throughout the testing suite. Explain the test categories including basic_tests for fundamental functionality, block_tests for blockchain operations, live_tests for historical data validation, operation_tests for individual operation validation, operation_time_tests for time-dependent operations, and serialization_tests for data encoding/decoding. Cover test execution commands using make chain_test and the generated chain_test executable. Document runtime configuration options including log_level settings (all, success, test_suite, message, warning, error, cpp_exception, system_error, fatal_error, nothing), report_level controls (no, confirm, short, detailed), and run_test filters for selective test execution. Include practical examples of running specific test suites, interpreting test results, and adding new test cases. Address test data management, mock object usage, and test environment isolation.","parent_id":"8958bcd4-acad-47ea-9a20-16c85e32c5ef","progress_status":"completed","dependent_files":"documentation/testing.md,programs/util/schema_test.cpp,programs/util/test_block_log.cpp","gmt_create":"2026-03-03T07:29:31+04:00","gmt_modified":"2026-03-03T07:54:54+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"aac23226-14dc-441b-a39d-a5187c89b12a","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Debug Node Plugin","description":"debug-node-plugin","prompt":"Create comprehensive documentation for the debug node plugin functionality. Document the plugin's purpose as a development and debugging tool for blockchain state manipulation. Explain the available debug APIs including debug_push_blocks, debug_push_json_blocks, debug_generate_blocks, debug_generate_blocks_until, debug_pop_block, debug_get_witness_schedule, debug_set_hardfork, and debug_has_hardfork. Detail the block generation capabilities for creating test scenarios and the block pushing functionality for importing existing blockchain data. Document the witness schedule inspection features and hardfork management utilities. Include practical examples of common debugging workflows such as creating test environments, reproducing edge cases, and validating blockchain state changes. Explain the plugin's integration with the chain plugin and JSON-RPC framework. Address security considerations and proper usage in development vs production environments.","parent_id":"ff55fa31-5b21-4383-98fb-59c794986fc5","progress_status":"completed","dependent_files":"plugins/debug_node/include/graphene/plugins/debug_node/plugin.hpp,plugins/debug_node/plugin.cpp,plugins/debug_node/include/graphene/plugins/debug_node/api_helper.hpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T07:55:19+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"23550eb4-0f4b-4afb-82e8-e19c1ff572ee","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Installation and Setup","description":"installation-setup","prompt":"Create comprehensive installation and setup documentation for VIZ CPP Node. Document system requirements including hardware specifications, operating system compatibility, and dependency prerequisites. Provide step-by-step installation procedures for different platforms (Linux, Windows, macOS) with detailed build instructions using CMake. Cover dependency management including Boost, OpenSSL, and other required libraries. Document cross-compilation procedures and platform-specific considerations. Include Docker containerization setup with pre-built images for production and development environments. Address common installation issues, build errors, and troubleshooting steps. Provide verification procedures to confirm successful installation and basic functionality testing.","parent_id":"25110dbd-3911-48e1-b870-29607c837581","progress_status":"completed","dependent_files":"documentation/building.md,CMakeLists.txt,share/vizd/config/config.ini,share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-03-03T07:56:01+04:00","raw_data":"WikiEncrypted:6nDTd1wU0hYJuRoAJhne4b5ashHc1omfgy81/++xSBe2w9rUrWuXSbrEHiZ6Cy0q5An6XvzHHLEqEmHIyn2epq5KEULOgH2CqfXy5wyGH0EduXcfrSX56fWPXFubhJoHVQNhHkotTEhKINivrUKUNsPV6o/SCw0uS9y0psxcKPtjaDoh0Fsz18Pdv9IgWC70bflhQsm2jmkHFIc62gg8wOTFVxbF44Nq2KVMgUmZu8HHDVmcWYlGBJG4KP3DT1WhmlX7YVXdIyz/7tiSMjzEmTAQvZZnyO7dKtsVFg3ASsOiAFqYVsIAD2SdlPu/dd4xojgsZw4HhAKnTZn+evhBpNEpL8R9UK82ostEvM0NLTbmE0HKj4B4RySYX7KYg/1d2bpsvrnoJ/ZhVZ8+9AvHl2H5pBA9HcIqHHTTGWu/WnGJDaaSjUfCPXaKPFx4joabBkzYJin7GRLyH+5IZNHA6n3VowgfhsraSEw/MnNETir9SG5GGrWTylTeglHHrcie14oBS34syZT+fNopbAHIhb02nGx/6OCLZ93UO3EGJgnIPuGoFjBUQoQNuOYYjLOAGMP/s+sfVM3r/HZHBua59+e/1tldVB/S2mDsKp26kPb8mx7mr2k/G7ZiBT9K41KCmTJsTej2HHTu0Ht9v/g6hYB9YXKnes9JogX33PqeOULXpDei3Xh9WM8PlpHH+Z9tHuDr+Q6CI5yHVart8aTTkL8zqZFHU9Bm9Ann/Nir98TTITDtqGSvAC+73P10xOYmx6FHJlBkoD+dc7yYj+YQF5ObJ3UCsFNrDQUGXpUUsQiSJkmzKzNwLSHkn0VHNi2webLwLUngr9FCvC/l4GtYDDIR0T5p5nJaaog5uzhpZiGACLuZeGcg4/VOQOZ4USyuIqDviAtW1szf7Okr5nIG3LbRQ9SN1zIGrTkdLys3ywOkB2ZE4kiRq5+GYL5cWQJMeWBkMo3pSPrk6Yv/4zQs/h3E1T/C7t+woDjnKOt+Wntxx2CrHFr7dWF+bWjfBTmGxufuACM44zSCzhOiruhjAnz71o70QjkErs3ZDcBYfB+ilY35E4CtfUoS9G4sNESCs4tQ+qt1zPgWOKYXR//oskpoDuzS6dAEiASGk9w0r7hEKuNo/gDh/qkL7UV3HebH2KL6Ugt15CizV8jt1wVKKxi/n1rsQJy7Sj080qAZtdDosKTgGzOwW0GXxC9h92lY/2ev69kX4pfXel0X1+l2LkwkOUqf64q6OSnAmzKWC903+LQT0RnvWZKVioCDvIGH9hSjaBI9wTHVoocTVmhPLLSj76MSfVnvx/2d0AUEliHgZGNzY7KlEJxsQUEc0ZjkXwY7BQwVKrOL8boU+LyTxj8zbBoMmaEykSzX2qgSwLOd1gEsM+jXNh14gKTgmUmO81ca/j13pbb6UIn6KIaAZSQv4dht4V9WEdvUqG+o9w5HClkedaVicqnp2cdRABOBYzxqZvEaumXpOtEg2YhaXBtv44HwWWahfIlw4O5DbN8+kiJ8G8GWQbKikFzXi+5/jDhEgYeNLInwwXK5bZ1ZYQZlLrVVgHDj0SkGxKpw5Aw/vIuOLro4OvglrGOXmuo6IUXnA/5Sz3eCRnEcsSND5LWjDpt6LskiimzqDwvjDD1Pl6sd9EGaILAbu6DSNyaU/xba0wiM22V4Pu11P932NcUzo7155XM9ungXueuXGtu6w/Gf8m7nGscdJw5fqfk1uLML5/6MFsG3RjtSzTgpiPSPNaIjHy3OEC1yI41UqM2FYg33NLyBV0/cmiQxGsPPGKhSp2mJVRVT2+ncIwxcNw==","layer_level":2},{"id":"c4d28611-5059-40a7-aaa1-5d528cfc98f5","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Operations Definition","description":"operations-definition","prompt":"Develop detailed content for the Operations Definition section covering the comprehensive operation type system. Document the static_variant definition in operations.hpp that enumerates all blockchain operations including account operations (transfer, account_update, account_create), asset operations (vesting transfers, withdrawals), content operations (content operations, votes), governance operations (proposals, witnesses), and specialized operations (committee requests, invites, paid subscriptions). Explain the operation_wrapper structure and serialization mechanisms. Detail the relationship between different operation categories and their hierarchical organization. Include examples of operation creation, validation, and serialization. Document the deprecated operations and their replacements. Address operation ordering requirements and hardfork implications.","parent_id":"84b360c7-2115-43aa-89df-1205d4f6231d","progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/operations.hpp,libraries/protocol/operations.cpp,libraries/protocol/include/graphene/protocol/chain_operations.hpp,libraries/protocol/chain_operations.cpp,libraries/protocol/include/graphene/protocol/proposal_operations.hpp,libraries/protocol/proposal_operations.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:29:14+04:00","raw_data":"WikiEncrypted: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","layer_level":3},{"id":"907f8692-5249-4ebe-a7bf-bcec7a632dad","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Database Management","description":"database-management","prompt":"Develop detailed content for the Database Management system that serves as the core state persistence layer for the VIZ blockchain. Document the database.hpp/cpp implementation including the database class constructor, destructor, and lifecycle management. Explain the open(), reindex(), and close() methods for database initialization and cleanup. Detail the validation steps enumeration (skip_nothing, skip_witness_signature, skip_transaction_signatures, etc.) and their use cases during block processing. Cover the database session management, memory allocation strategies, and shared memory configuration. Document the checkpoint system for fast synchronization and the block log integration. Include examples of database operations, state queries, and performance optimization techniques. Explain the relationship with chainbase database and the observer pattern implementation for event-driven state changes.","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/fork_database.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/include/graphene/chain/db_with.hpp,libraries/chain/include/graphene/chain/shared_db_merkle.hpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-04-23T09:42:13.8987183+04:00","raw_data":"WikiEncrypted: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","layer_level":3},{"id":"e4c9debd-e4c1-487d-ac92-79cdf3462b04","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Node Management","description":"node-management","prompt":"Develop detailed content for the Node Management component that handles overall network node orchestration and peer coordination. Document the node.hpp class implementation including node lifecycle management, peer connection establishment, and network topology maintenance. Explain the node_delegate interface for blockchain integration, including block handling, transaction processing, and synchronization callbacks. Cover node configuration methods like load_configuration(), listen_to_p2p_network(), and connect_to_p2p_network(). Detail peer management functions including add_node(), connect_to_endpoint(), and get_connected_peers(). Document network broadcasting capabilities through broadcast() methods and inventory management. Include examples of node initialization, peer discovery workflows, and network synchronization processes. Address node state management, connection limits, and bandwidth throttling. Provide troubleshooting guidance for common node startup and connection issues.","parent_id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","progress_status":"completed","dependent_files":"libraries/network/node.cpp,libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00","raw_data":"WikiEncrypted:84sa6bLhPDu+UNjxUZw5rBAx9KYoUICf6oS5DojEq7h6OODVm92LmG6NSFskdLu4/BlwSqG4Jzo94ijeZaGGCOMnja8I3tGAEbT+3q+n8m/dw+d6coAvelXNpimAGqE+UgFSwNQ+QleFS2KnlnP0Ei+AyYS+W93RhzWk27zbV8GPjpKgme0so6woQQiGN1PmaTl8u03kRB5fRh9sxqVA8qa8YqnyO843mBnm8gceC1VG3ZkElSRJiah67i4rB8mwgmdDzWJDST7UlTgRtRQ6kxvZezrE60FHupzXUoNpmUzeCjYMp4HkB0VGqrOY7Q7zRwtBoyE2zfnXaZuAc8wCdI0TDc8rUfDnRTs2NEQ2+JDZfNlxp+Z5uhT2mCkfhIl0i8ciNT3yXwkxKft6tBOl1KVNCygqrecBFFjE2BprTsr8xv0rYl9g4nMfF8Q55xZxtZ0nrmobnFWDDLiF+5h6wM/rDMGbj5E/+UASJZFSPt4j/cQEKAjp5qI5Axm1BIDHQNDHicG76LbRl3iucTkM4QxCdPYuxcfR3SmzTeFQs2fnkQZKiwMAdWH9ef+B2FDRSverFsTbZg+sKOOw1MpmhghN9EtU6vwfWNi3TzrRj/VRfEnXqE50oX//jSWPsHota4t66ggpqucNRGurBl6aZfFkRXCSFyaYCRmH1sFMinKNS0aijN8tv6oPCYRS2atr0kIBzAX4Ru6MibCtvg80eKvDYujvZZr0bTH6Uh0fmuZwOX7YaDUX1KwBMuja4CmFymM7SGjnkJp/EI44GraxO1o0cuX/hnt5+jmnRqxjqQF5wJ8Tngw/Q3amWUMURWQhBFLGm5Af5QL4Hw5QDvbIJOl/gul82CDG6CC+TP4yW2TFhreAeUNMT8V+n8elOHPgLu7D1EtrLPjg1R4eU1pk1dIRJzlubWIspbm+ymQmlZzwV3AuDT3Eyu4iaY1qta/ZACGBg/DAHUgPDJIExAN5WVclSnIgChTAuOQoEQVMKRVb8oBis85sOEllEH2leXd6p4/vGKuhtX7F70sXWD/OrVT0KA5r/NX/+XUPqKH9WhVgt+kDGu/JcRKm/4MHupYjESCvRTu6orYpKaPYUC18zemoAkkHISq4eaQ4oDoCeyD3T3whl9FqTx4+RoYOrkMAStdijoz2OhY+PRgGaOgiO7MdjnDpj8zlYqbG8A9M/1Wal68lu5FLaOE8slWUY7e29fDGlQUDuUmkkx4FGt1XFM4ID7WgsmA3aNs2miYR/6ROruJVnMBP40Jp64j+HTyBlmE3zphn5KoQK0vPTcWzlXefUYsqxmCjwJ3xGytBa3Tf5p+pNj6gFMNTY/vP9d2W3IRG9Fanzo0hv+MAC4R5VLyipO0vFhsxx5veCg9bh8ZWZW5yobkatfzV/X+gS/CqtWBHf03gDsoxYbdfeLYXcrM4KvREqgVxShOXEBwCdo/g+ukZJkzzc1QYYqEn/Hptz4r8ByAPMzclKREd66MZDBbCj1goZ+J5MWyfy47ZXPJ10iT7neBSO8ggoQGAEs7RXp/SmzdmpYPRG3ScDN7RYIX/K1KenyTNlLuSXQYU4dvS4LmzX9hm2TAL8KScg6z4NSvtYSUR91oZ3EQFL+anrRDjR7TyasN4TdhENpsO2LuGTCeCFqGfDEsPfm06cB42ecQAwzAdVsOaHwhnpibENAAy/M8qD+tDmEiYAkqRDN8FLaIYjC8rRxUHQlx0uamaSK49tqLLd0OqNnpbG9HcJaqr1J1FjhffzOh5q0p4R1KY4ekSD3081e+XuggoOMzQfaJrMWcu+qIA3LFPGuBrC8J1ABpqqdvmYcsiO3d2aE1g1C1get3PYOByvGFsRCDu","layer_level":3},{"id":"b0c3043d-8903-4031-a3c4-05f5d11f328c","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Core Build Options","description":"core-build-options","prompt":"Create detailed documentation for VIZ CPP Node core build options and flags. Document the primary build configuration options including BUILD_TESTNET (enables test network compilation with -DBUILD_TESTNET), LOW_MEMORY_NODE (optimizes for reduced memory usage with -DIS_LOW_MEM), CHAINBASE_CHECK_LOCKING (enables chainbase locking checks with -DCHAINBASE_CHECK_LOCKING), and ENABLE_MONGO_PLUGIN (compiles MongoDB integration with -DMONGODB_PLUGIN_BUILT). Explain how each option affects compilation flags, feature availability, and runtime behavior. Include practical examples of CMake invocations with different option combinations for development, testing, and production environments. Document the relationship between build options and resulting executables, shared libraries, and plugin availability.","parent_id":"9cba4008-bdf5-47d9-9b5b-25e71815c8c6","progress_status":"completed","dependent_files":"CMakeLists.txt,programs/build_helpers/configure_build.py","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-03-03T08:11:41+04:00","raw_data":"WikiEncrypted:+hgVdflPLL0xmma3oFcNhzO50UdlcHF7zsXDx81IdubJW/ei3OO55+CdCQ8q5WiMdgjekSxvQIh/JW4dHdtvRsVOk97oJYxDnpMU2nARwm7MPVOE1fvGf21aemNsnNtFwaR6q/t3BG8xZS4vVWZKT5owJ77uYsNkUtyJqPayPXgZ6JPk8AgN3ErlK0xSf5sEg+aXImxZoamSb1RzUCLe/AJrMfwO/39F8fRnlooSObSAG9972AB8S3z8qkdT+/NvoP7Yu4c+O4xbkxSPRhVqqoDVzk2WqnvhZkuaibwIrH+emKKGGpww3D5gW5+moLgsLDC6m73VZEeZGSxbE7nms4iAyAJOciJRbc/48yTJ/q3q9oq0k/pV2FuB8A68A1zDWZAlutbh+29TzGfMBPNP1Wxrhno/VTrHMYsiQJOS6dZRxbbN0J/ByB5w5/JmntWDkKeEvOWRKrsw3CMHsKX66UataOYI1UWdk2eEDrSg4SRkNcr3T0prOUhOLk2WM73mmQYCcx/khTM2OtOAJoTBpshyseGs2nk+BdX6kCLmTglTkyiqV+OF0ycuk78gFPSyOQwkeOd6iPGQfzI3nr9VnuL8WYk7kBH9BCJcQTHkwRQjKZejrIH3O5WrLuzX+w5CTP/BrEW8dt29CEh/0s2L78fJo5pCvOsQslGF3j4tRYrDUGtDQ54GiDt0iYCnAIfzF27DbyQVNIkiMfPP9fmE0FoR6wYQKc7FT4NfQpMKTV1xjOzsPolWe2rzXbormwz9pfS0XN3kuarDHx1/UsspkBtInazzzduegUsyG5o1YBrMcnTKcmqphnb5eaQ3+QDWGjsouQfpiCUvowvf7Ajz9YMLtLvcPUK6fTnv47i5C0Ny5eNSnPexPKX+o2LEj1I46MTt2FZz9/UymAj0n5UlOpM297SrQ+WQoJBWKjh03W1x/aWrbpWhLOwmLQVUDz1lGMaKv68c9gNOWX3R8dtU+SuIfFQuMY1XgNpnzH+I1OsbcwOJNB1wtlirZ/XckeHB9fMocf8MICEkSMgPIS4PmRAfUJXh8Emr6GHkO/HIRdzEVykq2GTsMKcTIsnYzLwUsfmy1gH3nXTJRUvP3AdwxG5N4EG4ijcxXFKwenNLlvpzXvG/2uEgZjo728S+7Md1vhLZJ2dsepImJqn1TmEZv5WkEj3lbkemcfx37pZah1qkYgav2mrEVUBqbWdfZpYy6IwDPUCgE5TBzdESGu49HWgYaWW6oug4PTcbaul49Rbiv5LMbfwHEf4EKvuGqQiwjgcWsz+57SmE6omFem0XKE7PUiGMzl1vSMwIaUG3pfaRSMKE5UvrHPHaR1SrsVXt6OQ76yjj73HerLdyDRInKoUzQwkZ9jaHE1hft4Yste+Lej7O2OrUSKE4wzhhVBkwwh9AIUqntzEaaB9U4lFVk5uX6v6IJ9ssNwZMzl5j8bUVDfb+HDc2K26alme+A0EjEKlIL4ENYXCZk8zoRhhzibeDx1ZEZXPjSKdZz73dORKb78hvre4u88arxQuxwmwt","layer_level":3},{"id":"ead3ca09-d5e2-40f4-89b7-f3c2aef06cfb","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Production Dockerfile","description":"production-dockerfile","prompt":"Create detailed documentation for the production Dockerfile configuration used for VIZ CPP Node deployment. Explain the multi-stage build process, base image selection (phusion/baseimage:bionic-1.0.0), and build environment setup. Document the CMake configuration options including BUILD_SHARED_LIBRARIES, LOW_MEMORY_NODE, CHAINBASE_CHECK_LOCKING, and ENABLE_MONGO_PLUGIN settings. Cover the dependency installation process for Boost, OpenSSL, Python, and development tools. Explain the build optimization techniques including ccache usage and parallel compilation. Detail the runtime image construction, user creation, volume mounting configuration, and exposed ports (8090 for HTTP, 8091 for WebSocket, 2001 for P2P). Include practical examples of building and running the production container, volume management for persistent blockchain data, and network configuration for node connectivity.","parent_id":"7108377f-502b-47c6-be02-3765463aed1a","progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-production","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:13:22+04:00","raw_data":"WikiEncrypted:1PcQ+NupkgQiLQ506NXlam2NaTESDp42+Zw7VpfY+CzCiLAg7GShqb8JCcPdfBZaP7WIo1Mgj6cRsriY4RimiUKdLamglD6mtocdtihAp1RQvMgjoGAVK79Z0f2cu7KECfA2Z+Ievqh+9tvt69UamhE1qHeFeJsTu0aWWWpl5rcj2YSIR5H0RebtCzB36Sv/CERib288ap2vqUEZU89BGsYKIWlHMuGgzeFzUMYrV+wk9eG5jVZjG906/zYCaDWTbh/TekpxoiIf6HSW4xXhrMD7AZJWn5k0n6jctguU6jEHQP9nzYFUiTMQ2lMvD/jnXKsLpwJqAZR71nU87TaUO8FVZul2iQ+vQFFwzyNXGE4ddtidjCMxKR2Ww73haXvYbAKHAAAdbw0OXyAcdKL7K2fcga/3WAuxnWWVMGg+E5msVSmXsJcIZSV5C5r4Va9hWjxCi27IEGMvBsLBQXwRNsAn8aSlu/fa/jYxeM297Dx450DFq32jM4NPOOXjC5XJaOBlCvsZa5P7zSnR6NJi/X+7fWOw9yjkvU8Py5K3PMH2RW0KfPHB4nSgLXhw7SBcxT1sdiFVcF6VrY01bksI3y6ZFQeU2Mr1vAWTAnZvhbpann/UGYuYmo9u7R6+OoRu7tP/uEmnBKM159+qF/2olZ7ZKbq0jX9b/9HGNcCEWiPovpxyKkfyNvPpJwaiKsoQKs7Z7VJXgM3qZUJI591RB+ZcnmWCqM8nEQcRvf71HmasT4O8Y3sTM2dBr8kEZhAlpbsQKQuv/tO4kgC39gsKvLSkt5o6PZ8rP/QWZKPdyO214qNoge+jhAzViysspNcJh6FXLe3DD6YtFK+txrue5yI9R1M3aoDc/bXI9A5j56VWBYXHbfPf23c5SX4VJL1tryaUnD7HopiWlFdRMMWK4Lkn/2+Q0acfSzOCJ0FwsfSAC8BpfNe60OO6hYvSrt4uhGDRMGa3SGJOJGLial88QaoDUKgcHRRq6xPKtHWGyD/spZpRXxFYPZcPv4y6RRPSrcytnWWxf2UWcR+HQRb1V4MNKxPXh0RW3gSVo9D7smSAIXNAwuZ5uJBZvg7CYavG0mjPm9+32YDh8vPLBHGXUa4i4T4KTfEvENMVQuZVw0amZ5S231HODaR8LmFhvy9QjC/c0hlkiAyQP5zq7Qh9tc8eQ4p8tuxKAPtrhzVy1xTTKXNmZrKKD55p/3sootgWp8RzFJapVolQ4JkSSNZVtNP7J04uG6jAGktkZw0eHLya0dr0D2IRcuFXNoDjTPzy0wVnv3PmAu8ao05iAinwPhwsx9RoTW58m44Z6rqM6uhOkoIi60y9hPWNK4tNtipS+4aX2ZgQanujtzdVUqDmmDQr/q6VdzTCSHieHN5LHp+5aCHW4oKBPABE9RL8gnzlgRxlPxgRzXW0rAj9TnTyuiD8c3HskKJARSiBAcF1oZKweAISYXvb6QGe1TG87AcdEsvUtzDqgcZuKJvULl/zRwIkJ2jDFaDAeUWeORgrzmYEFNQjYLKrqNZULFVqRxeouW732TCle3fBejZlmUVGxfeshmIRsezj254Gy3zs35hkwnB/9C/kBh4EfPu2rzOAqwbIKoHSfjewV2R4z74esD2maXgH255Nd22YvowdyqvJ7UyFouWyze17p/cTLztRvKY2xfFFQ/DFa8DuFRmLSA==","layer_level":3},{"id":"1e7db280-3b51-40ee-b96d-120b47d151f4","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Code Assembly Tools","description":"code-assembly-tools","prompt":"Create comprehensive documentation for VIZ CPP Node code assembly tools. Document the cat-parts utility (cat-parts.cpp) for combining source code fragments from directory structures, including its command-line syntax, directory scanning logic, and file concatenation process. Explain the Python counterpart (cat_parts.py) for automated code assembly workflows. Detail the hardfork directory (.d) processing mechanism, file sorting algorithms, and change detection capabilities. Include practical examples of using these tools for code generation, schema assembly, and automated build processes. Address command-line options, input validation, error handling, and integration with the main build pipeline. Provide troubleshooting guidance for common file system issues and permission problems.","parent_id":"71349e72-2b07-471a-b7f2-b7299a4cb550","progress_status":"completed","dependent_files":"programs/build_helpers/cat-parts.cpp,programs/build_helpers/cat_parts.py","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:13:01+04:00","raw_data":"WikiEncrypted:Ux5Ub3OP0MtzohTlWbMlC5lEm19o2HQfwDVneLB1a1hTXHDwEhsig5jNN5z+LIXqsxmLUM25wY69aB6+bwuz6D/wkQEy8W5IUBq/kV+7tBHA+L6qCLLNXOlhHVGHuo6JbY9p5a9HNMXuJ5REPOH2cRjbMvOpX2JPYNiqO0206sp7CU+POZ9RIr3gREMK5LT9JmW1upbSPZzeGpNAVcWFEvpI7hlGDI0xytSGBevLkpSH0dT1FJ93u/i1N/YAwGNI7V110fcuiklNuAMYwCAM+sTshWG1AasofpIxFVC3HWLgQc3T6aGyEx/vw988/JCZ3dzRc68yQHQgLyzP+e7VTGUrkw42ZTu7b1d0sFkwjZb3Q8i+O5hhuWGjDAb22Pnufu7fRCCbKxLrbs2IFj0YB2urm0PopQh9GmAVCyiTaLtmt2/GkT96Z5vQDYVAkCAXtWP/eXVV7W7HlEZ+x8N/gBpkGiAzDeauGpvdlpZcFTEv2jhqXIdDe/EIWHBYJ18Nwed4Bv3UQDgYA5s5TUXeVEyRF9243AurwhVMW0Y9x7figiVO3AFR5yoHHxjPwzLkI0F8Q1PLK5zs62CmA03WCostwnKhqG1Tj2x/E80KstYRsF7pR1TwqOmeX5gvlNeEir+x0afFhDoXKKLmFUhmqq3mThWMoxONDYxZSSFUNyI3oPDBvVyXHFQglhuFu+ZxTHn7fz1Tsced3XnAHVq/pcbZlt4wi5umSVXi1mPrz9zBZN9irqYU5bU20vhfwqSuLI/s911aqeeJEPIIxb7paftniC2Ou7p3IraD3n026CfuxsgUGDWGLLsopvN36hlEnPXNWCZgU1dVRqd/Na5f5DjzjUc25GCoUeqOSqboRpjxki0D7e5OM232kS+KKeTKrXQX6QPba7xdzt9dPKEfs2ehTU8E9OnosImfPwc7FM7LIswSmEV0xvaXnJehqLwtNs7ABTiNyZ3tst92hHxxBU6YtNfSCFk6lqVzVRBci7stxUXbF9JkIVPnRtaSqJhTQfd9RP9hfTOvPrihnlkWRJzyOMH2jhuVnCAMTFgkUKe8gVqBGrBLoMY0fzXFrkfsNvj5Vq3Rd9SmCtCHH5CvDL3FvgPJmrmwzbaVrQIThX9c383OKjjYmC3PFTFOekX7IxgCvF9eihK/cCM4WWMozIXKkm8UYPEtKApNGLISn3KlPrI9yOretN0iKCHD0gjF14ZgrGlpZdhtp9mp+9YIqTZtjCDAW+T+rgC/rEPcHwcNFJfpWEXvS4Btct7MDBZUq/irXLxBFJe6Js58ALQtDOPVtXH3F8wzTnsBxNeqgRcFPJZhksU2iu1OGRL/60p5RYLKGJ34USY9z+LghuRBh72H2K6GQOtlGNPjOyF9PlQirmbNa2iTGZv6RSnOAXUgtYRVY6FR7hul7EZ0V4V/oaBEnF1RjxZJlenfKmY18X2+yn5pmAy0s6nKT2rkh9iNN1f/LajWKwoV5kQfiyIG7VI2+eIKJq+u6TUy+VmmF630T0evodIP7j1gmAiqx1IQnqY+scdhg1aDsmUymhwjg76gHZ+BnMqHxas940dtVvNZsJT+ZDMIPoI/VF/2x+Jj","layer_level":3},{"id":"b2eba8df-5dca-47a6-880d-715bda77fbf3","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Getting Started","description":"getting-started","prompt":"Create comprehensive getting started content for VIZ CPP Node. Cover prerequisites including system requirements (Linux Ubuntu LTS, macOS, Windows), dependency installation (Boost 1.57+, OpenSSL, CMake), and environment setup. Document multiple installation approaches including Docker deployment, manual compilation from source, and package installation. Provide step-by-step instructions for first-time node setup, configuration file customization, and initial synchronization. Include practical examples of common setup scenarios such as running a full node, testnet node, and witness node. Document basic troubleshooting for common installation issues, network connectivity problems, and configuration errors. Address security considerations for initial setup and provide guidance on monitoring node health. Make content accessible to beginners while ensuring experienced developers can quickly get up and running.","order":1,"progress_status":"completed","dependent_files":"documentation/building.md,share/vizd/config/config.ini,CMakeLists.txt,README.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:31:32+04:00","raw_data":"WikiEncrypted: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"},{"id":"48bf8158-7839-4c2c-a50d-7cc05923bd1c","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Plugin Architecture","description":"plugin-architecture","prompt":"Develop detailed content for the plugin architecture section. Thoroughly explain the modular plugin-based design that allows for flexible feature addition and removal. Document the plugin registration process, lifecycle management, and inter-plugin communication mechanisms. Include concrete examples from the actual codebase showing how plugins are registered in main.cpp and how they interact with the appbase framework. Explain the plugin template system created by newplugin.py and how custom plugins can be developed. Document the plugin API design patterns, including how plugins access the chain database, handle operations, and communicate with other plugins. Address plugin loading/unloading mechanisms, runtime plugin management, and the observer pattern implementation using Boost.Signals2. Include practical examples of plugin development workflows and best practices for extending the node functionality.","parent_id":"61cc85da-b705-41e4-9860-17177048c2ee","order":1,"progress_status":"completed","dependent_files":"plugins/snapshot/plugin.cpp,plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp,plugins/chain/include/graphene/plugins/chain/plugin.hpp,plugins/chain/plugin.cpp,programs/util/newplugin.py,libraries/utilities/include/graphene/utilities/git_revision.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-04-15T13:00:48+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"8958bcd4-acad-47ea-9a20-16c85e32c5ef","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Testing Framework","description":"testing-framework","prompt":"Create detailed testing framework documentation for VIZ CPP Node. Document the complete testing infrastructure including unit tests, integration tests, and performance benchmarks. Explain the test categories including basic_tests, block_tests, live_tests, operation_tests, operation_time_tests, and serialization_tests. Cover the Boost.Test framework configuration, test execution commands, and reporting options. Document code coverage testing with lcov integration and HTML report generation. Include practical examples of writing new tests, running specific test suites, and interpreting test results. Address test data management, mock objects, and test environment setup. Explain continuous integration testing workflows and automated test execution. Document performance testing methodologies and benchmarking tools.","parent_id":"3d7f67ff-d926-43f9-aa40-274a8bcc5a87","order":1,"progress_status":"completed","dependent_files":"documentation/testing.md,programs/util/schema_test.cpp,programs/util/test_block_log.cpp","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-03-03T07:41:49+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"83f7e67d-2650-45c6-900c-5774a5cf9867","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Build Configuration","description":"build-configuration","prompt":"Create detailed build configuration documentation for VIZ CPP Node. Document the CMake build system including available build options, compiler flags, and feature toggles. Explain cross-platform compilation requirements, dependency management, and third-party library integration. Cover build variants such as debug builds, release builds, and optimized production builds. Document environment variable requirements, toolchain configuration, and platform-specific considerations. Include practical examples of common build scenarios including development builds, production deployments, and cross-compilation setups. Address build troubleshooting, dependency resolution, and performance optimization during compilation. Provide guidance on build system customization and integration with continuous integration pipelines.","parent_id":"52d3664a-1bc3-416d-af24-b6826b0eb20a","order":1,"progress_status":"completed","dependent_files":"build-linux.sh,CMakeLists.txt,.gitmodules,thirdparty/fc/CMakeLists.txt,thirdparty/chainbase/CMakeLists.txt,thirdparty/appbase/CMakeLists.txt,programs/build_helpers/configure_build.py,programs/build_helpers/CMakeLists.txt","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-04-23T06:46:47.4688679+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"03af4736-8b6c-4759-ab23-6e40f981febc","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Containerization and Docker","description":"containerization-docker","prompt":"Create detailed containerization and Docker deployment documentation for VIZ CPP Node. Document Docker image variants including production, testnet, low-memory, and MongoDB-enabled containers with their specific use cases and configuration options. Explain Dockerfile construction, multi-stage builds, and optimization techniques for reduced image sizes. Cover container orchestration with Docker Compose, Kubernetes deployment patterns, and service discovery mechanisms. Document volume management for persistent data, configuration mounting, and network configuration. Include container security best practices, resource limits, and monitoring integration. Provide examples of container deployment workflows, scaling strategies, and upgrade procedures. Address troubleshooting container-related issues, log management, and performance optimization within containerized environments.","parent_id":"0a29818d-c5c4-477a-9a73-6cb166a647ae","order":1,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet,share/vizd/docker/Dockerfile-lowmem,share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-03-03T07:43:26+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"0e30fbfd-66ed-4df4-a759-4d81582e559f","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Inter-Plugin Communication","description":"inter-plugin-communication","prompt":"Develop detailed content for inter-plugin communication patterns and mechanisms. Thoroughly explain how plugins communicate with each other using the appbase framework's dependency injection system. Document the observer pattern implementation using Boost.Signals2 signals and slots for event-driven communication. Include concrete examples of signal emission and subscription patterns used throughout the codebase. Explain how plugins can expose APIs to other plugins and establish communication channels. Detail the plugin dependency graph and how required plugins are automatically initialized and made available. Document best practices for loose coupling between plugins and avoiding circular dependencies. Address thread safety considerations in plugin communication and synchronization mechanisms. Include practical examples of plugin-to-plugin messaging and event propagation patterns.","parent_id":"48bf8158-7839-4c2c-a50d-7cc05923bd1c","order":1,"progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,libraries/network/include/graphene/network/node.hpp,libraries/utilities/include/graphene/utilities/git_revision.hpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-03-03T11:26:31+04:00","raw_data":"WikiEncrypted:+VS3nPXgxjNRzComTBushLS5L02zjsVFvaKCFsqlKpfaDTTPhP96kOqBLeSiPQLmJfMOrOA/aPyYvvtobOnI+yTy5f4Y/9dCTolJoifXEZ5XGFZqDjDoX+djFBEuFlLpFGPST8HMi5z0Ch/1DOLnzXQnZlkaKIp93GltP3r4YI5EER18kAyvOB0UR1rZAxG8UmuZGRoOeXBu0QnM0v3Xce8hayEwp3K/c36ogR1Qn7rZRVjpgCnyg+JP2l6grJxEgapS9MM4uzsM+Ku2QJq3iBjKpNcAZ6WmWmyMNpd6LesnnwaUonLuQ4YvpjRnZtu2lxPpCCkb7x1aYhJNhyhJr7lZkv6hmSrH/NFcjzW50VwA6Em7zVksqvKRHnrksPvdmJB2yWPRJ6MP3Lh+1zBUke1tfZ7evrMKetz1YDTeUWWu+3agM6kRBztnYqRzt+Y3m0UZHdyGo4XFJxZ8qG37YiuKh8xqwnalsKBrw5H7/qRF/eFE5AsjH/YG7zcDUtzMRgM+ajOULwE1//efI2uZyQfmQBLdop1uIFPEMAx/NXkHp5XYHw7pMpqYjjQGCGrI0L44iup2Hpb3t2EGQk5rubDPVo1hYprbomzKYd+3Cn9x1PyMFfGgrIUGNlHUPaxRZU3GgOXGJZ5jZkp5NY54lmzHhkUsxFqg2pKZhTFPZdG2KZJVn3lPEwY9VgOTYSK1mBkHD70mY+1hbRVecnF5biyhKYdxF9EHBRQmdwajNqqPikD4ZQHJztBaN0+1XL1B3E0MJF5y3SwH4i5fqn0nlx3dv88Gff7qR+VqR10q44CaCKYB0Y6xH8rWXqhY615nAuXq/vxY266kyLPhPbI11pWeCUqS9lM7EbQBUlH0Nl2HWMEtF07m4WGB2cFFC0nl0ncXt+htNKg9FQwCluyVL57GanbdPVJAXZHb/Lf663Mvkmy73MHwlPsdOX9JlciDGL0hvKypGxgJx/YXIS9sRec1lx8quZc8pHsMEl8w6+hYdyViF1Wi8K5uNOW5B6dK0N8VxDbgLarfB0b2tX+9W157CYhERVOXIYc1wwhGpMgbzpfrrHixuoUZwQHK2Vu2pUtFiq1x8utSzkwTfO/utllIdTkjMcm/rCGus0j1Gxe0GNTxjpJY4mJjFYDOTpqF1uFBlFy3z3P+aDXUktOK1/GvaHAHKaT9S+4m4n5PSOzjMSnTs7tI3m6ed9yvWgyD5NXmg7WdzkWu+1bmGXD7FkAxqM1n4ftetysxyvLJfm6il0cF1wj/r/gsAR9rXYdeaR/4YT46kEbQCKJNJ5XuE26c7pc3u53eafEB73iKkZ5DgjEdZvjeZEnQMYKoAYgucfPlmF6PxJGpNSzGg7GUrUk8bgQoz56XfSi/UPVqHvBzirD+HOvO0BqMFBirpsqit8ryr1rcIsubw9x/qpnxm32RWo/QZ/J+KTY2WScmFdKTREIXfPFgt8L5UH5+ZiUEHT00xmtYq9T4uWDklpxy4dDFpwdgzRQC6kdKLgSopQ0YTkb0uTzHOGTIzKcj0Qu7MDmB3JZOfN4GIzaRugdUa8ia0oyZsYHKdq1xd9jg11jOya0autYoLgHkNYV5kzcMIYWAAx7AkW6QqbAvd0Q+ZkpTF1hgq+dt3fJ6KUHA9feV15PnROyq29KGCVOFMahYdN1R2Um2mkHNW2xlpNO7w2TSXzFhPuLJMLd5mAfIXWt/Nyq1qTOe5nEQ0HxtWCqz9MRP+JyTlBDOEXB6TH/VrA==","layer_level":2},{"id":"98b542ba-7145-4943-b53c-fafc1763318a","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Database Schema Design","description":"database-schema-design","prompt":"Create detailed database schema design documentation for VIZ CPP Node. Document the object persistence system including chain object types, database schema definitions, and storage optimization strategies. Explain the fork database implementation including conflict resolution algorithms, branch management, and state synchronization. Cover index management and optimization techniques for query performance including primary keys, foreign keys, and composite indexes. Detail the object relationship patterns and how different entities interact within the database schema. Document the schema evolution process including versioning, migration strategies, and backward compatibility considerations. Include practical examples of extending the database schema with custom objects and optimizing query patterns. Address database maintenance procedures including compaction, cleanup, and performance monitoring. Provide guidance on designing efficient data models for custom plugins and extensions.","parent_id":"1ff378ae-ab40-445d-8853-ba7c346a78a2","order":1,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/chain_object_types.hpp,libraries/chain/chain_objects.cpp,libraries/chain/fork_database.cpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-03-03T07:45:31+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"4c416b5d-aa43-481c-8f93-4a4adc187368","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Block Processing and Validation","description":"block-processing","prompt":"Develop detailed documentation for block processing and validation mechanisms. Explain the complete block validation pipeline including header validation, transaction extraction, and state application. Document the fork resolution algorithms and how the node handles conflicting chains. Detail the block logging system and how blocks are persisted to disk. Explain the role of the fork database in maintaining chain history and handling reorganizations. Include block production coordination for witness nodes and block acceptance criteria. Document performance considerations for block processing and optimization techniques used in high-throughput scenarios.","parent_id":"971f0bb4-1d2d-4258-92c8-080f826ba913","order":1,"progress_status":"completed","dependent_files":"plugins/witness/witness.cpp,libraries/chain/database.cpp,libraries/protocol/block.cpp,libraries/chain/block_log.cpp,libraries/chain/fork_database.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-05T10:59:59+04:00","raw_data":"WikiEncrypted:R9i/29qd1Uv5xEgS1tKQyKa0Xuqqfm5cq0GV9nRcndmrxsHsnYwJpAewisCUpG2ti9GxrCpxWosUOZaN9wIJ7/8/157xbaOnn2BOhyeyJDPEjOCeYSYjSjv1dxVt5lXdjoBxvlwsQJBLdQGEe+5WerFA204eHfHpA1L7TlPStdeTCWWLb4c1UyCkfl0qGROdTrG24Ugtwamly3cB72eJqa8Y0UT6zN/Xn67BJN2Mb9Jn1Fof43nVsq9zozwUIXYsn9u7l+nYX100oi6s3IgFFBCC02LsQ0tXoMIPxErRXI/7ZZfndbTC9aoFCHdbO7/GqNjEiOgdFx770bV7xxcXgT9vNQNintlXErFbB22ngxi60g2UVCIg9xnH+btIMjT6YHA4d8bufdYzjTrwToCdHX4D3WTjboZrCLyaKQibYUtU2ZzyIl0TiiPKoHOrtH7tl80lx+6XNbW+OY3CsJO8Y9X5GNVE8RwjvyKhSOhulRat1nlH2g7qkGMfXh5qk7wv+vNhORGTMvSVqKk9FzIuvjBf8bh1ZV+ivN3/cowso7sJt+PEJeItobpVl0kbkbIA1E//L8B/3wx6XtJBtEUwt06O/q0ixorcjVJ7ds/aomEvKF/ONR8BEJvlk3VzayStOTePDLNDJWK1kCq7Ez5JYOt7dTfHlriwbWabMlltC2joKiBEdTvv9mgcoNK08pmAIfJxH8zH+ElcAeqo7sVAFMwUJgxFmCjdCfn3odsIzLNx292ctSPapViCFR5xvmdp4uYNLktrNKhVmlWdjoO4UZ36rZzEvwuQPx3BHgHvfhDYvAZdH5IRythWMDWyaRO6/MuRaHXPao+2gAS2NQP50XIP5VjsUtg8bPjqmlOZVgCFmqUKW+Q00TKf5uVd3nI0h/+S5YumBLr5SEavmBHAyF3/fHHcYUOkYcIx4+2Z7Dqg8dmCQuC5DI0ax3rx0KTw54S4ffeyTl4a0/36ropKo2SF7tt64JObM+A9U9eK1mZFFE42Io+3CyO0TpZs67jqXzJMjfuNcgd6AZfDwSYIv24U2w9wqukaqhnfg9W/Zil3hq6GkJjVanCF2ykO41BJReeKRAAR7We+HZWOw0yGSd8dvQJby0syzrN88Wvu03tWJkM7u8DE9BNhfm5zwzdWD1qPOwaqK6WllmDKFQoAPG20KC4l2bw4Ozj+MooTbf7JFQr0y/PCEbjW/gkb1O0mK6kYc/54LI0hk5sdDDJhF4fC7tF8xVh7RFSbwAuUViI8A8neO5ziGWn+LR46kVGNCM387vvl4E4mZg6tAAC0Oufb/1yQOYtXUU2Cq73D/99M4YRAoW8JT6R7zk/pbvA2ICZcjgj4cz20acCebzhvPPqGUt41NseNy4dw3mfemsqZle4qoHSOzfxb6Q90LZpuizTwkU10JtqswqNi7DhmeBIh10MP1KNFLjXW/z6weL1oHlXgBNlzQkkkwhbNERz5pWFQHGoFEMORjpCPrf1ZwhrYzeqtae5GFUI6eqzTmi8A187/ekxmNMFBz2RLz47T2sVKwAk9rS/CUvOTq0Bd+A==","layer_level":2},{"id":"84b360c7-2115-43aa-89df-1205d4f6231d","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Protocol Library","description":"protocol-library","prompt":"Create comprehensive content for the Protocol Library that defines the blockchain's operational framework. Document the operations.hpp implementation containing all transaction operation types including account operations, asset operations, content operations, and governance operations. Explain the transaction.hpp structure for transaction validation, signature verification, and operation serialization. Detail the authority.hpp implementation for authority requirement calculation, multi-signature validation, and permission checking. Cover the block.hpp and block_header.hpp structures for block validation and consensus mechanisms. Document the chain_operations.hpp for blockchain-specific operations and their evaluation logic. Include the types.hpp definitions for blockchain data types and their serialization formats. Provide examples of operation creation, transaction building, authority verification, and block validation processes. Address the relationship between protocol definitions and chain library implementations.","parent_id":"f0c815e1-40a5-43ea-b849-ddfc5fa665c1","order":1,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/operations.hpp,libraries/protocol/operations.cpp,libraries/protocol/include/graphene/protocol/transaction.hpp,libraries/protocol/transaction.cpp,libraries/protocol/include/graphene/protocol/authority.hpp,libraries/protocol/authority.cpp,libraries/protocol/include/graphene/protocol/types.hpp,libraries/protocol/include/graphene/protocol/block.hpp,libraries/protocol/include/graphene/protocol/block_header.hpp,libraries/protocol/include/graphene/protocol/chain_operations.hpp,libraries/protocol/chain_operations.cpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-03-03T07:57:42+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"71349e72-2b07-471a-b7f2-b7299a4cb550","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Build Helper Tools","description":"build-helpers","prompt":"Develop detailed documentation for VIZ CPP Node build helper tools. Document the cat-parts utility for combining source code fragments, cat_parts.py for automated code assembly, and check_reflect.py for reflection validation. Explain the newplugin.py template system for creating custom plugins with proper file structure and boilerplate code. Cover pretty_schema.py for generating formatted schema representations and schema_test.cpp for validating database schemas. Include practical examples of using each tool in the development workflow, command-line options, input/output formats, and integration with the main build process. Address common usage patterns, troubleshooting tool-specific issues, and best practices for maintaining code organization through these utilities.","parent_id":"9c29a057-ce87-4636-9143-abbbe00af3e4","order":1,"progress_status":"completed","dependent_files":"install-deps-linux.sh,build-linux.sh,programs/build_helpers/cat-parts.cpp,programs/build_helpers/cat_parts.py,programs/build_helpers/check_reflect.py,programs/build_helpers/newplugin.py,programs/build_helpers/pretty_schema.py","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-04-21T16:26:14+04:00","raw_data":"WikiEncrypted:zhwwHcEGfkuzROuyPGwGZAaP8JUBGCZQRchVoluTSwBG0F8TNTcA7NnVPcgD17bZ8tkkmKBmN15pV9qTETgIyoqoLH7M7WPfGtqxxySlrJyCUM6SfuR45v/C5WGemH+0hRlRLA0flEYfomMObFQbk5Yk+NHzIvo4JgCZLW5F0XN7DLQWn8LEfXvdWhYrpycEb2+gRUNqVLrMR4Lj9NZBJQro9Xc43t1OtdTxlnZzJErkb/KowYnn4nnYNDGxG9hIQyrHFcPMamMN8EZgZ0hCu2+dpSJriVuNhJjimoclo6Cw3pyOQAVdprPNkw2xEpbHhZQ+rmE3VZlXZ+MLkJTN/XZYKwiYTp2uKbNEPmGsQQ2LomqWACjNw8wv4WqiN7uh6Y3SVosPebV0G/ZcCESHnBvGtowAOOZYPRnPfpDmnecYGNdDURlmBbiLalrynqnRqKVeASYvVRhaPsQynz2xKpKXOOioDWeEmlzNcUP2D0WeKQdlTbEeVPO5aSdRnCUv+tX5viqMRFV/aZaStqyEbDFofDhf1JqBalT0wv/VNgNo8kTnAZFGDOZ7xz67uGXDGXqJn3n/4th3Mdab/0WAx8kakRGAUxfaS2vsxGHC+7QCunw2c0sltmNXkWX3iBbDI+DygDoA0gCMz/aHmapgS90n237xk3kir9qU9TcRxzWK40xmo7Sw6FKr9WMGDkhPOPoAQ1UyBvkEfiBD4MDJr2rlS6heSMFoZIx8/ywk7nCxEx+Q0GV5xO5lyoVZ7IcaG1qcjeCuXta5O4pp6D0sORk2+3lC3RyHKqAFvJLXJK4Rn0Qj8NxjSLxuPnrMMP/z4i53otH5KRVpmj7PDloLwxm7Se1nx7kDpNs35zcbLlEuIZtMbmAu66DwTp97t86Sb5wAJ/lIQ0mzUqFRHIcTAzQpuMVW8o9h0q6bHxq7EYSG4jTchqULmB+GCKY2k6PKr/7T3DauDBVkxIdONfkS9O9XGHXv2A5vsZxP7uwVDL3u08b+BhwDTNCzmwIX8o+rk/rdpGCvVgOqtfkcl6WaPW/IFKnAEIY8MylFSyU9s4XJ3iBGigwuXdomwt1cuBE7EUfi79p3HEL+wLR+AF4vVVMqJYqppha/U+KsYo4B6U+knbKdteYsN6s3vOK46UeNKZrWoIhf/ef7++6us2IsTJKuSlWUvT+AR/qvbLI8mYQWqGfA+Nb8+207lwvZfwI3+518nB+L/C0pagznPrYzjcKWpHAlmPmTmsqqLvjD4BjCKxbG2sCKnimWkVT0LB+hRvV7lMfAk7Gy5kdQSK26mxsceYr0fxKYmag8dKFwHkHvcghZVIR3IHq+9Ir+X7pUunTFXP9j1L31CRnGHLXOnqTcTVwVKYOpqRDDh+e1bBBdP0cL4At2JEOY/gLxBdDUSv45+taH1UJLnCwRwugCz4BpDWxszi1q2n5a6iwGwjrXT/hhAsY30aXJtxMwTMW0boSb16P/oT6iBHls+6cpem4KKYzDAMclvkD0PwTQVZ4jz1Mmkf/GzDs+VNNW7Kwsh5/pZ/6U0avqrOxjIwkpN6gsFPWWmd3ts2BukG8AQhcQyIbMqDtnfDPqrJoDT55qBSSxNiwZeT3Qd1vdF1BhC6WlQ0ypbxK+GA8206/RTjYD8gy0BauM0Subh2zzN2+NEXWDVhzLdt1B3E2JLbjSdF9G4rwdQk/c+yLBVhWZCKC1RV8Mjd8BCkDs5Codlql20owYs9eT2pD3qaecCu7DPM57z6cARZWlp9xRxrJdEeR6HyDqfUnwAI9CyvBUijzQaiJYOtmmYqFvKhFzcD+y41yyaKxk8e3R9kX6T35ElNuhNiIyEFCtrJZTVFRwpwAe","layer_level":2},{"id":"f6d69197-00f2-46b3-878a-cd582ffb1d49","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Code Coverage Analysis","description":"code-coverage-analysis","prompt":"Develop detailed code coverage analysis documentation for VIZ CPP Node testing framework. Document the complete lcov integration workflow including installation prerequisites (brew install lcov), debug build configuration with ENABLE_COVERAGE_TESTING flag, and the multi-step coverage capture process. Explain each stage of the coverage workflow: initial capture with base.info, test execution with chain_test, secondary capture with test.info, tracefile combination with total.info, filtering of test directories with interesting.info, and HTML report generation with genhtml. Cover the cmake configuration options for enabling coverage testing in Debug builds. Document the lcov command-line options including --capture, --initial, --directory traversal, --output-file specification, --no-external filtering, --add-tracefile combination, and --remove-pattern filtering. Include practical examples of generating coverage reports, interpreting coverage metrics, and integrating coverage analysis into CI/CD pipelines. Address common coverage analysis scenarios and troubleshooting coverage collection issues.","parent_id":"8958bcd4-acad-47ea-9a20-16c85e32c5ef","order":1,"progress_status":"completed","dependent_files":"documentation/testing.md","gmt_create":"2026-03-03T07:29:31+04:00","gmt_modified":"2026-03-03T07:58:43+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"784fdef7-9bb2-4ad3-b289-8c8c9c87cd84","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Transaction Debugging Tools","description":"transaction-debugging-tools","prompt":"Develop detailed documentation for transaction debugging utilities in VIZ CPP Node. Document the sign_transaction tool for debugging transaction signing issues, including command-line usage, input/output formats, and common error scenarios. Explain the sign_digest utility for debugging cryptographic operations and signature verification processes. Cover the JavaScript operation serializer for converting between JSON and binary operation formats. Include practical examples of debugging transaction validation failures, signature verification problems, and serialization issues. Document command-line options, input parameter formats, and output interpretation. Address common debugging scenarios such as transaction construction errors, authority verification failures, and network transmission issues. Provide troubleshooting guides for typical transaction-related problems and their solutions.","parent_id":"ff55fa31-5b21-4383-98fb-59c794986fc5","order":1,"progress_status":"completed","dependent_files":"programs/util/sign_transaction.cpp,programs/util/sign_digest.cpp,programs/util/js_operation_serializer/main.cpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T07:59:59+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"f1b217ef-ee0b-489a-a789-210eefb1e0cc","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Node Types and Configurations","description":"node-types-configurations","prompt":"Create detailed documentation for different VIZ node types and their specific configurations. Document full node setup with complete blockchain synchronization and API exposure. Cover witness node configuration including block production setup, key management, and witness-specific parameters. Explain seed node configuration for network bootstrap and peer discovery. Document specialized configurations for testnet nodes, debug nodes, and MongoDB-integrated nodes. Include configuration file templates, parameter explanations, and operational differences between node types. Address performance tuning specific to each node type, resource allocation recommendations, and monitoring requirements. Provide comparison matrices showing feature availability and resource requirements across different node configurations.","parent_id":"25110dbd-3911-48e1-b870-29607c837581","order":1,"progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_witness.ini,share/vizd/vizd.sh,share/vizd/config/config_testnet.ini,share/vizd/config/config_mongo.ini,share/vizd/config/config_debug.ini","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-04-21T15:32:31+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"76b6850c-bbb5-47bb-a081-cecd5efc626e","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Transaction Processing","description":"transaction-processing","prompt":"Create comprehensive content for Transaction Processing covering transaction structure, validation, and execution. Document the transaction.hpp implementation including transaction body structure, operation arrays, and metadata fields. Explain transaction validation rules including expiration checking, operation validation, and signature verification. Detail the sign_state.hpp functionality for multi-signature validation and authority checking. Cover transaction serialization formats and network transmission protocols. Include examples of transaction construction, signing workflows, and validation scenarios. Document the relationship between transactions and blocks, and transaction lifecycle management.","parent_id":"84b360c7-2115-43aa-89df-1205d4f6231d","order":1,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/transaction.hpp,libraries/protocol/transaction.cpp,libraries/protocol/include/graphene/protocol/sign_state.hpp,libraries/protocol/sign_state.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:14:41+04:00","raw_data":"WikiEncrypted:pze/wTPA8hT9dADtWGlHVecGIju168riPHUw4TY8/AOhja4aeOzUlmfgdY/KTiokGkE0pwevgTXyU4//H92NNz2DvJDyylHUIIAgFa19IOR1rIcwnR+M5gYnWP+MfMyP9rJdHksUzaXlv9bu0L+nSwyEwxvRjUsxXSJzFBEFHqMkwXP+kKSmf2P5ac7NUAQiXV93Cqe+SJpTYieODHUA2aXvlp8c9CzuexfREJPFweCojE4iuz2MpwhzLDyHYWZ0+Oo13SyBMRm8TSYEiJJ1qEryT0ka1GRDrBNabqCzOK6uY1kcgMVU1jjPuzIozI89v9TgBpUe3ZUX2D/okuey3ZXKbQsrqjCWtXu4h/QZb8rYGL0z4J0n4KskmV2PKYbFtn4srZQu7EbpGVbjsDnBXaaURzTiBAn/5bNsIYm+cIxhaOEE0GSJWPZKvt9h0knjB7xU0AMvSOozrAlPI8UzxVBsdecMiFyAtTBrLnr25+mj3ZwaWngPIkUmE4QfDwFvVBktD5TvLYHH5fYgQ6FQEOqADFR/zowPRsBSgtdJ9Eb/rsHcEzSds3O4vfJPa1xBvv0oREt4BtnPPo7h1GW3BkQTBPCsCLRrdxXj7pn96rupr/KX+UZx+3o2WnK2p8s5xzHrxoZ9FQTtLMrP1QfdpEFyryeihlhvZrCXbyJ0kHE91R4y1JciNNxtI/Bjrh6mVBYmrKujPXiV5CFrRwoI2mH19Wti9DQS6W7gklFuAeemFd4jTCHLmR/CDXLjhJDffCUzHS8513myK6oVS5EH7w6YPaLheZxNpurE5ol03A8c/WxlMAXjnBxaf2ZeHj8uxa1EEM6YHmC9P5jSRuEuUUzsS2GRlFgZVAOID0om/E0ENC/0hYqwiXqX6y9n0EmcAgNlDJkUnWeNYJ0oupFu7tnzV85Ilx3SxDP4ea05c5oMYIfzSWji/XEPnZgnS/O9MC1xoLO1yNnHi+fYQCTlLY1nkz1d4gX6E4KMS0BEe2hiCUeZYF3Ve1o8UByfeYpm2dpWLCmdhlT93SxA9Tc+6H2PULFfOIr+EUDlgTwFIjJeGJARDD7Wv2Eq+POFmLHPM1FVpRzVCzAKsxnI7OCf4iC/EthL2PFmXmYvtkCvAvxwMgEwm493vGA2ADLGhz9VzIRDanfMsMnv783wuN+hvDAanYwmAbdNF/scEaa6o7YYzUlSQaAvJ69tNU51UvQmyiiKCXW4ScC0hZ79uAf0ch71hOj4u/b+KFez1SbDRZpKZRxeU0pm+ZGWNs896vkM3THcbIvEb2jp1FDd9tRhuoP5Pu6q9Dpx/wNYMV3VRE0XMIMwliEXXF/ZEjvZQSw6MJVwTNQ/T7UFKiwYPiWR7zu22AG747F3nrt1QQ12XPYHxupLZYDmpv313bFI77gWmFvQm4wKDhyr+8uPpOKb56paTtid6wBDN9/JGgmMGR7/oSz5cLuCQMv2AuLrUnmh9WKD4cydsTT0W5KNDaGRrHfnZiT88kkOALg/Qn0w8oNN2idlbOac//Mwluk7C0esxezBf92dkmhrQsXZ4LjPCkTjDkSGBbvMeU0JhEyVDtolDVSe8XLlbQRNkp31hO/lC1QhlvCzGrrmSgI32+fgI10SmRUU+tqWWL+USh7BGB/ohXpQ+pQkPB8krp6c+tkn","layer_level":3},{"id":"f290b164-f8e8-427a-a32d-700fe50d1868","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Object Model and Persistence","description":"object-model","prompt":"Create comprehensive content for the Object Model and Persistence system that defines the complete blockchain data structure. Document all object types including account_object, transaction_object, content_object, witness_object, committee_object, and their relationships. Explain the object schema definitions, field types, and validation rules in chain_object_types.hpp. Detail the object lifecycle management including creation, modification, deletion, and indexing strategies. Cover the multi-index container patterns used for efficient object lookup and querying. Document the object serialization, deserialization, and persistence mechanisms. Include examples of object creation, querying, and manipulation operations. Explain the relationship between different object types and how they interact within the blockchain state. Address object versioning, schema evolution, and backward compatibility considerations.","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","order":1,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/chain_objects.hpp,libraries/chain/include/graphene/chain/chain_object_types.hpp,libraries/chain/chain_objects.cpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-03-03T08:15:23+04:00","raw_data":"WikiEncrypted:WrtF4UhzC84au2vkp01Wd8VhZuevsmYW0MiRsMATJ1XvzQRUZVUONQBd74I+5hpz5lJT7q5FmmBA+o8DqqOXNjGpt0nJ0BAMDy5P46t2LJR/9eNbkssWxJy2QJkEwyAnWrDBJjJ0RtuHhzMS9XMXa1dC84o0NwHImEkViQDS7Rpsr2tEFtNFHgqhdd5Zjk+OTwvCho2N8LT8e9ja8cNKp9BMFrmvVAq8aF9GWvThumhCK2w2w5CyEP2RMR4PW+tBxGQJFYDPJFgz9pTEzIVaFbKSiCUnWq0ESj25uR6wVSNMSVgq7zRG7y8IIsgrqnhJu+KgNUrZxmwpxoAcsJ0hKFwNo2lam+HL6ml2/2LVFk8Mzco7PC0p/zgxbfQrRFhP110QNXkeT0bYlTVVlMypAQ1Kxj3NBZ1KLmyLLs12q1EsOjSWSgxN9YXmkrXz8yLbFNZYT7qGDIBSXHVviTp2McCAVwIKGOXKskF71GBPcjqo9pXktSpgKxx7qaaBMhX83pvC95fYpq2cJc75oPgeq9KZXR//fZQakWRETvbbLxccAwa57y57RdnEaBfd9daY++/BbkT3oRJ2hqnpXXUBr2uUme/yb0WIntz6DyjzY8xSE7izPZxRsPcc8RJUWILAy7ZprMZASzMlwRn6/Ky/j23YT5a1e4zoyyoHebXifIGG6ZAse1LtKwo9TNNOQpHCamPfYntDKJg50qHWmO6/bi3qavsAFO/yitivdZkArtHqC398p+u7EFZ37JVRbVzlp3qeNVvPsjEgx8fT+bkd3/qwS7xa/muLbLdVBoTsgfnvYr2G3Is+K4mnBYPu/aNEpG4sm7qoBWE7KLYezbuMRJ9+1Fv1NpvrivJxTSjDVwbC5IA+oCD6Pro5lFg5VkenktCY0G79VFuE35+CL+R7esWyfgnM7V8YjaQTsnBr4DmI49qImBb8qqVwyWze9Zyo0WzDrFg59V/8kW+9HBbrh+JqtG2KpXW0GziW4YZTFW4dxYKV2I/LPpCoOMIgeP2YWhpZIV2nrw9FY4247hiAvnJCk2Q1xqRedjgoTM7IuMBq6LdX6BJU6JkzxAw8gnYuryYKtVkenMBIKVCzTQhreo+0OAPufetVLpssW3EcZU1Nn3pPyvncV+MvelP9nELnHgIKy1t6WMpRIx+q/1FhnSFI7ADmVelU+ntYSPmrDe6HoziMx5djs3WbbfCK+IaYGU8lay02M8Q5NC/UpELQYtdKRC/j738pt5904KOmXsVvbw8wRYjN0hqZut9fMN5dgepehlMduVsqXgzmRRVvgbk+K+O3/mGV3qj1swdiR9lt4skvBPrmh+jR2ACCL+MNoszJHNrglzKIBSUS029Nx5J+0ERK2muv4h27pkx2WHp1C44wXmad8a/qI84yR6y1KOFmGn0SIQ+wsUuTxHA37pOzS1mAJiYqLVgGMS+GNG/ENsAWGLkUVSYZohLq5i645j24mmoIj+BLI4PdQaPAXvBvMR4LdiMovmjf73UFLlA8t2TZ+TLEdIqQpAYHoqDj9ZMNLKTFLNkg/CbbVyL4uZpnscLgQGk1kyWR+sMsjy3nG/rQSGm5+rxc+wfeb+xLIM/ekGSKxF6TTOyDLC+fgVMNyQYE+2MRVg/lTKABDNjCFctgYnFwu39sxnx7gLLilxXTx98QGOM/Jp4L4U6eZYSLwI1pK6arSKqy9ls8TCZmRPFZJb3/RO+YK0K1S6R/aNh5Bn40Y5/rp5kYCDptiseq1xWjbUyVaGjKF5jsAkKQuiMnsaSAdYUEJ92RtZw9ZGhHskCV+3pzqkjd2Bsr8NK3ocd6GiMEHrapMKB+oJpQLFVtXgeck1Xl7v9nSipIUd9sDgGZuJ2u8IOf8JYlKi/NzTcJMCgtBM12aT5PPaM=","layer_level":3},{"id":"f98a762d-2c67-470e-81a6-f7843765c3cd","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Peer Connection Management","description":"peer-connection","prompt":"Create comprehensive content for Peer Connection Management that handles individual peer communication and connection lifecycle. Document the peer_connection.hpp implementation for managing bidirectional peer communication channels, connection state tracking, and message routing. Explain peer connection establishment protocols, authentication mechanisms, and handshake procedures. Cover connection lifecycle management including connection initiation, maintenance, graceful disconnection, and error recovery. Detail peer state tracking, connection quality metrics, and peer reputation systems. Document message queuing, priority handling, and connection multiplexing. Include examples of peer connection setup, message exchange patterns, and connection monitoring. Address connection pooling strategies, timeout handling, and connection reuse optimization. Provide guidance on peer selection algorithms, connection balancing, and fault tolerance mechanisms.","parent_id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","order":1,"progress_status":"completed","dependent_files":"libraries/network/node.cpp,libraries/network/node.hpp,plugins/p2p/p2p_plugin.cpp,libraries/network/peer_connection.cpp,libraries/network/include/graphene/network/peer_connection.hpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-04-23T09:39:39.5088209+04:00","raw_data":"WikiEncrypted:VR5KHiCGBNdKELy8Scjin5u2xY+Dj5+IyYWoQiU3xOSz7PDUoqR7wxPwIUx3wbq0KT3hCoqZJUqiKiMi3flUl1+CUwwthoJnvOb5U7feLpBHGIw6yavTfsvlZuEq8CPGuoOyFZaa2zkf41iNsK9UAbImB/s2YTF4pbH1WKKgt9bf+JG9JOJXBdCxcsM+zINCU4KHnJBnRdnrL+ebAuBdUh7aGdoRCDmk/nLjqM8TSJQnbtKh1EMFwhzrGC2nV8JDJw4dIMgFohPao/oOOIMYnV58RiD96QutejKY5fngNSKsjhuH7HfEtXPZ+v6DLycdxlB11EfG3tmtURz4MJGVx4aiP8+Z+t7XxPU4Snco9aDiXQpBKTImeDwD0rmoBrCawZ3mJZkSP7BOlw6LA+ujXddwhYKyg/YoTggj4VPZsj+qIpm5MLH9CNUa9d/QdQlTjoGf5jL64CpDG9ClWOMryk/0VsClcs395NbzYAltSA6GoF0pepXXcJ4cKuNwO4CeCuO0EN82QZnfjNUNv2zg0fdVYclai0N5H60k5PHew1YillbN3OQGj5wwqsVQfNxv28MrsfEVNpLVS4d2YaV2E+4hXiYnc0XpVXS4UreDeaVC8htkYYt+JvaGUPEcU9NZU3q5CCeZC3A0QyquczCcM4UtI608X/wkVnfR8jnXcPFk5Jpedx0un0wMnS7EF9fBkToysxp3iZ2l6X8Nt08IZQlzKvHGHXeT/dClNgvRtBMARP1Mva8Z6eWHA7DT1AIc2ga2W3bzZyc2Qq1J6W9bg4pWiGs2z6p6BiDn20nHG1ZdPoAc/g7N1Wy4kySOh2nY/ERCO/XGwi2JKzexZyweMZEDLIAqV7SLcmPUzOYa3Jm8OwqYK9AYkDBjxJXrQdTxY8N4TwhkEFcHcZTXvWahwI/8ZNhQ6kydXiDg1Kx1FzHLXzcoT9GGCo7QY9YmAYy4khoeoL1orb/SSlGCKAqMOS1ecw/IXnfY4Hwo9kS4oYvhmd2P2sBnr7YFW8anFGQHMvzdTrXTbR+92ctLESq6aJ3CNML9NjYiB6OB9hh6fdMC9Z6ptJ4X34PgiV9Oiv/HyA63fUUUjyTIacJSQ9sUnJ+89y0GDn8muV2pB4SaBCL17pX7gXEgbPRxCZNZp/iEuHgM4oSrCFzcq1SxZVdOpGY3acYcxxfMkaqYj1blaFdk5Qk5dukmGH6JG/iSL1J6P9MKzzn+6qXMF3f2Jc3S3q6B+vWabzQSIYTdl0c9eLURWj2YnSetVbDuDWEuiAE/gpFOpqX/7IOpItBpURnurmoVvH05hC29WIbJN8gvrztIZYHTVCZ01xUEtSedVZdBZdeQA5qsWSaNY+5PlZ4BfVzLYKodo2WMOEpuwRM4sIZ2aDDFGHPTOqoKmW1puuNa1tumd9RHnjcZ6/vacEP2q5HLKmOZphcxIlnEObmO9Vd4VBGc50O9UBZ0SZyQRW7Wtdkz+Nk8I2Qb0b6xv2SK97vk6H8qFVUf1KxaJ8kd9rJ1RT7EaqsUCYMOqGafUdzaTtCl43TUhdSmVVYPaGemwTpWdzA6W1tU16VNJTbQusP5Jr0rkG4I8qHHHKq3b8+y08p9nYFUrLzNp1voSWn4nu43Br4IncdPxXCDeB1UVeQfNFvubg/01xuoZCU+/W7ykFWeX3rk5+aHznSHZN/yY0j80DRp+IQ/g3+Y25uD7QJbNxsEiorakVr5/lzGl4wUcTFTjqDOSBAW04PvnS9uTcrjmapR1l/JuguKZ1Jvnr/u72uyKUUAqytM16AR8y08alYjWLHbHKDqwubX6gZQsBeCBcJ2kKBVl/6uLICOvhkk9oTH5CxAmNenUbmMvr3+8JLQyg3P4UOkGbJTmb3othy18kNVOTgLRs1zH8RsSWUQfSwEa+u+oeuB+Jq9XcEf","layer_level":3},{"id":"1d8f9a74-606b-4430-b8f7-521d9602e384","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Platform Configurations","description":"platform-configurations","prompt":"Create comprehensive platform-specific CMake configuration documentation for VIZ CPP Node. Document Windows configuration including MSVC and MinGW compiler settings, static linking requirements, Visual Studio project flags (/SAFESEH:NO), and TCL library integration. Detail macOS configuration with libc++ standard library, C++14 standard requirements, and Apple-specific compiler flags. Explain Linux configuration including GCC optimization flags (-O3/-O2), static linking options, pthread and rt library requirements, and OpenSSL detection. Include compiler version requirements (GCC 4.8+, Clang 3.3+) and platform-specific dependency resolution. Provide troubleshooting guidance for common platform-specific build issues, missing libraries, and compiler compatibility problems.","parent_id":"9cba4008-bdf5-47d9-9b5b-25e71815c8c6","order":1,"progress_status":"completed","dependent_files":"CMakeLists.txt","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-04-17T10:42:56+04:00","raw_data":"WikiEncrypted:Lagc5vDVDWJKf0nDI9TGSA5WFJDHl+XgRFW9Z8nrevG3TCAhYIcpEYU1rn2otzoK0HrEK0jMDM9tEMjTdqSFUT2s/zXxLUj1fG7NZ4iHEEDHSkF3MnlEpA0VfBICYmIEysUPG+skLqepPVWG1KHiaLKuhh5y8KMFGz8vf9czZdpBEri/pDAO0R5RG/XkYCd7kytb28lf7+fpAZojUubG1v/nxZl8JrpQybJss1uZ23nrdEWd86bqk3Cw9sbqiahAhqPJE6VBMtgpmRW7Twshw9gjmP2j80RvHuwzEq8HYraiFBGULt2nREETqCLUSJVay9QdNPFHSmcgv1nlO749K6IOf8jvyJEL5BAqr1Y/QKrIDm7hHZauFcS1WEVy7L6mrCOWY7KUpONwVu+vOaFxTTsdNku0ALldwRVrXmGgQ/wjDv0Bn/PGUcOxgW7n2pG//giNon6YErHA7GEiUYieQFI90ZJ+5oD95pxRWJcMumNRJE+uxkCuFyklJfLs2SAfZuqM2ULw0OH1mNLsaUNTcbBDlArHPV78IzpvWoUgk4tcfConWKCNRv838iec6Z8u2rUUNZR0CDOL7K6RFjybi8Ma6P+3RIGnRE7ZozR893j6kSU/yrhYWxR0m1IewVwhBVq6o95yWyHoMTZu3E3nJeehkNDWLnoi+MOrsYflA/1XiMBKZS60IVPM47jZJkvb9DM+ZoVRcD9lgI7md5J8qRvODiXZARh/hLuyNZCKBLfQkl5GiF7F9F9fOuYavuL/Ejp+R77uxMFnjDgyeFETjfVChxb397xHwJApBA0Rw1Ibcn9X3cWsbgXJgKQixvjfXq3MwLMPYtRFI+o/I8iIS0k8JB8dHihnT9FoOMd4P3CK0HT4KLuS10bC8OG5b78Gv+zA/MwZVOoPkiNyyMKpCJki/1BU+0AW5ZhlyH6W34eNJy+hDKPYFHqxIJNyaNXlKWfY8IA6hQcS4TibT3iohEZixNXcfay5LNd6PBf30w6/zIkVmo1aWX20WM/kmC8aYo8cEpVEfHgwe6sEB8P0J8oQiM/eSBlEyidmCkzEae9bpUkL5zWjdfpbwvOZ+aHxxF+bbjH8bbYCU+Kuef+HNviE0s25BLZqPyeXbJmQvoTAzMRslswCGNNw/yAp6FHylTiRUi59aLjibzqFd3lfEy7fchb+nfgdFtMNW1e8mfi1F4TmMYR5xG72yDllegJCfzjpSCtlXellUaG8LIOrjJ/g5J5s9C+u9Z7AZ14gyUMWwAfpnldXvgup46MMQzWFnkdgtoAXdgnyWIzZPze6reTtZt6vzuK/H0+2JUGiQubKLCmJJtHAOAtMPeERunxT5S0bPLAaGC+dVPQ3Bus9B7CXAUApDxXCj6bbBPOmIvu1mcQRQFSywDqN14NSSnxCb4QM997FzIH+KO0Q6DfXMU6Gt+UcZTyL4slDGwH0v7zW/O2uJW/StZhZZNyCtE3eaOvA4KSKrn5WtUgUDnFScw==","layer_level":3},{"id":"f7f97c5a-7a7b-4b53-be0b-993c608c268e","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Testnet Dockerfile","description":"testnet-dockerfile","prompt":"Create comprehensive documentation for the testnet Dockerfile variant designed for VIZ test network deployment. Explain the differences from the production configuration, focusing on testnet-specific CMake options and configuration files. Document the testnet bootstrap process, seed node configuration, and testnet-specific volume mounts. Cover the automated testnet snapshot loading, genesis block configuration, and testnet RPC endpoint setup. Include practical examples of running testnet containers, connecting to testnet networks, and testing blockchain functionality. Address testnet-specific security considerations, resource allocation, and monitoring approaches. Provide troubleshooting guidance for common testnet connectivity and synchronization issues.","parent_id":"7108377f-502b-47c6-be02-3765463aed1a","order":1,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-testnet","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:17:07+04:00","raw_data":"WikiEncrypted:1I+g3iB8Klr7mBC/4DeKMdGxNIcsjOObmJBHKNrFsun7NjeRSkAIkIjgPvn0Ch7mDdGDRfXoAe1bUR41yzysNp6O11x/lcS8a3Ql+s83U89N3Kn9QIK305NUVjepHpGRwCLfuUs6r49/Rmv3IvLnxRoEHmOVl0wtpa/lG3+y1Ne14xPHgmgdT5ReiUN/nXcbHA14+lOVT3SEcda9cKCVHqeI43P0FUZpZcLbL0Hb/8Q3ae4Zsguwd12Hpw95G68CsyAwN1Rm2xgHH7yDcTt5DjjL3XZq/H+YzSdgfFP+TLMsJAx4pY6R4M+6buO8lD5l3FFIQ3FqW/m8g7uM0jnK/8tbFSNYlPMJC1obXfxp0pVqUiYPm85iShtC8nhm/34/TVMpQqFGygDjckU7XuEi07HaP3hTRatT76OMoEXTDLpY232KsbsQjVW68uRk1yj+GQiMyb7g2BDZpxuY+P8Iu3o6DBn3sBUhF43BBVAJwKVoj56yKvSppF2SZfpScCkboybaiHmGwNGUoslVe/CgR9j0pv+uIbjmL2k+XefbYPqCW/DAFQD9YaPMLUX0rkDAGbiawu/EaTAXnYzCzevAwaBvaMimlEHB1EfzGhFbYsFJmwBz9wbcxtE9pPvkbFrzA9Rpz/eIVq7Ufg4lohlimnyu8OW9bP3a5hJML5Ul5tqAr1HfMAC9M5HnAzXqCnYYahVRIMMLjxVechrrwwfEDMHOFNxJmyWQ80unmDR5Dq53k9DL5jP6H6CB5r0z7U4mIMLp3E9yNZGY/1b2/XvcZJ/BWlpLyvfp1XVv+gQcNq7hAsIpyAq4XzBR3Yqlmgdfk2I3qg9AblCrpWwv9mZpvEFcEj8uTq7viBsiX4JurXfPsV79aRzkw0TExgPJV3ZXzglvZ1a49zfz1EcSqU42n68/5+COjjdk6vDvU95/6EoxQBb9zl7eOqluTjQ1R3vDbRKM6OJhrdgMS/nJD3qPjJPcnfGJxGmu5HjqHZm1rk/pqOg6NTm4jag3v1S9HO59r1uPwJXYh3p7tbUOlMYw/chuuNkmcsy6Uah+OKS/uLF9mgqmEey4XnX9U3GJhKy6dHYCUmi8IE4zgP2tWRR1dOX+pgluqLxW7Ub9RyuZ0KgsBEOBmJh5oNrmF602sSudrZcDN22O6PWNwKzukWJrg20wj+ZlZ5j1Hi4AoXBe06kKqLIPY2C8J7Sbra0PDHw14W9H90rpWsI/zOkUKdbcmrAM8x3wt1dBbFIZo7d7SDSMHqPo+MILMlP/cLh4e5zuOQolQhEsJkYT7fnqc3jAoOVSPoMpONhu1RcYpjX5zrVMMd/oJU/H4EVO421T6VMr5aYLgp7gVk6SvcmFXd5Q9NAIi5xge4XsGY8op5iz0Tr4lRrAB+GdneB9fiIOYJEk3L28A/kaWibKkbNe6YOBKCW86vLNQw9kNl0+1NwgRmpuEzxCvt5l7u67gfqHymyp","layer_level":3},{"id":"7abb1792-73ee-444c-a732-4b64ee88f22c","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Reflection Validation Tools","description":"reflection-validation","prompt":"Develop detailed documentation for the VIZ CPP Node reflection validation tool (check_reflect.py). Explain how this tool validates reflection metadata for blockchain objects and operations, ensuring proper serialization and deserialization capabilities. Document the reflection checking algorithms, validation rules, and error reporting mechanisms. Include practical examples of running reflection checks during development, interpreting validation results, and fixing reflection-related issues. Cover integration with the build system, automated validation workflows, and continuous integration scenarios. Address common reflection errors, debugging techniques, and best practices for maintaining reflection consistency across the codebase.","parent_id":"71349e72-2b07-471a-b7f2-b7299a4cb550","order":1,"progress_status":"completed","dependent_files":"programs/build_helpers/check_reflect.py","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:17:31+04:00","raw_data":"WikiEncrypted:bzyetvPZRDtDTnozObvREtrhIrVNlzR9GjOxDARd8qaPKEK0AkNVEuyEWFfIrzjBn8DY6shjGjbqn7TVEpFIluO//1stc1a9TeIVJ9x9W8GnhxuSgajiCEqcxRq/kcWqzRcNq+G5PBS2Vke+Q50oFUmdFPFUbshtige+XHhAM+vr1VbcBaNCvAUnkMSy0cxMpdfxTVp6Lt2BW7voUFp5V5v4wm+eGDYDNJaR/hahDs2WNVGZLd5R0rgYfezTRSEExKq7Q6et6AXVy+pmVgjjZ8ZlGuiO0PQUrn8+34AQSx6pG1b2AZWeaLkhKX7nsekKrRfQhE8xHLo44PBWGtCeP3R+0FPsvW2qbTMUKtpZzwUnfEGZKLte10pyWg39bdvFi7yVl68CABfWhuGT1/bcj615AJhU1WyQObutow+jFnlBjYThqH3JssNmHv1sqy/vwX0aD+YYIftEC94eF7GLoiFluSmUz/f0jk77xwnNPi1B5b3Xp8OarYxWlENi1n//v1POhwuOiylv5EJC8A+vt+k3lyM/E/fLYsZsbN3dxZK5D3ysSEpx5bybq+EOSQCTsMFIqUpGc0keJMdoUq8tLhA8T0ihnlvY3IHyE0Ekojgbf42PCqR5UWjQ2UMuT4qse91Ss00aLjiozuB5ncWKd411zVc3w+V/RuIEOgA7CrShgVwyKQqJY79EvjliATv5Kh4krN0OFZSA5l2BSXKmie4wpSrsKPK0pmDxFlfeuKBCurgkt6vPrUYKtmLy4etO/X9W2BMiMkZQXJSTaIt0rCK7dCPCmeE975IT32alaUaDIlZnBEjvpBqkVFN/Pb046CjE33AdgDHbXQg+T8aNRvOpYZMal3BCnw7IzbMMlG3rawYhXmnXggCxRFexufLtLWKHkxRARivsT7EHcredBAeoSt26ETGMyGZ/Pop47RzOgk0kKCaT3BCAm/I7wZlU+XgnStRjYuMf0wJKf8P8SChYRpK/cUWIlepMtHy6/8E5fkFgrdv5SpyhUoF/wqEHskj5jLC0ZmIcw2l5LrYcd70U2s49AdI4uIuiH4ItRGiqN98cImdA2ryU2izjj9Xde5f1vqBBQpLowqdBNH35QXJsxqIb1RE4+bZ2ySAj7LtV4SPUMffW08rQSlhFImRB9BnWYdCK0Utm+7t/BahAZTEI7L+yFhkq+jj+fdCJzkhzturXGB+OWE6FomYdiD8MYo6LPDyGpfuE8zHe5JoKPFzvp3pWPwxYn5UpnvRVwoOVXviLY2CQOMVLCpxkjXC0BQlrZ7377iK5HtByix3XosgFTKsVppHbl0RdE5iWZVm5lrHwDWctVdM1iB/+tsRrwUpXMUGWYeLvUSVx9b7cJdT87st9oQ6rAlcRyjeTqam5QFb/B8Vukl73nWFLQf4UJTFQyjEGTfvF306mXzZLoRkaeMZN1irqzHCHuS7d9c0=","layer_level":3},{"id":"dbfad48a-6488-4507-b5ff-beca8277f9a8","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Snapshot Plugin System","description":"snapshot-plugin","parent_id":"23a03952-16c9-4271-ab2a-fd18cbcb90f7","order":1,"progress_status":"completed","dependent_files":"documentation/snapshot-plugin.md,plugins/snapshot/plugin.cpp,plugins/p2p/p2p_plugin.cpp,libraries/chain/database.cpp,share/vizd/config/config.ini,share/vizd/config/config_witness.ini,libraries/chain/fork_database.cpp,plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp,plugins/snapshot/CMakeLists.txt,plugins/snapshot/plugin.hpp,plugins/chain/plugin.cpp,libraries/chain/dlt_block_log.cpp,libraries/chain/include/graphene/chain/dlt_block_log.hpp","gmt_create":"2026-04-13T15:59:14+04:00","gmt_modified":"2026-04-23T12:18:55.6134455+04:00","raw_data":"WikiEncrypted:aMBX4tyQy9CspId6SOjUsPjDbWaE0XwjiYFfJC+6JmpoDChB3ZowO5dYf5bnEbW/owWEY1csO33LOVGSLpEpLAsElEIuL6651OxIlbI6Jx6RNkf9UtRcW2ASo0/GisCKkFKS4/8XT+hkNeQJn4LdLkUftG0oshD59M95PkRL07t9KwSIpA2ox3nE452qaZImkttFmbzHeg9VN2z9YxMIV2hnzBtyMqK1zmLPDb9ML/wfBipefTf/UMfHJEid4+mGFPVHeRRtOHCElOCQpymJrrPR8DGFQnj3l7TElvglDPzK5VtVEAcf+VFqw2XuCRQkBSX0TRrhj2NOKQGhdHBuJkfvsH7wi/KVZ4Sk+izxseINMZMWPEjpEvJLz57iawS4603snYkXdYrDZbKv0gYE6kdTFt+JVrKA0DdtFQAccpdP1l2XhnZspjT2PxTsuCsrVlm/UciYIl6VrA6mrXnUbvam8rb8ZmtCcxmbM6Gcz+VHD8LFeQDMrMqNKgPcLnSMeXXqdCoQE5CuYf6QGkmUUBtxflXk9siBVOgqtI7dxQUqyb5OTypOGlwh78e5hRNM5TkMccR/D4Pq5Id27ONJfHLEQw8hfEqJqUQygNb2M9hDSvm1VxDOPMK4nPMagjtuQSwME3ORuGnrcxtrjnBffaZ83lMGNeH95zZ3Za/3zC8fqgW9PrCa4OjzaykYdyLSTV4z7rdy7AB5esCOxBNSiXy22Em5AHrNPZDGkRoIZCUYiKTITdGsaqQgIv2d3y361vKDBiMFJglk/rBPbjucGlXibOM1zsk4i7RqMphSpcP2i2VAb0Ixew9a79mJ3Vlf","layer_level":1},{"id":"584caaf9-1fda-48e4-b063-7384435a48c1","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"DLT Rolling Block Log","description":"dlt-block-log","parent_id":"907f8692-5249-4ebe-a7bf-bcec7a632dad","order":1,"progress_status":"completed","dependent_files":"libraries/chain/dlt_block_log.cpp,libraries/chain/include/graphene/chain/dlt_block_log.hpp,libraries/chain/database.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/fork_database.cpp,libraries/chain/dlt_block_log.hpp,plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-13T16:01:33+04:00","gmt_modified":"2026-04-20T10:26:23+04:00","raw_data":"WikiEncrypted:s2jjuqSQeKwD1hNHHJ9DR2MPb35AgwzTacHpcPL0OtJB0zaRNLYJ+orR6pmHUkGhks1yVrOPHhwOHdr0evYd0xEi282qASpCMeLKGxgeabO4wWJCefkdwW+00NAyLKPpF5TRyYZ+UwGTHAheIXwbFWqT9C+s+LA3IYd0iPIRaYDPXsWnOaxlFuByDTz2fGIFbzQbi2OBxoJs3dFF/ZA79XxaWyIxsn31Q00d4o2IBZ4Gal/zej4WgSrxFocEkfqYak6Gd82wv4w3Bt1lpmxaQGZBCli64gzqLG3v8RwIeE1xlaE7l7Xm8w+X7DvW6xbTpLre9hHx8RA/CZJSv5cCxsczw74XS5u7Y7TrwWgbgG8JL9Hzy7G4Q8cYCn7D20vgTK6jK/2BMyOJ5dd1NKC7otss80YqCsW8wtcpotteMqBujxThE3A8Wwl2EEWcUnjQ83BDUm+tv5h3vf0pG7rcDotJivTCSa7JvigtKWF5eqfpmOrCa9XoR+WHilZJG+mA9cWdpYZ0Csd8sAzDqyvvr5giVSaKFYQccNORBfPhc3M=","layer_level":4},{"id":"de01e4c3-0826-4bc7-abb2-ff569ab8d352","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Emergency Consensus System","description":"emergency-consensus-system","parent_id":"15c5d415-13ad-48f9-8ae8-8f00c771019c","order":1,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/config_testnet.hpp,libraries/chain/database.cpp,libraries/network/node.cpp","gmt_create":"2026-04-20T06:57:07+04:00","gmt_modified":"2026-04-21T14:58:41+04:00","raw_data":"WikiEncrypted:yCC4O4QQiwfuc1LsaLvGZSv7iyGIp30QuTXuQp4YbjBPkP2yi2DSamCQ0erkARNQdFUVyIGCSLZc9P70aEvXU2XDlPi9dn8dxZ/3E7hfD7l8VSySXrg3ONRMw5gixEiSYtQ4qgAlp1kaZpLECZqtVHhhBDsmmA1+uBVR7U0iZY6dUNL8LK2WMd65KfmNdbM4Gs9dejUyJgNkxT/xr1Tax/V+2IgVqVpyPB4a6a9DVSAKXWHOU+jJnn4dPNrlf/gNXL653EZ+A0q0bSTttif9xGbjQWG9GfftOYnmeK2d1GA9enmwE92RCdxuID0mPi4J0JraL3Sdkw3VXUpljXRzXSVBa5Mu25FQ6zYhiimMZ7A=","layer_level":1},{"id":"61cc85da-b705-41e4-9860-17177048c2ee","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Architecture Overview","description":"architecture","prompt":"Create architectural documentation for the VIZ CPP Node system. Describe the high-level design showing the relationship between the main vizd process, core libraries (chain, protocol, network, wallet), plugin system, and external dependencies. Document the modular plugin-based architecture that allows for flexible feature addition and removal. Explain component interactions including data flow from JSON-RPC requests through plugins to database operations, and the observer pattern used for event-driven architecture. Include system boundaries showing how the node communicates with peers, handles API requests, and manages persistent state. Document technical decisions like the choice of C++ for performance, Boost.Signals2 for event handling, and the separation of concerns between different library layers. Address cross-cutting concerns like security, monitoring, and performance optimization. Provide system context diagrams and component breakdowns showing how all parts work together to form a complete blockchain node.","order":2,"progress_status":"completed","dependent_files":"programs/vizd/main.cpp,plugins/chain/include/graphene/plugins/chain/plugin.hpp,libraries/chain/include/graphene/chain/database.hpp,libraries/protocol/include/graphene/protocol/operations.hpp","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:32:30+04:00","raw_data":"WikiEncrypted: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"},{"id":"f0c815e1-40a5-43ea-b849-ddfc5fa665c1","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Core Libraries","description":"core-libraries","prompt":"Create comprehensive content for the core libraries section. Explain the four fundamental library layers: chain library for blockchain state management and validation, protocol library for operation definitions and transaction processing, network library for peer-to-peer communication, and wallet library for transaction signing and key management. Document the relationships between these libraries and how they work together to provide complete blockchain functionality. Include architectural patterns used in each library, such as the observer pattern for event handling and factory patterns for object creation. Explain the separation of concerns between libraries and how they maintain loose coupling while enabling tight integration. Address the design decisions behind choosing C++ for performance and the specific technologies used in each library layer.","parent_id":"61cc85da-b705-41e4-9860-17177048c2ee","order":2,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/database.hpp,libraries/protocol/include/graphene/protocol/operations.hpp,libraries/network/include/graphene/network/node.hpp,libraries/wallet/include/graphene/wallet/wallet.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:46:01+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"ff55fa31-5b21-4383-98fb-59c794986fc5","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Debugging Tools","description":"debugging-tools","prompt":"Create comprehensive debugging tools documentation for VIZ CPP Node. Document the debug node plugin functionality including state inspection, transaction tracing, and blockchain state visualization. Cover transaction serialization utilities including sign_transaction and sign_digest tools for debugging transaction signing issues. Explain network debugging capabilities and peer connection monitoring. Document performance profiling tools and memory analysis utilities. Include practical examples of common debugging scenarios such as transaction validation failures, consensus issues, and network connectivity problems. Address log analysis techniques, error message interpretation, and systematic debugging approaches. Document integration with external debugging tools and IDE integration. Explain debugging workflows for different development phases from unit testing to production troubleshooting.","parent_id":"3d7f67ff-d926-43f9-aa40-274a8bcc5a87","order":2,"progress_status":"completed","dependent_files":"plugins/debug_node/,programs/util/sign_transaction.cpp,programs/util/sign_digest.cpp,programs/util/inflation_plot.py","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-03-03T07:45:42+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"3d9c7759-c5ae-4ee8-a09b-782e7dc6c02d","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Docker Configuration","description":"docker-configuration","prompt":"Create comprehensive Docker configuration documentation for VIZ CPP Node containerized deployment. Document all available Docker images including production, testnet, low-memory, and MongoDB variants. Explain container environment variables, volume mounting strategies for persistent data storage, and network configuration. Cover Docker Compose configurations, container orchestration patterns, and multi-container deployment scenarios. Document image customization options, base image selection, and security considerations for containerized deployments. Include practical examples of common Docker deployment patterns such as standalone containers, cluster deployments, and development environments. Address container monitoring, logging configuration, and troubleshooting containerized node operations. Provide guidance on Docker registry usage, image versioning, and update procedures.","parent_id":"52d3664a-1bc3-416d-af24-b6826b0eb20a","order":2,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet,share/vizd/docker/Dockerfile-lowmem,share/vizd/docker/Dockerfile-mongo,share/vizd/vizd.sh","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-04-17T17:31:31+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"ca175923-377f-42fc-bc5b-b0313c3dc653","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Cloud and Infrastructure","description":"cloud-infrastructure","prompt":"Create comprehensive cloud and infrastructure deployment documentation for VIZ CPP Node. Document cloud provider deployment strategies for AWS, Google Cloud, Azure, and other major platforms including instance selection, storage configuration, and networking setup. Cover infrastructure-as-code approaches using Terraform, CloudFormation, and other IaC tools. Explain load balancing configurations, auto-scaling policies, and high availability setups. Document CDN integration, SSL/TLS certificate management, and security group configurations. Include monitoring and alerting setup with cloud-native tools, log aggregation, and performance metrics collection. Address cost optimization strategies, reserved instances, and spot instance usage. Provide disaster recovery planning, backup strategies, and multi-region deployment patterns. Document migration procedures, blue-green deployments, and rolling upgrade strategies.","parent_id":"0a29818d-c5c4-477a-9a73-6cb166a647ae","order":2,"progress_status":"completed","dependent_files":"share/vizd/docker/,share/vizd/config/config.ini,documentation/building.md","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-03-03T07:46:55+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"ec0d76b5-8e74-4c98-b524-78e50c91d776","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Custom Plugin Development","description":"custom-plugin-development","prompt":"Create comprehensive content for developing custom plugins from scratch. Document the plugin template system created by newplugin.py and how to generate boilerplate code for new plugins. Explain the plugin class structure, required methods, and interface implementation patterns. Include step-by-step tutorials for creating different types of plugins: API plugins, database plugins, and network plugins. Detail the plugin development workflow from template generation to deployment and testing. Document plugin configuration options, command-line parameter handling, and integration with the main application. Address plugin testing strategies, unit testing patterns, and integration testing approaches. Include practical examples of common plugin patterns and anti-patterns. Provide guidelines for plugin packaging, distribution, and version management. Document debugging techniques and common development issues.","parent_id":"48bf8158-7839-4c2c-a50d-7cc05923bd1c","order":2,"progress_status":"completed","dependent_files":"programs/util/newplugin.py,plugins/chain/include/graphene/plugins/chain/plugin.hpp,plugins/chain/plugin.cpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-03-03T08:00:21+04:00","raw_data":"WikiEncrypted:VrTOMK0P24YINQ3w81YokeSPoB5X9Zo/YG1ok/2a/9ryYLsqc1VARxnFCL4h0y80V3hdIQYc2nWoxIlKRpkvalc7lk5z+JlJ/h/qV4B6VpDkk+7D+iI3Z4iiJ+aP+fnnzj9U/9miQtCCYqlIsgWw+M9ctNXxnyPRWq6ZFHOXO8ReBDq830QA0iedXPe15iArFJ0CpRhfTLTTh9ALhUWxyPZRIZcV2qFU6q+pSX3xNlG5GtLnDcpg9SthmqU/6DxfF0a/GwjHlA0Qm5Xf+F+i4Bdbvby/N9F61bsAtP6CIYEEHZLpvZ7bUxWipx6BT4CGRgByiPmQ39OAPt4yyHIaljAbblr55afTAwZrUbm/zWPAE/pOToMuqYS73Q6aDy9pnGPyS7rCRF9EkKJFcUNHl5hDCnShN+8gSxwHBbKCQS/XR3jbcnxP31XcNG3EM+iT2BUM0KL5nyDV7vLfXXzCeX5cVikVB4Xvdd+GxWgmynOSqmhniOSVBSDu72nUH5kJrVNHoq4Xz1GhNe2cJFUTNkj4PTWcJssbQpwkn+9d9n7cvrMZO3AXrXCluG87yDMzBWORt2Ea0c8YkAiIjgVQlJJwhagve5TCBW7UzjSk6V41rVhKTEM7lCXWLy/yp7YpGIfakUS7Lo/hCeMT/WyMLWXmqKUvfEnAGQUp6mO3rRRUZBCbNkG48j5RTa3tfd0ak0RCGAgJNjiGRso9vwW3Jcy2MDZmKhQmBrhDQU+VTIrOkUnE6BBsC19VAj5nax9ACH+hFBfL7DVYoQIGZQWp1UCDJ8KlWyhVOtYYCq4P4NYjpZTqjd1Vm4RASVSfB0H+7fXJHEKaB9G/eXLp3jG1nbt1IKwDLbT9PpTNnIeF5JChqi049/67JCP4z0rbSq8QP5NrL75g2vXzybKuUtBIRlltbRFisNBnLGabdSJSFZ1IhgJOrOeLMYi2QlJho/MC0Wj47wyZwfdQDYqPaKXRBXQf8g0cukIk1nsIzfdnkDFylPauDWhPeJzDDoj+Xjur1CqrVQgeqxTZl7F5qLt9zHcYMBKkKTGe7HXcBOPiBNyiqDaBxvSLGres01tOjl9CLdct1U01YH4NADG9O0zSpORIsSwTPiucTKNwtQK3KhLpXkhbBHtNc45Yqx96Ok8aKTjwFe7xsSBzPFPdzKDgYzK2O0wbdd5cXeoKtUIn2wloznUviwRJIA9vBh7DtFIUZZgubozRwhs7h3AQ20bM/3F74UthcMhn3AWW3KvV6lwe2ZAUufnBvtPcNQJaJuIk2JPwxkm6TgWeb9GjBtMUaFWYRbw5a5qPyku889Fa6+eB0DrWaDsAPZC01H6k847c3XKGxo/2lCbVnGbNeQC4oAmm677HgDhYaI/Igx75b19V1tEOkUDrxbKeMW+zH+M2XVjD0XvnmpZXJORM9byRnixT9WBsPniMEfMc4Wz6cl/LWi+j1zTYfIB3EVLEJAkZwwtMmwaUvaE/3QeeOrNl6PeYpaFmom2Jduvh1TrvsgC7qp4ii/vL6o76+31OePjzmCIY6ELli+eSVt8H4nqRSlcT541ZYf8jchQUrKXuMk1mtV1oLUgZeW0RZkQx6UN/3aqbbeTypZmueX5+evi4WFejrIPWU7EN0NFHUkZlAql1SXbK3nQ+aFAFVOXeafevdvZpRjQaS0j1idhirFDc/N+POguzTwbVsiJ4x1WByRcs4EuuSUTgWZeIxZLyQ5xd","layer_level":2},{"id":"bbc88401-9798-4b33-9abd-f785bfd1c7db","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Security Implementation","description":"security-implementation","prompt":"Create comprehensive security implementation documentation for VIZ CPP Node. Document the cryptographic security implementation including digital signature verification, key management, and secure communication protocols. Explain the authority system including multi-signature requirements, threshold calculations, and permission validation. Cover API authentication and authorization mechanisms including token-based authentication, rate limiting, and access control. Detail network security measures including peer authentication, secure connections, and protection against various attack vectors. Document vulnerability assessment procedures including common security risks, penetration testing approaches, and security audit methodologies. Address security best practices for plugin development including input validation, secure coding patterns, and threat modeling. Include practical examples of implementing security features in custom plugins and extensions. Provide guidance on security monitoring, incident response, and security update procedures.","parent_id":"1ff378ae-ab40-445d-8853-ba7c346a78a2","order":2,"progress_status":"completed","dependent_files":"libraries/protocol/authority.cpp,libraries/protocol/sign_state.cpp,libraries/chain/database.cpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-03-03T07:47:20+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"78c9439b-6aef-43ff-9057-0036ee0ac803","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"API Request Processing","description":"api-request-handling","prompt":"Create detailed documentation for API request processing from receipt to response generation. Explain the JSON-RPC request parsing, method routing, and parameter validation. Document the database query execution and result formatting for different API endpoints. Detail the webserver plugin's role in HTTP/WS request handling and response serialization. Explain authentication mechanisms and rate limiting for API access. Include error handling strategies, exception propagation, and response formatting standards. Document performance monitoring and optimization techniques for API request processing under load.","parent_id":"971f0bb4-1d2d-4258-92c8-080f826ba913","order":2,"progress_status":"completed","dependent_files":"plugins/database_api/api.cpp,plugins/json_rpc/plugin.cpp,plugins/webserver/webserver_plugin.cpp,libraries/wallet/wallet.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-03T08:01:46+04:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg1JYzeCsCQE5DuJT41k9RTGrPgA2abBsNlRj9b4XM+jkw4/9NpaPKF6EJT5TeM3pEGtAXs6fmJFpD/ClSCokjO5iH688bbQoqGmQTvYhz6YFrqi2ZwZCgLZqxXjeQ+3tTxBnymCnZxB8FG4ZCYnO/aM7mVFF+wX7cs8cHpaPsXcOfr6Hd4fzmo068z3DM7cGFEXM5A9ls1NnArh155cTf2tueq9UMQkcnntwWzMc3neifSA8s7zCMMuRSbFSClMbY6V9dfVNk5WdOY7cmVE3DUCVinPejJUo5YqsnmY9dctLkvnCjD6r/kkmzQGUdQwKWL//akcURyfe4GYPSjtIZ44ZT/CLrBfKXTw7lan46TCZC7F6qfHQ9aadN3F4TnU5H1ujcRcpThzxdMPsuZ5BEQn14HqOBg4t1kbtlKTeiELTT55CEJBjW2rFbl+U9FB08CuygiPBZllXzpMe0RU4PDD9z79SDJBWHgOSd5WGX1YGQkYKq8L4nuJtoWQlrZ0BPAWIbvneiGiA3oNibLVvbq9BAn3NLuJI+AHJ3loWhzJGAZn6YE/6InN+lcFAd947H4Pe35OluAh6wFSB+XAcNyhKupdb5VKxOSe3opO5Qc8am/tofA8ZU9WYaCGGUEqT+/e6sSfhJsMLLmmY4CNJDdej/QfScNXvrkwcxc2LiYr0NgtIOrzGpsQCuhUVJMPO5LTXSgIqFPE6My9mOIRFinxm2t95cIsVXW4w9PLc3nX8s4sDtfXKxBJNNVzoPQqh4ovzWp8W0I3tY9AJTzVwJpyS3nRWg617dFDa4qGd2+4E1erMFsGEK8BgcY49CVHEMFf9sT45cISssrcMnGi02O6q0dnjHEEeAAY/0T9S4FTN7i80L4k4ZmYEqxKSZLyvrD0737gx9ST0tKa6JpoLG9tT9P1uZnS53sE9aD3HmZkiyLupKeDDv+qpXFpKQoFnkXRndxAB3otewfQhgjJBiHkvHJOUCcGwu7oUTksIx2X+p/HOUVm/a/YaOLOlZg30lXvoq/NBVfV6OXioS0MhhybUF1ZIFv7bCJjXmKAjJ8RzXFBIteGan7GbAqfpCj7QXfNKDIbLTzTS8Tcc3xAX5SftkaJP0F1zb/wPjohfgyOydr9/jfRh6sukEK9rzTfSOuFC2Fbbo/6WmxuoHaivcCwy0lnYP6CZSdGlum5moeyIrqTQBKfgud7vvmpVu7KYrWXaidCLR8KPdODZbPhMACrFawOh3JYjSLEpfTMgtfWikcDOVPjVG52gBOdZNLUQlkJi/ZOAXSmAlMebJ4m1bVS5tnVK9x2Xb3MMwNNJrrlh8aX4ugvzgu71ryH9sfQkOi0JNkbmRqzITStS4cC3qdTs9C75L7Vl5oaVmuz5yGSn","layer_level":2},{"id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Network Library","description":"network-library","prompt":"Create comprehensive content for the Network Library that handles peer-to-peer communication and network protocol implementation. Document the node.hpp implementation for network node management, peer discovery, and connection orchestration. Explain the peer_connection.hpp for individual peer communication, message handling, and connection lifecycle management. Detail the core_messages.hpp for standard network messages including block propagation, transaction broadcasting, and handshake protocols. Cover the stcp_socket.hpp implementation for secure TCP socket communication and network transport layer. Document the peer_database.hpp for peer address management, connection tracking, and network topology maintenance. Include the message.hpp structure for message serialization, deserialization, and protocol compliance. Provide examples of peer connection establishment, message exchange patterns, and network synchronization. Address network security considerations, connection pooling, and performance optimization techniques.","parent_id":"f0c815e1-40a5-43ea-b849-ddfc5fa665c1","order":2,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/node.hpp,libraries/network/node.cpp,plugins/p2p/p2p_plugin.cpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/network/peer_connection.cpp,libraries/network/include/graphene/network/core_messages.hpp,libraries/network/core_messages.cpp,libraries/network/include/graphene/network/message.hpp,libraries/network/include/graphene/network/stcp_socket.hpp,libraries/network/stcp_socket.cpp,libraries/network/include/graphene/network/peer_database.hpp,libraries/network/peer_database.cpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-04-23T12:16:50.9986922+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"7108377f-502b-47c6-be02-3765463aed1a","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Docker Integration","description":"docker-integration","prompt":"Create comprehensive Docker integration documentation for VIZ CPP Node development and production environments. Document the multi-stage Dockerfile variants including production, testnet, low-memory, and MongoDB-enabled builds. Explain the GitHub Actions CI/CD pipeline configuration for automated Docker builds and testing. Cover container orchestration patterns, volume mounting for persistent data, network configuration for node connectivity, and environment variable setup. Include practical examples of running development containers, connecting to test networks, and deploying production nodes. Address Docker-specific build optimization, image size reduction techniques, security considerations for blockchain node containers, and troubleshooting container-related issues. Document the relationship between Docker configurations and CMake build options.","parent_id":"9c29a057-ce87-4636-9143-abbbe00af3e4","order":2,"progress_status":"completed","dependent_files":".github/workflows/docker-main.yml,.github/workflows/docker-pr-build.yml,share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet,share/vizd/docker/Dockerfile-lowmem,share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-04-17T10:15:28+04:00","raw_data":"WikiEncrypted:CMPQKjsWj44q+b7DSXFoBXMIGf3GaM3SGkmd3tknFiEqzTeBe3V3x4Rl6LRWK8ucLbbUzS3JInyHtCKQF0ZtTRFsUM2pHuNQBR/McP7zrp8kqpYHwp5RGHgFScAIJwhQeXMWt06bLnmVd5jsAHbioGS3UmhZLSzkbyFrOFeAaGEXV1hChm+rrU6fiW6cWeDh/zmPZpRLLe9VMrpkoEeRdFbzZT3WClOHLOc21Q2QZIyRj/POcXUEOYFj7lriSL6UWS5n1a2f0990pasHQZrSROtt5Xmal47gweop/quaPDZwrVU6s1NnlXmCs6rEr4dJA5PRzeRuwA+IdaxWwk3Zb80SobupVgM5K8g0YWDexoK15CgzQujFwTMO2ERL8laZv5KLrIl5W8f5jaoBbQJ/lpn3NzJ7j8V5G2HV/Pxd0mQTNJQnaMEexQshyUq8A92SpD1Gs6HK1JIdhUlzhsRe1GRGoJuuPM8iA4tSta7F+VdgOw1OQR8qMP1qqr/fGPBLGlIv+hJiRrCjjNH7qpZbCcJ+PKj6aYiSpYSoEc9nvZtyH2+YnA2QhNmN4hBmJ6cg7dQo0aeXxovS/SXyorpTTYYDRllJmEvXUA5rZVLd9m4JHDlnClDCncfys3IV4iX9C+0Ah1xl89YcyJQl8XkY/g/I8pqvKkNxvEtpYL/TgSqROPQOwHOJpgfns8EsUoUrXC/j5oCa84HkdfonOoxNcSpP3tZ2DEj/grMQcCXy9p6atU/zKxVo34A94/vTRp+1ipz5l85OxMoNLshI/I3p4+dAn7iuK/aEe33cSFaI+8Inb5ihmdHlttjs5r/LOqmR+MT1od9da+q+eAkI2NU2wMeDjjQrohsBGZiCCc4fTm99YkcmaekEa1pKCELRIAb1HQKR8nJ6Lvcl3fXj/EddyME3X+v51draQWrzB84H0iqVHKBhvctVPQqp8F7UTzC9ZV97vjpmMpCKOUatXSiXCEA4U/zUEZkSXx+Om7XEhUGJjvZ6UOcd2JW17WKykU5RkzualU11W9DGXaQwMkZI2AY8ipfR1C0R7ZBmg1v3m5Ae8vCCzwjnIP1mkLI+YbifLz+WQNRyyx529VyDi+bndgCEnArzpZePLaLaIOTGwU+fupkPjyLtgO0Mkpjhg8Vjrr2boJhLj4YpFopCDcD23akpBgMUjtnkleOZIaM0c/CSz3r84qmWigf5JNU6vxgBsuosmE1RIbj3ql1+qtCEhfGozSOYcyiw9lR0rNCq2UzWi0fNGU8Yu36iNXw0nld+PFDTSNPLb4Ed+KkqeMzyIIMaPjx/FAGy7UnpG9ZlfLGR4lxxGVY2cOCPGYj65fMeBBL6AUWw4J+SxapwO/E+8gfdYpgThk25UybTF2EpYO4Gpn86aa93NSggOT18LsOWm74ys84v2mxBJ6ds1Fbizl3EJX4jLUG0bJBR6kpEMOwkYEgs5tIby0stgF8anPgJC/Npttwf4iGkZ9WrL9fDElVv70dYw61rXyzQV7NyplySti9UNFqHPqNYeW3PW1VdlXOAWcJx6ic4QFCQPHeX/42x3lcgwDmgUBFNuVBMzgHu+ErwRngOCG+eaBoN1RtIFoDrFTAuf17hiDRMN5yE5hIx9xbtb9LKoVnMnBRGHVt7zMpPE8bkGlFDyYfs/0j7xtso4DtUkFY7kOZcgB3HWnJfMXPQmCMahTDHo1bnk5cwa8WtJRLE7Ns87Wt4DgTeN8/JZnRxmY4uEOzAnehwmcb7I2OUEVk0ucosgNmJk56x2PxTuFbfLAgr7ZXznOt5zxJLOKhaRiqoY+T6fbdwdr5dDazRxSqhLEF5KYJbuFEoPvfILO04KeaXNdPZ0GzZXRHUJ+saTGDDDSJDjI/woJxYnpPrA/ejN0UIER/hnmJ4H2GlP6kgjCqt/X6f1ybak0FEPX+1HEModDzw/Cy3tw+ZyEROrOBk8q1iE1FyAoE=","layer_level":2},{"id":"61ea749d-b063-45cd-bf3e-d8562ba34696","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Network Debugging Capabilities","description":"network-debugging-capabilities","prompt":"Create comprehensive documentation for network debugging capabilities in VIZ CPP Node. Document peer connection monitoring and debugging techniques including connection establishment issues, handshake failures, and network protocol problems. Explain message propagation debugging for understanding block and transaction distribution across the network. Cover network performance monitoring and latency analysis tools. Document peer database inspection for diagnosing network topology issues and connection quality problems. Include practical examples of common network debugging scenarios such as peer discovery failures, block propagation delays, and network partition detection. Address logging configuration for network debugging, connection state monitoring, and network traffic analysis. Provide troubleshooting guides for network connectivity issues and performance optimization techniques.","parent_id":"ff55fa31-5b21-4383-98fb-59c794986fc5","order":2,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/node.hpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/network/node.cpp,libraries/network/peer_connection.cpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T08:04:07+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"0c9b41bf-680e-40eb-a163-c34a13239b1b","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Service Integration","description":"service-integration","prompt":"Create comprehensive service integration documentation for VIZ CPP Node deployment. Document systemd service configuration for Linux environments including service files, startup scripts, and process management. Cover Windows service installation and management procedures. Explain integration with reverse proxies, load balancers, and API gateways. Document monitoring integration including health checks, metrics collection, and alerting setup. Address log rotation, centralized logging, and log aggregation strategies. Include integration with cloud platforms, container orchestration systems, and automated deployment pipelines. Document backup and recovery procedures, disaster recovery planning, and high availability configurations. Provide integration examples with popular monitoring tools, logging systems, and infrastructure management platforms.","parent_id":"25110dbd-3911-48e1-b870-29607c837581","order":2,"progress_status":"completed","dependent_files":"share/vizd/vizd.sh,programs/vizd/main.cpp,share/vizd/config/config.ini,plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-03-03T08:03:49+04:00","raw_data":"WikiEncrypted:vMsgMax61wW2sTWhXd8DH8qAw9CtLog8cZ1tiD2BFP+U0bXW3hqFYf3RL9xyiBC/9b4sFP+QmOk2wmA/qm9hf0gT3h2Jws99nvB34YCyl5dFaIRl84rx/o3Zykg3tatTYFluDC7sbSvs1O0o8gMlPHhUonDd9S0Wby8VPQZNvmSEJ/WgHJJygKImU3JR6hCKaVPIJYXeKFOu2MMIoj0sshp9BQnlc1PmbUL9S4on4eMkB10USK/Ro+RgIaYSkS55t21sHWbLTo0AlxIYQ+u0KpIzryme9wNUHxNVv1/IR7MrAd/lUW5ytYLeeT+8Vl87eR7Z3oPoyjsZ3ZbIID+QIAzdNu2832ZZA7xUUgZJBC5mMJz9XR+Ufm671kMd/tgGWmWR36CAQ6tg5WVoTK7FLLOP7NJr8n8JYqcBpGXHRoFWOzLaYd/eBTgigAT2//TsubTjnTst0Xr5wCwHMEizXHcho4YT8rdM97WryHG0LqDXPXpKfJdorLOlz48JKDaCjVGeE0oO77OerszQWRaaHz6Otzq3+Suf167Tp6EQB6ErQpC3x79NVUEBJkgeltwq8BZzB7mT8WjiD8dzA0ouZxOkfye1tPTKgdN9llQJQM8YmsxV7dzAJ9Zk4fQR32f2I+8aMONsLHq8Ye0GRjHmVjSP/I59+8qzq9/vTKE1DLsRm4ATPJm6qpIKnbhA0L/QUgRkjpOOiUiBlYcKuzkNtxwYGT3Kl2H16TVZv92wuUs9Q0igRFhOuMXtMF9dOAD+8d1kAMc7s4bQJGqb03MNS52ZDa2NIjyeDjP0N/ZIVSlCLqlIXeF6nFzlI1+2RLWMSqlSXt6WiZXkhtgnbBXQJLp4ZBaKnDBezrJI1PXBohf13XZ2y6AXkuGKjJwe2fxE0A8vynkyIyTeAHBpfoXcdDVI4GhaTQMaGsASUAJuQjOCFcSj01Z9IjxjFv9fddpSlR6KvnOhqrbnZhltVnNCS1CwWaGGvp6fakDvnZR8lnmI1mukzzde0zZ2GwMrypQo4wuGW5bUH/XJpG/r2UwS31ArKbP6E5Mfq60OymRDINMWSJD016iwBtvaEo1S0F1Vjf4P+4v/qFKApG9mMaDKbbKoS/PxvkW7YxbBhXqSws/TlykHsuEDeoVK2qNyZnn16LP+XaIog+yFNJBrS2FuZVo7pO6c/qdLfuiO550zmM/y3Iq9vfDEywnwrMah00LPAPrIw/Dmqwzn+PZdfz/GeSJifvAvbHN6iqVbUV9Est6nDFcNVqxGylGlPui1mJ3eFg0/wFAKf61Q4yzylgEf9LWqzN8hl6GDzQvN2IY7J0GbIzEPoh3fayxchmU1Zeom4xwtv56vCZFnrdKwgAQ4b3HBzBT75pYKEeNtPfI0y8BJNbfYdA6jocqZP0rnE2GTTX/2LIi+d5ftnKdahlv0oDtGTzHUEnh+q+ymfrrslIS1YjUiWsYi6g2LlRAmZ8gzhK76DQ7/dM8k7Q3SoCRk5z/kcLrgy4Z+lSLqasmUGhewoVBLdudC/Eam77SJ15s/5T58WIE3NT1UOw8h5O5j7YSWM6ErjZC3uTvEVtmRhBi3To4FqO7dWQW2Da8QJewcor/ldmjaEGpFSBFc/6ROzdHI34DTjOHmfroIsfx4/UVKbxb3RgViP4DVjAQj5jnLvHM5mdVIuI6vaHF1UAJZTsyAfcqHB6ryb9xGYZ22mWk11OakmTv73w0PCQRHAR3mqVUfiFG79eu7OLe/5+f4VbaxwegE0DGd9+WbkQl2tWc6wwm700mXO+ZWAB7RbkXEujlUF7HZ6lFfvT6nDQxEnb6riuw/0+d8RHlIWR93YaCmx/7UV+HhspCPHD1G7vaG2lFLfLaEMR1FucZeJsNLzzYDyqTfS7YNjOWpfjCSmzjS7qzViO7leJGrPVv47n//","layer_level":2},{"id":"f5c3d1ac-1375-4c51-9683-542e2309c154","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Authority Management","description":"authority-management","prompt":"Develop detailed content for Authority Management covering permission systems and access control. Document the authority.hpp implementation including authority structures, weight calculations, and threshold validation. Explain multi-signature authority requirements and permission hierarchies. Detail the sign_state.hpp functionality for signature validation and authority checking during transaction processing. Cover authority inheritance patterns, custom authority types, and permission delegation mechanisms. Include examples of authority configuration, signature verification workflows, and permission validation scenarios. Document the relationship between authorities and operations requiring specific permissions.","parent_id":"84b360c7-2115-43aa-89df-1205d4f6231d","order":2,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/authority.hpp,libraries/protocol/authority.cpp,libraries/protocol/include/graphene/protocol/sign_state.hpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:17:58+04:00","raw_data":"WikiEncrypted:Jgq9fCpm/NkqSNIWYhs+n4jiUARsKF/Jd4ydE+1m2zwQwWHJGmtOerLGG8TW7XbS4S/T35fVYB/yJZzgovCH718BLdmouX/kTxDmd8tNbBdrrta+doQxNGDkod8z/WaaQYLVb4IxX7U/EjoAr7/P+66vrhi6RqYj5fBPtrSgLJUW/RR9MCpaEUYd7pGcSU6JWeCOU2QyjuuYk1SyjFg+g1rcuLzhrRhHI9zKfjN872ae11+XxxBNxki1ElyJsf3BevyOBdOTFNxxS363QkNd/vpvy4NvNUs1OpK8DvQeMiVwEtO8/HAwIm2nwoQnxz0E3q+QPoaUTGSDd7BN9thcQWqlBd1D6lTayxEUnWl33CQOWEqRTocDEicRTnxYYEwujQCeNI8NVyTgieqInU4N2L/J58a02Wz8RQi6AJXBFQ6f1btOEF/VJS5xkGYxJDnigIiZctgWc5R/uQ+g2s9733TZBWZBG5jaZK8dp6ZIH1hX31+DnMRzJnO0xqnFq1JGcThh3FXCYiazMyDvVG4xlJVCLM9Jg61r4bStfBEfdQofNXQXURMWrAWgVRjgBpvKKSIsaJzo/m/mwupcs6A5ROCTsUktizLhzKbWqTUCOhya+jnqDYc966T4LKBkbRgz2G2viJ4xn0ApRwTxKB8eYeMeTPYlpmHdYAOGVqe3dAPJ9kXect7UPNO49edXXDW8c59l+VwSAGXSRIPWC1vBp/hFyYfOI2oO1qF0XiloGQrv69txOEG2PmXtvgz8Wj4UVm6zpeKhwcw/kdmqNBV6EAd4wu7ri2GlggsPU3vp85an6T0UVHXL/OxtJiLQWwrTpGOjaEAo7uCVA6F4KL8kKpsAIC/EPq3CBO2XJkylhWGGK+vbLH1QSzROeOoJQN/RmOUXveFYAkQxysQJi36XfXtBEcI0swK/nJPGsjje8+b8vZpoBlN98dW8t0Ns5PRfjyRuhRbCHYvN9Vvg6/5yuRQFHQPY0GArydv24Du0b4F4jYEfq1U/U0SqxKU2uOBEONQjr873NJVAjWVmM/TChAhjIgGPuIf1anSvWe/+3rCjs9E+YgrTU6fW9XKVinf/wF229mjENAXVsUPeekDSua6JWR3GoZ4n6L08jD57Z1GJDYvZpQC6OmiFbkwl0jZ1LVjqHPMMDtKd+gzj2TOLDHjEewcQLtTUws+fE0Z0A1j2oJOWR7ffPuRW86eGL7eT5croRguM1miNpTx3b7XjIY05QBx+cZfEW3dwauyynARfon3eYMJ1ywVqc+NeZ0uqVxtRhlXc+RD7Qt0rIu2irReEDQaz6Ruvi5GSWsNZSiAsJgNSMoBc6vIcU3vu0nUVZRIxQTZ2E6URcuRuWHR7xxtTZGl0FW7qPWYddIon/o93Y1kOj1tqKyGP3s1OghTd9vzmGKrbovd810tZXWyLrz4s1G3xf/GU9K7mYwUoXKtAOkbj26gosy2d7zXTU7ucfwn1XhZBThySCG6CjiRoCU7dPOBNwN3hcOcpagEr7UrxQQbiFwrVLSa5uy5t823DFb9iMAGkJ2H/IJZ05LeVDBC8cvgklwS7BEkMrU1nIcH0qUOhDN+PiCz74ePlbsdDCXpJ2XcfTk24dkzl05ZzDA==","layer_level":3},{"id":"8f172067-7581-44fa-b206-fd5819df8d83","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Fork Resolution and Consensus","description":"fork-resolution","prompt":"Develop detailed content for the Fork Resolution and Consensus system that maintains blockchain integrity and handles network partitions. Document the fork_database.hpp implementation including fork chain management, branch selection algorithms, and irreversible block determination. Explain the fork traversal mechanisms, common ancestor detection, and chain reorganization processes. Detail the block ID tracking, fork chain construction, and conflict resolution strategies. Cover the witness scheduling integration and how fork resolution affects block production. Document the API methods for fork detection, chain validation, and state recovery. Include examples of fork scenarios, resolution processes, and consensus mechanisms. Explain the relationship with the blockchain log and how forks are persisted and recovered. Address performance considerations for large fork chains and optimization strategies.","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","order":2,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/fork_database.cpp,libraries/chain/hardfork.d/12.hf,libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-04-21T15:32:34+04:00","raw_data":"WikiEncrypted:LF5XH+WZjZXH77Oahqhu33D8kMc2V5EyZ5sCQJaB6AbkaftNweUtSuIUOV/O1ju0L84BXRl/rB6mkbN9lJNCBp8gKu1Js50cynDLXNwHl9v3CFjgeOELp0KEyNk7HrPoblpscxDGsnAxbjU6uksUs7PZyWJCAzr8jneUzUPrG6E7HCVuh5sWAwE285YtEcSXwBJAvdW996g3nJvnkJ/9OU37HNMopNQxA/EE4NsxPzCxS2Le0wp/zVtXA2Tv/h+CoXom8jR5is1HxswvqLMWlRL1ydiDaEMn4ZDiHPqSR9m0S1oRiui56e1aOuuBYInexLa7a1n+Kw+ysf3Y5ww2Cp49DyD/E08WH4E4opB81FKYbtoze1Mw/b7kqdxHUpJQ3nZajLOOfm/oU1KynvIs6V443J3na4/h4Q6cpBDkUF0etRaXgWHx70Ht/Ks1t5pmNe7fFgA9e4rGyLMoRV38CorEAqbRfnJWdqcqsA7OUMTv0sFGntYOZaN/OItauKvfdOOp+KPLVPja65BWdew5ejCI6/mq/cSr90S1XcvfEUh2v4Zyx5w0d7mSFK4GCcI9QzKXQ1wyOYpeOJ5AoVWob+PafZDPtkmCEfBsfOvMRTzscilccfvGwBiSFWfIpPj49UYFdF+dMmp1yNqewLPdmAyXALBYYwUIsNckeaNEMtwtF6cH1fC8KsMpWwA0Wp392B+BGq7Lay6SQVSdt0eyWgBdxHck4diRxxr0Oc5fu9D5DDwjp/ZlStApcNe/SL7ssRUl+AU+KQTAUBKGSuLXmxuySdg/G6kd54QDbGLkFItNbV7LAckpyEV7TkAAm7lQYr2JDW7cVU1aJC2cRyfD72BVGlXA+00JttJaU4eREWRjWT2BNNoUm8dk3uNBmC4UxaDGv0Iuhuz3fU5plGJghKgPIFgsl8KLSqJ+TKBm1ZrVu4nYBIgK4Sg8ufhvHInXw7dP+yOfojGX0O0/QmQIgkGOBSd4l0mo9wd5j5I+ffHrL0pSSW3sUY78eVAfXwcLMXLXsggz6QPmk86kihvU8nvuORQd39gPujX+gdlyieq1v+UFvj+PNih21VeC3knG9d5b2hTHH7uynom7CjxgqWhguJhyjpxNSIM1qJq152kTvTFksfiULzVA34IMP4DtXX9rkPkW3vLp6IJUxdwhkgIOTO38ZJhOyQ9Lbk4szcxFquA5XOthJ94QFgp7LMF5QqgMwtafmX64U17fJ0kSdGIRckAx30tVbrOI9EYC/yZLIs50s4Bw+odBKe3iCMaZtgquCFxZqttABZl0+5r/LnAy8ICpymy4JQ2b2lAZEDNqVtAvrtIHYkXalyiWR4CXZGju8NmDytFK5ufxGLdgrHYjNQ5T2yxPanMV86bhcnLrF0XJNvjAreSSLH8YOq/mgcq9f4vBf3gkIAf1hVYiub/2abkFCEi0/nVl06Hx+jTKWDmT1L8/ov0OULvi/v2K2l+XK+GxzvCZ0xrM/lCOoCgR8keZ+QiRdTSeANDObY7vf6p8qVmTmXnTaJRAy/1s8mlolKOadKO/Y0Szp5vGnHp1Hzts7VRfIYMDxOnJ8E+I8gURt1B+npguJyhh0owcNMI5xEwGusv7Ilo0vH0rdNHNzPAWIcL23/iIN1a5SzVeC22xRfkQ0hOXY8oNJyJMrcl4X+sxlBMR9smyHc/qUoobf0BYhuWp1SA1yLU0hICoeTqy2037fpkkRzpC5upHLJe62zpUtWojzlBzhrnN0kT2TZkoLGlQAI+n1WYEoXkVyLyetdnIz8UDGtykmPbJq2Skba0vyVjQNNl1TTwK4+6oTOMiOjdPe4FUdZsXI/WSmIeIf1/kLCQhJzeVSOqW7KdQNpuy2pIpkQ4sIc+UqEitPPkvsWrcnQWdakNtVd0=","layer_level":3},{"id":"9a2b1ed3-9679-4f74-9819-f04abf116d7c","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Message Handling and Protocol","description":"message-handling","prompt":"Develop detailed content for Message Handling and Protocol that defines network communication standards and message processing. Document the core_messages.hpp implementation covering standard network message types including block_message, trx_message, and item_id structures. Explain message serialization, deserialization, and protocol compliance validation. Cover message routing, delivery guarantees, and message ordering mechanisms. Detail the message.hpp structure for generic message handling, payload encoding, and protocol versioning. Document message propagation tracking, duplicate detection, and message validation workflows. Include examples of message creation, transmission, and processing patterns. Address message compression, fragmentation handling, and protocol upgrade mechanisms. Provide guidance on implementing custom message types, message validation rules, and protocol extension points.","parent_id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","order":2,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/core_messages.hpp,libraries/network/core_messages.cpp,libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-03-03T08:20:04+04:00","raw_data":"WikiEncrypted:IaaHBhg4aKVK2Z27STIpf61hPTwuvjJw00wghNRz0dqXZFnsx3+KXuJLymQNNBhm+4HmlhfiPgft+nBCx8lK4ljvr9u1N7eyZnhnwrufcfJWtCJmJAYdT6I/MbNWHUQIKT842G2JFoDfikSnGXpefzkqbmJ9h4HkLavoFO8GveAAfrmDKT8BrkB45sEUfJuABljdMo1Z4Po59a0a4om8B5rJ8OUxvmIemXI2d5efoKGKw5+cKGNGgMwYtApsVIFedpjM4uFtQnlachraAR2ooVuqRRO80ib4jrTSv6yeZ7H51ge5rgRDeYcFxsrJCoVdwdGWygXe8okjzamm+iH8qIoCmIeWbmGhMXfFlxEK/xb+wwY52MBM4YD0HCpQKrh+FO+ELHik/d6lsYRY9gPA/rOwZAD/lHaoyAvRfwGwxZBnI9v1hKYnBr3jkgYNLd2b4C+SN6V0q1D/J5y5JrGIEDD0UDlw9LcEozUbvr8SxlE/c3ssjyO70AP9AkWHy0n/edPKa7I1P8a5PI/LkoGgkbZsgmU2eWdzzRHPD+SAnRdp/wbF747R4uXmCN4zeoRvcIx7OcXyzlai1574JHXrHUXVa2PHa0w8B8126wMxdEQWP7//PnhsaFyMCTJtgGzzl4Z9itYmtAjL63fZhJ4/ulTh6nSVcAaG5zFsedHUkFowgbseLtQe/VZ/cnva8HtoTWZN1mFJ+RqQ9jfwt6LYrzEd2q3MirnV2jaYHYkcstr51bztnhXvUgkhWL+e3AELp6mphweylQexxr7cElbJkAXJKfxSoGgi6yrwn8HZrCLHucOZYM2oPk5hxPtgYidAWjD39B7q9sD5fd5HTpIbtXghy+Y0n03NfM1FVHHCxxjzfqjT2zJHMmFpwEg7TMxgVKXNzsaoXhfOVluWDB6boDg9qics2SnUgCnPjCrCaUfOL/+/3CYa+UyWEEKgG7CyS5/Y82EKHbZzSus9o4j4gANndEAiosEL3j2nl89R6zEhtRLCWEcaj2rvM5aHgTjhKovqUJXkKsmixnyt5qMgzbo5nsmiBjpOUlvVKwEBSXsLxENv+jTt+kgzsIbzy1Jp5xtzSiQhvHOoLZ30UfUSrf3lMZ6XwJ/uVJbfRPnkQxayMicktwKeQtCn4FChxyYZEp76MNcO23bGr0HXdcFwVB+V+6sOw35crzsrOX0G3Y5zxdwwg9AKekR1gVUEilUZk9axa+YC+9LJy7dzNX1rkOd7bVXWcUs1ZrGXwQEKkB1BPYhOsWZG44+DyxwIxnRp+jOUXNaPqE5EejlZDlomg7S1cOn4gOqSktzaWJjoGTILesnSEh2cL6x8Wy3fBDjYFWKF3L+PuCNh+pD4ChQBrf7ypQp+hBk8SvwZS7dp1cjzmzJZxVoJMDfb/TM4Earm3H0uHtPgyNB9Vtphl05jPHAf0f8vYuQ+s7cTaTyab/jpEqRdDzl6/cALbcywQ1V2aRNc0kPxcV2Zaopfp2UHzxC77e6+R15VG0KlBuF3PObzKl8w+w5wkN8x/18+NiQGljAIYuoslW70VeMMwUwo4fuB0U7f0r1Q9yeYVdIdFTT9y2SoL7yQgFs0wpWrAT5vjflJ7nPeIj9yMdKSOh6orsFq+PRqcVGaZPd+qVoghULPAqhBhvKqEe+2fuMItfkb1t/1K1HkFcu0s9KC8xYkZFFbClqzym72hHLhRXCU+9mTwqhkMHujFNlXu11k6j8K1Ep2jNU5J2M9v5RO91IEa0hRaKxJLDF8/SuYNgZoWdOIjPZxsoZyg1dmtaVoVp53","layer_level":3},{"id":"33a7db07-2dc5-4def-a181-8ece479e6ceb","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Dependency Management","description":"dependency-management","prompt":"Create detailed dependency management documentation for VIZ CPP Node CMake configuration. Document Boost library configuration including required components (thread, date_time, system, filesystem, program_options, signals, serialization, chrono, unit_test_framework, context, locale, coroutine), static vs dynamic linking options, and version requirements (1.57+). Explain third-party dependency integration through subdirectories (appbase, chainbase, fc), OpenSSL configuration, and optional dependencies like MongoDB. Detail dependency resolution strategies, version compatibility matrices, and troubleshooting missing or incompatible dependencies. Include guidance for customizing dependency locations, handling corporate firewalls, and managing dependency updates across different platforms.","parent_id":"9cba4008-bdf5-47d9-9b5b-25e71815c8c6","order":2,"progress_status":"completed","dependent_files":"CMakeLists.txt,plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_types.hpp,plugins/witness_api/include/graphene/plugins/witness_api/plugin.hpp,thirdparty/CMakeLists.txt","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-04-19T22:00:10+04:00","raw_data":"WikiEncrypted:Plae3AeD8kzvx5cS0SI01VxUgqb4buHXTzzTWj4gTygU7IDKBYr41L3/hTrS44leIMVa8ywMUh248ZyPirs+eIVofLm7+N0WlOX6fg0khoNhXtfGI1JGQ9weIgIVyjznsmVNtjh2fiQQu82cjIL5lPsNVUenQmG4sEvbSS9dpwJ3rEyNbj0zNlca/sosLrYifdoLBf6wi9rVRkw0R2HPbVqv1K62V8d2h1xVxhoD+mzciX08y+Y626vWX3TQ55XUKWPPezNHVOIkuhKKK/FvzNNEOWkkvBod7s12N1y5zsBJ7OnVtQ+te+Oraj1mZvD3yQNlf7OoLG+dWkEdXHOvf5CZFFffTB/IVrar9FXThN/I7Fc5spsivRhxmS2EtHqcjzaJttxdCdRQQ/BCFLgiPZjRjOfDJSF+XwX5s/wgAZIzXU8Fs+Q5CU2VClMl0ZBUMCFhbGkGobGoibrJW0gv+xCNWo9dvQy90S9DVkg2JHDWq6NQLU9/Ck03b6pCkb4oUVBlX+E2FjRHbbZRNMSRaaKp/+A0F3LfmijkIZtUidn2Ud5ssgcgnZ0xWqxULF0L7nK0uOpChFpQE37ofSZGu0ZYcgLBqoAqGM3z7FWLOT9QNFB2J2ghVFeM8ctDl15x5agpJ6c/n20KeYIQQ3YbyR1w7lEJ2DmAIJ115iDZOxh6T+la0Dxl1e6Z6gGg4R0x1BnYlD1RaeyHxnbcJpmmd25fYpjV0bwt8FMkic75TZmS6y1j4LbrrxRqsSAoq4YRuvS6ry5PgQBOPti5pLq1FtNs7nMTUGfERuRBF77QhfGS4zi95OM0MqSDSW1NNeL7hTmzhlbVNJzyRvgd/6gkuSoyWoccHQGp8IpMeJglYMcUS/1agV1WnMfkJO0IgyiMq03NBKaIDDyvY75Al1xdsUXFFSwS5PytKsQEt1WFbqNBe1dxZTAtRspq5I8JD5AAdK7DQWcjEZdeYgr305oWce1+VxuCkOHk7GIs2j/mFf2bY7c8pzqUhVQNYXfZFHuKet+VgRnEPP/FGnsPmbto4yg4y8H7RWaOD8tyi+e93Di9ifGP6c9XBzLRXZNceCcgqhEQP39gDKqBNFgCfEwmTexbqkDzoAB+uSkFe1g4ABb7klM7h/um1faCYTTD05mQgAcjQlUGu6Kig0OuvO20D/u2w+DkhZticFB7WdkEAMnzEA0J34GWtQjN08T/5j3K1NnlDCxAZQ7sS5MADnsU5FA5/ccz5ZPmHPTsUPPNcH+YLNVERxwyESTIBAfTgEhI0GVthOsevmZIAgvtZGLeT/vIFMhv5bywfq6/Ecu4Ns/AHG+gT0UXUg8r4Nqg8wgE94TVKAkBcthaCrkMgzh+dpgtkgf8dvur67TXqpUHdhuStZpvRlPhfA22RJm9XYNB7NZ+OLWCVxzmEwyncrvdieFuAP5kZs0IY6Fa7kvZ8E6kLTRwHvZU7BuMutV/73vTY4TiA15o0Z09KIRrbYRie/XkiK7Mo4Pe/2qhFQ/hqUvC0GpmyT3uQpk87+6XQO6TUzYuZvzO7fx8glSmEmJOBlIakoCXqY+heH5XcP4uAK0CrcjKNQt3n3/l3JDhZLXGtR4FSzfj7SswLAg5iSUJBG6KST3hab6DYHGqSrrJOHF7p6JnrWx6i2y6epIIluQQltuf6CtUp6ppPR+vZF+V2tnYisy6JXWohcO3wFw1jHbDq5UrBHWcXrEQaJCOA/OV","layer_level":3},{"id":"8fef3afb-835c-46af-aff9-07f9f40c0eec","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Low-Memory Dockerfile","description":"low-memory-dockerfile","prompt":"Create detailed documentation for the low-memory Dockerfile optimized for resource-constrained environments. Explain the LOW_MEMORY_NODE build option impact on memory usage, reduced functionality, and performance trade-offs. Document the minimal dependency requirements, optimized build process, and reduced feature set compared to production builds. Cover use cases for low-memory deployments including lightweight nodes, development environments, and edge computing scenarios. Include practical examples of building low-memory containers, resource monitoring, and performance optimization techniques. Address limitations of low-memory mode, supported operations, and migration paths to full-featured builds when resources allow.","parent_id":"7108377f-502b-47c6-be02-3765463aed1a","order":2,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-lowmem","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:20:43+04:00","raw_data":"WikiEncrypted:fKjMku8Fpv/b9ZP4Ul2Tm7Zca1h5FLirNykTI/AA7d47CnKOVNgTfrsa18b5sEdeunts328aDl/rj1iuGdoZlRmNliSHTyno4JbtoRql9rKHpIYLsGWMX9G2LUkeMbg5FlADbz3moUepTMX3AczHxUqbYB4AFqFyRp9NfIt2CAJxj+V+xIYQZNJxkd++ojQvXSYZIG5JstNLMOPkzDOBBMSmIkHlovPB1lMrLLJwFhzUpC1xCa+ND63Q5gMlN0G3yfjAIqOGUgrdT+ScVEXVikgbsMs2FR+Yf21LW0JY5SWTiW9asZnrbARtm1I0PBi1SwOnynvG4O70EZX9LRN9utgNzEKbQ/qb7A8SfVmVJ/5d2HzbGUMSHrkrOIOfbq7x+m5zQ+xeVa3ivGOz0zfrx0YS8ylBBcoxuQpJaKppYNws9zDTzNPyPKF6F8R0f1xEekSn/JYo8L8cTTlwORrSEVBL7LFIRgEWWaDNsVi/1O8gCAip4DBDZBQ2LPfC6P1QsUKasNlSO1mVC86ULrnACvyOlzdu4LgiRoNEiae/X7YYeJ27qk6miFPwfkqI74vrZqcB1SJtN1oM7wrhwKFiRe9nBzycLbwqgkO0CcPCTjuD4ODtK8fSqy3BoOB3//ZSvhyZGyn0R8gSDuAPdm+kh0/VZkaih+mXej8gh4sIMDIrJ2wnLHPiSUo0fHeGe7xvqvxBGfsukAs4x/6YobQGQrAcK8lvIiqbuv/zcWei0mxwkL+vtvgCGdgWdZNzVGlKpi+l0uM4+PmlnnUtI6E2ft7hMLxSRFFE0JCZJZibOiVittplbnVeb/JCKsBfBqhKT5ffxVvmAWmmz4FggTt3s6WiYfzMLbT5gs0JbLKyZw2fyzMJinM86Lsg4JoVDV2tEjnC5K+hG0CYL+/Hmdc06IdnAhagszBwJdg6UcIJmPbvVOGO5/yXMYF/PHJb4YEX0bYPFjmlxEiX2VH9mauNLPpt1jyCPGWgnZhyUwTWiQRTInuPux3MmvCBFIdhvbSqewELe+RCUR4kKk9YJS5GXYeZdik3EX7M9JK4p5q0/MxMgt4QtVQ/rYH/5oOzinNpJ6a6qM5G1yQe+AJJiNnMmCPHHNOzcC312TKra6dD7p85Thyog4vHQujObntWLiTnTOyNOJ4xY0pNqOZCXC/Q5ZorjBo1XHSB1Lp0wSdJAtzg644h4eKUjh85lW+FjpNYTVSH3dYhbW8ZQbhBhB1LSTXLsLYMDwhUlV29PLoAS5L+j2tTI5azUAjxI33HBbuYkzHJcOVoz9ZwiNPX/8aOHvoacoHQ3sNu0ZTYwXCfQcn/qQWFY79o04+IJ6ojQPjfOL9PxdOR+3+FXk7ksofNnnVe5/+jF7ZkrgbI13Bg2V2aDwse9dsZ8pT2WIlIDimfa+o8woVUK9ZsEODSEH7BfQ==","layer_level":3},{"id":"e8c2ec9c-8772-48dc-adb5-7fa5a8b796cb","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Plugin Development Tools","description":"plugin-development-tools","prompt":"Create comprehensive documentation for the VIZ CPP Node plugin development tool (newplugin.py). Document the template system for generating custom plugin boilerplate code, including directory structure generation, header file creation, and implementation skeleton templates. Explain the plugin naming conventions, file organization patterns, and integration requirements. Include step-by-step examples of creating new plugins using the template system, modifying generated code, and integrating plugins into the main application. Cover command-line options, customization parameters, and best practices for plugin development. Address common plugin development pitfalls, testing strategies, and deployment considerations.","parent_id":"71349e72-2b07-471a-b7f2-b7299a4cb550","order":2,"progress_status":"completed","dependent_files":"programs/build_helpers/newplugin.py","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:21:29+04:00","raw_data":"WikiEncrypted:ukPV2tcWPRGn89Upsee0BNh0I4BWUQUUZnzOP1DB+1vlRoA2DnNNT/bHeFbdtIQSXyk7bUmdFD+AFhUw6F/GhxiiRn+hzkKtze7IIl7cKG/KiTWWAdasY0S/sUREmQTHx6fByz16NvdAO9bhp/o5Zn/mUi/wb3p4250DKByWWZfNOfNXVv2JlV04ypM3wlrlGWlbJ7X8Fy6U0pHiMDV7TSm1MqZ7jRntlHQPGcOntBT/sCsvcMG+2Tz+AhYuUPl5S8hp4VL5aF0Bldz2wMa/U1pJc7TfQFlMxB86sCIBeKzByisy5hcvzrvj4EnFi6GPdH6XeSu/FRtSiNKuU/+BLK4e+xVb299e30vgCpN+yGzMnQSwF6Hl+jcihMZsXvgHDNEI/RrCXZvssPbZrT7sDQLng4yvFg/DbS5ctr/s3st4H4yLiUYjxEqDeeDZJmUsl/gOzg5Npf6VYtyLMLyH9njN3FYygMBEItIWHS/ZMH1W3KPMaE+jELwWFWfW6x3luX1FV+5NfTiGDUZFr5zbOv1nTesTTLLSp0JnpHFC0GvbajAQrZqALmujKNhlB5TCYT05Flf0GcmXhPEou3sfRmVyejF6URcCf/d5kBLMvqRSdfpnl/N03KHaPxYZINuPHBIAvP6NhDUCR/fUp24M1VUaRdEYxuTA0xVGT4B/mJFB1GcM4+9oL3v5BAIoblxDFG0ot39YIWDKAEZJP+FvRnZW7pXYJeHiWSk0qtIKgtaISPvLuJjnsI/dT0oSS3xkL0kd2kYI0vsYF4O+AsB9t2ee1KQCgIm5wS/fpF5ZD6AzqEaVt4Bz7TefBcReXAJpcG3vuPU+gLWvuzjT41eG5LOaY9P3Xn7wAvALCYsFE0vfSh8VR6967R/tPj5malqd3ZlHC0dxWpbxK5zylOGQO4uxR11qWEo2wh0pDE9wImO0X1phGa0q8u9QH0mjXEQ/tKnVJMfCy44Ur4SoVgKhfwCVtzuOaQWJzffT2DQN0zbuTBYBWTCrq9HAR6vNZmH2Z3sEpQgc/+ZJvLWTGHYGzSkGBjeIvPAFT7j3+lGMmHjVnT2E1QbymYUm4bNV6N4jm82YWThsJ9rkZtizBTQnTkbtEeW/TDXtJESiADfebLTnRZTZl7I7WM5mLPsPhlwYWa5D4Ll1vbKBq3TOCFjt7mBHIGiV3sS8VL+r86dHiM5y9zVYhoVkQ6dZnGqT8NcjOrRqF4ysAeIFLlMfihEvI3KCXAR61jbN/0bv2w9K/DcKSf6l2e7fFEfrdNx9kXLwfiDmsII0LnZpIxwKudn1vbk74LhTEW8Cuq4YGMH2AKTpMPt3FKdP/7CGNTpSK6QxHL6TtvmZv+gP7Z3wdC5jd0QjQlu4NnBFMWzpn/9HWmVn0GOavzxl77UxMoNg+Zc3VHivV1ARsjNAEidCVxhg4Mnb7xQ2/trOZlh0kCHFa/M=","layer_level":3},{"id":"74975776-340c-4463-92f2-6e949c1301d0","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"NTP Synchronization System","description":"ntp-synchronization-system","parent_id":"15c5d415-13ad-48f9-8ae8-8f00c771019c","order":2,"progress_status":"completed","dependent_files":"libraries/time/time.cpp,libraries/time/include/graphene/time/time.hpp,plugins/witness/witness.cpp","gmt_create":"2026-04-21T15:57:29+04:00","gmt_modified":"2026-04-21T16:27:59+04:00","raw_data":"WikiEncrypted:kk2p6A+hTfq/j31wt7MAgu7PjcLqcqeJIlT11ZAX6rG6RFTstxzezqPewwuq7KJcZnmxN+1kb78oCoyll71+CuHlqFqb2IInJOarRp3GUu1hTuhP5Ph9c12xZHHA3N9Y6gkfFTURztr6jAT6LxmiaTH7GJAiS5z7eF8RNHQWKef/m7HHGsZr01TaIMaqh33KDw6kzrqzxNeZDzLMbyh/x9737bQIhT5RB3tSN8g6hBmfRWfk8EkMtWVf4AcsDkhJOGA2ZXZbKc+Ey4I2k6wZGpgW1sM4jfqwCC5VX8Nk9VocnoDSGLfxgLh/xYV2SF27P7AOCsOaBBGjXqSvStzw1Q==","layer_level":1},{"id":"15c5d415-13ad-48f9-8ae8-8f00c771019c","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Core Libraries","description":"core-libraries","prompt":"Create comprehensive documentation for the VIZ CPP Node core libraries section. Explain the purpose and relationships between the four main library categories: chain library for blockchain state management and validation, protocol library for transaction and operation definitions, network library for peer-to-peer communication, and wallet library for transaction signing and key management. Document how these libraries interact to form the foundation of the blockchain node. Include both conceptual overviews for beginners understanding blockchain architecture and technical implementation details for experienced developers working with the codebase. Use terminology consistent with the VIZ codebase. Provide practical examples demonstrating how different library components work together in typical blockchain operations like transaction processing and block validation. Document public interfaces, key classes, and their responsibilities within the overall system architecture.","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/network/node.cpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/chain/include/graphene/chain/db_with.hpp,libraries/wallet/include/graphene/wallet/wallet.hpp,libraries/wallet/wallet.cpp,libraries/chain/,libraries/protocol/,libraries/network/,libraries/wallet/,libraries/api/","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-04-19T22:31:11+04:00","raw_data":"WikiEncrypted:OwfuchP/A55BRKOnq/sTqUUdhlQOKRVU+yBCaLhxPeKCzLxiQ5Sm5i6/NamrTB1GPtQ/42VsCJitqOb6j9+rRLbOn1+SqitbER3Tvci5cvFV/b+fzhya8ziqkwiuFYENR+wRGihTXbi72VgF75nhexj96mW47VL18GZs4M9hdzdYmcNkEtrmD8n8N1ndgIQu7/ingT9KzT6sHx6WBFXApoa4vgzjeNtwNYRCK8tScDECuTZFoKabVwAaWSEJnxWfMl0JZQ5YO0hM3UnskArlEs2TqJEZKoIHbVKCED/yuXL0rDJlExNNV/oWu4cI1l4fWr9Pji0x1C3YgIJ8AZTSgveRYwACHcSBzl2fvknv6/PDGrZjXckNBaSIOn3EUrLP7X0iD212KBlqTkGrsje/RAmDcQK1V1RI7aHdNwBnf3rqk3sD/NFo0AdpX2iukWsQcvesEFIHlGC/dut1pc28aPYmI59c4yDtPRD+EK+i+VLRYGwCIBS1MzQtcDLBk4YMQieqT91R3SgroO+ggTmo+4GWPfwoaDGywFO3IS2MbhJIk4c0YuNJr1HbQDzCE4tyBk0OB9Wcv+QBL/ZOzbnvqmjBJSJ99hnQqq8GZz3Swt8zKlLGWvsXhDR0velmhZymMEtR+TD2bMBRILHtTkNJwLLs6DpqPkQGAKHIyaIGd9F9Nuwx2fAu0JfzE5kwaTN0ku1Wny5AQSQMxGi2VBHBxhpwj8CPufwO/v0HcPk4sSRKGEGvyUsAAt3EvWdfE1WX6yIOue3OMMmYXyuoHkJWq0p2XCrni/ebLyy1Rp6LN+3YZ+QoGcvrLTPAAgvqz2IigdnCFoTFpcmdBp4mhk1Ebd/LeZG+suATuOLm/16O/NG+Qcr6Q7gSRpAuEiysNSXdOACX4eYp86egU0WkO4YFMO35HksekpEsemfJ+Zq9zgwI6pqfljOll+CEDs2bSW3FxPE4+yezuR46xuCq5gYVlLFcRfF7aMzCsSgWGaDSQTsqJX1dCtyDx73H3LtdxWn9EuUhVqA3E8kpXhZhrA8HsWFlzEpx8RwQSwFeM8Ry0Fq7beNrV+eVTElC6usy7S6t4Kj4yv4GllIf/DKTmIcQpzZeOhBEYfL7xpWOI4QXwsEnb2vls+wvMBN6sKmP/LKoY73vciHiHl62xkH581tuizSf7GI2gylGWUiVT5Vtgr2/0FbsppD8w9v20z9DKbBXHC463HLRIXjQeL1B7kK/anBbEWQ0FAdCT2nxohIj3/iGxJyHf0qqqvVNEG/qOY4Qk/k0YEbbDyb+a1HnMJ+f2uLJRO8RjGSPGqWkemK62SKZEpjY6XSd6HiU2rQpWMvaN6gevwlRIO/6kk1rDLNJvjqtPYIxaM/K+/RiIio13wjxbj+JHf20zlYLrWBBRcoab6+M86BZCZfqjEwBoxL6cl2bdDIvwh7ChADaHD+AZXLp39jJbu2R6UtFeFezMSoqKjJSrj3qRKwipluxJWEd4jb8q7Wiux8dhqOEA2cNcQ6pUZhxh2+AR0U4PnyOkSIhxnbh+uGslRGmU2PwivIp0gpYGFO0L63MYbYDXt2OXLMP7vZXAahEJjjW+25AiOJwJ94l1ZkT9I17qjw7WU1ZPD7kSbH+/wONgTv7lZsC9d4PBUkVg9HMzJXR2PDM3f69CYWE0my3V9h5ZwWbptD+i/N+G8KprC2eVALORM2wHoEmimq/ol9qgDlDyutlG0pi0x1iVwBGey1tWCAugnqzIqXdVWwAQVKPr+QLrSUiRzLsHJV8sVJA/yCKpFSwOdXNM7hq44boELFpjx/7tNlTtG87AR7+po8/u3/DjJQlzBkmbfSv1kZGuqYOwgubO1FtGNB4CAyngNeoB5nCQddvKrUKiPA+2pFjRltmwdmH8H8YWi9T/lXqmX1u7pE9PeZv1gRNHfsYNbxK+d76qnVDbmBbuOnc8tv291PF9zyl1TH5HWRoGBd7degtLlC+Gs0avEo7g791GJNKRbuwYne/aZ+BUCBKsZoQAGOPJbQ8hc2sYPHHlXyxxtQ7UNp8b55pmzlAaCwEQAvegUBTXhSbOx1AeOVpdvUed2LOEaI28CsWDDLyfo7dh0PA2VVdlZ5C3VowwKco3FGI5aWnJvzs9bh9FMERAWUJ504u01rBF2kG7jPpWMPQPnSBfSDqUWqYml8mmgzhEFd+KTXK81o97Jcc3Rq28ocyJyXRbuVOYG02GXkkSlrSYPowYu9DI/qImrZx8+ZSNfK69sBQvc6QCN2miyUtz98/NKXDAg21MKDyksptqSylFPIh/+y4+eS06b2cfOmo99s5F+yg7qE8RTOy5ldNI3/3/N8XhM9qV0it95aViB8D4M0bRLgn8UF2vIbBO0abN9W2ExZLniofhIQn31Wl06nZOGDe6L+hVTP26gHX4AWnwHy4HZ9/nFagEMYXct0z5Di+wKG8NbEN0Imiix9EYWZVnJiAXYlZbox1MsP+SCCNT6JutEoM8/mQXW0AfIqWIoN/z/zIHSmQKbFm0gkRliRzqhC0TR1HP9PKAD/UPdxTm3hFS51koG5uB3SkJhvHob3hLJhJBwhgalokCEB61wKqOuYYbZMugsOaw6icItng694wJH33ttuKu7IFZFi2xdLZSvym8xTQSW+OKKbFunfmFxoF5xpy0Iwr2xUHWAZVdNNvV2+J1g8r6vDH9IYlCJqxIW7zGu+f87YldXaG0a4xjbmdhCr+QYCHHE1rnV215pjNgYfxO9wCLSZ/UTg0+MwtY2eYOJ8ppdO7zV3EV/qa7msZILZKAhF7x7fYoyYrueHMtR1xj44ahyc5ZZkdRs0N0X/jr8evEL9lgrNjUJG8NmpTadCTsibhPTQM26umBwpwUlsVKPa4VeMk9Sq5+Jb1cPAAKxJssPvrDNLI/4po7dj64TRVn81v2KumtxWrr8KH8zK7rfPFwvtVVQu+BjM5Ql3bmN7JIA=="},{"id":"971f0bb4-1d2d-4258-92c8-080f826ba913","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Data Flow and Processing","description":"data-flow","prompt":"Create detailed documentation for data flow and processing patterns throughout the VIZ node. Explain the complete data flow from incoming JSON-RPC requests through plugin validation, operation processing, state application, and response generation. Document the transaction processing pipeline including validation, authority checking, state application, and fork resolution. Include block processing flow showing how blocks are validated, processed, and integrated into the blockchain. Explain the observer pattern implementation for event-driven architecture and how signals/slots enable decoupled communication between components. Document the data persistence mechanisms, including how state changes are applied to the database and how fork resolution works. Address performance considerations, caching strategies, and optimization techniques used throughout the data processing pipeline.","parent_id":"61cc85da-b705-41e4-9860-17177048c2ee","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/protocol/transaction.cpp,plugins/database_api/api.cpp,libraries/network/node.cpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:48:50+04:00","raw_data":"WikiEncrypted:PGdHQOrMWxh6s6galmzx60G4c66k6IPhWJyX8d8v0xn2Sl7SJvUGzCeuElhJ4SjnW1f5q1x3OM20oMAyLozbgKnw1geq3fLXvsMfIZaJytjp20ZVI2wKYo7M9ca6xvMqmvLCoFjV2Z0kELRuZLvDkmrlYmvgiiF44ET+JaQD3Tg6UnMB2AfY+GkjGaMezQa+OwIe8+/2009s6DSnQ122sSDAASlZ4rQAQgkeL7LK6gVM4lYmwTx7H0FRKgvN56jg92nJt8Q9ssKuyC3PnuMRtdmLRDD9GHl1UjneLNj58vnJAWszzHCQBtNk3VjHNP0deezRuhtgxwC+tewqd/JQSDdmqyXoyJE348rcbGaYl3xaUS1p7UrDoI32vDeIvbkTHgU7k5h+7g9gk3haKfN9RTzmsbqoL4b717U38BLqEOT3exi9WZkIorQW0NF5G6m0x9Q0Tj3SFO79eAxNuomk15MhXHBdLOea8nqT47FcO/+tqaorLLAUsGEH+NKXmbsnYD8mN6BS9AiVn3+3XJh5WvCSNOMqv2BkONJycxEao4fPiJe3Skv/lMqF2C5EGRNx5VUDJCHu5QSu7iNcehn6sFKJz7hJ1MvCwwEmlcnZTHZdCnSBWIGwj45ejQABCG69LOiZAmidK5KSRBFFqPcIEBWLz8Gjz8nSvvj/YOWHvnBGrJhJx7RWwwBisYRsAy8Z5cW61f+KRnOeiEN/pAz0CVwH/qCZ82Xoa3zbJhxDnVobI/YZxB38kzyIhZzD5f3TmRsWdYpru9hzJFPh4gEZUpsJG6MybcNpBh1TM2pH6c74FIjPfAU7ZiWVr0OrgabTZ7XlHJ7+uB2xNr3k8VzkQVf/V1AHJd8L5ZyI0pt4Dp9E0Op0q76xdp5vQHjmpfTZlnsM9Rjo/49Hsvs8G6a3fnlXts9G3Z+xo853HjLZVtYt2WD+9vjO7shN4ANJp6vwD1LpJWWEZMsRZT78kU0yIH7hAENi2GDclKPltKOA6xqDqNuz9cCyWGu/8JeX+SH00trq7Usn6zm+KCEs27c/T/YH/t93FMy7TOSXt3czenAk2eo5Y0Dwkfg76ikGVoLpj3QrHxmeFx/MCun8RXKjooErmweSQ0xhlAfNLUGdhsWcjsQQoA/g6jyIIfyVzl2FxuT86yu0Lyx13sc7HSif55cl1n3VweLstcitlhCQxCXHY1XnzOEuvylz+3+gqE81pk+e/EtYVpCOAnImJV56kOfkVIPHWVXQT/GazHgAtiW8XjD6WTHkeY/+kVBRMra0MvIz57qKdAw+zFgMJ3LXK+SybRY5ANWjt5RA4Un4tPdsOSE8XBkhZz1UFPkW8dtXySJd9Byr1XKqgUI1u/e7477TafcC/BWJNjeUIcIs4Kcjn+tzA1/wqJ4ImMm97/9cgv4QoDcxTPvZMEWmAKgYbjCsq5JuTsGWZeUd4gLTRYNdZMfeywZ1gARhSkt/BswMFAZFgL7DVbDgy7m3lvEz9l/U2i5ea7PWJv/KkYnXxer6DthsXvkHn+CEoQ7h1S9z3RNXMYEE8kZ+GOhOJib9twOdHelHqFefxCAoJQz7dJL8o9cmHq0Fr2WSTuKvcAvfX8iUnrtB1ur55PFh1Ub21t5HcA+Ofm44YsMlcT+G2k6lZsQpZP0Shrhe2kxei7508e065lBusZAeDpXsqIBC1BdRcJ3quwypSsS4SJyHeLaz4PHY9ubLEL+opj3D8JWdurRx8fFnB2+u1EiFth365AXKQR4baz4MaYaGxaJ4bBc/KzURVnTSI1Ysbh5eQQKGjFu4a7r/0sEw0E8tlDp5iw==","layer_level":1},{"id":"fbae6ca8-dcad-40c1-9dd1-20534479e987","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Development Workflow","description":"development-workflow","prompt":"Create detailed development workflow documentation for VIZ CPP Node contributors. Document the complete development lifecycle including code style guidelines, commit conventions, and pull request processes. Explain the plugin development workflow with step-by-step instructions for creating new plugins using newplugin.py template. Cover the continuous integration pipeline including GitHub Actions workflows for Docker builds and PR validation. Document code review processes, testing requirements, and merge criteria. Include practical examples of common development tasks such as implementing new features, fixing bugs, and contributing to existing plugins. Address collaboration workflows, issue tracking, and community contribution guidelines. Explain the relationship between development workflow and project quality assurance processes.","parent_id":"3d7f67ff-d926-43f9-aa40-274a8bcc5a87","order":3,"progress_status":"completed","dependent_files":"documentation/git_guildelines.md,documentation/plugin.md,programs/util/newplugin.py,.github/workflows/","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-03-03T07:48:38+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"535a1c44-108e-4813-aca4-6a95a2ded914","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Network Configuration","description":"network-configuration","prompt":"Create detailed network configuration documentation for VIZ CPP Node peer-to-peer networking. Document peer connection settings, seed node configuration, and network discovery mechanisms. Explain listen address configuration, port settings, and firewall requirements for different deployment scenarios. Cover network security settings including TLS configuration, authentication requirements, and connection limits. Document network performance tuning parameters, bandwidth management, and connection quality metrics. Include practical examples of network setup for different environments including private networks, testnets, and public mainnet deployments. Address network troubleshooting including connection issues, latency problems, and peer discovery failures. Provide guidance on network monitoring, bandwidth optimization, and scaling considerations for high-traffic deployments.","parent_id":"52d3664a-1bc3-416d-af24-b6826b0eb20a","order":3,"progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_debug.ini,share/vizd/config/config_mongo.ini,share/vizd/config/config_stock_exchange.ini,share/vizd/config/config_testnet.ini,share/vizd/config/config_witness.ini,plugins/chain/plugin.cpp,plugins/snapshot/plugin.cpp,share/vizd/vizd.sh,share/vizd/seednodes,share/vizd/seednodes_empty,libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-04-23T12:16:49.7941472+04:00","raw_data":"WikiEncrypted:4+Fuk8VC5PKnWV6DzNqOvrllkIB0x/Y09KpysLC34yFhb7td6D07Ek5j0cWM9hZnO9alMCMAzlsb4dVhLkVNggd+xajkuZtBIv57trKyz2l+DK7BDepUU3rNXoKg+NgaH0CF8q1amMn4nxfRmeFmsDW/nVl0ffNbTHWeFwTR/H6Zavnh5MdS+zWoWJeUneBzhEXC+D8/IbC+Z3BadZyCu4kpCNjiQe04RqsGA07qF2hxxK0TBtBaatb89Q4F5z0x8u973YA5SRTFpmIH7emE/wmg8ZUng1wD6ZzmBZsrJiHF79ZXgmRc110CaWQMXQhhmNFanrkV2Np+Qu/oEqNM61qwQQnFI182QdoEbhw46Dy3ZHJyN/BLWaOcHHKUNBD+HFaN0lSiweaFuNzzP+drf8uHYEgrM9wGwLLyyqkp2PyzEfwrGcoiE+ecIsUPQ7uIm5K3SBBLrfq+AipkE0HYnUi3HbV3AYhU0KiZFRP3QGY4ta8ThepFNWaiU33Tmufoa9BerIiZOBJ9ylbsfHbCnH5u45uwGXqwAAjCD7ckfB1fJX1CYeYoNJBI6B3EcSHEhgGloOjEG66zvVi6RRoIwXKbxlTrLPzP46t2W0X+bkptabEbxh+lemk+sstOJ4MeRmHdmJCHaiT3hz8l2tmmVndVHG5PrdQ3mebu2JyoVR6HknXAUc2aGRNXOVT2AP4NRvfXwR+4AWfzU+bGctUOD9kWfksQNOMXUzTfaJjPpW2VQ3oRIsf+3jWekz4jp7dsC4xTQopE6iS+Ys6YktD9E2bXPHmOLkd8BluUAfLPpbkAgovfVycBhMN9qeFNmFmiIm5zwKU666d306lEdb7KBNSIa+jPfrpm9mGhEzHz1g6/+ZmauPqWzomeMrpRYD//AeuuzryF2sKflU57yI54Pf/6xBpsriuzOqpbzd85v9KZmebry8c6iFf5wAuHL/I4SNTeB7T6nDxdyeRNsd8B6AFEqkxGiCjLIb6+jhMBoplfjGhsb5objkEedq8s3fSL0Ck5OocE/2O4VlWdl44qRMGz7Q9wKbkW8/dLoqgIudvixtnxDyEeHCEUc0SsJDmbp481U8m7Xark7BIlbQ4OmyoDguRTZL2CXo1GLMF35YiyXf3WlH9ZF8BQXuzAGBJMwRpsbz0fFUd5iwYxQCfZiH3wxZVfCaFNo82RbBwr8ey8hjlNSzQQbIRF5qkZSTIRXEgXR3lZ84cYwivXEYrhSjPpaWs2b/QX2a1ywr8TdR337PbtyD/YOxPljo3CRrkZiFXEje5tGHWLwPzklghy8iUvroMLpDykggsbLa1x+Mo2le9SkrUYsdKR7nQi2sKqRLomdw37kYaEYi3GSr/dS5muQLX/wzq6ETRHQWlQsvDAXCmW7NmS3lDb/plqc+L8Ry7NGG92MLdsys92DBKvaYsu7yz494LrZ8zRYZ2EE5Da7Gj3oQX2PXihZZ48tuNgEhmsWImCt846W3OKfkzs8DF784cx8WYd9sbUiOSSRTxgdq1Njz8S/6w2NKMGopQZGoiQd+Zdf3dqZ7J0MWXtJvCKVCBfEE2mvx8rwDhIog/W1E04v1WGDS1pcL89tKn6ivqnSsZFmdeHtZxY1X4SfV+HGaS2ZzYuOAIt9FFC2ogcekNOIEuAAeX5Pqb1Wsir83YWFy09VsW0DXsee33shnKdErf+ydnn0IapwIt5+0fpaq/2lOO3vRVI3u2uMQvjhkEqJUeu4X9emqQSYX5CDaYa+TCmpoxQmeZRg/FeXT6m6GGchLslIUnqlmOCwG1sARNqQsWOg8mSbGdHNxpEdkGWXABj8FrsRXsIV+kISaJrRTjyHkjYaxL2QEH8byZZE5O4afAnlyPSHwVnJAEXe1Crbkim1gKNl81OLtxD4uzlBaX1uZvlT+NmBmnY6T4f1yUAg4P+wnGhF5X5GIo9QRsdAncKl2aJBS2xJ27pl0KimIR7srzZ270MUz3C5NdgjhDxYM8q44jFrfKWrm5RUoCr1svYDat5S9mq+5riP+8R+JG0PVuCfJWhSEezuQMXCV1pUN8s9YDc8gN0Z+wCWBmhL/uTfwcWAizLzsiPtXXy9cnbrsR/7AI9hgc9ualt7W0ZYA+QHAVK00IN3qZgMNcTxyTsX/IpG1ecQpvuJbL1fE3dk8nalp4uBXiuEfQ+citeXZXberg7FMYJRaSBrUevbqfbkVyI+B0yCTd9xNKhnlt7elAQZnpGdd0LAlHNPISf3VxQWpJWJ24v9qMhVB0fK+QxAGYZ7pA9jwn2PZDnpshXEIXq+HLPj7oE1kaQ6oaMCmxVpkFjRyNE2osDGw==","layer_level":1},{"id":"121a231f-fd81-4c10-8222-4f3f29aaebd0","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Monitoring and Maintenance","description":"monitoring-maintenance","prompt":"Create comprehensive monitoring and maintenance documentation for VIZ CPP Node operations. Document health check endpoints, performance metrics collection, and system monitoring integration with tools like Prometheus, Grafana, and ELK stack. Cover log management strategies, log rotation, centralized logging, and log analysis procedures. Explain database maintenance tasks including compaction, optimization, and backup verification procedures. Document performance monitoring including CPU, memory, disk I/O, and network utilization tracking. Include proactive maintenance procedures such as regular updates, security patches, and configuration audits. Address incident response procedures, troubleshooting methodologies, and escalation workflows. Document capacity planning, growth forecasting, and resource optimization strategies. Provide automated maintenance scripts, monitoring dashboards, and alerting configurations for operational efficiency.","parent_id":"0a29818d-c5c4-477a-9a73-6cb166a647ae","order":3,"progress_status":"completed","dependent_files":"plugins/p2p/p2p_plugin.cpp,share/vizd/config/config.ini,plugins/debug_node/,documentation/debug_node_plugin.md","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-04-21T15:57:29+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"19cf79d5-d0e6-4e4f-93ec-1199f0967648","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Plugin API Design Patterns","description":"plugin-api-patterns","prompt":"Develop detailed content for plugin API design patterns and best practices. Thoroughly explain how plugins access and interact with the blockchain database through the chainbase framework. Document the database access patterns including find, get, and index operations demonstrated in the chain plugin API. Include concrete examples of how plugins implement CRUD operations on blockchain objects. Explain the plugin API surface design principles and how to create clean, maintainable plugin interfaces. Detail the template-based database access patterns used throughout the codebase for type-safe object operations. Document error handling strategies, exception management, and data validation within plugin APIs. Address performance considerations in plugin database access and optimization techniques. Include practical examples of plugin API usage patterns and integration with other system components.","parent_id":"48bf8158-7839-4c2c-a50d-7cc05923bd1c","order":3,"progress_status":"completed","dependent_files":"plugins/chain/include/graphene/plugins/chain/plugin.hpp,plugins/database_api/include/graphene/plugins/database_api/plugin.hpp,libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-03-03T08:05:51+04:00","raw_data":"WikiEncrypted:ukPV2tcWPRGn89Upsee0BLgnn7JYGqI+7BDGQTVnjuRHRVrSL6tQDGezspM53gdtUsm79POkhFGbMKDAc/J73KOr8fv9yxwFP0VoRuKhzfwxYc3cuTurCXWgzU9qD33UyKcWZq5jbu8gui6I3BI09h3x8uoako0lZEJvMc987YbO8DFIAMI186UTX0GSkXJAiB+0tTnW0lK7Q7CyvzRlnJ4uvexA1xc+EZhQapFn0hFfn3BkqPvnFiPnhpszja3qVmCu0yxr5AX+OzkI9YrEHhMjnuc8KfaQdW9VHAia2WrQVVakOkiPAtBRLXw1SRpQtkxf6KrABOJaLawhkAo48bB2LOZHqAGu3tOxNEc72vQZfevNODQw/4xudcgAahRGx6P8V5QbfRG+7ZOzoOWphjKBaflPa3rNxq8WGsAT/7iITXZlKmwpq3pzl7blf9ohNDJ10/MGhxEznX6QxuFW4DthLR5kVo5FMpMbegc2qceJcr7rDsOVLLMyn4iJu3UaiybcuK+TNOvl/9FepZrihUrm7Rs1ztzDJ4QcscsNs+neY94/12m5K8AL6Mu2NzlcGwModzUdwsbItYtpPbN3vRWm+Nz4rmPUAYuKtui4c9vNm4avqaez3/tk9hTuof0mO/Pm7zStNDgQyzxVojbY3EL8rrMEPcI/D3OSAaUkUGRG2fLtZsmL+d/ZPTlIBTsNmlndMfEYTDrKr5E+W+3IRTPIKlzPWVBGmWGxi7haFJl2kgSpHJNyeh0Eo+8iETSeKxxu2TDgSHUkuYIg3HEGgdvgYIr1qGaupyRUtoY/q5EFKf5BRPbM5yv+gz+JC83OqEu+q80SULYKezoBiEdC5INZXHTv6NQVWGEl+8cCqdbUhMXEry7NmKGDeMJk5zVvI7BNCOTSguxS0P3q8tOjLfGnCxbOsLD8pxYvoN/z/twkUIVYuDYD322POm0xjzJ4AlPQArTp0rc4KlmH4w85aBBZ/nQ+fE49ONoyT3SW+Cp0lP0zVFHQPxLCqiO0CyKyNngE9HLAHdlN06IdGeLydDYg6DPV12HBIEV76AMcRaUL/CEr8dMWl2JhqmOYzIcZ54x/28IVV6uLzeZqSeBF86UMoiqp9mlO53qdRZ389i6a43ExR/fsho0biQmT1pYOg2z+Bs4JH/7havhY3tRk5/juh8+qSjyoYYJPDsqohP+9mGFBGc1L7BHbT6vyiZ9TjHmRwy+EnJSkDz/glriYfUpFIaSLN57bLnu+/sljxE/9WpEvw78No8/Rg/u5o0zhUxaSohbQRyrtjDWxh+2oFpvfLxStjsxVLZN+WS79BCIEnYef+pRZS/FzWgoaufxJaHm59yNZZYUdUB5rqxr8ex2ShwGoxeOaNmHsdrwGJ8/1m+Vg3BIlGtSTACH+Yt91iRdU2djDMu3OjKI7UKic90Ym6lDwCsnSjtgRZFxOa2+iYkqh87X0eA2XH4fcVs5dZv1zzPVTLYPu7ASfJWHRQQnPxabds2CqBynETnz4ROkyvaSshSNuqU3j0juF0GxFpyUNzVeHf5innJ7jt+muwMjOeff+m8cKbx//GFVgPhrp+2SM89QoZShNDkyyy9BlP71G4v5udRQgl7xC4qFX3ukbL1gg7nD9AT9bEcj4e4FwzePHvt633V7icBSGr0pCiDbBVwZEsmQvAuR8I+Pk8cIPh9trrznEmV1qLVkcEN/a1Rd3RANeS1yOnW2kVHHkpx+vQQWHnTzGpWTeMe7iVK02bsiYRcPro0nLDjwy+huJfeJA0v6pQciFTorypRWxbHa44CcnT9pJNzwdIwj6Qw==","layer_level":2},{"id":"c20f5498-c255-4e15-8d5b-66c6fad67c5f","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Advanced Plugin Development","description":"advanced-plugin-development","prompt":"Create advanced plugin development documentation for VIZ CPP Node. Document custom plugin creation workflows including plugin architecture patterns, lifecycle management, and integration with the core system. Explain advanced plugin development techniques including custom evaluators, database object extensions, and inter-plugin communication patterns. Cover the plugin testing framework including unit testing strategies, integration testing approaches, and automated testing procedures. Detail advanced plugin features including custom API endpoints, real-time event handling, and asynchronous processing. Document plugin performance optimization techniques including memory management, caching strategies, and resource utilization. Include practical examples of developing complex plugins such as custom validators, specialized APIs, and system integrations. Address plugin deployment and distribution including packaging, installation procedures, and dependency management. Provide guidance on plugin debugging, profiling, and troubleshooting advanced issues.","parent_id":"1ff378ae-ab40-445d-8853-ba7c346a78a2","order":3,"progress_status":"completed","dependent_files":"plugins/test_api/,documentation/plugin.md,plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-03-03T07:50:18+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"92bf8d74-e2d5-4408-b1a9-70d326484879","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Event-Driven Communication Patterns","description":"event-driven-architecture","prompt":"Document the event-driven architecture and observer pattern implementation throughout the VIZ node. Explain how signals/slots enable decoupled communication between plugins and components. Detail the operation notification system and how state changes trigger event propagation. Document the plugin communication mechanisms and inter-component messaging patterns. Explain the role of Boost.Signals2 in managing event subscriptions and callback registration. Include examples of common event patterns like account updates, transaction confirmations, and block notifications. Address performance implications of event-driven architecture and optimization strategies for high-frequency events.","parent_id":"971f0bb4-1d2d-4258-92c8-080f826ba913","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/operation_notification.cpp,libraries/network/node.cpp,plugins/database_api/state.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-03T08:05:24+04:00","raw_data":"WikiEncrypted:W27BoG2tWSBKbrlfVNVQ+n30XbiFQ0QQI5a6lxogiBPjTg0DvvbBFVxLISoEha9gga8YkbF6lz5DhmIKlkxVqSrOPfvwP98GUOj8LffovPN0x6FVjem0YCS83Npx+6Ibzq2LUJxesBU+qAtPQEe1+kgERFazI8jpVPIEA5SAQs6E+tVyMbrp+izzDgE1An3BkZcmd8WlOiKBTXmO+BX9+gxzlWar87g9CugYmsBzcZwUUzG+TnbkVV8m9VyiERgc7YdTtwBSORP6zbFpLpqimwCl1WGfM2iPx3fmKl9ID7Vqcg9sjWHFHETcAef3vIQcCHn5ZwelrdlGWmjuugEqhEclWt6FQ+85c+7FlrVA/SJEkPHl21tbyLcXRo59nelJ479auS1kaMRkIAbbLLJFA89pTxBHLTh6UpmQfi/PnJX0FHKAQG4cCXDLpbng3u9V4jiScS+kPZDrvwbi0pxVlN3BoDGiYiup5naQqix6syTGND3DBn7DrrN97NOWB6As3M2nXHR2NvXMUoEN1DnpOIMbilF3IRve9B+8ZJCp0RU5fbFQjy1qD+s++dLoQP21N1/cjEFHD1iF0WYvAaqrRk/uDYDHno+tqeQ/mx+ZPbJqVfsvxIMdcTs+jDXnczvtHH+oOzAEz+66ridRpqISPDgcfO2cbHbD8yChkTSvPCRZdWYhTuPGD9FMpDyd0jIjtOB3xxYvHoZkAxGV+nMX9hasGMIF7kwGkhH9rmrYSGjPP7cDfNwTwu/FBc32a47b3jkk6hpJjVqUgKaUQwVLAljvp0rQBygK/1ZzcxVW+BIMsTioFS1YT3txI6Yht/fkrclLUxfXo4emNwybErlc27SOgQsen8u8XVq6ec0ymghCmX2GNpzdyBcoGHndxCnjXNjuytqWC148K/gEYnD8uMDDFR/FDCpTamlo9TnjmLOonJ+/0ajAF3YrxiqACGbHvCrJ4G+yuWD0h8hICR+5PP8s+bFUs/yKn7d9kaDv15PD1TKsDYh9+8aUEFoagYbWqdVUqdoaRVqqeuMH776Y5FkUXnii32wBY7HhXZLhzZSyp1xuekmM7J84yOOK2tBopwNQRS686YPC8+JftwhlJCmWcc0+mYaWoDpSZu4qYzYc84zrabiZWOKq7wECSRjNq1So/eOnTsS8aflZfO3NPSmfrPeog/Q5TzrA9SAmy+fQSmJFuZG2EpQmwndvbB6e6NcyddF6eHMQSXFsIQmzRkclcjFw5DWeX1BZU8uYADfXYb9MLMIiQFqfi7uQoiSiLvJ1KCqNhvLB6OVclq+W/oceE/acm/1XZZ8ivi1Qou4VtLQe1CWJECh3sTOOdIZyP0UWlmqWmT9BUQBQ1G6l5wGdjTmUEhh/r1xHfJHHYuzX2Wgc+JRQIS8LKGWlyVGcRi8l44kHDiM9Clhn2uGn4nL7baAM0wRSOGz/zGx0WsDBvGqL0nVkDgCZJdy0t2Y8WCG0Dfft57uM5GvoSFZ6MOzhOe0koPbRUZA9gA8yNzup8ltl7rocXAO12CAW7XD3rCUxhffjjXddeBpSijY8cpDxEylvPQnGr4rJuIbCjuM=","layer_level":2},{"id":"e1585c0a-e5e5-4e43-b30d-a898c0509afe","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Wallet Library","description":"wallet-library","prompt":"Create comprehensive content for the Wallet Library that provides transaction signing capabilities and wallet management functionality. Document the wallet.hpp implementation for wallet state management, key storage, and transaction building. Explain the remote_node_api.hpp for connecting to remote blockchain nodes and delegating transaction signing. Detail the API documentation system for exposing wallet functionality through JSON-RPC interfaces. Cover the reflection utilities for dynamic API generation and type introspection. Include wallet encryption, key derivation, and security best practices. Document transaction construction, signature aggregation, and broadcast mechanisms. Provide examples of wallet creation, key import/export, transaction signing workflows, and remote node integration. Address wallet backup strategies, recovery procedures, and security considerations for key management.","parent_id":"f0c815e1-40a5-43ea-b849-ddfc5fa665c1","order":3,"progress_status":"completed","dependent_files":"libraries/wallet/include/graphene/wallet/wallet.hpp,libraries/wallet/wallet.cpp,libraries/wallet/include/graphene/wallet/remote_node_api.hpp,libraries/wallet/include/graphene/wallet/api_documentation.hpp,libraries/wallet/include/graphene/wallet/reflect_util.hpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-03-07T21:45:11+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"97020392-6c50-402b-9313-1919a2deb4c3","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Cross-Platform Compilation","description":"cross-platform-compilation","prompt":"Develop detailed cross-platform compilation documentation for VIZ CPP Node. Document platform-specific build configurations for Windows (MSVC and MinGW), macOS (Xcode), and Linux distributions. Explain compiler requirements, dependency installation procedures, and platform-specific optimization flags. Cover static vs dynamic linking considerations, library path configurations, and platform-specific build artifacts. Include step-by-step compilation instructions for each supported platform, common compilation errors and their solutions, and performance optimization techniques. Address cross-compilation scenarios, continuous integration setup, and automated build pipelines. Document the relationship between platform choices and runtime performance characteristics.","parent_id":"9c29a057-ce87-4636-9143-abbbe00af3e4","order":3,"progress_status":"completed","dependent_files":"CMakeLists.txt,programs/build_helpers/configure_build.py,share/vizd/config/config.ini","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-03-03T08:06:47+04:00","raw_data":"WikiEncrypted:2GoRefXUXXQ3Xwp7OyY9nlon887ydNfpOl/itiNfh/4iWIxC9TaxKDiFwjOVFwQTPZYi+aDZcmdacy3T3sTlNOPDniBKjwz+vMIh3cB1plVH4KYwPt2TZXc/+ujGFDRr35exKHL5nJjwwQ0ZMNpW/UibupcGN0tcn8JuX3NpL4WLBra3PxQ3XTSuZYZPVzLj82+fwHHCLPcEK+78OX8e1RcVEklR+N1UsgtET9kO0/b+T0OBqa5ERNN3IEYqcp0mY5DL4MgmhZ5ELHFmyDcLeXPGbENuTTr/wv73OYFptwxgOC7zfdnxEof+OJt7oFB1H14TF9NkYiMrMg21KMYZ7SpknlH2jxvpqfrAZCvqdyxgE59BG/VXVZPBrsUVrClVTeHDodIoKQCzDVpuGZCDEUcM4ywm7n0JaWJSvA5QqTFe6FlcGrO4kJP0nIgvoYFjCNa6wMEbFOKpK082OTtsHnoZAn7Ygz/SktuD3sxaFQutzYzGUpESMp+7KK6ArmF3MZD1kHYrkbx8S1r3t7TRMBIPvNVbc8GJDepR8ER6t3haV1sBwAGTuVTiBApkEg1+z2snamjx/DMbTOTZC0t9VeDuyQmejRJ2nfbysv6hUkQPWiiVsQjp/J+k69s9+Ux7cnj9DlnC7yP61FjH09kWx24MLREOQlg4aqdv02Yaf/0NhCugHWGlzPlZRo9Rcm7A/fYVCWIdyBicPqoNenizmIRw/+0ZUncKEzrvzurMeUV+p6by+Wl4x/LuusxxAJNHAjzKBMDLPygjAixvqHVGme7S3iJkX6GEWMaATXOA58szwt0/m65fztGuJ6QnWZOGheD2ELMTHbAgxv9IgkRcqpDmLp2VaP7YYU4hq0gze2HaeR6u4tAs0fHJZX1HORBQV6m/1mzw/VUtnolpwqE/TDgNPDjy6eYc/8e8OPu/PHoavvf4IzJOMbuw9Jab/F5w158jHfEt9txnl5+n9JhFtPecLcLLIKgnb8rnsbOKzT4D5ggU6rqH4FkXNb3bwpNtX3vMcfTGxzXmertP2Lb88uXGxhfMWPiAvWdUrJtNxnCQIUWII2pyHmrr1hLGTBSzE0qEj2a1Y4kVgfkKUkeDNwNCf97ufWnDMqThJcy6zqCMYqHJIq/hc32CjSkIzzDOQouvmIOPaVwL6fpE699lSOwB+RKRrfZy4TBjrmA++IxZO00dgzzHFOHnN2m7tOKpsMnGukeWgOno6BUIexnY0lI9oY3VNKLjBq1WOxOBwi2qClZoCoD+7QkbJHk9gFUvcuZdAG8QeMQcgeeReC8hK9BHD4hZPTReh0bkSF1wEfAbM6TrdmuRtEECtHx8ccNSDmA0dl9OIyKfqRhsIsVF8knLOjcFBsaRt57n5d82KEfGVC68CqLC53zlhwC0f+83i16CySJnkLCgNBbd15ULQvB0CplndMfsziHgwpuJqtovu8ylKTtPg/wamM1QLvqMB5t4DVEbc90jw7qwR8T2SBAu+WoLfmaD20wd01rLkYH4tYuEUmmUq0XbGQtgOi+rUF1mBwHDdrHFW/gr7FuEdUWCclH5mbo1cA7ExHaHxPYDAxlKWN7m2zuym9yZ+Gf5h3jBjwldO1bHH58e5oSV8DQciXvAjBNDP9wIfpcfNEKgnr17F/GNHOBuQBfTDOUGLSGiAqCT5hu+QpkcGRq4U52dOsMI7FjTQau2lMxTyaQ=","layer_level":2},{"id":"1d376f80-f865-42b4-84b5-f59e5649be28","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Performance Profiling Utilities","description":"performance-profiling-utilities","prompt":"Document performance profiling and analysis utilities available in VIZ CPP Node. Explain the inflation_plot.py script for analyzing blockchain economic metrics and inflation patterns. Cover the size_checker utility for examining memory usage and object sizing within the blockchain database. Document test utilities including test_block_log and test_shared_mem for performance benchmarking and memory testing. Include practical examples of performance analysis workflows such as identifying memory bottlenecks, measuring transaction processing throughput, and analyzing database performance. Address profiling techniques for different system components including blockchain processing, network operations, and database performance. Provide guidance on interpreting performance metrics and identifying optimization opportunities. Document integration with external profiling tools and system monitoring approaches.","parent_id":"ff55fa31-5b21-4383-98fb-59c794986fc5","order":3,"progress_status":"completed","dependent_files":"programs/util/inflation_plot.py,programs/util/size_checker/main.cpp,programs/util/test_block_log.cpp,programs/util/test_shared_mem.cpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T08:08:06+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"43ca18bb-016d-4bfa-93da-7fc744208224","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Security Hardening","description":"security-hardening","prompt":"Create comprehensive security hardening documentation for VIZ CPP Node deployments. Document network security configuration including firewall rules, port management, and network isolation procedures. Cover API security including authentication mechanisms, rate limiting, and access control implementation. Explain cryptographic security measures including key management, certificate handling, and secure communication protocols. Document system-level security including user permissions, file system security, and process isolation. Address security monitoring and threat detection including intrusion detection, anomaly monitoring, and security event logging. Include vulnerability assessment procedures, security update management, and incident response protocols. Document compliance considerations, audit logging, and security best practices for different deployment environments from development to production.","parent_id":"25110dbd-3911-48e1-b870-29607c837581","order":3,"progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_debug.ini,libraries/protocol/include/graphene/protocol/authority.hpp,libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-03-03T08:08:09+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"9d8e68ae-a4a3-461e-947d-bfe4e0449f8f","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Block Structures","description":"block-structures","prompt":"Create comprehensive content for Block Structures covering blockchain block format and consensus mechanisms. Document the block.hpp implementation including block header structure, transaction inclusion, and block metadata. Explain the block_header.hpp specification covering block hash computation, timestamp validation, and witness signatures. Detail block validation rules including Merkle root verification, witness validation, and fork resolution criteria. Cover block production workflows, block propagation mechanisms, and consensus participation. Include examples of block construction, validation scenarios, and network synchronization. Document the relationship between blocks and blockchain state progression.","parent_id":"84b360c7-2115-43aa-89df-1205d4f6231d","order":3,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/block.hpp,libraries/protocol/block.cpp,libraries/protocol/include/graphene/protocol/block_header.hpp,libraries/protocol/block_header.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:21:50+04:00","raw_data":"WikiEncrypted:boPmx5CcA0j/DyoZ7HyhKvDO0uY4WRRkzNPlVPFfuYd8x5dUCvXHd/9oi/DxEkfTxFYD6bAblx+fQQtuLzg3sNwWhDQfuhCUPU0fy858bISDVVeq0bZ9kOv+N1cQafYJexYNmmOXHAtODv6aTvln0mZMaSSdpskonjRSiVDR2JFQ1c3ihfXZ9aWKOJzr9HkollwT6o0GKJ8eorPz1iLxLjuuquHSqCI3XT9AEmwcOaNnQShyTG0htuDWIltom40CsZcu7Cy8U/5nQzjC0xDOrC250aMy5seipxo8FAkVVpMX1XNBS38rhNMjRx2OKCppowA7cIOi2FHW6V4Q5vbu+mU6FUxquGMY6lbq3yu8TbvoMAD/QHS8UL7YYUa+4otdwFZ9QSkbvu5GvmAg2jjbbBzHknhWswLPV2t16urDqHkTqrEYUcmJNobdpZwC6FMjh8IS60obeoHCmUMLWxbZKLs/at3r+7JaWiPt+7xh26AoOr2jvjva8YYv6aSKWGoTMW3H2qpeMDiwUqtqWS0L/REzV01evXpTy69qkgUnRQcWi+FkXRKAwQ4p5veRT8OF23DmlIPRBd9CX73BxgYX+wQmYU/ki8y2bDeb1P+++vOAPh+61ADmkl1O1DMHisuDnaDiCFOfYhQoUbJ8x19MSmRVDwe4AU6+EZrxp8RKz8/a9GwAtETrMQ+90BijOC54NEEGnoN4nI7onVLXrah4q7IPCn7ZsDwfiTROpju69VldR0fx5W3mcW5cR5QkvQ2GxhzLhsLECXMlAfQ8rmumlR3p2VeIdW8e/P/S/ozfNjWZzTfhrhDfu0Vh0Y7Vl6w8M+CVXnOs/tC7MadUAhjrh+JQyC+HMohGmdO7/z9++33J1xvTFJVyMw0GFOMSQFY6Ep07yumrY1mvZl7qZS05ItAmaINydqZu3p6K+KExgwoNhGWchPC4vfZ8xBQ0VJoT+F8Faidd+o4SynyU1Oa9a4nDGc4as1CSHvJdKS7A/xthytbfgo5QJNtZqwsgpqQiSBar6Jt5wb0v34osxOvwjhLvuvDRZ9fuSDvIlOiFT7/h1jeTg77hn49LMeK3SSge8uSY1mhYSX0wFFmSTZ09o0BBULQWJpqNi47MKUitiopByHGADdj6vHInz2cTcAegHNkmJElDw3ojdlDsbQibKm8vkNBNR/J43aDniBItv5XH9lShNCczTfl0ZYuawpqhiTDLOq8QJy8wCli16PSF3Wwq61hM7hq6qXdL1rZfvRsnYBW5GhCSL7weKEaqDTpsk+IxRFFdhwJ1ncnSZGEOLXXOeudTkfZHk8r+YxgLkt0NzpdB6t3M6r975QZs+Tj+4ReU8QJzH2lETRvs5l///xaT2cUdzYBloc/E60aX4zonk7ZyYs3KJwXniHXQefJRk+RsmN1DbuKpwaEFPVI1OiUgtuetyAT05BDA7lh2VSvtej7xZtkMI0FejtchcpCcvJFuH1BgjPfECJKdDQlWhRzLDP+YDKXAP8z5AFFA2tzEw7DXGyBxKo8/9vajdN/f2CiX1x1ryNzep77p2dM5fyk5ZvgmBvQlK5wEf4+BZgjSp+c9B8mojotd6/I5mRMJ6pUqqe92PePdrcW+I4qiFA==","layer_level":3},{"id":"7d9d43c7-98c7-43bb-97e7-3d8e74b43f29","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Block Processing and Validation","description":"Block Processing and Validation","prompt":"Create comprehensive content for the Block Processing and Validation system that handles incoming blocks and maintains blockchain consistency. Document the block_log.hpp implementation for efficient block storage, retrieval, and replay functionality. Explain the block validation pipeline including header validation, transaction validation, and state application. Detail the push_block() and validate_block() methods, their validation steps, and error handling mechanisms. Cover the block summary object creation, witness participation tracking, and block production scheduling. Document the block replay mechanisms for node synchronization and state reconstruction. Include examples of block processing workflows, validation scenarios, and performance optimization techniques. Explain the integration with fork database, witness scheduling, and state persistence. Address block size limits, transaction ordering, and consensus enforcement mechanisms.","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/include/graphene/chain/block_log.hpp,libraries/chain/block_log.cpp,libraries/chain/include/graphene/chain/block_summary_object.hpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-04-20T08:23:26+04:00","raw_data":"WikiEncrypted:R9i/29qd1Uv5xEgS1tKQyKa0Xuqqfm5cq0GV9nRcndmrxsHsnYwJpAewisCUpG2ti9GxrCpxWosUOZaN9wIJ7/8/157xbaOnn2BOhyeyJDPEjOCeYSYjSjv1dxVt5lXdexGoI1KQL06BJsml/tJH8IGm3rSrWyMIJMVaaR4ggiX6+4EVB5GRcduKv4h7YPDYp3XIn5/mXxo9OTYPUOtsoVOv7rHyTlUbejkiXURwQve9fLOeUlvOIkZF4R06e8IAaiKcWGIvFXcY2VrH3QcxUFJsp4kJhDzGK2FUcgBnx3qjBwarMUwBpmjy4qxtg9mcgmICpt9DkXV/Qj7CgjGXDq0ch298hK9VXiT1gmCEUwmXar2PNH/y9g8c8RiIUMVAxrUCV6mO2cnruxbtn4bQRHyC6sk4Ob2Xl2kVvZuIDBbT66aj/kOiD69bs6LpzdWsztvVvmOAFqak3DVJANV/su1oWfc4dZHy1TVF86Ri31HD6HaOPhqNpMApI4ZuTGA6AuOth9U/yvJQNw9eJa2uqHSJLovcqephYqd/UVvPQUwwoQmeMyQpQGIgDu02ksU/4/umYthxfnKr9BCJZueLWKne0Ib/cxoDN+QlTPByFNxCIyaHLleav2nztHstwhM3KkUtSO48JMcEIF4KuBSW8rzzIVZSm8sfhQ+Z18r/cGnez0cCvKI8I6dIkLNeFeMz/WwUgYBbFFnw9LMJ0u7OulBWbJ6hXLwmS9uQEAywjdogAEWO7ff6hfllQ5ZJjUMBmDO4drvylBiNbQFRrwKjyqKxSoR2js37uA4O0CBA/JESRC6UsjfeRfGNWa1l/rXrdgoGwwBrE8hT7iNKOAgU2x/xiS81GBLWaUdxUtzTAK4j0jIgecLdmg9DWIxP35A4grHki8nATuqPuMzK/XD82HPaERxvdoyjYE/kyUsP/mUfCwD/JXekHhftIDxZUJSqV7l/fDYPQ5ipe2jBnJIy7Nh4rpvA2BW9RJhI41asIZjiphshvPGZWGOF2GAyVwTANhAoRWizBv+itY1p/2WOckumF9RlmFiXVuFJzkCrNMyvjdvkdCYcu003ud8rO4xtpyb+J6jN5TNAoQUSO5fOhVvcHght5e6GzQlmQqJsmhjwCIcHq0OfStaGzE49mWjAcY3UjQhLQluW7CXA6G0qGQ7XoDVDML/QxP22XB8y8Ag/eDa38ZbtVYhXNIhVy9pWH8EeWIPbbGJv1UMvE6KF89Ybpgi9DmWvsZz6grqkqVw7Kig7sPtS0YJOHjCaHQ7LJmHCCudaZuZ2MF2TuMAkYW5yaytTWIhz0H77S/dQmzQmMbytfA1mqlMnBDDXtlT22T3++L+II8JkaX+0jTi1DTG6QXHTBQ7GcRuJfIF8CXjnJPbDSyUgXNRdvY1/Mn9CbPL4uVjXu90DzGhoKrvUGDXTTIzcHERZKN2/WCYDuD2A/kt/ky+a4Ifw0xSaifi271XU3geXOUUbdpVlCcV9aORTRkhN252B0skqL0oEnWgTxGYxoqA7NSU0021Y5Bd8/1cnNsVTN2vGh0YqLujdAfT3t+xV4modisvpwYxQ50Aj0ZJpcYBstxuDpOaAhEkLR5hr5XLkyAkl1niPitqs2+wSSsmDR9AUBpEY9FszPwk0pJOauEP8Jfr1d5BLOVVyTx33OYPcaq7OSFBB+BVeb2PdBWIQ3rXPJh4/C4vFb2Dm7ANtijqKL05LFes9n4IA9RpbvGA4TKXkeuQ29BEmtOSBPphfzyG9SQXOvTw7hmw5S3Kynu9fQaK77qhLq8/bZnW5czbIhiCfmycKKVJJWKkhDVDc/QGJZkuISswBtvOZqyJEogCnVHh20eVcvsGuV4ki3KHOcPx4rUhjTjXNpaaFzlwE8XrbFLZ8u2B/jB+4toP9H8MuRsWry/rKhQmFlz+dl20Ow/ic6jWDvlTRVljvVsPFvB3bDy4T8IKvzVoVtpm8QJHxIkeEhA7FGrf3","layer_level":3},{"id":"2623c72a-ca9b-44fa-9b7d-de0c2d64b8c0","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Transport Layer and Sockets","description":"transport-layer","prompt":"Create comprehensive content for Transport Layer and Sockets that implements secure TCP communication for network transport. Document the stcp_socket.hpp implementation for secure socket communication, including TLS/SSL encryption, certificate management, and secure connection establishment. Explain socket lifecycle management, connection pooling, and resource cleanup procedures. Cover transport security features including encryption negotiation, authentication verification, and secure channel establishment. Detail socket configuration options, buffer management, and performance optimization settings. Document error handling, connection recovery, and fault tolerance mechanisms. Include examples of secure socket setup, encrypted communication patterns, and transport layer debugging. Address network security considerations, vulnerability mitigation, and secure communication best practices. Provide guidance on socket monitoring, performance tuning, and troubleshooting transport layer issues.","parent_id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","order":3,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/stcp_socket.hpp,libraries/network/stcp_socket.cpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-03-03T08:24:00+04:00","raw_data":"WikiEncrypted:dkYJ53aRvrNDaS+3NsNNs6w5If3uzOgs0Hbe29DiBx3mo/yRmSwkQRnMBRPnzoWGqPZ92OwU/caHUIgxDw3SIzF6G+l+ERyUQeM+5k8nlB13TwLGj0fVp686VLtYOr41/lerWMRI7r1nkNr74ZsTI//FSbi2G9SrvyKZ61XeHQG52M/cayN69rlGN09zTApYx4BVQSWb2i6BxxSytcKaDWb1J20q6BHyKneNmvNVZgCaF0rwcMeSSoByQylXwRDtVsY/0BwBP4rfWpBp67hPXAduIM1/AM21CdQgxh2c6knORVht0g0QmQsZw0NWcx4YL9Y1nzZyFpQ70i7h6ipwiSBFydgbOJPVkWTCSkMboLQVC+JReq+N76UfDkZcuNeooMsYPKVmR21KRI53d1ksrMsqJKpk8m/l2Gx1mYC8RPnt8hA5HK7RK35cQcnLx+tHRlGouJ37O/Ho3ZjGeYnuXO06taOqh4oHKNhC0CuTM7j5briN+qDNziKL3qrEagkw8MQ2Flhw2Ut609zD4HJIE4DiH/98snKwoFEIvo3HIZ3XOuQrGA8tqN7EGe7F3pG0++qZeOZ7cUJhnNWxqTeXGsLDH7yxQWtZyBLyvjGQX1xr/juOFCZx4bAzdWoycAfVlvjr2uxkBo6EYFbTo/IyJrXg5VPan51QhuxjTDEzVNWlSwt1lnBCnuOCKwHgBdzcSJgJH56iYdia5kRnlRiLeBRmHyIE169xvgvBxxlrH1JndEb33mw9trClKcuQpM2pPzVA56qCbcbiM2Z44kdqKDr4CSG8ooHl6voaTHVMpIhfDUSmE67NTSyHYiI1dd/85iVQ+9FfNfoASUtTAXELUUYQYvzHMPJiU3MEaD2YcNWgsKvzjxN3VN4FTcmw8L40grY9Y82P4hOZiWDDUlAMLciKeF6y2t266s4DZ8JCnab8osDj8QF+6KTb6kkeqFJ3cCCGI0txYTS54YjlXZcPpiqHCPE0t9FvIT5upocG+rYGTWehyi1JYLJWC274vsGtm5GxLvRg6mbSqE7tBd1v8Zer9fNpXLEm4Vbddd/Rl6Eh0qbzB1Tsoq6fYyLBGLyV2fbQav8S8id2khKvjPBzrSRYlKUt4MIeJoj1OPBsETpBlksb/sBe6zXuWQl1xdv1gj9XrQNqLeVVV6nMW0llZzTx7hDht3JryMwsQg1tnfcOHSIT8O7jb/KR3IsyPyzBwErQdZ401BUyu+fG/uzA7BXgy7/APjoVyikPtgFONSsd2LohWJ/+o/xmuwCFIM3eNoMIwhCsFA98lztBOiM9foR5bXUo85+w7OvJTct69ak8sO+4KO5AH5/Tz7uFF7T77SRhUeDI7YjpD+Ik9HLNsoGKRyr8cbNLyac/UxKH1U4TKLDk4AXTIImmwF5rK8DJ0f5l1TNZgMaUZ8DFXO5vQClOfyqFxZWCt6klaU44p54Zp3LCMzEJnexfBmjaSv0DcVFHG8qLi18z3+qLjoEnRpsnnMHegrThAgDc/30MLr7k4e6iUcffJUilYu4Pu1Sc42USdHD2FfKrNDoUSfokki3E/ZKIrFVGQvC8gnoSqAwuh0ioo3iHGiJW1O3Hth8vbhUnFatBI/jLrXyzAFrOTkVzWwxQemSuJIF6jvWcGkgiAogUGWvRS60wJBSFfLyUdAMPIXDDve4qPvZ3uNGSNHXFN5w5oxjkJr9zWEXTyWOpAcb+j7G2l3FtGxwEAfgiPCl3sCAHm/4tpKr2gTx99oBrasStExD6+BpcjkMiFvcLVuwDnAuknrACPbPJ8vXTbEJ3TxUxzy5/jBlGmaFsNKC9zcFZfTn5AJGPPUGUziylI2Tr54IzA7ULa2tuHRctvQB9pah5y+GJCs/E0wSrqA==","layer_level":3},{"id":"cf3cedf1-9b9e-41a4-bbf0-94bcb29b6e8b","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Build Targets","description":"build-targets","prompt":"Create comprehensive build targets documentation for VIZ CPP Node CMake configuration. Document the main build targets including vizd (full node executable), cli_wallet (command-line wallet), js_operation_serializer (operation serialization tool), and various utility programs. Explain library targets (libraries/*) and plugin targets (plugins/*) with their dependencies and interconnections. Detail static vs shared library compilation options, test target configuration, and installation targets. Include examples of building specific components, skipping unnecessary targets, and customizing build scope for development workflows. Document target-specific compiler flags, linking requirements, and platform-specific considerations for each build target.","parent_id":"9cba4008-bdf5-47d9-9b5b-25e71815c8c6","order":3,"progress_status":"completed","dependent_files":"CMakeLists.txt,programs/CMakeLists.txt,libraries/CMakeLists.txt,plugins/CMakeLists.txt","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-03-03T08:23:32+04:00","raw_data":"WikiEncrypted:ZHd6gDb1oAMJeik+Vv5fPmYm+3RvozY/gdL9KOhG1Gzli6r3m1Qs+ajLMwPD/vJq3bXqoW1huXFI4mNN8ySzLIQHLUimXSbYEWathKED4BP6kZB18cGiRNQidMb8cyrDV5Iuqrq7w4IXFOrP49KX1Fj+mOjkDg3HSykKn6cAceQlzfAz0DrSk7eNO5hzUQqSiElf3OV0v7+fK9Cm4IQq0058KWBtgI5xr1ykHT0HpoUy3JFULOqohFCF27f5ON1OWmLfAvFSCDxaw0Cl+BhogR6z4GT18ewS7uuTNy2PkJ1ia0uNOXkxMjsSSmmup5HxBMXdZkQpdPZNEoZL7fDXqwhfd98C+eejOh3Z4tyNJtppazTRl06TCmo9zBZKQAczNueGCUBgz5MmxlMxulgT+9hXgu1cWG4XA3eJ96P6ZBxnW25xp7PSSH9JRkMlDmOcuC46lfmCQWt0aTtIS2ozbWrcE0ww96p2VsQ45j2rNdqMIpi1ulIJUOotFpc/CddsAlKtEVpExeGMLcSkX76K3NIA90qoVwWSndANNc4MJ/8bh9ulFe2+uzoBBu3xinjVvUlbOCjyNGqFd1jnMZtnt3L7/t7PH0V9q2SOflN+SgM9jVRVitER45lZFxsqr/tav2KGrocQE/xxUOIjQIC5CMvx2HWPNHn7xRZU9XceW974jpXKFvL5kBh7vnmnsKJupnB9t42ya5cABJD3AQu6Z0j6CKGPS2/l4uzkYiQ89k5SPmbyPik64SWmpi1um5U9Kj7wI4cWS/oflhQlCNAmvw4uvDwwljAA6qj+M6gLAanR65d03Q9aDTAjBYMVwGmOo4abkQv3nf9TCwKxKDVFAs5ZcueELmtGXDiVHfj+aZxEo+t86mMMQ8g7u+kNm84EszGt09RKbBsjXslT7yQIutKSMsZJpE3XeEFYyhNtdvcx4MZ0/0C07WBxke/L+xeuddZajpKMJ3dJJCBkwNkDH9y1gQCS0cFOpuuviGp6SNKtCxcvsgaWS7wBAW+uPcsoMQE0llh0xjKnOnATbn9DIx0tfuUk7ESBuGr0VaKB9nfzTlBLkjl4PToRWCsnt84L3d+ueb44ND8vu7KMItz8QOKO4zuDAQv3ATK+TZjQcFqFxXPqpOu6tx2+SzU9U0Tm1N/U3VMkQgn+Uz1EBAQjxtp0HMRc8ziGnewPSGizlOykM6jUEZhJPFrMxDefENfoQxGLA+l6IrDKlL/lo86+eCXm4vFSHWEalAjeApSnERSF0wPuU6fm9QJcUdlhu7YfBgb2KoEhKQv99o5kzzGAwEO48dvnbGMlT5tg4Wy00FCskJlqYfDQBVxLTL24kNHfDTz7VM3JENKxyK0FPq8e+xgEtZrVx5vIEPzsppJ7Tm2JvwMNsgBNzTTVrWdB6GFc+ykwf9X+NihR8xU80Of6zgl/EQLw4MGr687/twMImC5bbwRa0EN4Pnpm+wfGnxag1dAxyCl7pFPa00FsMWfFsRJfEMTsBtYzA4fj+y8wFZji35gM1dsWtMer8ZNiTk+A","layer_level":3},{"id":"fda1e981-233a-4634-994b-5314629e18d7","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"MongoDB Integration Dockerfile","description":"mongo-dockerfile","prompt":"Create comprehensive documentation for the MongoDB-enabled Dockerfile variant that integrates VIZ CPP Node with MongoDB for enhanced indexing and query capabilities. Explain the ENABLE_MONGO_PLUGIN CMake option and its impact on build configuration and dependencies. Document the MongoDB plugin architecture, data synchronization mechanisms, and performance benefits of secondary indexing. Cover the MongoDB container setup, connection configuration, and data persistence strategies. Include practical examples of enabling MongoDB integration, configuring replica sets, and optimizing query performance. Address the trade-offs between traditional SQLite-based storage and MongoDB integration, including storage requirements, backup strategies, and migration procedures.","parent_id":"7108377f-502b-47c6-be02-3765463aed1a","order":3,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:24:06+04:00","raw_data":"WikiEncrypted:1goLeoGXOcr+JMF7YkmJQ4CA5GfPsgr9AOqxshcHKh0QXHY1oeNCF9v12XmDZHZdXhCy259YG0ezOu7wCXExHWK8rq0XwOg0suG4Rru7URghgXoS9VEljbRd1sl6vaFJhSLystxSvjxxzzlFJvD2tYkg8LaFtAmMvb8rZV8Ez/vZCMyxbPhKJ/eYVSciU7pmsK5xcHztFCn50vpB2r+Tj7t3gDP8WGYotYg9Jf5I0fqC3CInBw+7+Fy7HWpLVUIBIaIjozAoDMsShFMBja8RpTufBS28/UhItMRKddABKXVEZXD7SGIpEsoJoSREJ6yiSO+EmTw7r4tt0ORzmnJhtT97Bxk6r9hcgLBH9wNaggWiZSGB0X7RZSbzLF4qGNJ8kk/Dku4q/6vMsh1tZlnNTz+xeJ9Qdd4d6UNqdaS1i0rQHV/TauwScbWmVjrmaU3qQS5CwPasVE25WCIbXplFghy90JNbFQvZqI1Et3VDOQTiGhrW4WEULb81StceIyHZHPYG0KEkZ7RSnXUbIn1DARL6HzgoHsunnU1r15BIcy9NKrxjvCIQVJHpNSkt3Gj2AKDIAd1VCYM7KU4prw0cF23fcCABWMrCPPFmkFxsp0G/1NATKnFi56Km0ARP9qM78401kh9C5AVW7pDJ3akRvievrgrCd8ffmyrxqPThxJ4FWDo85X5RFbaaRiNj9qln0BKGqrR9t2JF2OHebqvlzwoROLwdN5DaJazsk9B6QVquqRJZLV+jBuJ59vK9g1rpdU1oBluHRJLvB4PZypWLlTVg5Pf/v5jCH0gnPTpCMxPwfPJlxUc2m5hojJE32fkJeAkFXJ8Q2j9mbQAvuDxUCH1844Bhwc+O8q0ZzPHADKs8yp2RPbPIU9cDsrHP8I3rkRdRHQkSpzW1Ja7wDnR7rHFtaV81Ygr5h0DDQqEGeJRycLYDrvbgXJ++N8yk2pMI3NdVp82G4v97ldxc7pmOoyCtSxLmM2L0AVmLCiJfEIIelQtOfafD8S/dXBowqYXgsFsj7pHzEfLu685kww+S0Hi2Ma58ydkYzot32TR3SBK6Euo5mDirRCGoi66xck8Ao84maWlxOIZR4/27ZoQsTCnnRPuONwNxwf4IArp+RpIyq6y8pMDvJS6D9+NUNajJvmdC3ripFYOzzg6AoGuxRkUKXPGkJJeUxIU0YUv6UUx3/Ceh5rSpXlBoWnIrnMvY57waMMR24d54ElfvPd61lvpdCD6zkMGQFpKPL2fuhcyOZXVUzBhG0iHARrL5sDw/qpkjwUp6pMY8lWFvqInaAAfRcYJqSSxcTf5lSDQncMV16JPUH71IzFKM75zM6dxgi5dX1EbdZHeDSFX4sBwGdR6tMxyw7x2Tr59DU2XjpNklRUYK+t81jNTVBFghVIAHiZbZh0iA26/Pgy/WrWoID8+MBc/XNy4wtzJXPUzsy1notTsYCLr/sK9uptZZRYnp","layer_level":3},{"id":"9c398ca5-a783-434b-a1a3-3791e3328f43","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Schema Generation Tools","description":"schema-generation-tools","prompt":"Develop detailed documentation for VIZ CPP Node schema generation and validation tools. Document the pretty_schema.py utility for generating formatted schema representations and documentation from blockchain object definitions. Explain the schema_test.cpp utility for validating database schemas and object relationships. Cover the schema generation process, formatting options, and output customization. Include practical examples of using these tools for documentation generation, schema validation, and development workflow integration. Address schema evolution patterns, backward compatibility considerations, and automated schema testing approaches. Provide guidance on interpreting schema validation results and resolving schema conflicts.","parent_id":"71349e72-2b07-471a-b7f2-b7299a4cb550","order":3,"progress_status":"completed","dependent_files":"programs/build_helpers/pretty_schema.py,programs/util/schema_test.cpp","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:24:57+04:00","raw_data":"WikiEncrypted:7b0rATEHF8+R+XhpZF8awJS9ucITjIW8AZ92lNvy3q9A2A2uvYfv6YpvR0BnMFsd4Q0ovn849WEZySYF9U7MEsIS00oTyk5KL6C0n6FXddBjWTUR5PTJ3ztnl9XxWJzEUhzMMtIdmAd1KyvimpOCYwQ21QpwY5paukgVnjbsw/0pQ82INNTEiOIwF7BlzTf1HYfL7szXIL0WkJpLMdLxt2h9C2FHgQFy60+AKUZg1pt5Jd3K/aBQWV81VNnDXW/LnOx1FPSPwkGkzssRmbbAg0nFhMWsx5SMLXwbx+0OxsTzcsEom77ZZm1yybS/5zIQUFiRjQfIYwJuzu6N5Z2LWfsWSHYqLWmQF3c6umAOf3r1wW2ZNrCeX9orBn5VMOJZ7l8GTVOJXCDCFxdnr1WXweN5VGwCS0Odt+Ron1uBfAzu1GAw58ablMKRKv9VS4SXuxnr2wY/CQOMRjsWbRtvI71HuFhd2RJZIc3eVAsDc1GU1cmrTeTbUnOpZCUhW1oFgJZ7zk11j0lDuC7R2fp03fFJsHDnTeTn+KjHQ8dMIpWtQ8Nit6XrZb6D7tvpAC0SvTT6/p2f7HZgovIfTijfj1y1hPiIdc1d3NgzyEntYVppm5pepIF06TVVx7zfhhiuG9b6HE5hLuEvMq3DS/4XMm90Cnv4sZnjEyT3TEj5mX4J7N5cBAgYCSGgcNeI43T1C15pXX4uGLqfoOPXXnB/SCpxe9nWbiABMh2oto/9Xz2rUuQGDrsSrvRXL3iFGHAh+0c6m//cPkbqieTn8V+jGVQl6W0JlrLbKYhtiihZ2TDx24go8d7f8PL0ejj90ChkWSBVvmztGtG5cLsTAM5lB21FF4PXM72PfYtGrOCtfIOOHZfaXn/3vJKykmXqi9G01zdxiUzn5JV9g4bjIq2pAeYD9x8XC/bIO81rmTigEbB4nnLKa1ElZBsSM0/70h8jS+5z7IliXyuhB5FqyvZwwW0xVyIOUAzLtk33DyepAdhyg5fBwgApQ/HT48joEV2rTs8N48kN92Kxy2Ye79DVSUvQzIQPTLZoQkDnUqCOageMGKRgFzb6cqmHCuPViGnEMOQf0++miVciKXzhicWHaoLzp+sFjN3yGJMY6tZVI1oh/UiPejOTqvAQz8SMLfS229ZyyilSHYo4cKKzCuR9NlRx1X211iyYLzcNfOdkZwdM4CwTPQMSl3VtUnvqTSZHwYv1ZCeN76rrKV5GhJGX/NxT335dN0vycUHuJLIn/NlfOsFxQG5XodPVwtnxZp7S6TnnU1KVuZrm2ftDmexkuoC+050w+4hBvFdc/wjSpNOWgIx5HxbDS9wWBlmnw0TDrlXh3YEqotm+U3Crr7DxCF+D4IgTMGhdtmJ1R1jLTzSqu6SKtryd32ymbDmRgf1/8MZIIPbWljiJyYH5UNsPbK4WhW9WLV2g+eXlh+1UAwBgpyWvaeXm/t1ctPrjmfXsAnoJTYnhyJ6upeg8GnfHo7Z9UDfIJ3pyR/8d0SUQ7usL8Nb9HXxpWxddOk9Evqn5","layer_level":3},{"id":"23a03952-16c9-4271-ab2a-fd18cbcb90f7","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Plugin System","description":"plugin-system","prompt":"Create comprehensive documentation for the VIZ CPP Node plugin system architecture. Explain the plugin framework's role in enabling modular functionality, the plugin lifecycle from registration to shutdown, and inter-plugin communication patterns. Document the 40+ built-in plugins covering everything from core blockchain functionality to specialized APIs and integrations. Include both conceptual overviews for beginners understanding the plugin concept and detailed technical implementation for experienced developers creating custom plugins. Use terminology consistent with the appbase framework and VIZ codebase. Provide practical examples demonstrating plugin registration, API endpoint creation, and plugin interaction patterns. Document the plugin development workflow including the template-based creation tool, testing strategies, and deployment considerations. Address plugin configuration, dependency management, and performance implications.","order":4,"progress_status":"completed","dependent_files":"plugins/p2p/CMakeLists.txt,plugins/p2p/p2p_plugin.cpp,documentation/plugin.md,plugins/,plugins/chain/,plugins/webserver/,plugins/database_api/,programs/util/newplugin.py","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-04-23T09:46:06.5542337+04:00","raw_data":"WikiEncrypted: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"},{"id":"12fad09d-d670-4207-8050-ef35a26d7fb6","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Design Patterns and Architectural Decisions","description":"design-patterns","prompt":"Develop comprehensive content for design patterns and architectural decisions section. Document the key architectural patterns used throughout the system including MVC-like separation between data (database), control (plugins), and view (APIs), event-driven architecture using Boost.Signals2, factory pattern for object creation, and strategy pattern for different evaluation strategies. Explain the technical decisions behind major architectural choices such as using C++ for performance, choosing appbase for application framework, and implementing a plugin-based architecture. Include trade-offs analysis for different design approaches and how they impact system performance, maintainability, and extensibility. Document cross-cutting concerns like security implementation, monitoring capabilities, and error handling strategies. Address scalability considerations and how the architecture supports horizontal and vertical scaling.","parent_id":"61cc85da-b705-41e4-9860-17177048c2ee","order":4,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/database.hpp,libraries/chain/include/graphene/chain/index.hpp,libraries/chain/include/graphene/chain/evaluator.hpp,libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:52:04+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"1d874657-e407-402d-adae-077a51576f74","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Data Types and Serialization","description":"data-types-serialization","prompt":"Develop detailed content for Data Types and Serialization covering blockchain data structures and encoding formats. Document the types.hpp definitions including basic data types, smart contracts types, and specialized blockchain types. Explain serialization mechanisms for operations, transactions, and blockchain objects. Detail the operation_util.hpp functionality for operation utilities and helper functions. Cover variant serialization, enum handling, and custom type serialization patterns. Include examples of data type usage, serialization scenarios, and deserialization workflows. Document the relationship between data types and protocol versioning.","parent_id":"84b360c7-2115-43aa-89df-1205d4f6231d","order":4,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/types.hpp,libraries/protocol/types.cpp,libraries/protocol/include/graphene/protocol/operation_util.hpp,libraries/protocol/operation_util_impl.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:25:53+04:00","raw_data":"WikiEncrypted:4o0MsTZSJF8izk/4K4S0sgel0pL3GjUBgmfU2Jyx8LAEeqHSwBDIqrwqYaLa7vz0dZklAexiBrcyBPoGl0UL8BLUGv1A6Pm6qrXwLUFQaxQ3uw6aYd84Czg+l1rsyFCtZkGqcNdvR7IzXAukFAEoBdxczKyxinARYsusL7HRvAfVzJVoHceBpQQ3T8jYuUKHR7KxqUNsY1I1N4cKmpYRNuONQUbY3FaLt836Lwat+eczNxHuemF2h54DgyLIYFx7jGWD64tBO5H18dfTY45jnQWyvHaLi9b34BxaNrhm+fGKARUr4lS123jCX8Ogd6cROYLNUcfKWIV71Lza7SLjR3oy2fJHN2RTB7aek7eUs7BZ29A+DVGyDmeK8uCBtgTPDzclEAp6WftsK75zwen2vDxgiOSXFpRMVMEAOHAwj1IuDC7RNL+ffoS7VdEA68fjVq126qs32YF+sBGMUkEKyWEWX+gkggDLcEHsn/7+jSvzHtKBYqvBHDb4T0RhQ33cQm8MOsWmMxNa/cVQmnkVvOXkGhgMzkTo2aWzaU5vJ/1gxMrhMc+G6+zypIGtUI9UjmYZslWZiPNHcOTa2Fe+62p2Finm8c8m8ItRnKBSpvWLSmz+nIWazm7UWfByDY1S1v1wNfnY2PcdeEAjKCyxthZ5Cky9zotWIT+qrIOpc/qC26r4ZBiQR0j9E1GWg4iNMJxrVhTp02hdLeaTOL2pfLR0G4X7IcxRwvHRz0hH8trmEJpknID6V2HoDQ3xJPAyk7MoVzWBkP0ginPs2PFFCPTQKuJCx9YICn7OxOH8KNNGT8dqz2jLx+oipdS5PkG++aRBaQhBx/3XcXUJu1RLEc5ow1BZ5FfwwFI1SawDt2JI+TJwDy5UvAJg3NVZlw2VZNOWvlMSWjzRd1JXWKRnZ3ttaAdOh8Rnq8018rPe3hTKusOw0H7x6Qutwzuy861i00sXA1EpBOM+h4qwdylwOpck0nF6stCsQKPPthaeVkTF54qbg6oJiJisfp0I9QfmilymYVDuLFzflAylAFe8YSWyBHptb61CK4Ak5snS3b+69+zTp8vXayv56nEDuQ8gn7gtbYOmYf7PpkfCmWz5gUtos9IbU02Fw4OnqLWIyYUH6qOhbS87wfcuSqUp+1WKMYHFNxzTmXG7UQvt/7Ir6SJvZbS6l6YykQlv2yMFV7+LDWkQyA2o7PPDUcTjmV4IQVtY2pd2QEkdQlBFF7doTRILVr7moooL82uAYJK1aSAfGLpPLQ00ZG8qg6d0Wx3YVH00HTPF7xHCvt9YOJwKwPZ/uF5ycShlwxUNsN2qj6QIXK9CdnDV5a5JDGhP/JmICPhmAG/S7PUAL4d5+EE6xxFA4iwcsWyZm1i76v4W5l/+U3wz/4cREOAone0UPOTGBFFvTvrgLgt2iwBpoWCUJJs1T6w3dwWMyZRG1Sy4dJY6reScRpuOoPdBmKELw8zB4hBipR8Tlj5DA517ISX2rXS4QjE53Vk0mEbFdVha4CsZ33/5Ytms3zPrGhiUM2/KFGnEQMevHWbR+98FTktgxyxdpcmc3q9fByqAP2kYSvyRFDeX8oG+KsE+DdUEqk6u","layer_level":3},{"id":"33f77581-8eb1-4711-bfca-7bd928215b93","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Transaction Processing","description":"transaction-processing","prompt":"Develop detailed content for the Transaction Processing system that validates and executes blockchain operations. Document the transaction_object.hpp implementation including transaction metadata, status tracking, and fee calculation. Explain the evaluator system including the evaluator base class, evaluator_registry for operation dispatch, and custom operation interpreters. Detail the transaction validation pipeline including signature verification, authority checks, and operation validation. Cover the apply_transaction() and _apply_transaction() methods, their execution context, and rollback mechanisms. Document the pending transaction management, transaction pool operations, and broadcast mechanisms. Include examples of transaction processing workflows, operation evaluation, and error handling. Explain the relationship with the witness scheduling, fee markets, and state transitions. Address transaction size limits, priority handling, and performance optimization strategies.","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","order":4,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/transaction_object.hpp,libraries/chain/transaction_object.cpp,libraries/chain/include/graphene/chain/evaluator.hpp,libraries/chain/include/graphene/chain/evaluator_registry.hpp,libraries/chain/chain_evaluator.cpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-03-03T08:26:05+04:00","raw_data":"WikiEncrypted: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","layer_level":3},{"id":"10042579-7fa9-4a92-843f-47cb5ec8d3c7","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Peer Database and Discovery","description":"peer-database","prompt":"Develop detailed content for Peer Database and Discovery that manages peer address storage, discovery mechanisms, and network topology maintenance. Document the peer_database.hpp implementation for persistent peer address storage, connection history tracking, and peer reputation management. Explain peer discovery algorithms, bootstrap node configuration, and network seeding procedures. Cover peer address validation, geographic distribution optimization, and connection diversity strategies. Detail database schema for peer records, connection statistics, and peer scoring mechanisms. Document peer pruning policies, stale peer removal, and database maintenance procedures. Include examples of peer database initialization, peer lookup operations, and network discovery workflows. Address peer selection strategies, load balancing across peers, and network partition recovery. Provide guidance on peer database backup, migration procedures, and performance optimization techniques.","parent_id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","order":4,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/peer_database.hpp,libraries/network/peer_database.cpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-03-03T08:27:29+04:00","raw_data":"WikiEncrypted:XiRbxJCvY27UULqlncgSjGeAt+SntVKp6XLlW8ZptMe3cQN5ElOvYsLW2S/yrn5Pm/gdCGXs1y2Piedj9v33wLVOwOus1E+E5H9jI71bXJ8uMEB/sz5NkYwU8/6WNzkQEHsACzMBDHuIu68ikPcAtR/8PnomAHUeME5ZfrZrVhoViH3TDu6y2YrDMdFxjmqinq0fSJUCDY+ReIEVe0DvsdamrkwIGLGY5bVT2dG4wA72SkOilgWxqZTHkxb6lHymUVytk9eYkF++9M1xy+eMmJxQD+TE2u5KZxVCvqgn2YADlbSX3hWCGnZjEjZFVlyDxQaAO1QnQ8yUy2iYYhwwWm7CeMqOc9byb+cFu+/OcEVm+e8BFvLtlLhxtP3eh+6O2Vs973N6W5ysyb0JygjHnJ8nudjMyaHNw8RyMvqSOSLT9U6UwXVTEaUotwIWIKzszrlF5uOiVOgjVs4Vuhd/uYnYqPY7yg1U9Gupcuxvia0BPTymFFSR0GDBDuozAVK3y45LRyXz9WHPutVVQWh88qMX+jfAGvGLPWgoIINUN7qxj7vx/kvAhe+zqVIba7395/OXZF6206+vXtoOr52yCARo1CLxoOxdGiOKHHIbYfGb5rQTXcMLT47TM1pJW77qF2ZR5g5GHIJIMydfYlnCTELuUPbwEQv+04i9jOdcmqTvtikO6WoduzLSRan9imvV39bTHESYJcjmUlckudSYPQtozz7k9e+CM8MImvuLr9XjkYGT1eUYbvc+w1RPzIdkX0510bTwxzf+aDCpoCvs8EQsEWVi7mp9dM2qBWQEdpkW8TIno+0mFwoo9mNRZDjG3uDxVroN5n9AgEtgWwXkrXHOFMpY2E1AIKhxOYjZ1Vy5KzxBMdh2cinDqfAb6ll0vpu9cElmA+zv7ttinHxgQjFyClOod38iDnt5ZR+0FGhcIcs4P74nKN67g708KKvGVd4lwx6dtmZrc24PynmKHwA2TBmrLBNM5ayRIe9uGx7fwf2GBSg2dPNCXEUtOTsDs7IGGa0B9w4wa5CKCIuoB9SoV70Lq1n/P6BwSKUmhNygSrebiD43uHUQ5cOIYPv9jDBgaTNBoQM4TnTC7fjNg5xBcDw0vlGHTq9FwedyYAG47EgYdNoSbNf8YT/GbFLjGaspoWg/aJJfrOiArUoo6Wg4ojQP3O0OGKlX4X0H/+9dL+4J9PwFjIvx/ESPb/xBDznza0ed4IZr+4fZ7TaSScM5euZl2jk16NwcujBriKnp6ABz12CC3fd5IXOG8S/P/iIbQseHgBo7JfDWjLYX20Cap8snp6zDAuJPznfy5geMKJ/JacoOzCglJsV+R03yLHv9QFHCjeSziCtcx+9azEC8MvUzgqr6CzcAI4nkh5GhDwnkmJ7JfJU22HTpajb16qZcHJBnGZWHiG3KZdD8jKV5qSo2fwd+92rHO4mrCEXisYVNImPxfi8jA1nSAp6Y2NXk6bFa02t0jO15651DfABmgqeJxXvGGgN5MrRLKGu6rb3deqKo+dcjh1F7OffKbsMAZH+mQOCdYVTsnEyCJupKzMvhxEqC/LIXyStFyD8xXNLXXMILU+BGDP5Ot99lNtc1tavX26Wadj+ngWdtm1fw3m6GQ9+HUEY2O8NQNTNdGyhn7l58zZA6wDYY3LgzZzzq3DBddqX0/Hlrr2wcjnqsfapDRrVhDfTM5Y5WjHfvmtO2n0v4Wv6ZgGL4pTCzDtXzl0is4FdsexfPlZVbHL2kFxVm7iXsRfmCY7F74GkQUrSNaKjisSho8S7eR3XxH26Kbkww49FudqO3YTCQO2q969KjbtwNxa2MS3UjOh4=","layer_level":3},{"id":"0d06257c-c8ed-49ce-b5f0-024a8f1c62a4","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"GitHub Actions CI/CD Pipeline","description":"github-actions-ci","prompt":"Create detailed documentation for the GitHub Actions CI/CD pipeline configuration that automates Docker image builds and testing for VIZ CPP Node. Explain the workflow triggers for main branch pushes and pull requests, including build matrix configurations for different Docker variants. Document the automated testing processes, code quality checks, and security scanning integrated into the pipeline. Cover the artifact management, Docker image publishing to registries, and deployment automation workflows. Include practical examples of modifying workflow configurations, adding new build stages, and troubleshooting pipeline failures. Address best practices for CI/CD in blockchain development, including reproducible builds, security considerations, and performance optimization of automated workflows.","parent_id":"7108377f-502b-47c6-be02-3765463aed1a","order":4,"progress_status":"completed","dependent_files":".github/workflows/docker-main.yml,.github/workflows/docker-pr-build.yml","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:27:16+04:00","raw_data":"WikiEncrypted:xtifkbs/d6wNgYxQA0eu1rJ2oLOxPwih+xivji5z+tk4TDdFMY/p/WvAfD0LFZfeJ+Eax8x67PbVPoq2NW8j2tIHrBfX9wrvkZxoA9QdrNVjiLVdVfe6Y1r0ibktm0Avg6vXYAS0SaYo67e5rpbS5THtPtI5Epz3s9cYAf9VR4Ht6UclEB5iAnTvfl+NiNqfwqwXiOspjLPQiRG8p3RfJBmILD7fF74upqMQMTZNR3dX1RyKYAlf52Fl8pvi8nswFcV11CJbcJFMlHuyqv8r1x7sF93nPiITCDAY4YEDZWPtv0HPZbO5ySbZHW9xbssULeAkFufQZ/thD6DxJCi7VRJYes9hYACZbo0sGXne5XDS5Yx/46CVqDbse/jkgCrx32z0z79xufyr+ot9vUQkNIk0/AR44Xp8Jcrmr/X8f1lhsB62/1x3o1O1KJjW9HRPHhR9E8qwNbu3fJzjGJ2T5YyRodDBh1WIsRecGD2oc/aHfbYTLleUIkaF4ywe9XotnNdXE+2AIDZUIu6n4c/5FEPwDpUueJ4Tp9k8+0OWRmWMKDI4nBMsQl78/UW5ztdVu/cLE9zt7D3HhyQEhqD9i5hVXxOIkTI0U//nf+BZWPBGkwxAujRCgHUo83KHF2/rtvvaHVaeLCtDI3KHBfgR3IYbBZfOSKN9t7Pt/SyFiuO+OXYDMzpDJxjLHxbBHQDtDt2r5p3Gm8nG3WssxSuRpEBus11wtbcjXlF2mXLsAl1wCMvARg12hIujsTyX93eiDPM9fBMzi/vFbFUOpWiA1wr9v/dDH7eMYbYiSIg4yl/RGFtCLvn6HbxwUkiYKS3TCv/o3gjbNRpr6fx9S+slOi3AgEtxdTTwarmmGxIW3MIC1ttWgDOIDKCR5UKIW49MPA9YXncu1oMKGb8O5oegsXc/GYpBkBlJQcoCzYKXZweonUUybw20/ubLULaB7u4MKBsN2b+StKx+79GvhVXFstIGp5avC1FRLQzt0TnQq9mYErtlpdZptJP8ICL6VD9ixgiWv9h7xNkCODRVkl3iMLjqfEW2qAZEvHHFMqRPP0ahgx7pp+hgFZPwKU0mjPKeUXl8krbNPXMeEIIKU4IHI0x3mpIfJqIYGm8frGZkdEgeHdiebGnPkRSMwQS5nPieC6CCoi0njCZkSNzttDzq606Hg+uAeO6k8sdlYJMnnVChv1lV5PjJPeHCPiWzQ5OjVeB2Eev+ZRsYt9H3ki7ze7YVwsVr0uI9Oq4T2F71RffnMEi85KedLxjLysvnZX2sUg1vhKCdBfIGsAD2WknQG+UifpDs+lBI4+lxP+BreYfl0r/B83QtGC43dNsT6U/tlrhi6AlVMRXn4PtnpTty596UHw/q7nIST+ypHUfADM1CFQJTqpQG5UbAOH9Nx+mz32w0nG+e/owYNzindwUlSLihC1265vOzGpP3xZFwPKHT15sdqcruYTTkrbWxzpsoOrjyZb4iobm6VNhIB2RPlTwGjUMtx1uUnum0VzuS7x7xpo8CjYM6HuyYfu/jacSvKPqPn1A2TrS2CmIxl4Nb59/V9OjhS75lWzk5rUXo7SLHSmTnwBMg77E4cxSlfVHeRvxSDXS4KdCgvq3owWlaIw==","layer_level":3},{"id":"c88165cb-4289-4933-9556-c797cd9b370e","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Build Helper Scripts","description":"build-helpers","parent_id":"9c29a057-ce87-4636-9143-abbbe00af3e4","order":4,"progress_status":"completed","dependent_files":"build-linux.sh,build-mac.sh,build-mingw.bat,build-msvc.bat","gmt_create":"2026-04-19T22:01:25+04:00","gmt_modified":"2026-04-19T22:03:11+04:00","raw_data":"WikiEncrypted:zhwwHcEGfkuzROuyPGwGZD/0WI/CTybfsgnvf0a+/fBPmrYtLd5NuaTqipWJR9I45kt0KlRWyKnQXBlUGFuKVXIWHd8zpK1bD/dws3Y+0y5bmVLWHKp6dzQZhaCQ8PqdbqH6Ef6BOExueeAKMrg3VG4nGQ4qnkwQuwN3IYhGJSf0t1yOpT1aqpbR+u9hEgg+mf/t+np2afE7VAT75QUC3xAJ/6WmRABeDId8fKJ8AJi2YCHWLM/x6M/vbZTtQNbB3k8sTMjZxrWdv7Jdh1CgCg==","layer_level":2},{"id":"5d002413-f09c-48b4-ae6c-288ea6d2bb74","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"API Reference","description":"api-reference","prompt":"Create comprehensive API documentation for the VIZ CPP Node JSON-RPC API system. Document all public API endpoints organized by functional categories including database API for blockchain state queries, social network APIs for content and user interactions, governance APIs for committee and proposal management, and custom protocol APIs for specialized business logic. For each API group, document HTTP methods, URL patterns, request/response schemas, authentication requirements, and error handling. Include practical examples showing common API usage patterns, parameter specifications, and response interpretations. Document WebSocket endpoints for real-time data streaming and subscription management. Address rate limiting, security considerations, and performance optimization. Provide client implementation guidelines and common integration patterns. Include migration guides for API changes and backwards compatibility notes where applicable.","order":5,"progress_status":"completed","dependent_files":"plugins/database_api/,plugins/social_network/,plugins/committee_api/,plugins/custom_protocol_api/,libraries/api/","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T11:26:06+04:00","raw_data":"WikiEncrypted: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"},{"id":"5839c539-10e8-46ae-b351-965f9b43d732","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Block Log Reader Module","description":"block-log-reader-module","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","order":5,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/block_log.hpp,libraries/chain/include/graphene/chain/dlt_block_log.hpp,libraries/chain/block_log.cpp,libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-14T14:39:36+04:00","gmt_modified":"2026-04-14T14:41:40+04:00","raw_data":"WikiEncrypted:R9i/29qd1Uv5xEgS1tKQyI1I0rpdsO9IumbhMrSZOSV7pWU+H3/REFsGh6aDTot4hNxJPS2VAN0rfbzcg4VekaBmG/Alt/nqGifIFlLhScM8FHHmLRuS2zB0uFzQkJdXUBV23GOZdcOPSusr1YBSe5C1pBy92GXe11lEhG++DJeD7uDwx/BwFgme27p7RN3ShHGpOKO6KZLVq4NtrBbRqXBgj+BPN896vHdpQsGPy1Z9xdzm3DDw7+wmkNL+5lwLXW+0miCGz0DCrZ8PWFoJJhE3W1JhA/46ieUfQOPY78J4877vX/mqkUnYqvTQFp7WP5nOGjPH/csixyLK1BUw6K2TEcBagf+in3k6twTXnVUyf1ZZPU/VpryPBLYtnWHcOZgglvMtupZVMfciEg1Ziasrbccx96hkUHVxE6c59taZWMVDyPuepIVEIVVoBJZJ","layer_level":3},{"id":"52d3664a-1bc3-416d-af24-b6826b0eb20a","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Configuration Management","description":"configuration-management","prompt":"Create comprehensive configuration management documentation for VIZ CPP Node. Document the complete configuration system including configuration file structure, runtime parameters, and environment variable overrides. Explain different node types (full node, witness node, low-memory node) and their specific configuration requirements. Cover network configuration including seed nodes, listen addresses, and peer connectivity settings. Document plugin activation and configuration, performance tuning parameters, and logging configuration. Include practical examples of common configuration scenarios such as production deployments, testnet setups, and development environments. Address Docker-specific configuration, container environment variables, and volume mounting for persistent data. Document build-time configuration options, compiler flags, and feature toggles. Provide troubleshooting guidance for common configuration issues and validation techniques.","order":6,"progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,plugins/snapshot/plugin.cpp,plugins/witness/witness.cpp,share/vizd/config/,CMakeLists.txt,share/vizd/docker/,documentation/building.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-04-23T11:18:10.2274666+04:00","raw_data":"WikiEncrypted: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"},{"id":"cadab21b-6f75-4c9f-a0b6-d884627bd20f","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Memory Management System","description":"memory-management-system","parent_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","order":6,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/network/node.cpp,libraries/chain/include/graphene/chain/database_exceptions.hpp,libraries/network/include/graphene/network/exceptions.hpp","gmt_create":"2026-04-23T07:21:32.8087509+04:00","gmt_modified":"2026-04-23T07:24:03.9860571+04:00","raw_data":"WikiEncrypted:4UGnUWsfWDZbqjKXeP7l3nIFoUg1QR8mX7Mg3xz3Yqw2RQAhFYQlnJrNzDWK62g0p28n0x68xCnCqGl889LahGm2SmDbdbatAKMUU6rWXYCa0OVLuOdGke8rYlfqEy7jqg9n6G5tgmPenrLnxYIV3sNiXn3qSd2vliI9gyL7+Nnnvh4wG+yt/57yJB6Alf9j8+Vs14dAv4Jqb1RjzwbcYyfw0XFVsg4xHOhBwJQw0dCApL6hAyQ7v6+hVzoKQe14dtn8Eg3J7ESvXVm01lpOzNYenxKbdJgKdUe+P26n9bbzODvgBbRBFYiYSmR//Vl27IUpjNtsUiFgG1aKtX6r1k+dtQayk4L8rEzInpYj7gpthyG82a4iWGPX9wPRMCUNwmT6eBLhgFwY3UuWMHEHOXEQtSwPP6JrDjjxNwMWROGtuYbGiQ5Cx0T2ulznu96E","layer_level":3},{"id":"3d7f67ff-d926-43f9-aa40-274a8bcc5a87","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Development Tools","description":"development-tools","prompt":"Create comprehensive development tools documentation for VIZ CPP Node. Document the complete development toolkit including the CMake build system, cross-platform compilation instructions, and Docker-based development environments. Cover the testing framework with unit tests, integration tests, and performance benchmarks. Document debugging tools including the debug node plugin, transaction serialization utilities, and network debugging capabilities. Explain the development workflow including code style guidelines, pull request processes, and continuous integration. Include practical examples of common development tasks such as building custom plugins, running tests, and profiling performance. Address code generation tools, schema validation utilities, and development environment setup. Document the relationship between development tools and the overall project structure, making it accessible to contributors while providing sufficient technical depth for advanced development tasks.","order":7,"progress_status":"completed","dependent_files":"programs/,documentation/testing.md,programs/util/,.github/workflows/","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:35:27+04:00","raw_data":"WikiEncrypted:F3QgleoEfoy16cQggYe9CzRj7niAsR4WPU/tuSJ2vBpPgttSfiCjCO2CyvjgvfD6n9AbYgq2tNWel2iXF6rLo2dAHHEvQdDl37Lbo/4ZDaxMphYC7xcy8X/278zgL1Esjfn4r/cuUeJFmPUMfYQQ+8CZk0NAX843eQfLnY05eltktZdW/cqqpErb9KgncraDXzo1VQ3mDgAS8BnmpfhgWJfUENXnhDdDPVigK/dXJSHF23qTJzV5KX5VAxVbpW1j8s9tvqU071MvmGYv0bQ8hKxpBWFKAsFcBMG6nS/SVQ2uINSxQXGuBQO46tsAJ1/peQo8nbi7rTsBGfsLfpW0HX22o8eAqqCNr+Wp5h1X3m1M5a1D4QM4hFrGBpc5eASAQk2JXGHcbGdTN2kwEvcBLCG4SenENsnsOWxcAyYVVe9jcUX29B9Vq3BJkUudAPdOw3rEaas1PU3S4EtqV05u5TOGXvPYycypX6XXGUCx2d2XSW1WG5+yT7pL5IPTFAgAMRJQapGUsy/pkgt5UFOJnhk4HkLGH0OAQjKMPGAYr98ONqqYOvfwEiK/e2Y6zhfg9P1ktZ5zpzi2jF9W82vFokUbdXpN4HSh6IVN/AnckzpRzGXN7+8F6yYq7RDjMj8s1DWkRzitI4K3OB3goPS7cW5YH2eDKaz6/R+OhBiUE1i3Rg1CByxohVVVglAvWbP5cMNrTiW5Usfo8DKlwX1H+vn4EoJX8HZcJ3YFqs+pPgsj8iLtBtSMx2g+uqrPJ1Bq2U3aPWNfgMUu1wLrdnMysKkIBZY66vQX/GbRhV4ucCWDd1iJinAXIiiU9wFXU9z1wjDK4T0skJATnSA1QVK+sKfu6vxxMGusMLPXD4ocUEr403aEDTMfc56x4vhia6qPzJZbK+ITwFJ0Hi6+065qGs15iIYwpAurbdBnkHjHAl6JO7dXW8AkigoqeigRHKiHLRbN9rFB1QrBvK8KI6CyUQmH+pMDSmye7rehdVjYm+Q3vQhUHVJL/HGv9iTN2/9LkKqmC1UjLvD/XOsTk8QF9FmkDqtRwpKehiuewUC8kgsc2vK5p6Kp/85sQhdNo4ug3W9DE+JMAffeHc0HIPrm9cRJUpGX6gH1lAtKT42rP/CGgCSEqLwSlyg6j0bgbcswhfQ108/J2eLh+x/DRbgu3aU86blSENIazL/O1bKd8pPRxCVChghsIPiZwGUbcOJ/MiIGphZLdeORuCYuNwDgBlpMlFxoPItXJqmt+UGiyoovetgFodm52c6oz25Sd+VEfG7HXxZsFifkDL7AnSVN/ZZTM14dRFx+PhlCqRdu5KsRR9Nfs+Able9A14NlsncDZsOYWNpewP43VqdH4avgzvIEtmOkNmgOJjDpBmWtOJA1hoNIY5i88l5WZ2B8oWDG+ecIZoPERgL0EaHlUS2KSdKP2XeUoVJ67e1nzsYFgxdpQdSCmvfIwcfLu3i6l6i2fj37i7dB97y3WHCK9ShomsQokQlhlsYyPKQJ/dOBMQP/bxEKBFpy0OE2BaP9KMcji6Dg62tmN+vYovhFfjV8kBI4nQ09XKm+PVktqFHEyx2XsCBIW7WKwve0AsOehuUg4aiv+2EJFxI/P8ywgFQDegsoFQ7dkEudgMwhF/INFk2Dd0GATwyMFKslvQ56gYWdjz6e+TjJDWaQQvY23Zmt6VQf1a4SK9zdqyZ7h3S84jHFjVSTzp1eG8348/IdJbMWW3ZEm1ye6Aj3mInyHZY9vLyRHhGiGLnGwCuUPElP++cULZs+KzRJ0vNI50x46+mFkRTNTJzNwLJiEoxLPW51xNN/0SBf3oVVOiHXLBkB6d/NbyXAyjiybBO7fwViiWiJx82n3B44NuqSsDq1GdgPcRvn70WfB9N1YXiKSwPGNI6hABIxBB0bIrAQ88mvH/PveGSeg8MrFrJOzekdNh0P8Z1aZb3Tp+cqHv01u4LBiNZqYpYEygkv6tWstknY4/VM9IqLTyu4IFDOS8ap4XX9HRHTybSyhTm9NwT3Xupp4fLWCoHDpJUm/2WaU9xCeoQqYBr363fqDX520NV2yuBj5jEgTRIViRT9xqCtvsO2jkdemYUO11a6Zsp587DJHwuS8ydgNJ0qG3iPyWM5jKGU99hErAl/h/wbPTAY07qFbdpSfwaiXGZr7aGNd0ueHAVaFwu5huiv3tnKHx3ssmfUmOytTkHZxfEW856KG31vJWi/bffN9L5+9Re47tTzXy73jtiP5JmLhgm1TAkDRbHCORIzLUQnDIjWKSAMMlMWzfOS6I+ExP/1IYUxbURPFeymZKAwMGUzd4knuuD0MnaEeVc8p774cyMXmEyGulnCSoGwlQ/emHfCSrQIs3abyGplSGxOOXiYvq/Ij3T0lpYW2+VedEJH2+0fLLQY1eGR0a1ayQ1eRbyt+hCLjIqpwVstBRiYSsEvxIiUYOgbONDMAt3aCyY9bTwu69LOWK7NUEyolAi6wzJCwRNeapL8nCKn75NUsSjfhMy+rHThLa9b3Lib1rYNK2mc7lK20ldpVGAJ/cf1+nxAcrkJXcpnUD+AxvoAlDwP2L9m4tzFzRwmQg=="},{"id":"0a29818d-c5c4-477a-9a73-6cb166a647ae","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Deployment and Operations","description":"deployment-operations","prompt":"Create comprehensive deployment and operations documentation for VIZ CPP Node. Document production deployment strategies including hardware requirements, security hardening, and performance optimization. Cover Docker containerization with different image types (production, testnet, low-memory) and orchestration options. Explain cloud deployment options, load balancing considerations, and high availability configurations. Document node types including full nodes, witness nodes, and seed nodes with their specific requirements and operational procedures. Include monitoring and maintenance procedures such as log management, health checks, database maintenance, and performance optimization. Address security considerations including firewall configuration, SSL/TLS setup, and access control. Provide troubleshooting guidance for common operational issues, performance bottlenecks, and recovery procedures. Document backup and disaster recovery strategies.","order":8,"progress_status":"completed","dependent_files":"share/vizd/docker/,share/vizd/vizd.sh,share/vizd/config/config.ini,documentation/testnet.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:36:27+04:00","raw_data":"WikiEncrypted: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"},{"id":"1ff378ae-ab40-445d-8853-ba7c346a78a2","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Advanced Topics","description":"advanced-topics","prompt":"Create comprehensive advanced topics documentation for VIZ CPP Node. Cover complex subjects including hardfork implementation and management, database schema design and optimization, security considerations and vulnerability assessment, and advanced plugin development patterns. Document the hardfork system including version management, migration procedures, and backward compatibility handling. Explain database design patterns including object persistence strategies, index optimization, and fork database implementation. Address security topics including cryptographic implementation, API authentication, network security, and vulnerability mitigation. Cover advanced plugin development including custom evaluators, database object extensions, and inter-plugin communication patterns. Include performance optimization techniques, memory management, and scalability considerations. Provide expert-level guidance on extending the core functionality and integrating with external systems.","order":9,"progress_status":"completed","dependent_files":"libraries/chain/hardfork.d/,libraries/chain/include/graphene/chain/chain_object_types.hpp,plugins/test_api/,documentation/plugin.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:37:26+04:00","raw_data":"WikiEncrypted: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"},{"id":"4fbca2d2-cc25-42f6-afd8-cbd6026fe8bd","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Troubleshooting and FAQ","description":"troubleshooting-faq","prompt":"Create comprehensive troubleshooting and FAQ documentation for VIZ CPP Node. Document common build issues and their solutions including dependency problems, compilation errors, and platform-specific issues. Cover network connectivity problems such as peer discovery failures, sync issues, and firewall configuration. Address performance optimization including memory usage, CPU utilization, and disk I/O optimization. Document error message interpretation and diagnostic procedures for various failure scenarios. Include frequently asked questions about node operation, API usage, plugin development, and integration challenges. Provide systematic debugging approaches using the debug node plugin, log analysis techniques, and diagnostic tools. Address recovery procedures for common failure scenarios including database corruption, sync desynchronization, and configuration errors. Include community resources, support channels, and escalation procedures for complex issues.","order":10,"progress_status":"completed","dependent_files":"documentation/building.md,documentation/debug_node_plugin.md,documentation/testnet.md,share/vizd/config/config.ini","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:37:39+04:00","raw_data":"WikiEncrypted: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"},{"id":"7ab4ff43-6263-43e1-8f8e-111eca2efe58","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Contributing and Development","description":"contributing-development","prompt":"Create comprehensive contributing and development documentation for VIZ CPP Node. Document the development workflow including code style guidelines, commit message conventions, and review processes. Explain the contribution process from issue identification through pull request submission and merge. Cover code quality standards including testing requirements, documentation expectations, and performance criteria. Document the plugin development contribution process including template usage, testing requirements, and integration guidelines. Address community contribution opportunities including bug reporting, feature requests, and documentation improvements. Include practical examples of common contribution scenarios such as fixing bugs, adding features, and improving documentation. Document the relationship between contributions and the overall project governance, licensing requirements, and intellectual property considerations. Provide guidance for new contributors on getting started with development and finding suitable projects to contribute to.","order":11,"progress_status":"completed","dependent_files":"documentation/git_guildelines.md,documentation/plugin.md,documentation/api_notes.md,programs/util/newplugin.py","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:37:44+04:00","raw_data":"WikiEncrypted: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"},{"id":"5a98a33e-b415-44f7-a50b-243d65c44f26","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Witness","description":"witness","order":12,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,plugins/witness/witness.cpp,plugins/witness/include/graphene/plugins/witness/witness.hpp","gmt_create":"2026-04-13T21:23:28+04:00","gmt_modified":"2026-04-20T08:24:42+04:00","raw_data":"WikiEncrypted:JeTXIs+pfWQp8HpBYqSHUt9pgs+Z3ta6nCRipvtinj2ZibPEEeHHjj4s1YQflAL5g+pQu+9IkQ2YST7DB2y5HUc2yLNF1Rs8APiadNnvkHhWnqIgyXobp8z/zCnepAa0oTCXj0RBxWwasN4s/jf6ntXkDWH+aw4ObG0t7BOVPstyL1jv8je2uSzq4Xr60gnd8mioVbRB8IdzIaoLDYaXl6iuBrXj4y3nNAwMC2XCy6/vmSEqnVb+fX9/SH2ECJ6Vxl0OgAD1h6yzkx+QsHxIKPbHADAe15TThTZJiIbDAB/YrL/k3vnvVwAaaUrcuaTo"},{"id":"561c0ee5-a6f2-4d57-94f0-ed48f69e6b27","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Webserver Plugin","description":"webserver-plugin","order":13,"progress_status":"completed","dependent_files":"plugins/webserver/webserver_plugin.cpp,documentation/webserver-plugin.md,plugins/json_rpc/plugin.cpp","gmt_create":"2026-04-14T09:27:36+04:00","gmt_modified":"2026-04-17T10:16:56+04:00","raw_data":"WikiEncrypted:DVkoReQyyhdwnmC6pD+XJl1726hWlyrdb/kexi9P3mlDxrXesxG0TGa6cLaC0YXste3eGQsJLCuBJsmN7jS41YrtOzDmXjZ20dpluGZh7TH4+TtwylvlkpRi4B3wlSAZPlGlYu8KTZBEYhBs12qLfSftuV0YEDkOWUp4QNrC8iSstYDYlX2nawdvmtoOJ9is2SwGwm2mWyVShNp//OSbrtMOYq7ALXKPYx7yzqaZWeZqUNtSL59YEFv1Gj5f5NmLgl8d8+AZm8eDML8XD9QHA79I6O5aSwZ92DQfbjjt+KPMlOh+doek67SBNyuzP0o1"},{"id":"0d7e1eb6-3349-497c-b241-19a16d373373","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"Chain Plugin","description":"chain-plugin","order":14,"progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/database.cpp,share/vizd/config/config.ini,share/vizd/config/config_witness.ini,plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-04-20T08:54:36+04:00","gmt_modified":"2026-04-21T18:25:29+04:00","raw_data":"WikiEncrypted:2nxDQCjwbtJzhDuGjsVF7mHsV7DvjvnRRbUVGKq7sKBjc03f9mwX6sCrl1O98+zpUP3CrZGNY7+od97OqysKwp6V8pyGSudE2hJ3DdykrmghdZyNyMiMYgtOBsvdZTRIdJlAFnHDmRzYMmCTOMWeNdqv8w6ngBgg0YD/pPSFYBoeeG6rwvPRTH3dBiMXec10EbYRWPjoBm8Fw540XGuVFAn9ikZJ8lOuUTgy/Ni56EckUEyzWhLH6toB4l0nSOZaChSQO32a91Irt41f9Uaq2Vtd2HxPRZN49vjVPRIlEmDsdgtmGUFhVxl3qKWc0dNMCJeooAWHmQOl4Xo/2kSMjiZEvNQT8/xxwhx1E2yWeJ4zcNxLkop+gHbfZ5fdKS91Q0HyTuDg0dhbOX44YrTEehDa4KE8ZOFgWEBoQkq/6wX11xfm3s59BJX7gWLEqJUDqXtxA58ggWDvGV0tERqjcenPJWF6n6FyWpp5SHupLaY="},{"id":"27ea703c-98e3-4cd3-8c11-ffa41b7b3fc1","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"P2p Plugin","description":"p2p-plugin","order":15,"progress_status":"completed","dependent_files":"plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T11:49:52.2061972+04:00","gmt_modified":"2026-04-23T11:53:01.9908033+04:00","raw_data":"WikiEncrypted:LjUwH/yUcbWfnBumtHMxuKISe72JbF8T+AYe9w/08E+XtSR36PLbVQBinOspVDlWetMPFkhRiTMoRAUUG8lGn0m5x7RHi+E+u8xLwer77SBWrdcqs1K/me8oPR4L3xyhfoZEEa6nmpxWsgYHnKOyO8hkIJiMDRdjCjtSNsDLptAHdnDGwzoQK16yapTzm+rN"}],"wiki_items":[{"catalog_id":"b2eba8df-5dca-47a6-880d-715bda77fbf3","title":"Getting Started","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"afae6a00-299c-40ea-844b-cdb2fbf947af","gmt_create":"2026-03-03T07:31:32+04:00","gmt_modified":"2026-03-03T07:31:32+04:00"},{"catalog_id":"c665e222-676e-4279-9041-a736a7d52cba","title":"Project Overview","description":"overview","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3d15bcc2-ff93-4ae7-b2c4-2886f9c53de2","gmt_create":"2026-03-03T07:31:56+04:00","gmt_modified":"2026-03-03T07:31:56+04:00"},{"catalog_id":"61cc85da-b705-41e4-9860-17177048c2ee","title":"Architecture Overview","description":"architecture","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"b3ef69c4-9a18-48ea-8119-3457fab8a7a2","gmt_create":"2026-03-03T07:32:30+04:00","gmt_modified":"2026-03-03T07:32:30+04:00"},{"catalog_id":"5d002413-f09c-48b4-ae6c-288ea6d2bb74","title":"API Reference","description":"api-reference","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"f00c97a6-c879-4bcd-a12e-6432de7c268e","gmt_create":"2026-03-03T07:33:49+04:00","gmt_modified":"2026-03-03T11:26:06+04:00"},{"catalog_id":"23a03952-16c9-4271-ab2a-fd18cbcb90f7","title":"Plugin System","description":"plugin-system","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"dccbfa78-83ae-4fee-9212-5ac10c7424f6","gmt_create":"2026-03-03T07:33:58+04:00","gmt_modified":"2026-04-23T09:46:06.5542337+04:00"},{"catalog_id":"15c5d415-13ad-48f9-8ae8-8f00c771019c","title":"Core Libraries","description":"core-libraries","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"fb12fa88-1b7f-4e42-978a-50f1c7f6a91b","gmt_create":"2026-03-03T07:34:30+04:00","gmt_modified":"2026-04-19T22:31:11+04:00"},{"catalog_id":"3d7f67ff-d926-43f9-aa40-274a8bcc5a87","title":"Development Tools","description":"development-tools","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"c6417b92-8eeb-47a2-adb9-b3f20f58b67c","gmt_create":"2026-03-03T07:35:27+04:00","gmt_modified":"2026-03-03T07:35:27+04:00"},{"catalog_id":"52d3664a-1bc3-416d-af24-b6826b0eb20a","title":"Configuration Management","description":"configuration-management","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"9032efbf-122b-4ac0-9b47-6531642636d2","gmt_create":"2026-03-03T07:35:41+04:00","gmt_modified":"2026-04-23T11:18:10.2274666+04:00"},{"catalog_id":"0a29818d-c5c4-477a-9a73-6cb166a647ae","title":"Deployment and Operations","description":"deployment-operations","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"e00a4c9f-f2bd-4a3b-8a23-5c6b15243264","gmt_create":"2026-03-03T07:36:27+04:00","gmt_modified":"2026-03-03T07:36:27+04:00"},{"catalog_id":"1ff378ae-ab40-445d-8853-ba7c346a78a2","title":"Advanced Topics","description":"advanced-topics","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"6e4a5dd8-da58-4bbb-99c7-2e0276ecf320","gmt_create":"2026-03-03T07:37:26+04:00","gmt_modified":"2026-03-03T07:37:26+04:00"},{"catalog_id":"4fbca2d2-cc25-42f6-afd8-cbd6026fe8bd","title":"Troubleshooting and FAQ","description":"troubleshooting-faq","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"be138b9c-e1e9-460b-a7cd-3a1c3cf1ecb1","gmt_create":"2026-03-03T07:37:39+04:00","gmt_modified":"2026-03-03T07:37:39+04:00"},{"catalog_id":"7ab4ff43-6263-43e1-8f8e-111eca2efe58","title":"Contributing and Development","description":"contributing-development","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"a04ea176-2745-4bd5-9e9a-b5f332dbbc8c","gmt_create":"2026-03-03T07:37:44+04:00","gmt_modified":"2026-03-03T07:37:44+04:00"},{"catalog_id":"5d0929ac-019d-4924-9f9a-e6cf337e333c","title":"System Overview","description":"system-overview","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"aab844a1-51ae-4696-96ed-2d4903c8e95c","gmt_create":"2026-03-03T07:39:03+04:00","gmt_modified":"2026-03-03T07:39:03+04:00"},{"catalog_id":"9c29a057-ce87-4636-9143-abbbe00af3e4","title":"Build System","description":"build-system","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"c6932108-aec0-4bf5-9c51-221f37cba865","gmt_create":"2026-03-03T07:39:35+04:00","gmt_modified":"2026-04-21T16:26:53+04:00"},{"catalog_id":"25110dbd-3911-48e1-b870-29607c837581","title":"Node Deployment","description":"node-deployment","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"78b647b3-e3a3-44fe-b2f2-3df8132000fa","gmt_create":"2026-03-03T07:40:48+04:00","gmt_modified":"2026-03-03T07:40:48+04:00"},{"catalog_id":"69a80de1-f730-485d-a13f-c4efe84c9103","title":"Node Configuration","description":"node-configuration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"9a735450-ec59-49ef-9d42-609483ce0279","gmt_create":"2026-03-03T07:40:51+04:00","gmt_modified":"2026-03-03T07:40:51+04:00"},{"catalog_id":"41af7577-4b84-4bdb-832b-9539190e7ea9","title":"Hardfork Management","description":"hardfork-management","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"2b610f75-570f-4afb-8cc7-1acc5cb266f9","gmt_create":"2026-03-03T07:41:25+04:00","gmt_modified":"2026-04-20T11:24:22+04:00"},{"catalog_id":"8958bcd4-acad-47ea-9a20-16c85e32c5ef","title":"Testing Framework","description":"testing-framework","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"10a114a5-9a01-48ee-af7f-b8d3858a5a9c","gmt_create":"2026-03-03T07:41:49+04:00","gmt_modified":"2026-03-03T07:41:49+04:00"},{"catalog_id":"83f7e67d-2650-45c6-900c-5774a5cf9867","title":"Build Configuration","description":"build-configuration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"418196e8-0815-496e-b69d-8458e1f3cfef","gmt_create":"2026-03-03T07:42:49+04:00","gmt_modified":"2026-04-23T06:46:47.4698668+04:00"},{"catalog_id":"03af4736-8b6c-4759-ab23-6e40f981febc","title":"Containerization and Docker","description":"containerization-docker","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"29c60e4b-bedd-49da-ad65-0bb2bf389352","gmt_create":"2026-03-03T07:43:26+04:00","gmt_modified":"2026-03-03T07:43:26+04:00"},{"catalog_id":"48bf8158-7839-4c2c-a50d-7cc05923bd1c","title":"Plugin Architecture","description":"plugin-architecture","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"ebc6e2d6-0b85-4e39-a4f3-1481ed578543","gmt_create":"2026-03-03T07:43:34+04:00","gmt_modified":"2026-04-15T13:00:48+04:00"},{"catalog_id":"98b542ba-7145-4943-b53c-fafc1763318a","title":"Database Schema Design","description":"database-schema-design","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"8c6bf6e5-b514-4f1d-9928-ca8fada91268","gmt_create":"2026-03-03T07:45:31+04:00","gmt_modified":"2026-03-03T07:45:31+04:00"},{"catalog_id":"ff55fa31-5b21-4383-98fb-59c794986fc5","title":"Debugging Tools","description":"debugging-tools","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"a551b73c-4e9a-4860-81c2-173ec92097d4","gmt_create":"2026-03-03T07:45:42+04:00","gmt_modified":"2026-03-03T07:45:42+04:00"},{"catalog_id":"f0c815e1-40a5-43ea-b849-ddfc5fa665c1","title":"Core Libraries","description":"core-libraries","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"11a3f0cc-0550-4d22-84d7-48826fa26abe","gmt_create":"2026-03-03T07:46:01+04:00","gmt_modified":"2026-03-03T07:46:01+04:00"},{"catalog_id":"ca175923-377f-42fc-bc5b-b0313c3dc653","title":"Cloud and Infrastructure","description":"cloud-infrastructure","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"f6ccaa92-08d3-4c74-ab62-ca912f5f4307","gmt_create":"2026-03-03T07:46:55+04:00","gmt_modified":"2026-03-03T07:46:55+04:00"},{"catalog_id":"bbc88401-9798-4b33-9abd-f785bfd1c7db","title":"Security Implementation","description":"security-implementation","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"11f48434-b4e3-4a44-8398-8bc28594453a","gmt_create":"2026-03-03T07:47:20+04:00","gmt_modified":"2026-03-03T07:47:20+04:00"},{"catalog_id":"3d9c7759-c5ae-4ee8-a09b-782e7dc6c02d","title":"Docker Configuration","description":"docker-configuration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"898244dc-5466-4c8c-abac-5a7f753e3b91","gmt_create":"2026-03-03T07:48:32+04:00","gmt_modified":"2026-04-17T17:31:31+04:00"},{"catalog_id":"fbae6ca8-dcad-40c1-9dd1-20534479e987","title":"Development Workflow","description":"development-workflow","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"2cd6fcf9-82f4-4042-855e-fd40ec6a825c","gmt_create":"2026-03-03T07:48:38+04:00","gmt_modified":"2026-03-03T07:48:38+04:00"},{"catalog_id":"971f0bb4-1d2d-4258-92c8-080f826ba913","title":"Data Flow and Processing","description":"data-flow","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"5a194080-41c5-4f5f-aca3-22afce98407e","gmt_create":"2026-03-03T07:48:50+04:00","gmt_modified":"2026-03-03T07:48:50+04:00"},{"catalog_id":"c20f5498-c255-4e15-8d5b-66c6fad67c5f","title":"Advanced Plugin Development","description":"advanced-plugin-development","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"46e8c3bf-bd6f-4c78-af50-5dbc5a514905","gmt_create":"2026-03-03T07:50:18+04:00","gmt_modified":"2026-03-03T07:50:18+04:00"},{"catalog_id":"535a1c44-108e-4813-aca4-6a95a2ded914","title":"Network Configuration","description":"network-configuration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3d9ef584-1d54-4c52-bdce-636c5bde9f59","gmt_create":"2026-03-03T07:50:58+04:00","gmt_modified":"2026-04-23T12:16:49.7941472+04:00"},{"catalog_id":"12fad09d-d670-4207-8050-ef35a26d7fb6","title":"Design Patterns and Architectural Decisions","description":"design-patterns","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"cea6507f-ab8a-40e1-9f5d-043a1ef1478a","gmt_create":"2026-03-03T07:52:04+04:00","gmt_modified":"2026-03-03T07:52:04+04:00"},{"catalog_id":"49484629-248e-40b5-b6b4-1664eab348dc","title":"Plugin Lifecycle and Registration","description":"plugin-lifecycle-registration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"e6d961b0-63ae-4b7d-89df-3b29ba669b8d","gmt_create":"2026-03-03T07:52:10+04:00","gmt_modified":"2026-04-20T10:26:06+04:00"},{"catalog_id":"121a231f-fd81-4c10-8222-4f3f29aaebd0","title":"Monitoring and Maintenance","description":"monitoring-maintenance","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"af8dc25b-51f9-43a0-91a2-a0c293d102fe","gmt_create":"2026-03-03T07:52:29+04:00","gmt_modified":"2026-04-21T15:57:29+04:00"},{"catalog_id":"289967d5-f89a-42cd-b660-b89842524e73","title":"Transaction Processing Pipeline","description":"transaction-processing","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"8140185f-741a-4828-b727-52977e4fadca","gmt_create":"2026-03-03T07:53:30+04:00","gmt_modified":"2026-03-03T07:53:30+04:00"},{"catalog_id":"9cba4008-bdf5-47d9-9b5b-25e71815c8c6","title":"CMake Configuration","description":"cmake-configuration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"94a82512-369f-4529-8fa2-eddf8af042ba","gmt_create":"2026-03-03T07:53:46+04:00","gmt_modified":"2026-03-03T07:53:46+04:00"},{"catalog_id":"74938232-897d-4eee-8d0c-5646023bb077","title":"Unit Testing Infrastructure","description":"unit-testing-infrastructure","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3d6d5564-da18-4dd3-9c56-bfdf8b7c569d","gmt_create":"2026-03-03T07:54:54+04:00","gmt_modified":"2026-03-03T07:54:54+04:00"},{"catalog_id":"aac23226-14dc-441b-a39d-a5187c89b12a","title":"Debug Node Plugin","description":"debug-node-plugin","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3cf7d295-dc75-43bb-88bd-43f9414fdd0b","gmt_create":"2026-03-03T07:55:19+04:00","gmt_modified":"2026-03-03T07:55:19+04:00"},{"catalog_id":"5feb376c-3c10-492c-bc41-20d7a69bd7bb","title":"Chain Library","description":"chain-library","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"813fff1c-5fce-4cd6-83ae-53e339f99daf","gmt_create":"2026-03-03T07:55:53+04:00","gmt_modified":"2026-04-23T11:18:36.4596728+04:00"},{"catalog_id":"23550eb4-0f4b-4afb-82e8-e19c1ff572ee","title":"Installation and Setup","description":"installation-setup","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"68d45923-3806-4691-a79b-6960515cba32","gmt_create":"2026-03-03T07:56:01+04:00","gmt_modified":"2026-03-03T07:56:01+04:00"},{"catalog_id":"0e30fbfd-66ed-4df4-a759-4d81582e559f","title":"Inter-Plugin Communication","description":"inter-plugin-communication","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"49c97151-b7f5-47d6-beaf-7b55fdb8fa40","gmt_create":"2026-03-03T07:57:09+04:00","gmt_modified":"2026-03-03T11:26:31+04:00"},{"catalog_id":"84b360c7-2115-43aa-89df-1205d4f6231d","title":"Protocol Library","description":"protocol-library","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"6b3de1c4-0bed-4a2d-8d01-764f3e44da73","gmt_create":"2026-03-03T07:57:42+04:00","gmt_modified":"2026-03-03T07:57:42+04:00"},{"catalog_id":"4c416b5d-aa43-481c-8f93-4a4adc187368","title":"Block Processing and Validation","description":"block-processing","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"d41ddaa7-6738-4106-a9f2-4b3bd859bed7","gmt_create":"2026-03-03T07:57:58+04:00","gmt_modified":"2026-03-05T10:59:59+04:00"},{"catalog_id":"f6d69197-00f2-46b3-878a-cd582ffb1d49","title":"Code Coverage Analysis","description":"code-coverage-analysis","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"cb59c51f-940a-480e-bdcc-b9d709e0628b","gmt_create":"2026-03-03T07:58:43+04:00","gmt_modified":"2026-03-03T07:58:43+04:00"},{"catalog_id":"71349e72-2b07-471a-b7f2-b7299a4cb550","title":"Build Helper Tools","description":"build-helpers","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"be2e8184-d028-4124-9ff1-fb18116037f4","gmt_create":"2026-03-03T07:58:47+04:00","gmt_modified":"2026-04-21T16:26:14+04:00"},{"catalog_id":"784fdef7-9bb2-4ad3-b289-8c8c9c87cd84","title":"Transaction Debugging Tools","description":"transaction-debugging-tools","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"cf9a052e-4ced-484d-9869-1efdf69938cc","gmt_create":"2026-03-03T07:59:59+04:00","gmt_modified":"2026-03-03T07:59:59+04:00"},{"catalog_id":"f1b217ef-ee0b-489a-a789-210eefb1e0cc","title":"Node Types and Configurations","description":"node-types-configurations","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"4cae5d6e-a5e4-4917-b754-94b739f7810b","gmt_create":"2026-03-03T08:00:19+04:00","gmt_modified":"2026-04-21T15:32:31+04:00"},{"catalog_id":"ec0d76b5-8e74-4c98-b524-78e50c91d776","title":"Custom Plugin Development","description":"custom-plugin-development","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"722769d8-4964-4378-8c18-75ab09381d8b","gmt_create":"2026-03-03T08:00:20+04:00","gmt_modified":"2026-03-03T08:00:21+04:00"},{"catalog_id":"78c9439b-6aef-43ff-9057-0036ee0ac803","title":"API Request Processing","description":"api-request-handling","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"bda7f43f-72e8-4bad-8b62-29e516c0f71e","gmt_create":"2026-03-03T08:01:46+04:00","gmt_modified":"2026-03-03T08:01:46+04:00"},{"catalog_id":"7108377f-502b-47c6-be02-3765463aed1a","title":"Docker Integration","description":"docker-integration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"49dd986a-a01e-4faf-9e42-2278b298e7d2","gmt_create":"2026-03-03T08:02:06+04:00","gmt_modified":"2026-04-17T10:15:28+04:00"},{"catalog_id":"0c9b41bf-680e-40eb-a163-c34a13239b1b","title":"Service Integration","description":"service-integration","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"e3283c06-b90c-4e16-ace9-dfe813416c46","gmt_create":"2026-03-03T08:03:49+04:00","gmt_modified":"2026-03-03T08:03:49+04:00"},{"catalog_id":"0fad8a36-dd0a-4bed-9aca-d2b8d4aaa713","title":"Network Library","description":"network-library","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"b37927e4-88c1-4fe1-afa6-b1368bf27344","gmt_create":"2026-03-03T08:03:52+04:00","gmt_modified":"2026-04-23T12:16:50.9986922+04:00"},{"catalog_id":"61ea749d-b063-45cd-bf3e-d8562ba34696","title":"Network Debugging Capabilities","description":"network-debugging-capabilities","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"0afed60c-5a1d-4eca-8198-c13c66fa3a87","gmt_create":"2026-03-03T08:04:07+04:00","gmt_modified":"2026-03-03T08:04:07+04:00"},{"catalog_id":"92bf8d74-e2d5-4408-b1a9-70d326484879","title":"Event-Driven Communication Patterns","description":"event-driven-architecture","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"7e2fa0ba-5607-4eaa-89f6-28498cf7f9cf","gmt_create":"2026-03-03T08:05:24+04:00","gmt_modified":"2026-03-03T08:05:24+04:00"},{"catalog_id":"19cf79d5-d0e6-4e4f-93ec-1199f0967648","title":"Plugin API Design Patterns","description":"plugin-api-patterns","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"4a9be427-bea8-4544-b878-a7bd4d6fe135","gmt_create":"2026-03-03T08:05:51+04:00","gmt_modified":"2026-03-03T08:05:51+04:00"},{"catalog_id":"97020392-6c50-402b-9313-1919a2deb4c3","title":"Cross-Platform Compilation","description":"cross-platform-compilation","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"06e7bdba-7c63-40f1-a827-186765fa6634","gmt_create":"2026-03-03T08:06:47+04:00","gmt_modified":"2026-03-03T08:06:47+04:00"},{"catalog_id":"e1585c0a-e5e5-4e43-b30d-a898c0509afe","title":"Wallet Library","description":"wallet-library","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"f10d3fa8-832c-4f96-9ebf-3c06f2b35f4f","gmt_create":"2026-03-03T08:07:16+04:00","gmt_modified":"2026-03-07T21:45:11+04:00"},{"catalog_id":"1d376f80-f865-42b4-84b5-f59e5649be28","title":"Performance Profiling Utilities","description":"performance-profiling-utilities","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"115908bf-b23e-425a-a465-14deca30a28b","gmt_create":"2026-03-03T08:08:06+04:00","gmt_modified":"2026-03-03T08:08:06+04:00"},{"catalog_id":"43ca18bb-016d-4bfa-93da-7fc744208224","title":"Security Hardening","description":"security-hardening","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"0fe3bef0-ce62-4c69-9e42-2c4279692ce5","gmt_create":"2026-03-03T08:08:09+04:00","gmt_modified":"2026-03-03T08:08:09+04:00"},{"catalog_id":"b0c3043d-8903-4031-a3c4-05f5d11f328c","title":"Core Build Options","description":"core-build-options","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"1253118c-3895-484a-8833-f8a75ad484cc","gmt_create":"2026-03-03T08:11:41+04:00","gmt_modified":"2026-03-03T08:11:41+04:00"},{"catalog_id":"e4c9debd-e4c1-487d-ac92-79cdf3462b04","title":"Node Management","description":"node-management","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"f28ee86a-fca4-470c-8556-7a946ee49c7d","gmt_create":"2026-03-03T08:11:43+04:00","gmt_modified":"2026-04-23T08:46:18.362368+04:00"},{"catalog_id":"907f8692-5249-4ebe-a7bf-bcec7a632dad","title":"Database Management","description":"database-management","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"67bce420-e9f6-4b70-b83a-d19411a2f09e","gmt_create":"2026-03-03T08:12:40+04:00","gmt_modified":"2026-04-23T09:42:13.8987183+04:00"},{"catalog_id":"1e7db280-3b51-40ee-b96d-120b47d151f4","title":"Code Assembly Tools","description":"code-assembly-tools","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"19eb036e-1e87-426d-a5f0-911d5e1b48d6","gmt_create":"2026-03-03T08:13:01+04:00","gmt_modified":"2026-03-03T08:13:01+04:00"},{"catalog_id":"ead3ca09-d5e2-40f4-89b7-f3c2aef06cfb","title":"Production Dockerfile","description":"production-dockerfile","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"0cfd47e1-c711-4b9e-88f1-3f1d0f6fd470","gmt_create":"2026-03-03T08:13:22+04:00","gmt_modified":"2026-03-03T08:13:22+04:00"},{"catalog_id":"76b6850c-bbb5-47bb-a081-cecd5efc626e","title":"Transaction Processing","description":"transaction-processing","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"c965ea0e-3788-4399-b1ad-a28b56e711c8","gmt_create":"2026-03-03T08:14:41+04:00","gmt_modified":"2026-03-03T08:14:41+04:00"},{"catalog_id":"f290b164-f8e8-427a-a32d-700fe50d1868","title":"Object Model and Persistence","description":"object-model","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"c7648a28-5402-4b7e-8491-fb811d7b2518","gmt_create":"2026-03-03T08:15:23+04:00","gmt_modified":"2026-03-03T08:15:23+04:00"},{"catalog_id":"f98a762d-2c67-470e-81a6-f7843765c3cd","title":"Peer Connection Management","description":"peer-connection","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3d4850df-edca-433b-93aa-7b4e8b2ca3da","gmt_create":"2026-03-03T08:16:05+04:00","gmt_modified":"2026-04-23T09:39:39.5088209+04:00"},{"catalog_id":"1d8f9a74-606b-4430-b8f7-521d9602e384","title":"Platform Configurations","description":"platform-configurations","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"d29576a1-94e5-4cc8-b6db-a26233208c1b","gmt_create":"2026-03-03T08:16:10+04:00","gmt_modified":"2026-04-17T10:42:56+04:00"},{"catalog_id":"f7f97c5a-7a7b-4b53-be0b-993c608c268e","title":"Testnet Dockerfile","description":"testnet-dockerfile","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"48472fb0-8fb1-4c18-beaa-d528e772ad06","gmt_create":"2026-03-03T08:17:07+04:00","gmt_modified":"2026-03-03T08:17:07+04:00"},{"catalog_id":"7abb1792-73ee-444c-a732-4b64ee88f22c","title":"Reflection Validation Tools","description":"reflection-validation","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"8ab5afd9-a2c3-4a4b-bebc-8a4c9c6b3c83","gmt_create":"2026-03-03T08:17:31+04:00","gmt_modified":"2026-03-03T08:17:31+04:00"},{"catalog_id":"f5c3d1ac-1375-4c51-9683-542e2309c154","title":"Authority Management","description":"authority-management","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"96d18f3b-75bc-4b99-b280-3f74888d4d89","gmt_create":"2026-03-03T08:17:58+04:00","gmt_modified":"2026-03-03T08:17:58+04:00"},{"catalog_id":"33a7db07-2dc5-4def-a181-8ece479e6ceb","title":"Dependency Management","description":"dependency-management","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"2c40d2b3-38f4-4d9b-8c7f-04e238f0f5c0","gmt_create":"2026-03-03T08:19:13+04:00","gmt_modified":"2026-04-19T22:00:10+04:00"},{"catalog_id":"8f172067-7581-44fa-b206-fd5819df8d83","title":"Fork Resolution and Consensus","description":"fork-resolution","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"995e608b-33c4-4619-ad28-cdb33c1fee75","gmt_create":"2026-03-03T08:19:55+04:00","gmt_modified":"2026-04-21T15:32:34+04:00"},{"catalog_id":"9a2b1ed3-9679-4f74-9819-f04abf116d7c","title":"Message Handling and Protocol","description":"message-handling","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"fe73f758-2211-4ca5-91c7-8e3ca561726f","gmt_create":"2026-03-03T08:20:04+04:00","gmt_modified":"2026-03-03T08:20:04+04:00"},{"catalog_id":"8fef3afb-835c-46af-aff9-07f9f40c0eec","title":"Low-Memory Dockerfile","description":"low-memory-dockerfile","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"ff07e431-2871-4c03-9a48-df11b1c2d509","gmt_create":"2026-03-03T08:20:43+04:00","gmt_modified":"2026-03-03T08:20:43+04:00"},{"catalog_id":"e8c2ec9c-8772-48dc-adb5-7fa5a8b796cb","title":"Plugin Development Tools","description":"plugin-development-tools","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"e9e4bec3-52c1-48e0-a514-51709f4313f3","gmt_create":"2026-03-03T08:21:29+04:00","gmt_modified":"2026-03-03T08:21:29+04:00"},{"catalog_id":"9d8e68ae-a4a3-461e-947d-bfe4e0449f8f","title":"Block Structures","description":"block-structures","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3fd0ef61-a22e-47a1-a06e-fd6321efc9cd","gmt_create":"2026-03-03T08:21:50+04:00","gmt_modified":"2026-03-03T08:21:50+04:00"},{"catalog_id":"7d9d43c7-98c7-43bb-97e7-3d8e74b43f29","title":"Block Processing and Validation","description":"block-processing","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"656aa75c-bf21-48c1-b44c-4dcab2afee14","gmt_create":"2026-03-03T08:22:26+04:00","gmt_modified":"2026-04-20T08:23:26+04:00"},{"catalog_id":"cf3cedf1-9b9e-41a4-bbf0-94bcb29b6e8b","title":"Build Targets","description":"build-targets","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"dbb85b90-521b-4020-9481-157cbbf219f3","gmt_create":"2026-03-03T08:23:32+04:00","gmt_modified":"2026-03-03T08:23:32+04:00"},{"catalog_id":"2623c72a-ca9b-44fa-9b7d-de0c2d64b8c0","title":"Transport Layer and Sockets","description":"transport-layer","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"75b86f21-0ff1-48aa-91f6-8385cce6206d","gmt_create":"2026-03-03T08:24:00+04:00","gmt_modified":"2026-03-03T08:24:00+04:00"},{"catalog_id":"fda1e981-233a-4634-994b-5314629e18d7","title":"MongoDB Integration Dockerfile","description":"mongo-dockerfile","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"30d5a5ec-65f1-4bb4-9d03-adf9cee17919","gmt_create":"2026-03-03T08:24:06+04:00","gmt_modified":"2026-03-03T08:24:06+04:00"},{"catalog_id":"9c398ca5-a783-434b-a1a3-3791e3328f43","title":"Schema Generation Tools","description":"schema-generation-tools","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"297b7a79-d227-41a0-bb25-238963d7cc1f","gmt_create":"2026-03-03T08:24:57+04:00","gmt_modified":"2026-03-03T08:24:57+04:00"},{"catalog_id":"1d874657-e407-402d-adae-077a51576f74","title":"Data Types and Serialization","description":"data-types-serialization","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"872e2ac3-5c14-42c9-a3bb-38a8c46709fa","gmt_create":"2026-03-03T08:25:53+04:00","gmt_modified":"2026-03-03T08:25:53+04:00"},{"catalog_id":"33f77581-8eb1-4711-bfca-7bd928215b93","title":"Transaction Processing","description":"transaction-processing","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"6852cf61-cd7b-42c3-95c0-829c87723676","gmt_create":"2026-03-03T08:26:05+04:00","gmt_modified":"2026-03-03T08:26:05+04:00"},{"catalog_id":"0d06257c-c8ed-49ce-b5f0-024a8f1c62a4","title":"GitHub Actions CI/CD Pipeline","description":"github-actions-ci","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"bf906e37-8997-4f06-a99f-26dba3f43293","gmt_create":"2026-03-03T08:27:16+04:00","gmt_modified":"2026-03-03T08:27:16+04:00"},{"catalog_id":"10042579-7fa9-4a92-843f-47cb5ec8d3c7","title":"Peer Database and Discovery","description":"peer-database","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"40533d38-e516-4c32-be8b-d1775c29cffd","gmt_create":"2026-03-03T08:27:29+04:00","gmt_modified":"2026-03-03T08:27:29+04:00"},{"catalog_id":"c4d28611-5059-40a7-aaa1-5d528cfc98f5","title":"Operations Definition","description":"operations-definition","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"3db17a7d-046c-4234-a9c3-2a0c3829f9e1","gmt_create":"2026-03-03T08:29:14+04:00","gmt_modified":"2026-03-03T08:29:14+04:00"},{"catalog_id":"dbfad48a-6488-4507-b5ff-beca8277f9a8","title":"Snapshot Plugin System","description":"snapshot-plugin","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"fcb075ef-b146-4755-ab58-212aed8a9478","gmt_create":"2026-04-13T16:01:32+04:00","gmt_modified":"2026-04-23T12:18:55.6134455+04:00"},{"catalog_id":"584caaf9-1fda-48e4-b063-7384435a48c1","title":"DLT Rolling Block Log","description":"dlt-block-log","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"f6b39e62-2b94-459e-8a9c-d731c54bcde6","gmt_create":"2026-04-13T16:03:19+04:00","gmt_modified":"2026-04-20T10:26:23+04:00"},{"catalog_id":"5a98a33e-b415-44f7-a50b-243d65c44f26","title":"Witness","description":"witness","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"71aaa436-aad3-4787-baed-4c1b3bb0c4de","gmt_create":"2026-04-13T21:25:30+04:00","gmt_modified":"2026-04-20T08:24:42+04:00"},{"catalog_id":"561c0ee5-a6f2-4d57-94f0-ed48f69e6b27","title":"Webserver Plugin","description":"webserver-plugin","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"1b7649ec-0801-4443-a7d2-2d5fe5215d76","gmt_create":"2026-04-14T09:29:12+04:00","gmt_modified":"2026-04-17T10:16:56+04:00"},{"catalog_id":"5839c539-10e8-46ae-b351-965f9b43d732","title":"Block Log Reader Module","description":"block-log-reader-module","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"a8c70538-5565-4aff-b524-86870480084b","gmt_create":"2026-04-14T14:41:40+04:00","gmt_modified":"2026-04-14T14:41:40+04:00"},{"catalog_id":"dbfad48a-6488-4507-b5ff-beca8277f9a8","title":"Snapshot Plugin System","description":"snapshot-plugin","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"9d3780f6-5f89-404f-acb7-3406999412cc","gmt_create":"2026-04-16T12:35:54+04:00","gmt_modified":"2026-04-23T12:18:55.6134455+04:00"},{"catalog_id":"c88165cb-4289-4933-9556-c797cd9b370e","title":"Build Helper Scripts","description":"build-helpers","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"1bd79ab7-a87d-4140-baf9-d7dced2080cf","gmt_create":"2026-04-19T22:03:11+04:00","gmt_modified":"2026-04-19T22:03:11+04:00"},{"catalog_id":"de01e4c3-0826-4bc7-abb2-ff569ab8d352","title":"Emergency Consensus System","description":"emergency-consensus-system","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"9efd1632-3b7e-478a-8ec9-b8f6901bc80a","gmt_create":"2026-04-20T06:59:08+04:00","gmt_modified":"2026-04-21T14:58:41+04:00"},{"catalog_id":"0d7e1eb6-3349-497c-b241-19a16d373373","title":"Chain Plugin","description":"chain-plugin","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"24860970-0f03-410e-affd-663c8c6ad7b8","gmt_create":"2026-04-20T08:56:19+04:00","gmt_modified":"2026-04-21T18:25:29+04:00"},{"catalog_id":"74975776-340c-4463-92f2-6e949c1301d0","title":"NTP Synchronization System","description":"ntp-synchronization-system","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"581fc583-ffba-4ea2-9db6-f6ef47a37749","gmt_create":"2026-04-21T15:59:39+04:00","gmt_modified":"2026-04-21T16:27:59+04:00"},{"catalog_id":"cadab21b-6f75-4c9f-a0b6-d884627bd20f","title":"Memory Management System","description":"memory-management-system","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"297ae328-3c35-473b-b605-27f95b1a62f3","gmt_create":"2026-04-23T07:24:03.9850107+04:00","gmt_modified":"2026-04-23T07:24:03.9862964+04:00"},{"catalog_id":"27ea703c-98e3-4cd3-8c11-ffa41b7b3fc1","title":"P2p Plugin","description":"p2p-plugin","extend":"{}","progress_status":"completed","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","id":"12cb9691-a8bc-48e2-b37c-a14b148beb07","gmt_create":"2026-04-23T11:53:01.9886095+04:00","gmt_modified":"2026-04-23T11:53:01.9908822+04:00"}],"wiki_overview":{"content":"\u003cblog\u003e\n\n# VIZ CPP Node - Comprehensive Project Analysis\n\n## 1. Project Introduction\n\n### Purpose Statement\nVIZ is a C++ implementation of a decentralized blockchain node designed for the VIZ World platform. It serves as a full consensus node that validates transactions, maintains the blockchain state, and provides APIs for interacting with the distributed ledger system.\n\n### Core Goals and Objectives\n- **Consensus Validation**: Maintain blockchain integrity through cryptographic verification and consensus mechanisms\n- **Network Participation**: Act as a peer-to-peer node in the VIZ network infrastructure\n- **API Provision**: Expose comprehensive JSON-RPC APIs for external applications and wallets\n- **Extensibility**: Support modular plugin architecture for specialized functionality\n- **Performance**: Optimize for both full node operations and lightweight consensus-only modes\n\n### Target Audience\n- Blockchain developers building applications on VIZ\n- Node operators running full nodes or witness nodes\n- Wallet developers integrating with VIZ blockchain\n- Researchers studying blockchain consensus mechanisms\n\n## 2. Technical Architecture\n\n### Component Breakdown\n\nThe VIZ project follows a modular architecture built on the appbase framework:\n\n```mermaid\ngraph TD\n A[VIZ Node] --\u003e B[Core Libraries]\n A --\u003e C[Plugins]\n A --\u003e D[Programs]\n \n B --\u003e E[Chain Library]\n B --\u003e F[Protocol Library]\n B --\u003e G[Network Library]\n B --\u003e H[Wallet Library]\n \n C --\u003e I[Chain Plugin]\n C --\u003e J[P2P Plugin]\n C --\u003e K[Webserver Plugin]\n C --\u003e L[Database API Plugin]\n C --\u003e M[JSON-RPC Plugin]\n \n D --\u003e N[vizd - Full Node]\n D --\u003e O[cli_wallet - CLI Wallet]\n D --\u003e P[js_operation_serializer - Tools]\n```\n\n### Design Patterns\n\n**Plugin Architecture**: The project extensively uses the appbase plugin system, allowing modular functionality through independent plugins that can be enabled/disabled at runtime.\n\n**Database Pattern**: Chainbase provides an object-oriented database abstraction layer, enabling efficient blockchain state management.\n\n**Observer Pattern**: Event-driven architecture through Boost.Signals2 for handling blockchain events and state changes.\n\n### System Relationships\n\n```mermaid\nsequenceDiagram\n participant Client\n participant Webserver\n participant JSON_RPC\n participant Chain\n participant Database\n \n Client-\u003e\u003e+Webserver: HTTP Request\n Webserver-\u003e\u003e+JSON_RPC: Parse JSON-RPC\n JSON_RPC-\u003e\u003e+Chain: Validate Operation\n Chain-\u003e\u003e+Database: Query State\n Database--\u003e\u003e-Chain: Return Data\n Chain--\u003e\u003e-JSON_RPC: Process Result\n JSON_RPC--\u003e\u003e-Webserver: JSON Response\n Webserver--\u003e\u003e-Client: HTTP Response\n```\n\n### Data Flow Diagrams\n\n```mermaid\nflowchart TD\n A[Transaction Input] --\u003e B[JSON-RPC Parser]\n B --\u003e C[Operation Validation]\n C --\u003e D[Authority Verification]\n D --\u003e E[State Application]\n E --\u003e F[Block Production]\n F --\u003e G[P2P Broadcasting]\n \n H[Block Input] --\u003e I[Block Validation]\n I --\u003e J[Fork Resolution]\n J --\u003e K[State Commit]\n K --\u003e L[Peer Sync]\n```\n\n## 3. Key Implementation\n\n### Main Entry Points\n\n**Primary Node Entry Point**: `programs/vizd/main.cpp`\n- Initializes the application with core plugins\n- Configures logging and command-line options\n- Manages plugin lifecycle and startup sequence\n\n**Configuration Management**: `share/vizd/config/config.ini`\n- Network settings (P2P endpoints, webserver ports)\n- Plugin activation and configuration\n- Performance tuning parameters\n- Logging configuration sections\n\n### Core Modules\n\n**Database Layer**: `libraries/chain/include/graphene/chain/database.hpp`\n- Blockchain state management\n- Object persistence and retrieval\n- Fork database handling\n- Transaction validation pipeline\n\n**Protocol Definitions**: `libraries/protocol/include/graphene/protocol/operations.hpp`\n- Complete operation type definitions\n- Transaction structure validation\n- Authority requirement calculation\n- Virtual operation handling\n\n**Plugin System**: `plugins/chain/include/graphene/plugins/chain/plugin.hpp`\n- Core blockchain functionality\n- Block acceptance and validation\n- Transaction processing\n- Index management\n\n### Configuration Approach\n\n**Build Configuration**: `CMakeLists.txt`\n- Cross-platform compilation support\n- Compiler-specific optimizations\n- Feature toggles (testnet, low-memory)\n- Dependency management\n\n**Runtime Configuration**: `share/vizd/config/config.ini`\n- Plugin enable/disable directives\n- Network connectivity settings\n- Performance tuning parameters\n- Logging configuration sections\n\n### External Dependencies\n\n**Third-party Libraries**: `thirdparty/CMakeLists.txt`\n- appbase: Application framework foundation\n- fc: Fast Crypto library for networking and cryptography\n- chainbase: High-performance object database\n\n**Build Dependencies**:\n- Boost 1.57+: Core C++ utilities\n- OpenSSL: Cryptographic operations\n- CMake: Build system\n- Platform-specific toolchains\n\n### Integration Points\n\n**P2P Network**: `plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp`\n- Peer discovery and connection management\n- Block and transaction propagation\n- Network protocol compliance\n\n**Web API**: `plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp`\n- HTTP/HTTPS server implementation\n- WebSocket support for real-time updates\n- JSON-RPC 2.0 compliance\n\n**Database API**: `plugins/database_api/include/graphene/plugins/database_api/plugin.hpp`\n- Comprehensive blockchain state queries\n- Account and transaction history\n- Market data and governance information\n\n### Component Relationship Diagrams\n\n```mermaid\ngraph LR\n A[Chain Plugin] --\u003e B[Database Layer]\n A --\u003e C[P2P Plugin]\n D[Webserver Plugin] --\u003e E[JSON-RPC Plugin]\n E --\u003e A\n F[Database API Plugin] --\u003e A\n G[Account History Plugin] --\u003e A\n H[Tags Plugin] --\u003e A\n I[Follow Plugin] --\u003e A\n```\n\n## 4. Key Features\n\n### Functionality Overview\n\n**Blockchain Consensus**: Full validation of blocks and transactions according to VIZ protocol rules\n**Network Participation**: Active participation in the peer-to-peer network with configurable connectivity\n**API Exposure**: Comprehensive JSON-RPC APIs covering all blockchain functionality\n**Plugin Extensibility**: Modular architecture supporting specialized functionality through plugins\n**Performance Optimization**: Configurable memory usage and processing modes for different node types\n\n### Implementation Highlights\n\n**Modular Plugin System**: `plugins/*/include/graphene/plugins/*/plugin.hpp`\n- Independent plugin development and deployment\n- Runtime plugin loading/unloading\n- Inter-plugin communication through appbase framework\n\n**High-performance Database**: `libraries/chain/database.cpp`\n- Optimized object storage and retrieval\n- Efficient fork resolution algorithms\n- Memory-mapped file support for large datasets\n\n**Comprehensive API Coverage**: `plugins/database_api/api.cpp`\n- Complete blockchain state queries\n- Historical data access\n- Real-time event streaming\n\n### Feature Architecture Diagrams\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e Initializing\n Initializing --\u003e Syncing: Start Node\n Syncing --\u003e Live: Catch Up Complete\n Live --\u003e Producing: Witness Enabled\n Live --\u003e Listening: Normal Mode\n Producing --\u003e Live: Block Production\n Listening --\u003e Live: New Blocks\n Live --\u003e [*]: Shutdown\n \n Syncing --\u003e [*]: Error\n Live --\u003e [*]: Error\n```\n\n**Development Workflow**: `documentation/building.md`\n- Cross-platform build system\n- Docker containerization support\n- Automated testing and CI/CD integration\n- Release packaging and distribution\n\n**Testing Infrastructure**: `documentation/testing.md`\n- Unit test framework integration\n- Integration testing capabilities\n- Performance benchmarking tools\n- Continuous integration workflows\n\n## 5. Conclusion and Recommendations\n\n### Project Architecture Summary\n\nThe VIZ CPP Node demonstrates a well-architected blockchain implementation with several key strengths:\n\n- **Modular Design**: Clean separation of concerns through the plugin architecture enables easy maintenance and feature development\n- **Performance Focus**: Multiple optimization modes (full node vs. low-memory) accommodate diverse deployment scenarios\n- **Comprehensive API**: Broad coverage of blockchain functionality through standardized JSON-RPC interfaces\n- **Cross-platform Compatibility**: Robust build system supporting multiple operating systems and compilers\n\n### Architectural Strengths\n\n1. **Scalability**: Plugin-based architecture allows selective feature activation based on node requirements\n2. **Maintainability**: Clear module boundaries facilitate independent development and testing\n3. **Interoperability**: Standardized JSON-RPC interface enables seamless integration with external applications\n4. **Reliability**: Comprehensive error handling and logging throughout the system\n\n### Potential Improvement Areas\n\n1. **Documentation**: Enhanced inline documentation would improve code maintainability\n2. **Testing Coverage**: Expanded unit and integration test suites would increase confidence in changes\n3. **Monitoring**: Additional metrics and health check endpoints would improve operational visibility\n4. **Security**: Regular security audits and vulnerability assessments should be integrated into the development process\n\n### Actionable Recommendations\n\n1. **Implement Comprehensive Logging**: Add structured logging with correlation IDs for better debugging\n2. **Enhance Test Coverage**: Target 80%+ code coverage across all modules\n3. **Performance Monitoring**: Integrate metrics collection for key performance indicators\n4. **Security Hardening**: Implement regular security assessments and dependency updates\n5. **Developer Experience**: Create comprehensive developer guides and example applications\n\n### Next Steps for Project Evolution\n\n1. **Microservices Migration**: Consider breaking down monolithic components into microservices for better scalability\n2. **Cloud-native Deployment**: Enhance Kubernetes support and cloud-native features\n3. **Advanced Analytics**: Implement real-time analytics and reporting capabilities\n4. **Mobile Integration**: Develop mobile SDKs for broader ecosystem adoption\n5. **Community Development**: Establish contributor guidelines and development workflows\n\n---\n\n**Sources:**\n- [CMakeLists.txt](CMakeLists.txt)\n- [main.cpp](programs/vizd/main.cpp)\n- [database.hpp](libraries/chain/include/graphene/chain/database.hpp)\n- [operations.hpp](libraries/protocol/include/graphene/protocol/operations.hpp)\n- [plugin.hpp](plugins/chain/include/graphene/plugins/chain/plugin.hpp)\n- [config.ini](share/vizd/config/config.ini)\n- [building.md](documentation/building.md)\n- [plugin.hpp](plugins/database_api/include/graphene/plugins/database_api/plugin.hpp)\n- [p2p_plugin.hpp](plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp)\n- [webserver_plugin.hpp](plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp)\n- [CMakeLists.txt](thirdparty/CMakeLists.txt)\n\n\u003c/blog\u003e","gmt_create":"2026-03-03T07:24:05+04:00","gmt_modified":"2026-03-03T07:24:05+04:00","id":"803607e7-6a8a-4c9b-afb1-d634ded301a2","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6"},"wiki_readme":{"content":"No readme file","gmt_create":"2026-03-03T07:22:14+04:00","gmt_modified":"2026-03-03T07:22:14+04:00","id":"6149adec-82d6-4736-a18a-62862d0820c7","repo_id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6"},"wiki_repo":{"id":"c5610a51-36c1-4fcd-9a18-9ce91fff8be6","name":"viz-cpp-node","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── .github\\\\workflows\\\\\\n│ ├── docker-main.yml\\n│ └── docker-pr-build.yml\\n├── .qoder\\\\\\n│ ├── agents\\\\\\n│ └── skills\\\\\\n├── documentation\\\\\\n│ ├── doxygen\\\\\\n│ │ ├── images\\\\\\n│ │ │ └── viz.png\\n│ │ ├── DoxygenLayout.xml\\n│ │ ├── customdoxygen.css\\n│ │ ├── footer.html\\n│ │ └── header.html\\n│ ├── api_notes.md\\n│ ├── building.md\\n│ ├── debug_node_plugin.md\\n│ ├── git_guildelines.md\\n│ ├── plugin.md\\n│ ├── testing.md\\n│ └── testnet.md\\n├── libraries\\\\\\n│ ├── api\\\\\\n│ │ ├── include\\\\graphene\\\\api\\\\\\n│ │ │ ├── account_api_object.hpp\\n│ │ │ ├── account_vote.hpp\\n│ │ │ ├── chain_api_properties.hpp\\n│ │ │ ├── committee_api_object.hpp\\n│ │ │ ├── content_api_object.hpp\\n│ │ │ ├── discussion.hpp\\n│ │ │ ├── discussion_helper.hpp\\n│ │ │ ├── invite_api_object.hpp\\n│ │ │ ├── paid_subscription_api_object.hpp\\n│ │ │ ├── vote_state.hpp\\n│ │ │ └── witness_api_object.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── account_api_object.cpp\\n│ │ ├── chain_api_properties.cpp\\n│ │ ├── committee_api_object.cpp\\n│ │ ├── content_api_object.cpp\\n│ │ ├── discussion_helper.cpp\\n│ │ ├── invite_api_object.cpp\\n│ │ ├── paid_subscription_api_object.cpp\\n│ │ └── witness_api_object.cpp\\n│ ├── chain\\\\\\n│ │ ├── hardfork.d\\\\\\n│ │ │ ├── 0-preamble.hf\\n│ │ │ ├── 1.hf\\n│ │ │ ├── 10.hf\\n│ │ │ ├── 11.hf\\n│ │ │ ├── 2.hf\\n│ │ │ ├── 3.hf\\n│ │ │ ├── 4.hf\\n│ │ │ ├── 5.hf\\n│ │ │ ├── 6.hf\\n│ │ │ ├── 7.hf\\n│ │ │ ├── 8.hf\\n│ │ │ └── 9.hf\\n│ │ ├── include\\\\graphene\\\\chain\\\\\\n│ │ │ ├── account_object.hpp\\n│ │ │ ├── block_log.hpp\\n│ │ │ ├── block_summary_object.hpp\\n│ │ │ ├── chain_evaluator.hpp\\n│ │ │ ├── chain_object_types.hpp\\n│ │ │ ├── chain_objects.hpp\\n│ │ │ ├── committee_objects.hpp\\n│ │ │ ├── compound.hpp\\n│ │ │ ├── content_object.hpp\\n│ │ │ ├── custom_operation_interpreter.hpp\\n│ │ │ ├── database.hpp\\n│ │ │ ├── database_exceptions.hpp\\n│ │ │ ├── db_with.hpp\\n│ │ │ ├── evaluator.hpp\\n│ │ │ ├── evaluator_registry.hpp\\n│ │ │ ├── fork_database.hpp\\n│ │ │ ├── generic_custom_operation_interpreter.hpp\\n│ │ │ ├── global_property_object.hpp\\n│ │ │ ├── immutable_chain_parameters.hpp\\n│ │ │ ├── index.hpp\\n│ │ │ ├── invite_objects.hpp\\n│ │ │ ├── node_property_object.hpp\\n│ │ │ ├── operation_notification.hpp\\n│ │ │ ├── paid_subscription_objects.hpp\\n│ │ │ ├── proposal_object.hpp\\n│ │ │ ├── shared_authority.hpp\\n│ │ │ ├── shared_db_merkle.hpp\\n│ │ │ ├── transaction_object.hpp\\n│ │ │ └── witness_objects.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── block_log.cpp\\n│ │ ├── chain_evaluator.cpp\\n│ │ ├── chain_objects.cpp\\n│ │ ├── chain_properties_evaluators.cpp\\n│ │ ├── committee_evaluator.cpp\\n│ │ ├── database.cpp\\n│ │ ├── database_proposal_object.cpp\\n│ │ ├── fork_database.cpp\\n│ │ ├── invite_evaluator.cpp\\n│ │ ├── paid_subscription_evaluator.cpp\\n│ │ ├── proposal_evaluator.cpp\\n│ │ ├── proposal_object.cpp\\n│ │ ├── shared_authority.cpp\\n│ │ └── transaction_object.cpp\\n│ ├── network\\\\\\n│ │ ├── include\\\\graphene\\\\network\\\\\\n│ │ │ ├── config.hpp\\n│ │ │ ├── core_messages.hpp\\n│ │ │ ├── exceptions.hpp\\n│ │ │ ├── message.hpp\\n│ │ │ ├── message_oriented_connection.hpp\\n│ │ │ ├── node.hpp\\n│ │ │ ├── peer_connection.hpp\\n│ │ │ ├── peer_database.hpp\\n│ │ │ └── stcp_socket.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── core_messages.cpp\\n│ │ ├── message_oriented_connection.cpp\\n│ │ ├── node.cpp\\n│ │ ├── peer_connection.cpp\\n│ │ ├── peer_database.cpp\\n│ │ └── stcp_socket.cpp\\n│ ├── protocol\\\\\\n│ │ ├── include\\\\graphene\\\\protocol\\\\\\n│ │ │ ├── README.md\\n│ │ │ ├── asset.hpp\\n│ │ │ ├── authority.hpp\\n│ │ │ ├── base.hpp\\n│ │ │ ├── block.hpp\\n│ │ │ ├── block_header.hpp\\n│ │ │ ├── chain_operations.hpp\\n│ │ │ ├── chain_virtual_operations.hpp\\n│ │ │ ├── config.hpp\\n│ │ │ ├── config_testnet.hpp\\n│ │ │ ├── exceptions.hpp\\n│ │ │ ├── get_config.hpp\\n│ │ │ ├── operation_util.hpp\\n│ │ │ ├── operation_util_impl.hpp\\n│ │ │ ├── operations.hpp\\n│ │ │ ├── proposal_operations.hpp\\n│ │ │ ├── protocol.hpp\\n│ │ │ ├── sign_state.hpp\\n│ │ │ ├── transaction.hpp\\n│ │ │ ├── types.hpp\\n│ │ │ └── version.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── asset.cpp\\n│ │ ├── authority.cpp\\n│ │ ├── block.cpp\\n│ │ ├── chain_operations.cpp\\n│ │ ├── get_config.cpp\\n│ │ ├── operation_util_impl.cpp\\n│ │ ├── operations.cpp\\n│ │ ├── proposal_operations.cpp\\n│ │ ├── sign_state.cpp\\n│ │ ├── transaction.cpp\\n│ │ ├── types.cpp\\n│ │ └── version.cpp\\n│ ├── time\\\\\\n│ │ ├── include\\\\graphene\\\\time\\\\\\n│ │ │ └── time.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── time.cpp\\n│ ├── utilities\\\\\\n│ │ ├── include\\\\graphene\\\\utilities\\\\\\n│ │ │ ├── git_revision.hpp\\n│ │ │ ├── key_conversion.hpp\\n│ │ │ ├── padding_ostream.hpp\\n│ │ │ ├── string_escape.hpp\\n│ │ │ ├── tempdir.hpp\\n│ │ │ └── words.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── git_revision.cpp.in\\n│ │ ├── key_conversion.cpp\\n│ │ ├── string_escape.cpp\\n│ │ ├── tempdir.cpp\\n│ │ └── words.cpp\\n│ ├── wallet\\\\\\n│ │ ├── include\\\\graphene\\\\wallet\\\\\\n│ │ │ ├── api_documentation.hpp\\n│ │ │ ├── reflect_util.hpp\\n│ │ │ ├── remote_node_api.hpp\\n│ │ │ └── wallet.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── Doxyfile.in\\n│ │ ├── api_documentation_standin.cpp\\n│ │ ├── generate_api_documentation.pl\\n│ │ └── wallet.cpp\\n│ └── CMakeLists.txt\\n├── plugins\\\\\\n│ ├── account_by_key\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\account_by_key\\\\\\n│ │ │ ├── account_by_key_objects.hpp\\n│ │ │ └── account_by_key_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── account_by_key_plugin.cpp\\n│ ├── account_history\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\account_history\\\\\\n│ │ │ ├── history_object.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── auth_util\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\auth_util\\\\\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── block_info\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\block_info\\\\\\n│ │ │ ├── block_info.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── chain\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\chain\\\\\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── committee_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\committee_api\\\\\\n│ │ │ └── committee_api.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── committee_api.cpp\\n│ ├── custom_protocol_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\custom_protocol_api\\\\\\n│ │ │ ├── custom_protocol_api.hpp\\n│ │ │ ├── custom_protocol_api_object.hpp\\n│ │ │ └── custom_protocol_api_visitor.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── custom_protocol_api.cpp\\n│ │ └── custom_protocol_api_visitor.cpp\\n│ ├── database_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\database_api\\\\\\n│ │ │ ├── api_objects\\\\\\n│ │ │ │ ├── account_recovery_request_api_object.hpp\\n│ │ │ │ ├── master_authority_history_api_object.hpp\\n│ │ │ │ └── proposal_api_object.hpp\\n│ │ │ ├── forward.hpp\\n│ │ │ ├── plugin.hpp\\n│ │ │ └── state.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── api.cpp\\n│ │ └── proposal_api_object.cpp\\n│ ├── debug_node\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\debug_node\\\\\\n│ │ │ ├── api_helper.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── follow\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\follow\\\\\\n│ │ │ ├── follow_api_object.hpp\\n│ │ │ ├── follow_evaluators.hpp\\n│ │ │ ├── follow_forward.hpp\\n│ │ │ ├── follow_objects.hpp\\n│ │ │ ├── follow_operations.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── follow_evaluators.cpp\\n│ │ ├── follow_operations.cpp\\n│ │ └── plugin.cpp\\n│ ├── invite_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\invite_api\\\\\\n│ │ │ └── invite_api.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── invite_api.cpp\\n│ ├── json_rpc\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\json_rpc\\\\\\n│ │ │ ├── plugin.hpp\\n│ │ │ └── utility.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── mongo_db\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\mongo_db\\\\\\n│ │ │ ├── mongo_db_operations.hpp\\n│ │ │ ├── mongo_db_plugin.hpp\\n│ │ │ ├── mongo_db_state.hpp\\n│ │ │ ├── mongo_db_types.hpp\\n│ │ │ └── mongo_db_writer.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── mongo_db_operations.cpp\\n│ │ ├── mongo_db_plugin.cpp\\n│ │ ├── mongo_db_state.cpp\\n│ │ ├── mongo_db_types.cpp\\n│ │ └── mongo_db_writer.cpp\\n│ ├── network_broadcast_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\network_broadcast_api\\\\\\n│ │ │ └── network_broadcast_api_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── network_broadcast_api.cpp\\n│ ├── operation_history\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\operation_history\\\\\\n│ │ │ ├── applied_operation.hpp\\n│ │ │ ├── history_object.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── applied_operation.cpp\\n│ │ └── plugin.cpp\\n│ ├── p2p\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\p2p\\\\\\n│ │ │ └── p2p_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── p2p_plugin.cpp\\n│ ├── paid_subscription_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\paid_subscription_api\\\\\\n│ │ │ └── paid_subscription_api.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── paid_subscription_api.cpp\\n│ ├── private_message\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\private_message\\\\\\n│ │ │ ├── private_message_evaluators.hpp\\n│ │ │ ├── private_message_objects.hpp\\n│ │ │ └── private_message_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── private_message_objects.cpp\\n│ │ └── private_message_plugin.cpp\\n│ ├── raw_block\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\raw_block\\\\\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── social_network\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\social_network\\\\\\n│ │ │ └── social_network.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── social_network.cpp\\n│ ├── tags\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\tags\\\\\\n│ │ │ ├── discussion_query.hpp\\n│ │ │ ├── plugin.hpp\\n│ │ │ ├── tag_api_object.hpp\\n│ │ │ ├── tag_visitor.hpp\\n│ │ │ ├── tags_object.hpp\\n│ │ │ └── tags_sort.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── discussion_query.cpp\\n│ │ ├── plugin.cpp\\n│ │ └── tag_visitor.cpp\\n│ ├── test_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\test_api\\\\\\n│ │ │ └── test_api_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── test_api_plugin.cpp\\n│ ├── webserver\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\webserver\\\\\\n│ │ │ └── webserver_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── webserver_plugin.cpp\\n│ ├── witness\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\witness\\\\\\n│ │ │ └── witness.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── witness.cpp\\n│ ├── witness_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\witness_api\\\\\\n│ │ │ ├── api_objects\\\\\\n│ │ │ │ ├── feed_history_api_object.hpp\\n│ │ │ │ └── witness_api_object.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ └── CMakeLists.txt\\n├── programs\\\\\\n│ ├── build_helpers\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ ├── cat-parts.cpp\\n│ │ ├── cat_parts.py\\n│ │ ├── check_reflect.py\\n│ │ └── configure_build.py\\n│ ├── cli_wallet\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ ├── js_operation_serializer\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ ├── size_checker\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ ├── util\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ ├── get_dev_key.cpp\\n│ │ ├── inflation_plot.py\\n│ │ ├── newplugin.py\\n│ │ ├── pretty_schema.py\\n│ │ ├── saltpass.py\\n│ │ ├── schema_test.cpp\\n│ │ ├── sign_digest.cpp\\n│ │ ├── sign_transaction.cpp\\n│ │ ├── test_block_log.cpp\\n│ │ └── test_shared_mem.cpp\\n│ ├── vizd\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ └── CMakeLists.txt\\n├── share\\\\vizd\\\\\\n│ ├── config\\\\\\n│ │ ├── config.ini\\n│ │ ├── config_debug.ini\\n│ │ ├── config_debug_mongo.ini\\n│ │ ├── config_mongo.ini\\n│ │ ├── config_stock_exchange.ini\\n│ │ ├── config_testnet.ini\\n│ │ └── config_witness.ini\\n│ ├── docker\\\\\\n│ │ ├── Dockerfile-lowmem\\n│ │ ├── Dockerfile-mongo\\n│ │ ├── Dockerfile-production\\n│ │ └── Dockerfile-testnet\\n│ ├── seednodes\\n│ ├── seednodes_empty\\n│ ├── snapshot-testnet.json\\n│ ├── snapshot.json\\n│ └── vizd.sh\\n├── thirdparty\\\\\\n│ ├── appbase\\\\\\n│ ├── chainbase\\\\\\n│ ├── fc\\\\\\n│ └── CMakeLists.txt\\n├── .gitignore\\n├── .gitmodules\\n├── .travis.yml\\n├── CMakeLists.txt\\n├── Doxyfile\\n├── LICENSE.md\\n└── README.md\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted: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","recovery_checkpoint":"incremental_processing","last_commit_id":"40886e44a5ee5d1878dc4aa3899754627cf45e0f","last_commit_update":"2026-04-23T12:18:56.2336846+04:00","gmt_create":"2026-03-03T06:42:09+04:00","gmt_modified":"2026-04-23T12:18:56.2336846+04:00","extend_info":"{\"language\":\"en\",\"active\":true,\"branch\":\"free-memory\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"0.8.2\"}"}} \ No newline at end of file +{"code_snippets":[{"id":"96ce9f46f6e7ab1d1796a1570b143b4a","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"111-120","gmt_create":"2026-04-25T14:03:59.2318105+04:00","gmt_modified":"2026-04-25T14:03:59.2318105+04:00"},{"id":"88d06c150b2e270f74f72c73afa3dfdb","path":"libraries/chain/fork_database.cpp","line_range":"80-87","gmt_create":"2026-04-25T14:03:59.2318105+04:00","gmt_modified":"2026-04-25T14:03:59.2318105+04:00"},{"id":"f7c681c365a691e831d5a36525f5948d","path":"libraries/chain/database.cpp","line_range":"1204-1270","gmt_create":"2026-04-25T14:03:59.2324765+04:00","gmt_modified":"2026-04-25T14:03:59.2324765+04:00"},{"id":"27f7c0a9d63e4674d5d7d89f5220889e","path":"plugins/witness/witness.cpp","line_range":"521-544","gmt_create":"2026-04-25T14:03:59.2324765+04:00","gmt_modified":"2026-04-25T14:03:59.2324765+04:00"},{"id":"a1973ec03428421db31f8d59ee34ee4c","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"1-144","gmt_create":"2026-04-25T14:03:59.2329811+04:00","gmt_modified":"2026-04-25T14:03:59.2329811+04:00"},{"id":"b57baf112df691ec97987a0848acbf11","path":"libraries/chain/fork_database.cpp","line_range":"1-278","gmt_create":"2026-04-25T14:03:59.2329811+04:00","gmt_modified":"2026-04-25T14:03:59.2329811+04:00"},{"id":"b2e1b7d2c8e77c9cc485da31d5ece695","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"1-200","gmt_create":"2026-04-25T14:03:59.2334924+04:00","gmt_modified":"2026-04-25T14:03:59.2334924+04:00"},{"id":"b90d12427e7c4ad91df39144cb438698","path":"libraries/chain/database.cpp","line_range":"1-6480","gmt_create":"2026-04-25T14:03:59.2340027+04:00","gmt_modified":"2026-04-25T14:03:59.2340027+04:00"},{"id":"b09542b3dccdffdb594fb065b6b0fa40","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"1-76","gmt_create":"2026-04-25T14:03:59.2340027+04:00","gmt_modified":"2026-04-25T14:03:59.2340027+04:00"},{"id":"0b205150d71c0d540ceef54fcd994036","path":"libraries/chain/dlt_block_log.cpp","line_range":"1-454","gmt_create":"2026-04-25T14:03:59.2340027+04:00","gmt_modified":"2026-04-25T14:03:59.2340027+04:00"},{"id":"74ff0370261596c9c219ccec4e98f8dd","path":"plugins/witness/witness.cpp","line_range":"1-695","gmt_create":"2026-04-25T14:03:59.2340027+04:00","gmt_modified":"2026-04-25T14:03:59.2340027+04:00"},{"id":"aa83076d79d89a1a759cc14258325b43","path":"libraries/protocol/include/graphene/protocol/config.hpp","line_range":"110-124","gmt_create":"2026-04-25T14:03:59.2345215+04:00","gmt_modified":"2026-04-25T14:03:59.2345215+04:00"},{"id":"0ada83aa5ba1ed4a4545e8ba69888d56","path":"libraries/chain/hardfork.d/12.hf","line_range":"1-7","gmt_create":"2026-04-25T14:03:59.2345215+04:00","gmt_modified":"2026-04-25T14:03:59.2345215+04:00"},{"id":"adf68d7a2b6319d31ce18cc0bc7fc265","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"53-144","gmt_create":"2026-04-25T14:03:59.2345215+04:00","gmt_modified":"2026-04-25T14:03:59.2345215+04:00"},{"id":"0f62b18cedaa609a31aa3c27c2efebe0","path":"libraries/chain/fork_database.cpp","line_range":"33-92","gmt_create":"2026-04-25T14:03:59.2350393+04:00","gmt_modified":"2026-04-25T14:03:59.2350393+04:00"},{"id":"bbe3fd2b852d97dedc12a8a6fe955e17","path":"libraries/chain/database.cpp","line_range":"1223-1267","gmt_create":"2026-04-25T14:03:59.2350393+04:00","gmt_modified":"2026-04-25T14:03:59.2350393+04:00"},{"id":"08de86018e5a06d87b05b017ed0140a3","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"13-33","gmt_create":"2026-04-25T14:03:59.2350393+04:00","gmt_modified":"2026-04-25T14:03:59.2350393+04:00"},{"id":"3ad499e996887b14af62f05cffe4be8b","path":"libraries/chain/dlt_block_log.cpp","line_range":"336-340","gmt_create":"2026-04-25T14:03:59.2360735+04:00","gmt_modified":"2026-04-25T14:03:59.2360735+04:00"},{"id":"7b999e2a290d2cacc86aa0b5354e9531","path":"libraries/chain/fork_database.cpp","line_range":"48-84","gmt_create":"2026-04-25T14:03:59.2360735+04:00","gmt_modified":"2026-04-25T14:03:59.2360735+04:00"},{"id":"af60d7ba2506f51692d90b9e6a0706f5","path":"libraries/chain/fork_database.cpp","line_range":"48-55","gmt_create":"2026-04-25T14:03:59.2366122+04:00","gmt_modified":"2026-04-25T14:03:59.2366122+04:00"},{"id":"6592f497db3c7b6b6b3ec260ca9c7e05","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"20-144","gmt_create":"2026-04-25T14:03:59.2366122+04:00","gmt_modified":"2026-04-25T14:03:59.2366122+04:00"},{"id":"e4e6d7c651abf419517099cad9d89bd0","path":"libraries/chain/fork_database.cpp","line_range":"33-278","gmt_create":"2026-04-25T14:03:59.237127+04:00","gmt_modified":"2026-04-25T14:03:59.237127+04:00"},{"id":"571d1a7dabb156a811267c7ffe3f6ad3","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"111-144","gmt_create":"2026-04-25T14:03:59.237127+04:00","gmt_modified":"2026-04-25T14:03:59.237127+04:00"},{"id":"d8c4a536e031814cd855791b08fd743a","path":"libraries/chain/fork_database.cpp","line_range":"269-274","gmt_create":"2026-04-25T14:03:59.2376391+04:00","gmt_modified":"2026-04-25T14:03:59.2376391+04:00"},{"id":"b18d54f10852c23b8aa6d9ff0eed7303","path":"libraries/chain/fork_database.cpp","line_range":"189-231","gmt_create":"2026-04-25T14:03:59.2376391+04:00","gmt_modified":"2026-04-25T14:03:59.2376391+04:00"},{"id":"f0c0d95b98cda734e3025dc52a01e399","path":"libraries/chain/database.cpp","line_range":"1037-1177","gmt_create":"2026-04-25T14:03:59.238181+04:00","gmt_modified":"2026-04-25T14:03:59.238181+04:00"},{"id":"80f18f6ab336abffde43fcbc1430b86e","path":"libraries/chain/database.cpp","line_range":"259-294","gmt_create":"2026-04-25T14:03:59.238181+04:00","gmt_modified":"2026-04-25T14:03:59.238181+04:00"},{"id":"6a37076affbfb46a279d5d876dfe31ab","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"57-78","gmt_create":"2026-04-25T14:03:59.238694+04:00","gmt_modified":"2026-04-25T14:03:59.238694+04:00"},{"id":"79b7755a269975ca3f31d683b52f4d6d","path":"libraries/chain/database.cpp","line_range":"4444-4533","gmt_create":"2026-04-25T14:03:59.238694+04:00","gmt_modified":"2026-04-25T14:03:59.238694+04:00"},{"id":"2c3d7f0e1e6c60c71686ef8c38ad41a6","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","line_range":"35-72","gmt_create":"2026-04-25T14:03:59.2392068+04:00","gmt_modified":"2026-04-25T14:03:59.2392068+04:00"},{"id":"ba6df8912c17f04adac3d98bb441be8c","path":"plugins/p2p/p2p_plugin.cpp","line_range":"118-164","gmt_create":"2026-04-25T14:03:59.2397219+04:00","gmt_modified":"2026-04-25T14:03:59.2397219+04:00"},{"id":"a044694c9dafbefcffb29abacac36b1c","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"115-128","gmt_create":"2026-04-25T14:03:59.2397219+04:00","gmt_modified":"2026-04-25T14:03:59.2397219+04:00"},{"id":"64fc2f1bacf1c0ab946fbe2ff72294f3","path":"libraries/chain/database.cpp","line_range":"561-580","gmt_create":"2026-04-25T14:03:59.2402396+04:00","gmt_modified":"2026-04-25T14:03:59.2402396+04:00"},{"id":"bff17a23941aac0b2d064fbbded50c2e","path":"libraries/chain/database.cpp","line_range":"738-792","gmt_create":"2026-04-25T14:03:59.2402396+04:00","gmt_modified":"2026-04-25T14:03:59.2402396+04:00"},{"id":"bbb167f1118d5aa1b7dc46becc4b2e65","path":"libraries/chain/database.cpp","line_range":"206-230","gmt_create":"2026-04-25T14:03:59.2402396+04:00","gmt_modified":"2026-04-25T14:03:59.2402396+04:00"},{"id":"84742d24c019ab26c3aad0ebd8a73a3a","path":"libraries/chain/database.cpp","line_range":"476-515","gmt_create":"2026-04-25T14:03:59.2402396+04:00","gmt_modified":"2026-04-25T14:03:59.2402396+04:00"},{"id":"67b594d487482330b7b1fedc4f214981","path":"libraries/chain/fork_database.cpp","line_range":"92-103","gmt_create":"2026-04-25T14:03:59.2407532+04:00","gmt_modified":"2026-04-25T14:03:59.2407532+04:00"},{"id":"e967de600f4a9bab74101f1a56b257c8","path":"libraries/chain/database.cpp","line_range":"1075-1087","gmt_create":"2026-04-25T14:03:59.2407532+04:00","gmt_modified":"2026-04-25T14:03:59.2407532+04:00"},{"id":"c219f4fd3ffd9fe8992b2fb533b3370f","path":"libraries/chain/database.cpp","line_range":"4581-4594","gmt_create":"2026-04-25T14:03:59.2407532+04:00","gmt_modified":"2026-04-25T14:03:59.2407532+04:00"},{"id":"6e8608c6747e522b8ef37af20c304f9a","path":"libraries/chain/database.cpp","line_range":"2125-2142","gmt_create":"2026-04-25T14:03:59.2407532+04:00","gmt_modified":"2026-04-25T14:03:59.2407532+04:00"},{"id":"181ba283810eaffaffea9e51cfb6d793","path":"plugins/witness/witness.cpp","line_range":"597-612","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"7207f5e1cfaad7cca32dee221db4cf1c","path":"libraries/chain/database.cpp","line_range":"4334-4438","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"d3d7c60375de09b0e366e9cf62d63434","path":"libraries/chain/database.cpp","line_range":"4420-4438","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"ff98bdb82ec0734ef35a56c8aa5e94f8","path":"libraries/chain/database.cpp","line_range":"4444-4450","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"e1b4ef00ab392cd8b5d1882f1512015f","path":"libraries/protocol/include/graphene/protocol/config.hpp","line_range":"114-124","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"d2dbf8d1305a1f5ec04517ae9bb097cf","path":"libraries/chain/database.cpp","line_range":"4360-4398","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"e13f0e2f19ced66d428e93cb5f29e0da","path":"libraries/chain/database.cpp","line_range":"4400-4419","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"3f730d96926f490bdc53cc0d2730b902","path":"plugins/witness/witness.cpp","line_range":"521-526","gmt_create":"2026-04-25T14:03:59.2417597+04:00","gmt_modified":"2026-04-25T14:03:59.2417597+04:00"},{"id":"272aae13de54622055da62427b1e5cb2","path":"libraries/chain/database.cpp","line_range":"4428-4430","gmt_create":"2026-04-25T14:03:59.2437022+04:00","gmt_modified":"2026-04-25T14:03:59.2437022+04:00"},{"id":"683095076a31c87f9a3b36bed20efaf1","path":"plugins/witness/witness.cpp","line_range":"565-656","gmt_create":"2026-04-25T14:03:59.2437022+04:00","gmt_modified":"2026-04-25T14:03:59.2437022+04:00"},{"id":"64e626659832230970c9e28a16bb5b36","path":"plugins/witness/witness.cpp","line_range":"121","gmt_create":"2026-04-25T14:03:59.2437022+04:00","gmt_modified":"2026-04-25T14:03:59.2437022+04:00"},{"id":"c3debb357ce088f2ed2baa9963cc1e91","path":"libraries/chain/fork_database.cpp","line_range":"114-146","gmt_create":"2026-04-25T14:03:59.2437022+04:00","gmt_modified":"2026-04-25T14:03:59.2437022+04:00"},{"id":"d7570da2a4cffd5140f0c82ab5f9b6b9","path":"libraries/chain/fork_database.cpp","line_range":"34-46","gmt_create":"2026-04-25T14:03:59.2457067+04:00","gmt_modified":"2026-04-25T14:03:59.2457067+04:00"},{"id":"1c77b83d1916f3a9ce2b0584064f8b84","path":"libraries/chain/fork_database.cpp","line_range":"48-103","gmt_create":"2026-04-25T14:03:59.2472107+04:00","gmt_modified":"2026-04-25T14:03:59.2472107+04:00"},{"id":"b5417385783d8c6a689ac2a6ee68e4d5","path":"libraries/chain/fork_database.cpp","line_range":"38-46","gmt_create":"2026-04-25T14:03:59.2492159+04:00","gmt_modified":"2026-04-25T14:03:59.2492159+04:00"},{"id":"28aa10f4e1395f1c636ea49493cee498","path":"libraries/chain/fork_database.cpp","line_range":"59-75","gmt_create":"2026-04-25T14:03:59.2492159+04:00","gmt_modified":"2026-04-25T14:03:59.2492159+04:00"},{"id":"aa9c475f054eb31ce25cdd10ad579d78","path":"libraries/chain/database.cpp","line_range":"1390-1397","gmt_create":"2026-04-25T14:03:59.2492159+04:00","gmt_modified":"2026-04-25T14:03:59.2492159+04:00"},{"id":"9828bffa0fc516ca37ed66ffb1285f90","path":"plugins/witness/witness.cpp","line_range":"614-646","gmt_create":"2026-04-25T14:03:59.2492159+04:00","gmt_modified":"2026-04-25T14:03:59.2492159+04:00"},{"id":"dd08baba3808f94116576cf3aebb5b52","path":"plugins/snapshot/plugin.cpp","line_range":"1-50","gmt_create":"2026-04-25T14:04:19.3816341+04:00","gmt_modified":"2026-04-25T14:04:19.3816341+04:00"},{"id":"b006363cd841f55df89821fef72c2cb4","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"1-88","gmt_create":"2026-04-25T14:04:19.3816341+04:00","gmt_modified":"2026-04-25T14:04:19.3816341+04:00"},{"id":"f51fd513d921c6aca3067c8e00769d95","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","line_range":"1-52","gmt_create":"2026-04-25T14:04:19.3816341+04:00","gmt_modified":"2026-04-25T14:04:19.3816341+04:00"},{"id":"9f246b8d3635081c05a2d1db7285e18d","path":"plugins/snapshot/CMakeLists.txt","line_range":"1-52","gmt_create":"2026-04-25T14:04:19.3821519+04:00","gmt_modified":"2026-04-25T14:04:19.3821519+04:00"},{"id":"6b764962f7e4e629b36413322758b3db","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"42-76","gmt_create":"2026-04-25T14:04:19.3821519+04:00","gmt_modified":"2026-04-25T14:04:19.3821519+04:00"},{"id":"ac95949d3f08410fb1e93b78c064f673","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","line_range":"16-52","gmt_create":"2026-04-25T14:04:19.3821519+04:00","gmt_modified":"2026-04-25T14:04:19.3821519+04:00"},{"id":"530cb1a1957742efbb4f41d71fc9f0e9","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","line_range":"30-158","gmt_create":"2026-04-25T14:04:19.3826657+04:00","gmt_modified":"2026-04-25T14:04:19.3826657+04:00"},{"id":"a17567f5985004be327002459eac26c0","path":"plugins/snapshot/plugin.cpp","line_range":"675-780","gmt_create":"2026-04-25T14:04:19.3826657+04:00","gmt_modified":"2026-04-25T14:04:19.3826657+04:00"},{"id":"d15d204e63b021e181c390e967de37b6","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","line_range":"37-107","gmt_create":"2026-04-25T14:04:19.3826657+04:00","gmt_modified":"2026-04-25T14:04:19.3826657+04:00"},{"id":"f7129d846389f9235b7f07dbc43c38d5","path":"plugins/snapshot/plugin.cpp","line_range":"885-987","gmt_create":"2026-04-25T14:04:19.3831804+04:00","gmt_modified":"2026-04-25T14:04:19.3831804+04:00"},{"id":"05df87a68b75af2022c886377a855488","path":"plugins/snapshot/plugin.cpp","line_range":"789-883","gmt_create":"2026-04-25T14:04:19.3831804+04:00","gmt_modified":"2026-04-25T14:04:19.3831804+04:00"},{"id":"a55c901dfd6aa9932e83d81f0226f890","path":"plugins/snapshot/plugin.cpp","line_range":"1400-1484","gmt_create":"2026-04-25T14:04:19.3831804+04:00","gmt_modified":"2026-04-25T14:04:19.3831804+04:00"},{"id":"90bf6039bca8f12e1f63b7896c458d71","path":"plugins/snapshot/plugin.cpp","line_range":"1046-1288","gmt_create":"2026-04-25T14:04:19.3836952+04:00","gmt_modified":"2026-04-25T14:04:19.3836952+04:00"},{"id":"53e597e11a574e9088019a082aac3d17","path":"plugins/snapshot/plugin.cpp","line_range":"1902-2038","gmt_create":"2026-04-25T14:04:19.3836952+04:00","gmt_modified":"2026-04-25T14:04:19.3836952+04:00"},{"id":"1aa4f7fa6a5ba064180d8b2a936a4ea8","path":"plugins/snapshot/plugin.cpp","line_range":"1470-1599","gmt_create":"2026-04-25T14:04:19.3836952+04:00","gmt_modified":"2026-04-25T14:04:19.3836952+04:00"},{"id":"6aa4682754f386b4d759513e60e4c2ad","path":"plugins/snapshot/plugin.cpp","line_range":"2473-2510","gmt_create":"2026-04-25T14:04:19.3842099+04:00","gmt_modified":"2026-04-25T14:04:19.3842099+04:00"},{"id":"9ffd30a2624b19a408fc0094208d56b5","path":"documentation/snapshot-plugin.md","line_range":"247-273","gmt_create":"2026-04-25T14:04:19.3842099+04:00","gmt_modified":"2026-04-25T14:04:19.3842099+04:00"},{"id":"71e0247c3d3b74f2312353acb634771b","path":"plugins/snapshot/plugin.cpp","line_range":"1418-1436","gmt_create":"2026-04-25T14:04:19.384725+04:00","gmt_modified":"2026-04-25T14:04:19.384725+04:00"},{"id":"689bb96a400298c19844acf1883d5033","path":"plugins/snapshot/plugin.cpp","line_range":"737-743","gmt_create":"2026-04-25T14:04:19.384725+04:00","gmt_modified":"2026-04-25T14:04:19.384725+04:00"},{"id":"38c4856e3abc8eb4c59217ffc6601f6a","path":"plugins/snapshot/plugin.cpp","line_range":"1390-1484","gmt_create":"2026-04-25T14:04:19.384725+04:00","gmt_modified":"2026-04-25T14:04:19.384725+04:00"},{"id":"7dbcd9b4feb28cee4d4ed4eef7e6c307","path":"plugins/snapshot/plugin.cpp","line_range":"1440-1449","gmt_create":"2026-04-25T14:04:19.384725+04:00","gmt_modified":"2026-04-25T14:04:19.384725+04:00"},{"id":"4235ed4ba5074e35c79079969aed3209","path":"plugins/witness/witness.cpp","line_range":"335-551","gmt_create":"2026-04-25T14:04:19.3852699+04:00","gmt_modified":"2026-04-25T14:04:19.3852699+04:00"},{"id":"cd0d042b2127279e18992f8b3196c010","path":"plugins/snapshot/plugin.cpp","line_range":"1326-1376","gmt_create":"2026-04-25T14:04:19.3852699+04:00","gmt_modified":"2026-04-25T14:04:19.3852699+04:00"},{"id":"f0ba4eca27677ff8f8db1270d6db2210","path":"plugins/snapshot/plugin.cpp","line_range":"1426-1435","gmt_create":"2026-04-25T14:04:19.3857867+04:00","gmt_modified":"2026-04-25T14:04:19.3857867+04:00"},{"id":"0e67823640900b95bc72e2ff11433924","path":"plugins/snapshot/plugin.cpp","line_range":"745-750","gmt_create":"2026-04-25T14:04:19.3857867+04:00","gmt_modified":"2026-04-25T14:04:19.3857867+04:00"},{"id":"37a4d67789e1f63ff97ad2e2e6271c39","path":"plugins/snapshot/plugin.cpp","line_range":"697-700","gmt_create":"2026-04-25T14:04:19.3862967+04:00","gmt_modified":"2026-04-25T14:04:19.3862967+04:00"},{"id":"aa3b52dcf754d79dc425b2a1486ae4a0","path":"plugins/snapshot/plugin.cpp","line_range":"2831-2845","gmt_create":"2026-04-25T14:04:19.3862967+04:00","gmt_modified":"2026-04-25T14:04:19.3862967+04:00"},{"id":"43efce5d0a443b3c4eaa07a53ce11ee6","path":"plugins/snapshot/plugin.cpp","line_range":"1719-1748","gmt_create":"2026-04-25T14:04:19.3862967+04:00","gmt_modified":"2026-04-25T14:04:19.3862967+04:00"},{"id":"d675b38a2a9f0cf236a5333e30be228e","path":"plugins/snapshot/plugin.cpp","line_range":"1706-1748","gmt_create":"2026-04-25T14:04:19.386812+04:00","gmt_modified":"2026-04-25T14:04:19.386812+04:00"},{"id":"34b92db1e7f340fe0ab7161a88a2a778","path":"plugins/chain/plugin.cpp","line_range":"490-560","gmt_create":"2026-04-25T14:04:19.3868933+04:00","gmt_modified":"2026-04-25T14:04:19.3868933+04:00"},{"id":"86ef688e3b4a4b8797c039e5e21e21e0","path":"plugins/snapshot/plugin.cpp","line_range":"2945-2959","gmt_create":"2026-04-25T14:04:19.3868933+04:00","gmt_modified":"2026-04-25T14:04:19.3868933+04:00"},{"id":"f1a008ce1a3ad3fed2705126d2ef477c","path":"libraries/chain/database.cpp","line_range":"441-5201","gmt_create":"2026-04-25T14:04:19.3868933+04:00","gmt_modified":"2026-04-25T14:04:19.3868933+04:00"},{"id":"a0c341b6c16514fd3beb4c26caed0114","path":"plugins/chain/plugin.cpp","line_range":"542-559","gmt_create":"2026-04-25T14:04:19.3873971+04:00","gmt_modified":"2026-04-25T14:04:19.3873971+04:00"},{"id":"5b749ac78b4ad6c88bc41f3230e65581","path":"plugins/snapshot/plugin.cpp","line_range":"2976-3009","gmt_create":"2026-04-25T14:04:19.3879139+04:00","gmt_modified":"2026-04-25T14:04:19.3879139+04:00"},{"id":"fb9cda9cd6b9a7f5744171afb8f7e363","path":"plugins/snapshot/plugin.cpp","line_range":"2468-2570","gmt_create":"2026-04-25T14:04:19.3879139+04:00","gmt_modified":"2026-04-25T14:04:19.3879139+04:00"},{"id":"9ed4b415735a3f0cf2878f9ae3a744dc","path":"plugins/p2p/p2p_plugin.cpp","line_range":"689-697","gmt_create":"2026-04-25T14:04:19.3879139+04:00","gmt_modified":"2026-04-25T14:04:19.3879139+04:00"},{"id":"b64b47b1e02c1dcf9b19e7f858be9626","path":"libraries/network/node.cpp","line_range":"5241-5274","gmt_create":"2026-04-25T14:04:19.3879139+04:00","gmt_modified":"2026-04-25T14:04:19.3879139+04:00"},{"id":"1f1c272cfeb3757d8b32564734e9bc4b","path":"libraries/network/include/graphene/network/node.hpp","line_range":"284-290","gmt_create":"2026-04-25T14:04:19.3879139+04:00","gmt_modified":"2026-04-25T14:04:19.3879139+04:00"},{"id":"1779580471466d619f7b9944eb728d04","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"86-88","gmt_create":"2026-04-25T14:04:19.3889185+04:00","gmt_modified":"2026-04-25T14:04:19.3889185+04:00"},{"id":"882dbfe6681b8d7b080573e9b279faae","path":"plugins/snapshot/plugin.cpp","line_range":"735-740","gmt_create":"2026-04-25T14:04:19.3889185+04:00","gmt_modified":"2026-04-25T14:04:19.3889185+04:00"},{"id":"ca1b6c296389c05dcaa7510e9e9d36b8","path":"plugins/snapshot/plugin.cpp","line_range":"1814-1862","gmt_create":"2026-04-25T14:04:19.3894224+04:00","gmt_modified":"2026-04-25T14:04:19.3894224+04:00"},{"id":"c416b0f74c1189b065331c29b4bd45b7","path":"plugins/snapshot/plugin.cpp","line_range":"772-785","gmt_create":"2026-04-25T14:04:19.3894224+04:00","gmt_modified":"2026-04-25T14:04:19.3894224+04:00"},{"id":"367c2f1ea732b9760cb221b1bc353ee7","path":"documentation/snapshot-plugin.md","line_range":"339-374","gmt_create":"2026-04-25T14:04:19.3894224+04:00","gmt_modified":"2026-04-25T14:04:19.3894224+04:00"},{"id":"614cea5f68d9ad766630341d35224e07","path":"plugins/p2p/p2p_plugin.cpp","line_range":"585-649","gmt_create":"2026-04-25T14:04:19.3954865+04:00","gmt_modified":"2026-04-25T14:04:19.3954865+04:00"},{"id":"4b1ed8eac044a85f9b3ce72dc25df2a9","path":"plugins/p2p/p2p_plugin.cpp","line_range":"673-677","gmt_create":"2026-04-25T14:04:19.3969485+04:00","gmt_modified":"2026-04-25T14:04:19.3969485+04:00"},{"id":"dd68b0a06254dfd88e5837ff20fa6700","path":"plugins/p2p/p2p_plugin.cpp","line_range":"744-755","gmt_create":"2026-04-25T14:04:19.3969485+04:00","gmt_modified":"2026-04-25T14:04:19.3969485+04:00"},{"id":"266bcb3a1090d1b9f5e8b6a43dda72b9","path":"plugins/snapshot/plugin.cpp","line_range":"165-176","gmt_create":"2026-04-25T14:04:19.3969485+04:00","gmt_modified":"2026-04-25T14:04:19.3969485+04:00"},{"id":"64df55004cd0a970a769d236b3f31f1a","path":"plugins/snapshot/plugin.cpp","line_range":"1587-1596","gmt_create":"2026-04-25T14:04:19.3969485+04:00","gmt_modified":"2026-04-25T14:04:19.3969485+04:00"},{"id":"b3cb54f092ab0d8cec996f8905b86351","path":"plugins/snapshot/plugin.cpp","line_range":"1610-1620","gmt_create":"2026-04-25T14:04:19.3979474+04:00","gmt_modified":"2026-04-25T14:04:19.3979474+04:00"},{"id":"6a78f667d7b8a87cbcc79bf79f0674df","path":"plugins/snapshot/plugin.cpp","line_range":"1812-1877","gmt_create":"2026-04-25T14:04:19.3979474+04:00","gmt_modified":"2026-04-25T14:04:19.3979474+04:00"},{"id":"72102cbd80a22f67b05f19d66483c094","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","line_range":"24-34","gmt_create":"2026-04-25T14:04:19.3979474+04:00","gmt_modified":"2026-04-25T14:04:19.3979474+04:00"},{"id":"34d635484e3842abac2cb2c15eabd89b","path":"plugins/snapshot/plugin.cpp","line_range":"2598-2680","gmt_create":"2026-04-25T14:04:19.3979474+04:00","gmt_modified":"2026-04-25T14:04:19.3979474+04:00"},{"id":"7b7e6ead87fdaa1eb526b334e1959fc4","path":"plugins/chain/plugin.cpp","line_range":"364-432","gmt_create":"2026-04-25T14:04:19.3979474+04:00","gmt_modified":"2026-04-25T14:04:19.3979474+04:00"},{"id":"7f13445a5ab689834d7b6870b926a79b","path":"plugins/snapshot/CMakeLists.txt","line_range":"27-38","gmt_create":"2026-04-25T14:04:19.3979474+04:00","gmt_modified":"2026-04-25T14:04:19.3979474+04:00"},{"id":"544911d9893dd78790333ef2b262cc5a","path":"plugins/snapshot/plugin.cpp","line_range":"2294-2464","gmt_create":"2026-04-25T14:04:19.3989475+04:00","gmt_modified":"2026-04-25T14:04:19.3989475+04:00"},{"id":"da168568e0c63b152359710edae113e2","path":"plugins/snapshot/plugin.cpp","line_range":"1378-1464","gmt_create":"2026-04-25T14:04:19.3989475+04:00","gmt_modified":"2026-04-25T14:04:19.3989475+04:00"},{"id":"7ca8666ed964c2fbcf14068ecc810032","path":"programs/vizd/main.cpp","line_range":"63-92","gmt_create":"2026-04-25T14:04:31.8047688+04:00","gmt_modified":"2026-04-25T14:04:31.8047688+04:00"},{"id":"bfbaf6710a5ef014c5bb6cb3bdc25b1a","path":"plugins/witness/include/graphene/plugins/witness/witness.hpp","line_range":"34-68","gmt_create":"2026-04-25T14:04:31.8047688+04:00","gmt_modified":"2026-04-25T14:04:31.8047688+04:00"},{"id":"dfb8fecf3d381014ba0c5fc8a5a47596","path":"plugins/witness/witness.cpp","line_range":"59-118","gmt_create":"2026-04-25T14:04:31.8047688+04:00","gmt_modified":"2026-04-25T14:04:31.8047688+04:00"},{"id":"81c50af79e584f63bad0aa07dcd8e34a","path":"plugins/witness_api/include/graphene/plugins/witness_api/plugin.hpp","line_range":"56-98","gmt_create":"2026-04-25T14:04:31.8047688+04:00","gmt_modified":"2026-04-25T14:04:31.8047688+04:00"},{"id":"63ffe758852ab37baa4b5ae1e36eea4d","path":"plugins/witness_api/plugin.cpp","line_range":"13-28","gmt_create":"2026-04-25T14:04:31.8052857+04:00","gmt_modified":"2026-04-25T14:04:31.8052857+04:00"},{"id":"8cd057508618ab5b1d0348584d395fee","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"37-83","gmt_create":"2026-04-25T14:04:31.8052857+04:00","gmt_modified":"2026-04-25T14:04:31.8052857+04:00"},{"id":"e56a6a0eda224e8d188fef372d63f406","path":"libraries/chain/include/graphene/chain/witness_objects.hpp","line_range":"27-132","gmt_create":"2026-04-25T14:04:31.8052857+04:00","gmt_modified":"2026-04-25T14:04:31.8052857+04:00"},{"id":"33f2137a37d0414b906c4723fd4288ca","path":"libraries/chain/include/graphene/chain/chain_objects.hpp","line_range":"174-201","gmt_create":"2026-04-25T14:04:31.8058008+04:00","gmt_modified":"2026-04-25T14:04:31.8058008+04:00"},{"id":"a89974138f097d8ba68dbafab17ec724","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"53-81","gmt_create":"2026-04-25T14:04:31.8058008+04:00","gmt_modified":"2026-04-25T14:04:31.8058008+04:00"},{"id":"a8b5b7a70913ba4913761486c24a2644","path":"libraries/time/time.cpp","line_range":"13-53","gmt_create":"2026-04-25T14:04:31.8058008+04:00","gmt_modified":"2026-04-25T14:04:31.8058008+04:00"},{"id":"5ee8ab19d8681e2c4eae20cb56d5238f","path":"plugins/snapshot/plugin.cpp","line_range":"1267-1276","gmt_create":"2026-04-25T14:04:31.8058008+04:00","gmt_modified":"2026-04-25T14:04:31.8058008+04:00"},{"id":"480376362c103e814eb41208a6f35d5c","path":"plugins/witness/witness.cpp","line_range":"206-249","gmt_create":"2026-04-25T14:04:31.8063188+04:00","gmt_modified":"2026-04-25T14:04:31.8063188+04:00"},{"id":"2afe320ed511e0afd70320c348c2b590","path":"plugins/witness/witness.cpp","line_range":"206-276","gmt_create":"2026-04-25T14:04:31.8078657+04:00","gmt_modified":"2026-04-25T14:04:31.8078657+04:00"},{"id":"2ef71b2e26606c610a5ba74419baa0c2","path":"plugins/witness/witness.cpp","line_range":"278-423","gmt_create":"2026-04-25T14:04:31.8078657+04:00","gmt_modified":"2026-04-25T14:04:31.8078657+04:00"},{"id":"8363e9f506e72da4681e239223fae348","path":"plugins/witness/witness.cpp","line_range":"447-471","gmt_create":"2026-04-25T14:04:31.8084429+04:00","gmt_modified":"2026-04-25T14:04:31.8084429+04:00"},{"id":"b15dbcb2869d19e3587864ed61aea00f","path":"plugins/witness/witness.cpp","line_range":"590-695","gmt_create":"2026-04-25T14:04:31.8084429+04:00","gmt_modified":"2026-04-25T14:04:31.8084429+04:00"},{"id":"988f3a98d843c99bf5fdc399c516aa27","path":"plugins/witness/witness.cpp","line_range":"263-266","gmt_create":"2026-04-25T14:04:31.8084429+04:00","gmt_modified":"2026-04-25T14:04:31.8084429+04:00"},{"id":"764ed972b734516fe87533b94635a90c","path":"libraries/chain/database.cpp","line_range":"4317-4332","gmt_create":"2026-04-25T14:04:31.8089466+04:00","gmt_modified":"2026-04-25T14:04:31.8089466+04:00"},{"id":"b70b5e1b9b73b5902b4872d659b26cee","path":"libraries/time/time.cpp","line_range":"74-76","gmt_create":"2026-04-25T14:04:31.8089466+04:00","gmt_modified":"2026-04-25T14:04:31.8089466+04:00"},{"id":"7dcf38ee74a296687b5e568ca18cd09f","path":"libraries/chain/database.cpp","line_range":"2824-2839","gmt_create":"2026-04-25T14:04:31.8094629+04:00","gmt_modified":"2026-04-25T14:04:31.8094629+04:00"},{"id":"93791f2b6e0d628d9be800a41f9b52f7","path":"libraries/chain/database.cpp","line_range":"2871-2886","gmt_create":"2026-04-25T14:04:31.8094629+04:00","gmt_modified":"2026-04-25T14:04:31.8094629+04:00"},{"id":"c34a55889c5bb9e3a8a46b4edc20200a","path":"plugins/witness/witness.cpp","line_range":"125-133","gmt_create":"2026-04-25T14:04:31.8099802+04:00","gmt_modified":"2026-04-25T14:04:31.8099802+04:00"},{"id":"1b9fbc9defd5b5206b4e87d50ea0cc10","path":"plugins/witness/witness.cpp","line_range":"149-155","gmt_create":"2026-04-25T14:04:31.8099802+04:00","gmt_modified":"2026-04-25T14:04:31.8099802+04:00"},{"id":"e791058a2689740e0ba640d95b20253b","path":"plugins/witness/witness.cpp","line_range":"222-224","gmt_create":"2026-04-25T14:04:31.8099802+04:00","gmt_modified":"2026-04-25T14:04:31.8099802+04:00"},{"id":"428578279131ff3e6ec0868a51624cc1","path":"libraries/protocol/include/graphene/protocol/config.hpp","line_range":"57-58","gmt_create":"2026-04-25T14:04:31.8099802+04:00","gmt_modified":"2026-04-25T14:04:31.8099802+04:00"},{"id":"1d81f0c988d10db4c624cb88984d737d","path":"share/vizd/config/config.ini","line_range":"99-103","gmt_create":"2026-04-25T14:04:31.8110115+04:00","gmt_modified":"2026-04-25T14:04:31.8110115+04:00"},{"id":"e9d5a5b870e6435fb8575e9ddc374459","path":"share/vizd/config/config_witness.ini","line_range":"76-80","gmt_create":"2026-04-25T14:04:31.8110115+04:00","gmt_modified":"2026-04-25T14:04:31.8110115+04:00"},{"id":"a6228e5a9ba9a2c58215c3c7d13844e2","path":"plugins/witness/witness.cpp","line_range":"120-169","gmt_create":"2026-04-25T14:04:31.8115292+04:00","gmt_modified":"2026-04-25T14:04:31.8115292+04:00"},{"id":"7ed3d3801811506b1eeb0c4b8a9abc29","path":"plugins/witness/witness.cpp","line_range":"171-192","gmt_create":"2026-04-25T14:04:31.8125365+04:00","gmt_modified":"2026-04-25T14:04:31.8125365+04:00"},{"id":"602ba29f5c66fb073d2846970e380785","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"73","gmt_create":"2026-04-25T14:04:31.8130415+04:00","gmt_modified":"2026-04-25T14:04:31.8130415+04:00"},{"id":"6bc5868131148dc9d5a4f6dc496d733b","path":"libraries/chain/fork_database.cpp","line_range":"151-166","gmt_create":"2026-04-25T14:04:31.8130415+04:00","gmt_modified":"2026-04-25T14:04:31.8130415+04:00"},{"id":"ea1f85261e40685d70eff6d8cc082b35","path":"libraries/chain/database.cpp","line_range":"1456-1471","gmt_create":"2026-04-25T14:04:31.8130415+04:00","gmt_modified":"2026-04-25T14:04:31.8130415+04:00"},{"id":"1a8b439a3c3f144945e45997228c1798","path":"libraries/chain/database.cpp","line_range":"2807-2839","gmt_create":"2026-04-25T14:04:31.8140447+04:00","gmt_modified":"2026-04-25T14:04:31.8140447+04:00"},{"id":"08ea8b29c5974ba43c6d754a0ca3d241","path":"libraries/chain/database.cpp","line_range":"2897-2914","gmt_create":"2026-04-25T14:04:31.8140447+04:00","gmt_modified":"2026-04-25T14:04:31.8140447+04:00"},{"id":"c8108bc51976a8cb1e9e364198f4f6f4","path":"libraries/chain/database.cpp","line_range":"1294-1311","gmt_create":"2026-04-25T14:04:31.8140447+04:00","gmt_modified":"2026-04-25T14:04:31.8140447+04:00"},{"id":"674471d172ca55a420173e309a70fe6a","path":"plugins/witness_api/plugin.cpp","line_range":"30-49","gmt_create":"2026-04-25T14:04:31.815051+04:00","gmt_modified":"2026-04-25T14:04:31.815051+04:00"},{"id":"376c61290cb08c067274cd8e1966a6d6","path":"plugins/witness_api/plugin.cpp","line_range":"75-91","gmt_create":"2026-04-25T14:04:31.815051+04:00","gmt_modified":"2026-04-25T14:04:31.815051+04:00"},{"id":"96c65817591d591001257e3fdfa2860c","path":"plugins/witness_api/plugin.cpp","line_range":"102-125","gmt_create":"2026-04-25T14:04:31.815051+04:00","gmt_modified":"2026-04-25T14:04:31.815051+04:00"},{"id":"1afa75de7ceb614892122a75a2ca8d4e","path":"plugins/witness_api/plugin.cpp","line_range":"127-159","gmt_create":"2026-04-25T14:04:31.815051+04:00","gmt_modified":"2026-04-25T14:04:31.815051+04:00"},{"id":"ba309e4cffb6bc970c3675e375b18bf7","path":"plugins/witness_api/plugin.cpp","line_range":"161-169","gmt_create":"2026-04-25T14:04:31.815051+04:00","gmt_modified":"2026-04-25T14:04:31.815051+04:00"},{"id":"7dadbfa3f4e47a0b4baf0428f9480769","path":"plugins/witness_api/plugin.cpp","line_range":"171-203","gmt_create":"2026-04-25T14:04:31.815051+04:00","gmt_modified":"2026-04-25T14:04:31.815051+04:00"},{"id":"24209d87defd879a2bafea6991f1d3ae","path":"plugins/witness_api/plugin.cpp","line_range":"102-159","gmt_create":"2026-04-25T14:04:31.8160494+04:00","gmt_modified":"2026-04-25T14:04:31.8160494+04:00"},{"id":"df13a9de4b4ef860e2a3b90412feb6df","path":"plugins/witness_api/plugin.cpp","line_range":"161-203","gmt_create":"2026-04-25T14:04:31.8160494+04:00","gmt_modified":"2026-04-25T14:04:31.8160494+04:00"},{"id":"df5d797239db266f90f4c7ba9b6a337f","path":"libraries/chain/include/graphene/chain/witness_objects.hpp","line_range":"104-171","gmt_create":"2026-04-25T14:04:31.8160494+04:00","gmt_modified":"2026-04-25T14:04:31.8160494+04:00"},{"id":"a04a7c64aea913ef6a096771ad8af41d","path":"libraries/chain/include/graphene/chain/fork_database.hpp","line_range":"90-95","gmt_create":"2026-04-25T14:04:31.8170539+04:00","gmt_modified":"2026-04-25T14:04:31.8170539+04:00"},{"id":"708acf80796ae3f89bdde0343e4468f0","path":"libraries/chain/database.cpp","line_range":"1626-1805","gmt_create":"2026-04-25T14:04:31.817561+04:00","gmt_modified":"2026-04-25T14:04:31.817561+04:00"},{"id":"7a06368da91a740509d9f92f916174a2","path":"libraries/chain/database.cpp","line_range":"4334-4463","gmt_create":"2026-04-25T14:04:31.817561+04:00","gmt_modified":"2026-04-25T14:04:31.817561+04:00"},{"id":"643b93529cb8ca2756d333de5fa696b4","path":"libraries/chain/include/graphene/chain/database.hpp","line_range":"492-499","gmt_create":"2026-04-25T14:04:31.817561+04:00","gmt_modified":"2026-04-25T14:04:31.817561+04:00"},{"id":"bdf0576fcea647f967a8a86d9b2adead","path":"libraries/time/time.cpp","line_range":"36-39","gmt_create":"2026-04-25T14:04:31.8185654+04:00","gmt_modified":"2026-04-25T14:04:31.8185654+04:00"},{"id":"a8b8e2b42217fbcdc5b709c46f8e362f","path":"thirdparty/fc/src/network/ntp.cpp","line_range":"184-201","gmt_create":"2026-04-25T14:04:31.8185654+04:00","gmt_modified":"2026-04-25T14:04:31.8185654+04:00"},{"id":"8434222792eac7d005e1ace75179d613","path":"thirdparty/fc/src/network/ntp.cpp","line_range":"236-266","gmt_create":"2026-04-25T14:04:31.8185654+04:00","gmt_modified":"2026-04-25T14:04:31.8185654+04:00"},{"id":"5e0f1b085d9490f9a003ce1fe5800b8a","path":"plugins/witness/witness.cpp","line_range":"255-271","gmt_create":"2026-04-25T14:04:31.8205675+04:00","gmt_modified":"2026-04-25T14:04:31.8205675+04:00"},{"id":"fe37bdd3121f8def3920ce35923a9550","path":"plugins/witness/witness.cpp","line_range":"387-396","gmt_create":"2026-04-25T14:04:31.8205675+04:00","gmt_modified":"2026-04-25T14:04:31.8205675+04:00"},{"id":"99ab00bee9e9b1cffeb3a0b0678724aa","path":"libraries/chain/database.cpp","line_range":"2826-2836","gmt_create":"2026-04-25T14:04:31.8215675+04:00","gmt_modified":"2026-04-25T14:04:31.8215675+04:00"},{"id":"3afb339981807e8b85861f2f30db2a3b","path":"libraries/chain/database.cpp","line_range":"2873-2883","gmt_create":"2026-04-25T14:04:31.8215675+04:00","gmt_modified":"2026-04-25T14:04:31.8215675+04:00"},{"id":"ef845cd2ba2446709ae0304829afa909","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"1319-1328","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"887998543bd9a75003d2075b67c3de88","path":"libraries/chain/database.cpp","line_range":"613-653","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"b45ca4ca1197a0cb18823ef305dbfce2","path":"plugins/witness/witness.cpp","line_range":"503-507","gmt_create":"2026-04-25T14:06:18.7111124+04:00","gmt_modified":"2026-04-25T14:06:18.7111124+04:00"},{"id":"ac08c744d626527ee00b9bee03b6db2d","path":"thirdparty/fc/include/fc/shared_ptr.hpp","line_range":"13-64","gmt_create":"2026-04-25T14:06:18.7113558+04:00","gmt_modified":"2026-04-25T14:06:18.7113558+04:00"},{"id":"6799329233a3f12f9563d69dbeb6facf","path":"thirdparty/fc/include/fc/smart_ref_fwd.hpp","line_range":"9-52","gmt_create":"2026-04-25T14:06:18.7113558+04:00","gmt_modified":"2026-04-25T14:06:18.7113558+04:00"},{"id":"8b3251d6f3b5ea8afec55cbe7f29128e","path":"thirdparty/fc/include/fc/unique_ptr.hpp","line_range":"7-66","gmt_create":"2026-04-25T14:06:18.7113558+04:00","gmt_modified":"2026-04-25T14:06:18.7113558+04:00"},{"id":"cdea55bf7c52f89d159dd15c362d5e8e","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"1078-1111","gmt_create":"2026-04-25T14:06:18.7118614+04:00","gmt_modified":"2026-04-25T14:06:18.7118614+04:00"},{"id":"a2ec06756c5c974dfc585442b1ad74f8","path":"thirdparty/fc/include/fc/shared_ptr.hpp","line_range":"1-64","gmt_create":"2026-04-25T14:06:18.7118614+04:00","gmt_modified":"2026-04-25T14:06:18.7118614+04:00"},{"id":"8b063b3965b0249046f07bbe080601d9","path":"thirdparty/fc/include/fc/smart_ref_fwd.hpp","line_range":"1-53","gmt_create":"2026-04-25T14:06:18.7118614+04:00","gmt_modified":"2026-04-25T14:06:18.7118614+04:00"},{"id":"bbcc4ec0f64acb23208ac18b50a3437e","path":"thirdparty/fc/include/fc/unique_ptr.hpp","line_range":"1-68","gmt_create":"2026-04-25T14:06:18.7123773+04:00","gmt_modified":"2026-04-25T14:06:18.7123773+04:00"},{"id":"24ea1e546cffdcb3008a2ebf99392ba7","path":"thirdparty/chainbase/src/chainbase.cpp","line_range":"70-102","gmt_create":"2026-04-25T14:06:18.7123773+04:00","gmt_modified":"2026-04-25T14:06:18.7123773+04:00"},{"id":"33409e2a9f8272c152530755145c5298","path":"thirdparty/fc/src/interprocess/file_mapping.cpp","line_range":"9-41","gmt_create":"2026-04-25T14:06:18.7128966+04:00","gmt_modified":"2026-04-25T14:06:18.7128966+04:00"},{"id":"c0f31fdbe7750576da693cc0b63868bf","path":"thirdparty/fc/src/interprocess/mmap_struct.cpp","line_range":"20-44","gmt_create":"2026-04-25T14:06:18.7128966+04:00","gmt_modified":"2026-04-25T14:06:18.7128966+04:00"},{"id":"82b808b61a1d64042e1dd0fee9d24b11","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"1189-1193","gmt_create":"2026-04-25T14:06:18.7128966+04:00","gmt_modified":"2026-04-25T14:06:18.7128966+04:00"},{"id":"e00d3dba6b6387dad87940fe1cc9763f","path":"thirdparty/fc/src/shared_ptr.cpp","line_range":"16-25","gmt_create":"2026-04-25T14:06:18.7134125+04:00","gmt_modified":"2026-04-25T14:06:18.7134125+04:00"},{"id":"9fae3ecb646de7968f85a2469372f69e","path":"thirdparty/fc/src/shared_ptr.cpp","line_range":"1-30","gmt_create":"2026-04-25T14:06:18.7134125+04:00","gmt_modified":"2026-04-25T14:06:18.7134125+04:00"},{"id":"834a8e059f4e268023cf3fefa43fa7da","path":"thirdparty/fc/include/fc/shared_ptr.hpp","line_range":"13-28","gmt_create":"2026-04-25T14:06:18.7134125+04:00","gmt_modified":"2026-04-25T14:06:18.7134125+04:00"},{"id":"79cdde1d9acd77f9911b1f5e0fda6f00","path":"thirdparty/fc/include/fc/smart_ref_impl.hpp","line_range":"40-134","gmt_create":"2026-04-25T14:06:18.713929+04:00","gmt_modified":"2026-04-25T14:06:18.713929+04:00"},{"id":"ae5de13b40f2f11558ce54e39636d3f1","path":"thirdparty/fc/include/fc/scoped_exit.hpp","line_range":"5-40","gmt_create":"2026-04-25T14:06:18.713929+04:00","gmt_modified":"2026-04-25T14:06:18.713929+04:00"},{"id":"8ab63f2d7b9fa4f23647e36ade8deb35","path":"thirdparty/fc/include/fc/aligned.hpp","line_range":"4-21","gmt_create":"2026-04-25T14:06:18.713929+04:00","gmt_modified":"2026-04-25T14:06:18.713929+04:00"},{"id":"062ed4f4e1f5f0d12bf3be43c0ed5d1c","path":"thirdparty/fc/include/fc/smart_ref_impl.hpp","line_range":"1-136","gmt_create":"2026-04-25T14:06:18.7144394+04:00","gmt_modified":"2026-04-25T14:06:18.7144394+04:00"},{"id":"fd480b0a81941e59e3a27b3ca02e386d","path":"thirdparty/fc/include/fc/scoped_exit.hpp","line_range":"1-40","gmt_create":"2026-04-25T14:06:18.7144394+04:00","gmt_modified":"2026-04-25T14:06:18.7144394+04:00"},{"id":"5eb6bdd404fe6b6222df8b1ba3f7ff37","path":"thirdparty/fc/include/fc/aligned.hpp","line_range":"1-21","gmt_create":"2026-04-25T14:06:18.7144394+04:00","gmt_modified":"2026-04-25T14:06:18.7144394+04:00"},{"id":"82cf06631c82de10235a57caa09e77c0","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"53-59","gmt_create":"2026-04-25T14:06:18.7144394+04:00","gmt_modified":"2026-04-25T14:06:18.7144394+04:00"},{"id":"e038b4f545a8794371d958964a73ee74","path":"thirdparty/fc/include/fc/container/flat.hpp","line_range":"1-140","gmt_create":"2026-04-25T14:06:18.7144394+04:00","gmt_modified":"2026-04-25T14:06:18.7144394+04:00"},{"id":"a558531f1bc124f4e82109b7bd877607","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"1070-1167","gmt_create":"2026-04-25T14:06:18.7149601+04:00","gmt_modified":"2026-04-25T14:06:18.7149601+04:00"},{"id":"e67121e2b04e1a5d1b81cb6ecabd7ff3","path":"libraries/chain/database.cpp","line_range":"648-682","gmt_create":"2026-04-25T14:06:18.7154732+04:00","gmt_modified":"2026-04-25T14:06:18.7154732+04:00"},{"id":"b73088be54eb1e9003b6b3fb0a8a52b6","path":"libraries/chain/database.cpp","line_range":"609-646","gmt_create":"2026-04-25T14:06:18.7154732+04:00","gmt_modified":"2026-04-25T14:06:18.7154732+04:00"},{"id":"40e98a3ac2c8a60b39b5bf3cb2c33289","path":"plugins/chain/plugin.cpp","line_range":"199-211","gmt_create":"2026-04-25T14:06:18.7154732+04:00","gmt_modified":"2026-04-25T14:06:18.7154732+04:00"},{"id":"f45bd59f81e19f7127a7855c45a0da40","path":"thirdparty/chainbase/src/chainbase.cpp","line_range":"295-310","gmt_create":"2026-04-25T14:06:18.7154732+04:00","gmt_modified":"2026-04-25T14:06:18.7154732+04:00"},{"id":"1987e8487d7787c160e4463c3fdabf0b","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","line_range":"1319-1323","gmt_create":"2026-04-25T14:06:18.7159816+04:00","gmt_modified":"2026-04-25T14:06:18.7159816+04:00"},{"id":"115979303f8e1526ef91584f626a95d5","path":"libraries/chain/database.cpp","line_range":"1554-1556","gmt_create":"2026-04-25T14:06:18.7159816+04:00","gmt_modified":"2026-04-25T14:06:18.7159816+04:00"},{"id":"9365f8f64aaba2663765d4571a993eb9","path":"thirdparty/chainbase/src/chainbase.cpp","line_range":"278-293","gmt_create":"2026-04-25T14:06:18.7164968+04:00","gmt_modified":"2026-04-25T14:06:18.7164968+04:00"},{"id":"c38b767d343277b69570cd2a3fea3b1a","path":"libraries/chain/database.cpp","line_range":"624-652","gmt_create":"2026-04-25T14:06:18.7170051+04:00","gmt_modified":"2026-04-25T14:06:18.7170051+04:00"},{"id":"a852b960d4b82efca416c1b71810dd85","path":"libraries/chain/database.cpp","line_range":"577-610","gmt_create":"2026-04-25T14:06:18.7170051+04:00","gmt_modified":"2026-04-25T14:06:18.7170051+04:00"},{"id":"303588f8e546d2f76f5953ffc8716a75","path":"thirdparty/chainbase/src/chainbase.cpp","line_range":"80-89","gmt_create":"2026-04-25T14:06:18.7170051+04:00","gmt_modified":"2026-04-25T14:06:18.7170051+04:00"},{"id":"975e7c774bd6742eb3d0ffdf9b054b27","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"79-351","gmt_create":"2026-04-25T14:08:40.2481154+04:00","gmt_modified":"2026-04-25T14:08:40.2481154+04:00"},{"id":"8f0521fc24f28f12a7d388a0ffa49005","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"45-79","gmt_create":"2026-04-25T14:08:40.2481154+04:00","gmt_modified":"2026-04-25T14:08:40.2481154+04:00"},{"id":"da9b9a0455261a1d96a4cfde032011c1","path":"libraries/network/include/graphene/network/stcp_socket.hpp","line_range":"37-93","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"bd7a6b3901d17761f95abcc24de29752","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"72-95","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"9df573a120639a854f144a770bab90af","path":"libraries/network/include/graphene/network/message.hpp","line_range":"42-106","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"84f35e5db5f76201b869bb4906f4203c","path":"libraries/network/include/graphene/network/node.hpp","line_range":"190-304","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"a15462ec0bbbc48740799f63479c10c9","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"104-134","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"fd649f3742889ad2c6fe7ff2b959163b","path":"libraries/network/node.cpp","line_range":"593-601","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"5cd868524baa1893efad33406f8ccd66","path":"libraries/network/node.cpp","line_range":"5240-5274","gmt_create":"2026-04-25T14:08:40.2491161+04:00","gmt_modified":"2026-04-25T14:08:40.2491161+04:00"},{"id":"69f34d8085a9d37a5acfcdb1b00e9611","path":"plugins/snapshot/plugin.cpp","line_range":"3039-3045","gmt_create":"2026-04-25T14:08:40.2501138+04:00","gmt_modified":"2026-04-25T14:08:40.2501138+04:00"},{"id":"db150ce854a9a1b6a9276b8e7a2333b2","path":"libraries/chain/database.cpp","line_range":"1215-1246","gmt_create":"2026-04-25T14:08:40.2501138+04:00","gmt_modified":"2026-04-25T14:08:40.2501138+04:00"},{"id":"758c4af65ff127e21da17020065b26b4","path":"libraries/network/include/graphene/network/exceptions.hpp","line_range":"33-45","gmt_create":"2026-04-25T14:08:40.2501138+04:00","gmt_modified":"2026-04-25T14:08:40.2501138+04:00"},{"id":"a7c5e3037bd0ca3486eab3886dd795db","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"1-386","gmt_create":"2026-04-25T14:08:40.2501138+04:00","gmt_modified":"2026-04-25T14:08:40.2501138+04:00"},{"id":"5b029dc52193bbcfa010b0e2634f9d75","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"1-85","gmt_create":"2026-04-25T14:08:40.2511139+04:00","gmt_modified":"2026-04-25T14:08:40.2511139+04:00"},{"id":"108264b31296eda8fd7a493737556a57","path":"libraries/network/include/graphene/network/stcp_socket.hpp","line_range":"1-99","gmt_create":"2026-04-25T14:08:40.2511139+04:00","gmt_modified":"2026-04-25T14:08:40.2511139+04:00"},{"id":"a780979edb41332a330b7fde3eb0918e","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"1-573","gmt_create":"2026-04-25T14:08:40.2511139+04:00","gmt_modified":"2026-04-25T14:08:40.2511139+04:00"},{"id":"fc71c63708e383baa3478397a0504100","path":"libraries/network/include/graphene/network/node.hpp","line_range":"1-374","gmt_create":"2026-04-25T14:08:40.2511139+04:00","gmt_modified":"2026-04-25T14:08:40.2511139+04:00"},{"id":"d5db37e8f93fe64dd7d0612b6beafe87","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"1-141","gmt_create":"2026-04-25T14:08:40.2521154+04:00","gmt_modified":"2026-04-25T14:08:40.2521154+04:00"},{"id":"8edd69c54bd69f89e89edb819e52e47b","path":"libraries/network/include/graphene/network/message.hpp","line_range":"1-114","gmt_create":"2026-04-25T14:08:40.2521154+04:00","gmt_modified":"2026-04-25T14:08:40.2521154+04:00"},{"id":"46d3848165b0cc3dedc2d3f8c3a1d767","path":"libraries/chain/database.cpp","line_range":"1-6389","gmt_create":"2026-04-25T14:08:40.2521154+04:00","gmt_modified":"2026-04-25T14:08:40.2521154+04:00"},{"id":"f124e76655366afa700a34e4083c24fc","path":"libraries/chain/fork_database.cpp","line_range":"1-271","gmt_create":"2026-04-25T14:08:40.2521154+04:00","gmt_modified":"2026-04-25T14:08:40.2521154+04:00"},{"id":"56d660775b68ee44cf861b561d65c0cd","path":"libraries/network/include/graphene/network/exceptions.hpp","line_range":"1-49","gmt_create":"2026-04-25T14:08:40.2521154+04:00","gmt_modified":"2026-04-25T14:08:40.2521154+04:00"},{"id":"872f222c612b48577639689c04437108","path":"libraries/network/peer_connection.cpp","line_range":"68-162","gmt_create":"2026-04-25T14:08:40.253115+04:00","gmt_modified":"2026-04-25T14:08:40.253115+04:00"},{"id":"008f8667ff32111a7be22d722ac31459","path":"libraries/network/message_oriented_connection.cpp","line_range":"128-140","gmt_create":"2026-04-25T14:08:40.2541163+04:00","gmt_modified":"2026-04-25T14:08:40.2541163+04:00"},{"id":"a224f3c8025ab755b098e66506721e68","path":"libraries/network/stcp_socket.cpp","line_range":"49-72","gmt_create":"2026-04-25T14:08:40.2541163+04:00","gmt_modified":"2026-04-25T14:08:40.2541163+04:00"},{"id":"726eaf8bf4bee91c2ef30dacbde65b1b","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"233-306","gmt_create":"2026-04-25T14:08:40.2541163+04:00","gmt_modified":"2026-04-25T14:08:40.2541163+04:00"},{"id":"6a2b7bf38eaf3df82f34a15be6b40e41","path":"libraries/network/node.cpp","line_range":"424-799","gmt_create":"2026-04-25T14:08:40.2541163+04:00","gmt_modified":"2026-04-25T14:08:40.2541163+04:00"},{"id":"f948de76b0ebb5b5734497c718fad51b","path":"libraries/network/peer_database.cpp","line_range":"100-174","gmt_create":"2026-04-25T14:08:40.2546218+04:00","gmt_modified":"2026-04-25T14:08:40.2546218+04:00"},{"id":"f844fb63cee5ff73313f2ecaa6695a90","path":"libraries/network/peer_connection.cpp","line_range":"208-242","gmt_create":"2026-04-25T14:08:40.2556286+04:00","gmt_modified":"2026-04-25T14:08:40.2556286+04:00"},{"id":"98ab793d980a86051643734bda5bfb3e","path":"libraries/network/message_oriented_connection.cpp","line_range":"135-140","gmt_create":"2026-04-25T14:08:40.2556286+04:00","gmt_modified":"2026-04-25T14:08:40.2556286+04:00"},{"id":"6c00abc76aaaf65d567f52ee631c867f","path":"libraries/network/stcp_socket.cpp","line_range":"69-72","gmt_create":"2026-04-25T14:08:40.2556286+04:00","gmt_modified":"2026-04-25T14:08:40.2556286+04:00"},{"id":"99654a57de56122ba4cf91969a004c87","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"233-272","gmt_create":"2026-04-25T14:08:40.2556286+04:00","gmt_modified":"2026-04-25T14:08:40.2556286+04:00"},{"id":"d05a9f2dcaf4127f10252c1db4477aa9","path":"libraries/network/node.cpp","line_range":"662-718","gmt_create":"2026-04-25T14:08:40.2556286+04:00","gmt_modified":"2026-04-25T14:08:40.2556286+04:00"},{"id":"16a52da7c33a693c3b4441d0d9bedad0","path":"libraries/network/peer_connection.cpp","line_range":"41-66","gmt_create":"2026-04-25T14:08:40.2566316+04:00","gmt_modified":"2026-04-25T14:08:40.2566316+04:00"},{"id":"ad7057275825d866159043c459096521","path":"libraries/network/peer_connection.cpp","line_range":"244-338","gmt_create":"2026-04-25T14:08:40.2576284+04:00","gmt_modified":"2026-04-25T14:08:40.2576284+04:00"},{"id":"f82ec608f1b8c631fafb0e689a528a44","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"240-278","gmt_create":"2026-04-25T14:08:40.2576284+04:00","gmt_modified":"2026-04-25T14:08:40.2576284+04:00"},{"id":"27cc6086a8e067925e0d2668e4008761","path":"libraries/network/message_oriented_connection.cpp","line_range":"237-283","gmt_create":"2026-04-25T14:08:40.2576284+04:00","gmt_modified":"2026-04-25T14:08:40.2576284+04:00"},{"id":"08c48829dfc1f1cb10adb5fc1d96978a","path":"libraries/network/message_oriented_connection.cpp","line_range":"148-235","gmt_create":"2026-04-25T14:08:40.2576284+04:00","gmt_modified":"2026-04-25T14:08:40.2576284+04:00"},{"id":"182cbf47bc0bd507f6e4edaebca74a86","path":"libraries/network/stcp_socket.cpp","line_range":"132-177","gmt_create":"2026-04-25T14:08:40.259628+04:00","gmt_modified":"2026-04-25T14:08:40.259628+04:00"},{"id":"5ed13f3a1eda58065f691be7c2114887","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"82-106","gmt_create":"2026-04-25T14:08:40.2616268+04:00","gmt_modified":"2026-04-25T14:08:40.2616268+04:00"},{"id":"76ba3e9bd1586de8779db7c3668d30cc","path":"libraries/network/peer_connection.cpp","line_range":"356-369","gmt_create":"2026-04-25T14:08:40.262629+04:00","gmt_modified":"2026-04-25T14:08:40.262629+04:00"},{"id":"2a03b2ac9a29267367b1e4e831f99cbd","path":"libraries/network/node.cpp","line_range":"718-740","gmt_create":"2026-04-25T14:08:40.262629+04:00","gmt_modified":"2026-04-25T14:08:40.262629+04:00"},{"id":"db5cbda9cc8faccbe74ee1102aa66ed3","path":"libraries/network/node.cpp","line_range":"5272-5274","gmt_create":"2026-04-25T14:08:40.2636276+04:00","gmt_modified":"2026-04-25T14:08:40.2636276+04:00"},{"id":"87a041911f992635eb732d7638de65d3","path":"libraries/network/peer_connection.cpp","line_range":"169-242","gmt_create":"2026-04-25T14:08:40.2636276+04:00","gmt_modified":"2026-04-25T14:08:40.2636276+04:00"},{"id":"44c69ec3388fb2df0f06a5140c3191be","path":"libraries/network/peer_connection.cpp","line_range":"310-338","gmt_create":"2026-04-25T14:08:40.265134+04:00","gmt_modified":"2026-04-25T14:08:40.265134+04:00"},{"id":"9025eb86f00163e1519f9870d57379aa","path":"libraries/network/peer_connection.cpp","line_range":"255-308","gmt_create":"2026-04-25T14:08:40.265134+04:00","gmt_modified":"2026-04-25T14:08:40.265134+04:00"},{"id":"23685ed722f99d2e44670cbe71e2eb9a","path":"libraries/network/include/graphene/network/config.hpp","line_range":"58-58","gmt_create":"2026-04-25T14:08:40.265134+04:00","gmt_modified":"2026-04-25T14:08:40.265134+04:00"},{"id":"1a0f41827a37f86ae966c14f359ba6f1","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"175-279","gmt_create":"2026-04-25T14:08:40.2661415+04:00","gmt_modified":"2026-04-25T14:08:40.2661415+04:00"},{"id":"c24f664eefd33018e1bde6ec97f9a78c","path":"libraries/network/peer_connection.cpp","line_range":"428-480","gmt_create":"2026-04-25T14:08:40.2661415+04:00","gmt_modified":"2026-04-25T14:08:40.2661415+04:00"},{"id":"4e477e9c054addadfcdfde41a11b55fc","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"47-71","gmt_create":"2026-04-25T14:08:40.2661415+04:00","gmt_modified":"2026-04-25T14:08:40.2661415+04:00"},{"id":"4a08120c5f3262ed540c2bbf320e6a07","path":"libraries/network/node.cpp","line_range":"518-526","gmt_create":"2026-04-25T14:08:40.2671421+04:00","gmt_modified":"2026-04-25T14:08:40.2671421+04:00"},{"id":"85e2ce2c051e55ac7c71cfb33007c788","path":"libraries/network/node.cpp","line_range":"5265-5274","gmt_create":"2026-04-25T14:08:40.2671421+04:00","gmt_modified":"2026-04-25T14:08:40.2671421+04:00"},{"id":"1d7dcd040fc765da988b0479b48e6073","path":"libraries/network/node.cpp","line_range":"3598-3626","gmt_create":"2026-04-25T14:08:40.2671421+04:00","gmt_modified":"2026-04-25T14:08:40.2671421+04:00"},{"id":"d2e0d83ba70517cc5d6822e1b9ed2d7a","path":"plugins/p2p/p2p_plugin.cpp","line_range":"172-182","gmt_create":"2026-04-25T14:08:40.26814+04:00","gmt_modified":"2026-04-25T14:08:40.26814+04:00"},{"id":"28ea3150eed4d22263a6cf0b50c34f04","path":"libraries/network/node.cpp","line_range":"599-600","gmt_create":"2026-04-25T14:08:40.26814+04:00","gmt_modified":"2026-04-25T14:08:40.26814+04:00"},{"id":"f8717b5227754e2665c5c052d491aeaf","path":"libraries/network/node.cpp","line_range":"4472-4479","gmt_create":"2026-04-25T14:08:40.26814+04:00","gmt_modified":"2026-04-25T14:08:40.26814+04:00"},{"id":"8fcb1b6e0618debd0047884f427fb770","path":"libraries/network/node.cpp","line_range":"5016-5021","gmt_create":"2026-04-25T14:08:40.2691397+04:00","gmt_modified":"2026-04-25T14:08:40.2691397+04:00"},{"id":"4eae962bc809dfe6dd03748c803453f9","path":"libraries/network/peer_database.cpp","line_range":"120-137","gmt_create":"2026-04-25T14:08:40.2691397+04:00","gmt_modified":"2026-04-25T14:08:40.2691397+04:00"},{"id":"0f049b5e91b778562cd59d76d9e56a3f","path":"libraries/network/node.cpp","line_range":"5013-5014","gmt_create":"2026-04-25T14:08:40.2691397+04:00","gmt_modified":"2026-04-25T14:08:40.2691397+04:00"},{"id":"160398b60c444933e0887c6dd5d987fa","path":"libraries/network/node.cpp","line_range":"3061-3062","gmt_create":"2026-04-25T14:08:40.2691397+04:00","gmt_modified":"2026-04-25T14:08:40.2691397+04:00"},{"id":"471037d1ce733b80b4a5638eef9d8687","path":"libraries/network/peer_connection.cpp","line_range":"340-354","gmt_create":"2026-04-25T14:08:40.2701381+04:00","gmt_modified":"2026-04-25T14:08:40.2701381+04:00"},{"id":"7335a9476e83f328e52aed77c481211c","path":"libraries/network/peer_connection.cpp","line_range":"371-399","gmt_create":"2026-04-25T14:08:40.2701381+04:00","gmt_modified":"2026-04-25T14:08:40.2701381+04:00"},{"id":"31f9b0f76aa81ca2a0393386972980f4","path":"share/vizd/config/config.ini","line_range":"96-101","gmt_create":"2026-04-25T14:08:40.2701381+04:00","gmt_modified":"2026-04-25T14:08:40.2701381+04:00"},{"id":"4791d80d40da16166e47841aa0678240","path":"libraries/network/include/graphene/network/peer_connection.hpp","line_range":"26-45","gmt_create":"2026-04-25T14:08:40.2734115+04:00","gmt_modified":"2026-04-25T14:08:40.2734115+04:00"},{"id":"88bd2a9a0abb4fa09daa8a8cb10d0b8c","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","line_range":"26-28","gmt_create":"2026-04-25T14:08:40.2734115+04:00","gmt_modified":"2026-04-25T14:08:40.2734115+04:00"},{"id":"89c7100622c0b23d67ef1ae646d499e8","path":"libraries/network/include/graphene/network/stcp_socket.hpp","line_range":"26-28","gmt_create":"2026-04-25T14:08:40.2734115+04:00","gmt_modified":"2026-04-25T14:08:40.2734115+04:00"},{"id":"969b7e21a9195e24fae1b767f9d32e98","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"26-35","gmt_create":"2026-04-25T14:08:40.2734115+04:00","gmt_modified":"2026-04-25T14:08:40.2734115+04:00"},{"id":"428a1b448f010faa899231f4213d372b","path":"libraries/network/include/graphene/network/node.hpp","line_range":"26-31","gmt_create":"2026-04-25T14:08:40.2734115+04:00","gmt_modified":"2026-04-25T14:08:40.2734115+04:00"},{"id":"4b37e77df79d6904f7a0b3de67802afd","path":"libraries/network/include/graphene/network/peer_database.hpp","line_range":"26-35","gmt_create":"2026-04-25T14:08:40.2734115+04:00","gmt_modified":"2026-04-25T14:08:40.2734115+04:00"},{"id":"a5e688fef1a4e25ebeb5a71d58e91b7a","path":"libraries/network/include/graphene/network/message.hpp","line_range":"26-31","gmt_create":"2026-04-25T14:08:40.274921+04:00","gmt_modified":"2026-04-25T14:08:40.274921+04:00"},{"id":"263e5946a8d014117e11558ac1b8f2c4","path":"libraries/network/include/graphene/network/core_messages.hpp","line_range":"285-306","gmt_create":"2026-04-25T14:08:40.2759277+04:00","gmt_modified":"2026-04-25T14:08:40.2759277+04:00"},{"id":"9191091dc04fe839ddf875ecb57733a2","path":"libraries/network/include/graphene/network/config.hpp","line_range":"48-50","gmt_create":"2026-04-25T14:08:40.2759277+04:00","gmt_modified":"2026-04-25T14:08:40.2759277+04:00"},{"id":"6d8a9bfe7d00655a50e0dd2e83ef96de","path":"libraries/network/peer_connection.cpp","line_range":"314-325","gmt_create":"2026-04-25T14:08:40.2759277+04:00","gmt_modified":"2026-04-25T14:08:40.2759277+04:00"},{"id":"ba96043ad78b4237941727486c634ac3","path":"libraries/network/node.cpp","line_range":"3448-3470","gmt_create":"2026-04-25T14:08:40.2759277+04:00","gmt_modified":"2026-04-25T14:08:40.2759277+04:00"},{"id":"94f11e7fc48da3d084cf64f6ade85fa6","path":"libraries/network/include/graphene/network/config.hpp","line_range":"26-106","gmt_create":"2026-04-25T14:08:40.2769269+04:00","gmt_modified":"2026-04-25T14:08:40.2769269+04:00"},{"id":"5e5ecb33e688b77e80c2243346312c0d","path":"libraries/chain/database.cpp","line_range":"1239-1241","gmt_create":"2026-04-25T14:08:40.2769269+04:00","gmt_modified":"2026-04-25T14:08:40.2769269+04:00"},{"id":"fc051dd33938b4a7f885f7387ddf038b","path":"libraries/chain/include/graphene/chain/database_exceptions.hpp","line_range":"86-86","gmt_create":"2026-04-25T14:08:40.2779254+04:00","gmt_modified":"2026-04-25T14:08:40.2779254+04:00"},{"id":"041661726677b33bd0b38179389905a2","path":"libraries/network/node.cpp","line_range":"79-82","gmt_create":"2026-04-25T14:08:40.2779254+04:00","gmt_modified":"2026-04-25T14:08:40.2779254+04:00"},{"id":"cc8a01f66b6f18dcb3d65caee4494505","path":"libraries/network/node.cpp","line_range":"3278-3281","gmt_create":"2026-04-25T14:08:40.2779254+04:00","gmt_modified":"2026-04-25T14:08:40.2779254+04:00"},{"id":"76d36af1870a128598931bc419e8d8da","path":"libraries/network/node.cpp","line_range":"3633-3636","gmt_create":"2026-04-25T14:08:40.2779254+04:00","gmt_modified":"2026-04-25T14:08:40.2779254+04:00"},{"id":"2feb7e07bc2c7e2dc0a3d43ed8ac51a2","path":"libraries/network/node.cpp","line_range":"3653-3656","gmt_create":"2026-04-25T14:08:40.2779254+04:00","gmt_modified":"2026-04-25T14:08:40.2779254+04:00"},{"id":"8b59c2217bd1ef2dd001c2f91f9cba34","path":"libraries/network/node.cpp","line_range":"3671-3674","gmt_create":"2026-04-25T14:08:40.2789282+04:00","gmt_modified":"2026-04-25T14:08:40.2789282+04:00"}],"knowledge_relations":[{"id":33265,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"fb70b5aeb94bb2dcf55b122df1a7718d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-04-25T14:03:59.2502154+04:00","gmt_modified":"2026-04-25T14:03:59.2502154+04:00"},{"id":33266,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"66fa326245da38aa1614b28e74aca5fe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-25T14:03:59.2502154+04:00","gmt_modified":"2026-04-25T14:03:59.2502154+04:00"},{"id":33267,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"2c0e459bc9ce83513c9e1465ef2dedf6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-04-25T14:03:59.2502154+04:00","gmt_modified":"2026-04-25T14:03:59.2502154+04:00"},{"id":33268,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"02dbf249fc8c10dab447eced53151995","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-25T14:03:59.2512146+04:00","gmt_modified":"2026-04-25T14:03:59.2512146+04:00"},{"id":33269,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"903f4b4d21958aad03ca3cb60e83791e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/block_log.hpp","gmt_create":"2026-04-25T14:03:59.2512146+04:00","gmt_modified":"2026-04-25T14:03:59.2512146+04:00"},{"id":33270,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"88ed2b5e83949ecd30d1f37a87c50f6e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/dlt_block_log.hpp","gmt_create":"2026-04-25T14:03:59.2512146+04:00","gmt_modified":"2026-04-25T14:03:59.2512146+04:00"},{"id":33271,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"03b58611ba9e019370df1d275d0af64e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-25T14:03:59.2512146+04:00","gmt_modified":"2026-04-25T14:03:59.2512146+04:00"},{"id":33272,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"a49bd340a179d1cbdb19ed84c7cf27d1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-25T14:03:59.2512146+04:00","gmt_modified":"2026-04-25T14:03:59.2512146+04:00"},{"id":33273,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-25T14:03:59.2522143+04:00","gmt_modified":"2026-04-25T14:03:59.2522143+04:00"},{"id":33274,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"034fe2e1d06c141a582bfd0c6735aa4b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/config.hpp","gmt_create":"2026-04-25T14:03:59.2527196+04:00","gmt_modified":"2026-04-25T14:03:59.2527196+04:00"},{"id":33275,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"e053c9622fa61524116755003ebeb15c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/hardfork.d/12.hf","gmt_create":"2026-04-25T14:03:59.2527196+04:00","gmt_modified":"2026-04-25T14:03:59.2527196+04:00"},{"id":33276,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"96ce9f46f6e7ab1d1796a1570b143b4a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#111-120","gmt_create":"2026-04-25T14:03:59.2527196+04:00","gmt_modified":"2026-04-25T14:03:59.2527196+04:00"},{"id":33277,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"96ce9f46f6e7ab1d1796a1570b143b4a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 111-120","gmt_create":"2026-04-25T14:03:59.2537242+04:00","gmt_modified":"2026-04-25T14:03:59.2537242+04:00"},{"id":33278,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"88d06c150b2e270f74f72c73afa3dfdb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#80-87","gmt_create":"2026-04-25T14:03:59.2537242+04:00","gmt_modified":"2026-04-25T14:03:59.2537242+04:00"},{"id":33279,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"88d06c150b2e270f74f72c73afa3dfdb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 80-87","gmt_create":"2026-04-25T14:03:59.2537242+04:00","gmt_modified":"2026-04-25T14:03:59.2537242+04:00"},{"id":33280,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"f7c681c365a691e831d5a36525f5948d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1204-1270","gmt_create":"2026-04-25T14:03:59.2547233+04:00","gmt_modified":"2026-04-25T14:03:59.2547233+04:00"},{"id":33281,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"f7c681c365a691e831d5a36525f5948d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1204-1270","gmt_create":"2026-04-25T14:03:59.2547233+04:00","gmt_modified":"2026-04-25T14:03:59.2547233+04:00"},{"id":33282,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"27f7c0a9d63e4674d5d7d89f5220889e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#521-544","gmt_create":"2026-04-25T14:03:59.2547233+04:00","gmt_modified":"2026-04-25T14:03:59.2547233+04:00"},{"id":33283,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"27f7c0a9d63e4674d5d7d89f5220889e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 521-544","gmt_create":"2026-04-25T14:03:59.2547233+04:00","gmt_modified":"2026-04-25T14:03:59.2547233+04:00"},{"id":33284,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"a1973ec03428421db31f8d59ee34ee4c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#1-144","gmt_create":"2026-04-25T14:03:59.2557262+04:00","gmt_modified":"2026-04-25T14:03:59.2557262+04:00"},{"id":33285,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"a1973ec03428421db31f8d59ee34ee4c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2026-04-25T14:03:59.2557262+04:00","gmt_modified":"2026-04-25T14:03:59.2557262+04:00"},{"id":33286,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"b57baf112df691ec97987a0848acbf11","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#1-278","gmt_create":"2026-04-25T14:03:59.2557262+04:00","gmt_modified":"2026-04-25T14:03:59.2557262+04:00"},{"id":33287,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"b57baf112df691ec97987a0848acbf11","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-278","gmt_create":"2026-04-25T14:03:59.2557262+04:00","gmt_modified":"2026-04-25T14:03:59.2557262+04:00"},{"id":33288,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"b2e1b7d2c8e77c9cc485da31d5ece695","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#1-200","gmt_create":"2026-04-25T14:03:59.2567247+04:00","gmt_modified":"2026-04-25T14:03:59.2567247+04:00"},{"id":33289,"source_id":"2c0e459bc9ce83513c9e1465ef2dedf6","target_id":"b2e1b7d2c8e77c9cc485da31d5ece695","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-04-25T14:03:59.2567247+04:00","gmt_modified":"2026-04-25T14:03:59.2567247+04:00"},{"id":33290,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"b90d12427e7c4ad91df39144cb438698","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1-6480","gmt_create":"2026-04-25T14:03:59.2567247+04:00","gmt_modified":"2026-04-25T14:03:59.2567247+04:00"},{"id":33291,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"b90d12427e7c4ad91df39144cb438698","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-6480","gmt_create":"2026-04-25T14:03:59.257724+04:00","gmt_modified":"2026-04-25T14:03:59.257724+04:00"},{"id":33292,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"b09542b3dccdffdb594fb065b6b0fa40","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#1-76","gmt_create":"2026-04-25T14:03:59.257724+04:00","gmt_modified":"2026-04-25T14:03:59.257724+04:00"},{"id":33293,"source_id":"88ed2b5e83949ecd30d1f37a87c50f6e","target_id":"b09542b3dccdffdb594fb065b6b0fa40","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-76","gmt_create":"2026-04-25T14:03:59.257724+04:00","gmt_modified":"2026-04-25T14:03:59.257724+04:00"},{"id":33294,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"0b205150d71c0d540ceef54fcd994036","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#1-454","gmt_create":"2026-04-25T14:03:59.258723+04:00","gmt_modified":"2026-04-25T14:03:59.258723+04:00"},{"id":33295,"source_id":"03b58611ba9e019370df1d275d0af64e","target_id":"0b205150d71c0d540ceef54fcd994036","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-454","gmt_create":"2026-04-25T14:03:59.258723+04:00","gmt_modified":"2026-04-25T14:03:59.258723+04:00"},{"id":33296,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"74ff0370261596c9c219ccec4e98f8dd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#1-695","gmt_create":"2026-04-25T14:03:59.258723+04:00","gmt_modified":"2026-04-25T14:03:59.258723+04:00"},{"id":33297,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"74ff0370261596c9c219ccec4e98f8dd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-695","gmt_create":"2026-04-25T14:03:59.2715313+04:00","gmt_modified":"2026-04-25T14:03:59.2715313+04:00"},{"id":33298,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"aa83076d79d89a1a759cc14258325b43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config.hpp#110-124","gmt_create":"2026-04-25T14:03:59.2720355+04:00","gmt_modified":"2026-04-25T14:03:59.2720355+04:00"},{"id":33299,"source_id":"034fe2e1d06c141a582bfd0c6735aa4b","target_id":"aa83076d79d89a1a759cc14258325b43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 110-124","gmt_create":"2026-04-25T14:03:59.2725542+04:00","gmt_modified":"2026-04-25T14:03:59.2725542+04:00"},{"id":33300,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"0ada83aa5ba1ed4a4545e8ba69888d56","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/hardfork.d/12.hf#1-7","gmt_create":"2026-04-25T14:03:59.2725542+04:00","gmt_modified":"2026-04-25T14:03:59.2725542+04:00"},{"id":33301,"source_id":"e053c9622fa61524116755003ebeb15c","target_id":"0ada83aa5ba1ed4a4545e8ba69888d56","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-7","gmt_create":"2026-04-25T14:03:59.2730744+04:00","gmt_modified":"2026-04-25T14:03:59.2730744+04:00"},{"id":33302,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"adf68d7a2b6319d31ce18cc0bc7fc265","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#53-144","gmt_create":"2026-04-25T14:03:59.2730744+04:00","gmt_modified":"2026-04-25T14:03:59.2730744+04:00"},{"id":33303,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"adf68d7a2b6319d31ce18cc0bc7fc265","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 53-144","gmt_create":"2026-04-25T14:03:59.2730744+04:00","gmt_modified":"2026-04-25T14:03:59.2730744+04:00"},{"id":33304,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"0f62b18cedaa609a31aa3c27c2efebe0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#33-92","gmt_create":"2026-04-25T14:03:59.273584+04:00","gmt_modified":"2026-04-25T14:03:59.273584+04:00"},{"id":33305,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"0f62b18cedaa609a31aa3c27c2efebe0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-92","gmt_create":"2026-04-25T14:03:59.273584+04:00","gmt_modified":"2026-04-25T14:03:59.273584+04:00"},{"id":33306,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"bbe3fd2b852d97dedc12a8a6fe955e17","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1223-1267","gmt_create":"2026-04-25T14:03:59.2740994+04:00","gmt_modified":"2026-04-25T14:03:59.2740994+04:00"},{"id":33307,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"bbe3fd2b852d97dedc12a8a6fe955e17","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1223-1267","gmt_create":"2026-04-25T14:03:59.2740994+04:00","gmt_modified":"2026-04-25T14:03:59.2740994+04:00"},{"id":33308,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"08de86018e5a06d87b05b017ed0140a3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#13-33","gmt_create":"2026-04-25T14:03:59.2740994+04:00","gmt_modified":"2026-04-25T14:03:59.2740994+04:00"},{"id":33309,"source_id":"88ed2b5e83949ecd30d1f37a87c50f6e","target_id":"08de86018e5a06d87b05b017ed0140a3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-33","gmt_create":"2026-04-25T14:03:59.2746165+04:00","gmt_modified":"2026-04-25T14:03:59.2746165+04:00"},{"id":33310,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"3ad499e996887b14af62f05cffe4be8b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/dlt_block_log.cpp#336-340","gmt_create":"2026-04-25T14:03:59.2751307+04:00","gmt_modified":"2026-04-25T14:03:59.2751307+04:00"},{"id":33311,"source_id":"03b58611ba9e019370df1d275d0af64e","target_id":"3ad499e996887b14af62f05cffe4be8b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 336-340","gmt_create":"2026-04-25T14:03:59.2751307+04:00","gmt_modified":"2026-04-25T14:03:59.2751307+04:00"},{"id":33312,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"7b999e2a290d2cacc86aa0b5354e9531","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#48-84","gmt_create":"2026-04-25T14:03:59.2756457+04:00","gmt_modified":"2026-04-25T14:03:59.2756457+04:00"},{"id":33313,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"7b999e2a290d2cacc86aa0b5354e9531","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 48-84","gmt_create":"2026-04-25T14:03:59.2761634+04:00","gmt_modified":"2026-04-25T14:03:59.2761634+04:00"},{"id":33314,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"af60d7ba2506f51692d90b9e6a0706f5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#48-55","gmt_create":"2026-04-25T14:03:59.2766794+04:00","gmt_modified":"2026-04-25T14:03:59.2766794+04:00"},{"id":33315,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"af60d7ba2506f51692d90b9e6a0706f5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 48-55","gmt_create":"2026-04-25T14:03:59.2766794+04:00","gmt_modified":"2026-04-25T14:03:59.2766794+04:00"},{"id":33316,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"6592f497db3c7b6b6b3ec260ca9c7e05","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#20-144","gmt_create":"2026-04-25T14:03:59.2766794+04:00","gmt_modified":"2026-04-25T14:03:59.2766794+04:00"},{"id":33317,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"6592f497db3c7b6b6b3ec260ca9c7e05","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-144","gmt_create":"2026-04-25T14:03:59.2772007+04:00","gmt_modified":"2026-04-25T14:03:59.2772007+04:00"},{"id":33318,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"e4e6d7c651abf419517099cad9d89bd0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#33-278","gmt_create":"2026-04-25T14:03:59.2772007+04:00","gmt_modified":"2026-04-25T14:03:59.2772007+04:00"},{"id":33319,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"e4e6d7c651abf419517099cad9d89bd0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-278","gmt_create":"2026-04-25T14:03:59.2772007+04:00","gmt_modified":"2026-04-25T14:03:59.2772007+04:00"},{"id":33320,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"571d1a7dabb156a811267c7ffe3f6ad3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#111-144","gmt_create":"2026-04-25T14:03:59.27772+04:00","gmt_modified":"2026-04-25T14:03:59.27772+04:00"},{"id":33321,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"571d1a7dabb156a811267c7ffe3f6ad3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 111-144","gmt_create":"2026-04-25T14:03:59.27772+04:00","gmt_modified":"2026-04-25T14:03:59.27772+04:00"},{"id":33322,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"d8c4a536e031814cd855791b08fd743a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#269-274","gmt_create":"2026-04-25T14:03:59.2783877+04:00","gmt_modified":"2026-04-25T14:03:59.2783877+04:00"},{"id":33323,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"d8c4a536e031814cd855791b08fd743a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 269-274","gmt_create":"2026-04-25T14:03:59.2788916+04:00","gmt_modified":"2026-04-25T14:03:59.2788916+04:00"},{"id":33324,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"b18d54f10852c23b8aa6d9ff0eed7303","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#189-231","gmt_create":"2026-04-25T14:03:59.2788916+04:00","gmt_modified":"2026-04-25T14:03:59.2788916+04:00"},{"id":33325,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"b18d54f10852c23b8aa6d9ff0eed7303","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 189-231","gmt_create":"2026-04-25T14:03:59.2788916+04:00","gmt_modified":"2026-04-25T14:03:59.2788916+04:00"},{"id":33326,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"f0c0d95b98cda734e3025dc52a01e399","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1037-1177","gmt_create":"2026-04-25T14:03:59.279409+04:00","gmt_modified":"2026-04-25T14:03:59.279409+04:00"},{"id":33327,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"f0c0d95b98cda734e3025dc52a01e399","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1037-1177","gmt_create":"2026-04-25T14:03:59.279409+04:00","gmt_modified":"2026-04-25T14:03:59.279409+04:00"},{"id":33328,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"80f18f6ab336abffde43fcbc1430b86e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#259-294","gmt_create":"2026-04-25T14:03:59.279923+04:00","gmt_modified":"2026-04-25T14:03:59.279923+04:00"},{"id":33329,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"80f18f6ab336abffde43fcbc1430b86e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 259-294","gmt_create":"2026-04-25T14:03:59.2804387+04:00","gmt_modified":"2026-04-25T14:03:59.2804387+04:00"},{"id":33330,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"6a37076affbfb46a279d5d876dfe31ab","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#57-78","gmt_create":"2026-04-25T14:03:59.2804387+04:00","gmt_modified":"2026-04-25T14:03:59.2804387+04:00"},{"id":33331,"source_id":"2c0e459bc9ce83513c9e1465ef2dedf6","target_id":"6a37076affbfb46a279d5d876dfe31ab","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 57-78","gmt_create":"2026-04-25T14:03:59.2809465+04:00","gmt_modified":"2026-04-25T14:03:59.2809465+04:00"},{"id":33332,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"79b7755a269975ca3f31d683b52f4d6d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4444-4533","gmt_create":"2026-04-25T14:03:59.2809465+04:00","gmt_modified":"2026-04-25T14:03:59.2809465+04:00"},{"id":33333,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"79b7755a269975ca3f31d683b52f4d6d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4444-4533","gmt_create":"2026-04-25T14:03:59.2814663+04:00","gmt_modified":"2026-04-25T14:03:59.2814663+04:00"},{"id":33334,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"2c3d7f0e1e6c60c71686ef8c38ad41a6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/dlt_block_log.hpp#35-72","gmt_create":"2026-04-25T14:03:59.281983+04:00","gmt_modified":"2026-04-25T14:03:59.281983+04:00"},{"id":33335,"source_id":"88ed2b5e83949ecd30d1f37a87c50f6e","target_id":"2c3d7f0e1e6c60c71686ef8c38ad41a6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-72","gmt_create":"2026-04-25T14:03:59.281983+04:00","gmt_modified":"2026-04-25T14:03:59.281983+04:00"},{"id":33336,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"ba6df8912c17f04adac3d98bb441be8c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#118-164","gmt_create":"2026-04-25T14:03:59.281983+04:00","gmt_modified":"2026-04-25T14:03:59.281983+04:00"},{"id":33337,"source_id":"a49bd340a179d1cbdb19ed84c7cf27d1","target_id":"ba6df8912c17f04adac3d98bb441be8c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 118-164","gmt_create":"2026-04-25T14:03:59.281983+04:00","gmt_modified":"2026-04-25T14:03:59.281983+04:00"},{"id":33338,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"a044694c9dafbefcffb29abacac36b1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#115-128","gmt_create":"2026-04-25T14:03:59.2831441+04:00","gmt_modified":"2026-04-25T14:03:59.2831441+04:00"},{"id":33339,"source_id":"2c0e459bc9ce83513c9e1465ef2dedf6","target_id":"a044694c9dafbefcffb29abacac36b1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 115-128","gmt_create":"2026-04-25T14:03:59.2831441+04:00","gmt_modified":"2026-04-25T14:03:59.2831441+04:00"},{"id":33340,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"64fc2f1bacf1c0ab946fbe2ff72294f3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#561-580","gmt_create":"2026-04-25T14:03:59.2836496+04:00","gmt_modified":"2026-04-25T14:03:59.2836496+04:00"},{"id":33341,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"64fc2f1bacf1c0ab946fbe2ff72294f3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 561-580","gmt_create":"2026-04-25T14:03:59.2836496+04:00","gmt_modified":"2026-04-25T14:03:59.2836496+04:00"},{"id":33342,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"bff17a23941aac0b2d064fbbded50c2e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#738-792","gmt_create":"2026-04-25T14:03:59.2841628+04:00","gmt_modified":"2026-04-25T14:03:59.2841628+04:00"},{"id":33343,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"bff17a23941aac0b2d064fbbded50c2e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 738-792","gmt_create":"2026-04-25T14:03:59.2846849+04:00","gmt_modified":"2026-04-25T14:03:59.2846849+04:00"},{"id":33344,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"bbb167f1118d5aa1b7dc46becc4b2e65","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#206-230","gmt_create":"2026-04-25T14:03:59.2846849+04:00","gmt_modified":"2026-04-25T14:03:59.2846849+04:00"},{"id":33345,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"bbb167f1118d5aa1b7dc46becc4b2e65","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 206-230","gmt_create":"2026-04-25T14:03:59.2846849+04:00","gmt_modified":"2026-04-25T14:03:59.2846849+04:00"},{"id":33346,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"84742d24c019ab26c3aad0ebd8a73a3a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#476-515","gmt_create":"2026-04-25T14:03:59.2852017+04:00","gmt_modified":"2026-04-25T14:03:59.2852017+04:00"},{"id":33347,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"84742d24c019ab26c3aad0ebd8a73a3a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 476-515","gmt_create":"2026-04-25T14:03:59.2852017+04:00","gmt_modified":"2026-04-25T14:03:59.2852017+04:00"},{"id":33348,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"67b594d487482330b7b1fedc4f214981","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#92-103","gmt_create":"2026-04-25T14:03:59.2857216+04:00","gmt_modified":"2026-04-25T14:03:59.2857216+04:00"},{"id":33349,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"67b594d487482330b7b1fedc4f214981","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 92-103","gmt_create":"2026-04-25T14:03:59.2857216+04:00","gmt_modified":"2026-04-25T14:03:59.2857216+04:00"},{"id":33350,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"e967de600f4a9bab74101f1a56b257c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1075-1087","gmt_create":"2026-04-25T14:03:59.2857216+04:00","gmt_modified":"2026-04-25T14:03:59.2857216+04:00"},{"id":33351,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"e967de600f4a9bab74101f1a56b257c8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1075-1087","gmt_create":"2026-04-25T14:03:59.2857216+04:00","gmt_modified":"2026-04-25T14:03:59.2857216+04:00"},{"id":33352,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"c219f4fd3ffd9fe8992b2fb533b3370f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4581-4594","gmt_create":"2026-04-25T14:03:59.2862395+04:00","gmt_modified":"2026-04-25T14:03:59.2862395+04:00"},{"id":33353,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"c219f4fd3ffd9fe8992b2fb533b3370f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4581-4594","gmt_create":"2026-04-25T14:03:59.2867562+04:00","gmt_modified":"2026-04-25T14:03:59.2867562+04:00"},{"id":33354,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"6e8608c6747e522b8ef37af20c304f9a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2125-2142","gmt_create":"2026-04-25T14:03:59.2867562+04:00","gmt_modified":"2026-04-25T14:03:59.2867562+04:00"},{"id":33355,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"6e8608c6747e522b8ef37af20c304f9a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2125-2142","gmt_create":"2026-04-25T14:03:59.2872757+04:00","gmt_modified":"2026-04-25T14:03:59.2872757+04:00"},{"id":33356,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"181ba283810eaffaffea9e51cfb6d793","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#597-612","gmt_create":"2026-04-25T14:03:59.2877929+04:00","gmt_modified":"2026-04-25T14:03:59.2877929+04:00"},{"id":33357,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"181ba283810eaffaffea9e51cfb6d793","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 597-612","gmt_create":"2026-04-25T14:03:59.2877929+04:00","gmt_modified":"2026-04-25T14:03:59.2877929+04:00"},{"id":33358,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"7207f5e1cfaad7cca32dee221db4cf1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4334-4438","gmt_create":"2026-04-25T14:03:59.2883056+04:00","gmt_modified":"2026-04-25T14:03:59.2883056+04:00"},{"id":33359,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"7207f5e1cfaad7cca32dee221db4cf1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4334-4438","gmt_create":"2026-04-25T14:03:59.2883056+04:00","gmt_modified":"2026-04-25T14:03:59.2883056+04:00"},{"id":33360,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"d3d7c60375de09b0e366e9cf62d63434","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4420-4438","gmt_create":"2026-04-25T14:03:59.2883056+04:00","gmt_modified":"2026-04-25T14:03:59.2883056+04:00"},{"id":33361,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"d3d7c60375de09b0e366e9cf62d63434","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4420-4438","gmt_create":"2026-04-25T14:03:59.288822+04:00","gmt_modified":"2026-04-25T14:03:59.288822+04:00"},{"id":33362,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"ff98bdb82ec0734ef35a56c8aa5e94f8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4444-4450","gmt_create":"2026-04-25T14:03:59.288822+04:00","gmt_modified":"2026-04-25T14:03:59.288822+04:00"},{"id":33363,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"ff98bdb82ec0734ef35a56c8aa5e94f8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4444-4450","gmt_create":"2026-04-25T14:03:59.2893311+04:00","gmt_modified":"2026-04-25T14:03:59.2893311+04:00"},{"id":33364,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"e1b4ef00ab392cd8b5d1882f1512015f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config.hpp#114-124","gmt_create":"2026-04-25T14:03:59.2898836+04:00","gmt_modified":"2026-04-25T14:03:59.2898836+04:00"},{"id":33365,"source_id":"034fe2e1d06c141a582bfd0c6735aa4b","target_id":"e1b4ef00ab392cd8b5d1882f1512015f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 114-124","gmt_create":"2026-04-25T14:03:59.2904047+04:00","gmt_modified":"2026-04-25T14:03:59.2904047+04:00"},{"id":33366,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"d2dbf8d1305a1f5ec04517ae9bb097cf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4360-4398","gmt_create":"2026-04-25T14:03:59.2909844+04:00","gmt_modified":"2026-04-25T14:03:59.2909844+04:00"},{"id":33367,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"d2dbf8d1305a1f5ec04517ae9bb097cf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4360-4398","gmt_create":"2026-04-25T14:03:59.2909844+04:00","gmt_modified":"2026-04-25T14:03:59.2909844+04:00"},{"id":33368,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"e13f0e2f19ced66d428e93cb5f29e0da","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4400-4419","gmt_create":"2026-04-25T14:03:59.2914932+04:00","gmt_modified":"2026-04-25T14:03:59.2914932+04:00"},{"id":33369,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"e13f0e2f19ced66d428e93cb5f29e0da","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4400-4419","gmt_create":"2026-04-25T14:03:59.2918381+04:00","gmt_modified":"2026-04-25T14:03:59.2918381+04:00"},{"id":33370,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"3f730d96926f490bdc53cc0d2730b902","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#521-526","gmt_create":"2026-04-25T14:03:59.2925232+04:00","gmt_modified":"2026-04-25T14:03:59.2925232+04:00"},{"id":33371,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"3f730d96926f490bdc53cc0d2730b902","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 521-526","gmt_create":"2026-04-25T14:03:59.2925232+04:00","gmt_modified":"2026-04-25T14:03:59.2925232+04:00"},{"id":33372,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"272aae13de54622055da62427b1e5cb2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4428-4430","gmt_create":"2026-04-25T14:03:59.2937423+04:00","gmt_modified":"2026-04-25T14:03:59.2937423+04:00"},{"id":33373,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"272aae13de54622055da62427b1e5cb2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4428-4430","gmt_create":"2026-04-25T14:03:59.2937423+04:00","gmt_modified":"2026-04-25T14:03:59.2937423+04:00"},{"id":33374,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"683095076a31c87f9a3b36bed20efaf1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#565-656","gmt_create":"2026-04-25T14:03:59.2937423+04:00","gmt_modified":"2026-04-25T14:03:59.2937423+04:00"},{"id":33375,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"683095076a31c87f9a3b36bed20efaf1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 565-656","gmt_create":"2026-04-25T14:03:59.2942455+04:00","gmt_modified":"2026-04-25T14:03:59.2942455+04:00"},{"id":33376,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"64e626659832230970c9e28a16bb5b36","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#121","gmt_create":"2026-04-25T14:03:59.2943803+04:00","gmt_modified":"2026-04-25T14:03:59.2943803+04:00"},{"id":33377,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"64e626659832230970c9e28a16bb5b36","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 121","gmt_create":"2026-04-25T14:03:59.2943803+04:00","gmt_modified":"2026-04-25T14:03:59.2943803+04:00"},{"id":33378,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"c3debb357ce088f2ed2baa9963cc1e91","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#114-146","gmt_create":"2026-04-25T14:03:59.2948868+04:00","gmt_modified":"2026-04-25T14:03:59.2948868+04:00"},{"id":33379,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"c3debb357ce088f2ed2baa9963cc1e91","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 114-146","gmt_create":"2026-04-25T14:03:59.2948868+04:00","gmt_modified":"2026-04-25T14:03:59.2948868+04:00"},{"id":33380,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"d7570da2a4cffd5140f0c82ab5f9b6b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#34-46","gmt_create":"2026-04-25T14:03:59.2968739+04:00","gmt_modified":"2026-04-25T14:03:59.2968739+04:00"},{"id":33381,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"d7570da2a4cffd5140f0c82ab5f9b6b9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 34-46","gmt_create":"2026-04-25T14:03:59.2994139+04:00","gmt_modified":"2026-04-25T14:03:59.2994139+04:00"},{"id":33382,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"1c77b83d1916f3a9ce2b0584064f8b84","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#48-103","gmt_create":"2026-04-25T14:03:59.3016075+04:00","gmt_modified":"2026-04-25T14:03:59.3016075+04:00"},{"id":33383,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"1c77b83d1916f3a9ce2b0584064f8b84","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 48-103","gmt_create":"2026-04-25T14:03:59.3021928+04:00","gmt_modified":"2026-04-25T14:03:59.3021928+04:00"},{"id":33384,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"b5417385783d8c6a689ac2a6ee68e4d5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#38-46","gmt_create":"2026-04-25T14:03:59.3032182+04:00","gmt_modified":"2026-04-25T14:03:59.3032182+04:00"},{"id":33385,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"b5417385783d8c6a689ac2a6ee68e4d5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-46","gmt_create":"2026-04-25T14:03:59.3032182+04:00","gmt_modified":"2026-04-25T14:03:59.3032182+04:00"},{"id":33386,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"28aa10f4e1395f1c636ea49493cee498","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#59-75","gmt_create":"2026-04-25T14:03:59.3032182+04:00","gmt_modified":"2026-04-25T14:03:59.3032182+04:00"},{"id":33387,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"28aa10f4e1395f1c636ea49493cee498","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 59-75","gmt_create":"2026-04-25T14:03:59.3037571+04:00","gmt_modified":"2026-04-25T14:03:59.3037571+04:00"},{"id":33388,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"aa9c475f054eb31ce25cdd10ad579d78","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1390-1397","gmt_create":"2026-04-25T14:03:59.3037571+04:00","gmt_modified":"2026-04-25T14:03:59.3037571+04:00"},{"id":33389,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"aa9c475f054eb31ce25cdd10ad579d78","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1390-1397","gmt_create":"2026-04-25T14:03:59.3037571+04:00","gmt_modified":"2026-04-25T14:03:59.3037571+04:00"},{"id":33390,"source_id":"e10f3fcf-758a-4656-87ad-42105272ceba","target_id":"9828bffa0fc516ca37ed66ffb1285f90","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#614-646","gmt_create":"2026-04-25T14:03:59.3042768+04:00","gmt_modified":"2026-04-25T14:03:59.3042768+04:00"},{"id":33391,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"9828bffa0fc516ca37ed66ffb1285f90","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 614-646","gmt_create":"2026-04-25T14:03:59.3042768+04:00","gmt_modified":"2026-04-25T14:03:59.3042768+04:00"},{"id":33392,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"c3b81f8048c72b4ab59cb02d72200fdd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-25T14:04:19.3989475+04:00","gmt_modified":"2026-04-25T14:04:19.3989475+04:00"},{"id":33393,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"f34af374a10610073b7e51c29f9f5695","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","gmt_create":"2026-04-25T14:04:19.3989475+04:00","gmt_modified":"2026-04-25T14:04:19.3989475+04:00"},{"id":33394,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"acd25a60972ea8911ec05b8ae4f4887b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","gmt_create":"2026-04-25T14:04:19.3989475+04:00","gmt_modified":"2026-04-25T14:04:19.3989475+04:00"},{"id":33395,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"f550768bf389b46733cf4123fbc0e4fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","gmt_create":"2026-04-25T14:04:19.3999697+04:00","gmt_modified":"2026-04-25T14:04:19.3999697+04:00"},{"id":33396,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"304418a1e63eb01e6db5cb51359ec4e7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/CMakeLists.txt","gmt_create":"2026-04-25T14:04:19.3999697+04:00","gmt_modified":"2026-04-25T14:04:19.3999697+04:00"},{"id":33397,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"0f2d1fb78cf4a86691a5760e304898c8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/snapshot.json","gmt_create":"2026-04-25T14:04:19.4009722+04:00","gmt_modified":"2026-04-25T14:04:19.4009722+04:00"},{"id":33398,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"456108d9aeada4816d32a51b85052876","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/snapshot-testnet.json","gmt_create":"2026-04-25T14:04:19.4009722+04:00","gmt_modified":"2026-04-25T14:04:19.4009722+04:00"},{"id":33399,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"82895ed8f5fc6b434b0e594b1c94098f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-25T14:04:19.4009722+04:00","gmt_modified":"2026-04-25T14:04:19.4009722+04:00"},{"id":33400,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"6e93df783d566a1cb831543e5287d8a5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/plugin.cpp","gmt_create":"2026-04-25T14:04:19.4019703+04:00","gmt_modified":"2026-04-25T14:04:19.4019703+04:00"},{"id":33401,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"8d3608196aeef15f15996314adcca080","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-04-25T14:04:19.4019703+04:00","gmt_modified":"2026-04-25T14:04:19.4019703+04:00"},{"id":33402,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"02dbf249fc8c10dab447eced53151995","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-25T14:04:19.4019703+04:00","gmt_modified":"2026-04-25T14:04:19.4019703+04:00"},{"id":33403,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-25T14:04:19.4019703+04:00","gmt_modified":"2026-04-25T14:04:19.4019703+04:00"},{"id":33404,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"03b58611ba9e019370df1d275d0af64e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-25T14:04:19.4019703+04:00","gmt_modified":"2026-04-25T14:04:19.4019703+04:00"},{"id":33405,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"e3023fb4d49bffa1eff77d9255e77dd8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/interprocess/file_mutex.cpp","gmt_create":"2026-04-25T14:04:19.4019703+04:00","gmt_modified":"2026-04-25T14:04:19.4019703+04:00"},{"id":33406,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"c8f2db27bae624cb0754ff09a0d61570","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-25T14:04:19.4029723+04:00","gmt_modified":"2026-04-25T14:04:19.4029723+04:00"},{"id":33407,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"7ab596ff5f3d168bcc165af5345769ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-25T14:04:19.4029723+04:00","gmt_modified":"2026-04-25T14:04:19.4029723+04:00"},{"id":33408,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"b7482d6af46ff9d48a2e5a5c830db528","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-25T14:04:19.4029723+04:00","gmt_modified":"2026-04-25T14:04:19.4029723+04:00"},{"id":33409,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"a49bd340a179d1cbdb19ed84c7cf27d1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-25T14:04:19.4029723+04:00","gmt_modified":"2026-04-25T14:04:19.4029723+04:00"},{"id":33410,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"d91c0c67cfc4de5fe0f8c8815c803a5a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/log/logger_config.cpp","gmt_create":"2026-04-25T14:04:19.4029723+04:00","gmt_modified":"2026-04-25T14:04:19.4029723+04:00"},{"id":33411,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"87ec04c2e8d5cf6298d36f2e9adcb32c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/log/console_appender.cpp","gmt_create":"2026-04-25T14:04:19.4039707+04:00","gmt_modified":"2026-04-25T14:04:19.4039707+04:00"},{"id":33412,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"dd08baba3808f94116576cf3aebb5b52","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1-50","gmt_create":"2026-04-25T14:04:19.4039707+04:00","gmt_modified":"2026-04-25T14:04:19.4039707+04:00"},{"id":33413,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"dd08baba3808f94116576cf3aebb5b52","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2026-04-25T14:04:19.4039707+04:00","gmt_modified":"2026-04-25T14:04:19.4039707+04:00"},{"id":33414,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"b006363cd841f55df89821fef72c2cb4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#1-88","gmt_create":"2026-04-25T14:04:19.4049724+04:00","gmt_modified":"2026-04-25T14:04:19.4049724+04:00"},{"id":33415,"source_id":"f34af374a10610073b7e51c29f9f5695","target_id":"b006363cd841f55df89821fef72c2cb4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-88","gmt_create":"2026-04-25T14:04:19.4049724+04:00","gmt_modified":"2026-04-25T14:04:19.4049724+04:00"},{"id":33416,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"f51fd513d921c6aca3067c8e00769d95","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp#1-52","gmt_create":"2026-04-25T14:04:19.4049724+04:00","gmt_modified":"2026-04-25T14:04:19.4049724+04:00"},{"id":33417,"source_id":"acd25a60972ea8911ec05b8ae4f4887b","target_id":"f51fd513d921c6aca3067c8e00769d95","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-52","gmt_create":"2026-04-25T14:04:19.4049724+04:00","gmt_modified":"2026-04-25T14:04:19.4049724+04:00"},{"id":33418,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"9f246b8d3635081c05a2d1db7285e18d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/CMakeLists.txt#1-52","gmt_create":"2026-04-25T14:04:19.4059698+04:00","gmt_modified":"2026-04-25T14:04:19.4059698+04:00"},{"id":33419,"source_id":"304418a1e63eb01e6db5cb51359ec4e7","target_id":"9f246b8d3635081c05a2d1db7285e18d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-52","gmt_create":"2026-04-25T14:04:19.4059698+04:00","gmt_modified":"2026-04-25T14:04:19.4059698+04:00"},{"id":33420,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"6b764962f7e4e629b36413322758b3db","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#42-76","gmt_create":"2026-04-25T14:04:19.4059698+04:00","gmt_modified":"2026-04-25T14:04:19.4059698+04:00"},{"id":33421,"source_id":"f34af374a10610073b7e51c29f9f5695","target_id":"6b764962f7e4e629b36413322758b3db","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-76","gmt_create":"2026-04-25T14:04:19.4069711+04:00","gmt_modified":"2026-04-25T14:04:19.4069711+04:00"},{"id":33422,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"ac95949d3f08410fb1e93b78c064f673","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp#16-52","gmt_create":"2026-04-25T14:04:19.4069711+04:00","gmt_modified":"2026-04-25T14:04:19.4069711+04:00"},{"id":33423,"source_id":"acd25a60972ea8911ec05b8ae4f4887b","target_id":"ac95949d3f08410fb1e93b78c064f673","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-52","gmt_create":"2026-04-25T14:04:19.4069711+04:00","gmt_modified":"2026-04-25T14:04:19.4069711+04:00"},{"id":33424,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"530cb1a1957742efbb4f41d71fc9f0e9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp#30-158","gmt_create":"2026-04-25T14:04:19.4069711+04:00","gmt_modified":"2026-04-25T14:04:19.4069711+04:00"},{"id":33425,"source_id":"f550768bf389b46733cf4123fbc0e4fd","target_id":"530cb1a1957742efbb4f41d71fc9f0e9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30-158","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33426,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"a17567f5985004be327002459eac26c0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#675-780","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33427,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"a17567f5985004be327002459eac26c0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 675-780","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33428,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"d15d204e63b021e181c390e967de37b6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp#37-107","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33429,"source_id":"f550768bf389b46733cf4123fbc0e4fd","target_id":"d15d204e63b021e181c390e967de37b6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-107","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33430,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"f7129d846389f9235b7f07dbc43c38d5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#885-987","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33431,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"f7129d846389f9235b7f07dbc43c38d5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 885-987","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33432,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"05df87a68b75af2022c886377a855488","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#789-883","gmt_create":"2026-04-25T14:04:19.4079721+04:00","gmt_modified":"2026-04-25T14:04:19.4079721+04:00"},{"id":33433,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"05df87a68b75af2022c886377a855488","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 789-883","gmt_create":"2026-04-25T14:04:19.4094767+04:00","gmt_modified":"2026-04-25T14:04:19.4094767+04:00"},{"id":33434,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"a55c901dfd6aa9932e83d81f0226f890","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1400-1484","gmt_create":"2026-04-25T14:04:19.4094767+04:00","gmt_modified":"2026-04-25T14:04:19.4094767+04:00"},{"id":33435,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"a55c901dfd6aa9932e83d81f0226f890","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1400-1484","gmt_create":"2026-04-25T14:04:19.4094767+04:00","gmt_modified":"2026-04-25T14:04:19.4094767+04:00"},{"id":33436,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"90bf6039bca8f12e1f63b7896c458d71","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1046-1288","gmt_create":"2026-04-25T14:04:19.4094767+04:00","gmt_modified":"2026-04-25T14:04:19.4094767+04:00"},{"id":33437,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"90bf6039bca8f12e1f63b7896c458d71","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1046-1288","gmt_create":"2026-04-25T14:04:19.4094767+04:00","gmt_modified":"2026-04-25T14:04:19.4094767+04:00"},{"id":33438,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"53e597e11a574e9088019a082aac3d17","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1902-2038","gmt_create":"2026-04-25T14:04:19.4104813+04:00","gmt_modified":"2026-04-25T14:04:19.4104813+04:00"},{"id":33439,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"53e597e11a574e9088019a082aac3d17","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1902-2038","gmt_create":"2026-04-25T14:04:19.4104813+04:00","gmt_modified":"2026-04-25T14:04:19.4104813+04:00"},{"id":33440,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"1aa4f7fa6a5ba064180d8b2a936a4ea8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1470-1599","gmt_create":"2026-04-25T14:04:19.4104813+04:00","gmt_modified":"2026-04-25T14:04:19.4104813+04:00"},{"id":33441,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"1aa4f7fa6a5ba064180d8b2a936a4ea8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1470-1599","gmt_create":"2026-04-25T14:04:19.4104813+04:00","gmt_modified":"2026-04-25T14:04:19.4104813+04:00"},{"id":33442,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"6aa4682754f386b4d759513e60e4c2ad","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2473-2510","gmt_create":"2026-04-25T14:04:19.4104813+04:00","gmt_modified":"2026-04-25T14:04:19.4104813+04:00"},{"id":33443,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"6aa4682754f386b4d759513e60e4c2ad","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2473-2510","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33444,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"9ffd30a2624b19a408fc0094208d56b5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#247-273","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33445,"source_id":"82895ed8f5fc6b434b0e594b1c94098f","target_id":"9ffd30a2624b19a408fc0094208d56b5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 247-273","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33446,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"71e0247c3d3b74f2312353acb634771b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1418-1436","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33447,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"71e0247c3d3b74f2312353acb634771b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1418-1436","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33448,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"689bb96a400298c19844acf1883d5033","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#737-743","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33449,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"689bb96a400298c19844acf1883d5033","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 737-743","gmt_create":"2026-04-25T14:04:19.4114798+04:00","gmt_modified":"2026-04-25T14:04:19.4114798+04:00"},{"id":33450,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"38c4856e3abc8eb4c59217ffc6601f6a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1390-1484","gmt_create":"2026-04-25T14:04:19.4124808+04:00","gmt_modified":"2026-04-25T14:04:19.4124808+04:00"},{"id":33451,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"38c4856e3abc8eb4c59217ffc6601f6a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1390-1484","gmt_create":"2026-04-25T14:04:19.4124808+04:00","gmt_modified":"2026-04-25T14:04:19.4124808+04:00"},{"id":33452,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"7dbcd9b4feb28cee4d4ed4eef7e6c307","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1440-1449","gmt_create":"2026-04-25T14:04:19.4124808+04:00","gmt_modified":"2026-04-25T14:04:19.4124808+04:00"},{"id":33453,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"7dbcd9b4feb28cee4d4ed4eef7e6c307","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1440-1449","gmt_create":"2026-04-25T14:04:19.4124808+04:00","gmt_modified":"2026-04-25T14:04:19.4124808+04:00"},{"id":33454,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"4235ed4ba5074e35c79079969aed3209","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#335-551","gmt_create":"2026-04-25T14:04:19.4134805+04:00","gmt_modified":"2026-04-25T14:04:19.4134805+04:00"},{"id":33455,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"4235ed4ba5074e35c79079969aed3209","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 335-551","gmt_create":"2026-04-25T14:04:19.4134805+04:00","gmt_modified":"2026-04-25T14:04:19.4134805+04:00"},{"id":33456,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"cd0d042b2127279e18992f8b3196c010","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1326-1376","gmt_create":"2026-04-25T14:04:19.4134805+04:00","gmt_modified":"2026-04-25T14:04:19.4134805+04:00"},{"id":33457,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"cd0d042b2127279e18992f8b3196c010","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1326-1376","gmt_create":"2026-04-25T14:04:19.4134805+04:00","gmt_modified":"2026-04-25T14:04:19.4134805+04:00"},{"id":33458,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"f0ba4eca27677ff8f8db1270d6db2210","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1426-1435","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33459,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"f0ba4eca27677ff8f8db1270d6db2210","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1426-1435","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33460,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"0e67823640900b95bc72e2ff11433924","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#745-750","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33461,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"0e67823640900b95bc72e2ff11433924","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 745-750","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33462,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"37a4d67789e1f63ff97ad2e2e6271c39","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#697-700","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33463,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"37a4d67789e1f63ff97ad2e2e6271c39","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 697-700","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33464,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"aa3b52dcf754d79dc425b2a1486ae4a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2831-2845","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33465,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"aa3b52dcf754d79dc425b2a1486ae4a0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2831-2845","gmt_create":"2026-04-25T14:04:19.4144808+04:00","gmt_modified":"2026-04-25T14:04:19.4144808+04:00"},{"id":33466,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"43efce5d0a443b3c4eaa07a53ce11ee6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1719-1748","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33467,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"43efce5d0a443b3c4eaa07a53ce11ee6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1719-1748","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33468,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"d675b38a2a9f0cf236a5333e30be228e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1706-1748","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33469,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"d675b38a2a9f0cf236a5333e30be228e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1706-1748","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33470,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"34b92db1e7f340fe0ab7161a88a2a778","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#490-560","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33471,"source_id":"6e93df783d566a1cb831543e5287d8a5","target_id":"34b92db1e7f340fe0ab7161a88a2a778","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 490-560","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33472,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"86ef688e3b4a4b8797c039e5e21e21e0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2945-2959","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33473,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"86ef688e3b4a4b8797c039e5e21e21e0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2945-2959","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33474,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"f1a008ce1a3ad3fed2705126d2ef477c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#441-5201","gmt_create":"2026-04-25T14:04:19.4154811+04:00","gmt_modified":"2026-04-25T14:04:19.4154811+04:00"},{"id":33475,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"f1a008ce1a3ad3fed2705126d2ef477c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 441-5201","gmt_create":"2026-04-25T14:04:19.4164813+04:00","gmt_modified":"2026-04-25T14:04:19.4164813+04:00"},{"id":33476,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"a0c341b6c16514fd3beb4c26caed0114","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#542-559","gmt_create":"2026-04-25T14:04:19.4164813+04:00","gmt_modified":"2026-04-25T14:04:19.4164813+04:00"},{"id":33477,"source_id":"6e93df783d566a1cb831543e5287d8a5","target_id":"a0c341b6c16514fd3beb4c26caed0114","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 542-559","gmt_create":"2026-04-25T14:04:19.4164813+04:00","gmt_modified":"2026-04-25T14:04:19.4164813+04:00"},{"id":33478,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"5b749ac78b4ad6c88bc41f3230e65581","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2976-3009","gmt_create":"2026-04-25T14:04:19.4164813+04:00","gmt_modified":"2026-04-25T14:04:19.4164813+04:00"},{"id":33479,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"5b749ac78b4ad6c88bc41f3230e65581","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2976-3009","gmt_create":"2026-04-25T14:04:19.4174811+04:00","gmt_modified":"2026-04-25T14:04:19.4174811+04:00"},{"id":33480,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"fb9cda9cd6b9a7f5744171afb8f7e363","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2468-2570","gmt_create":"2026-04-25T14:04:19.4174811+04:00","gmt_modified":"2026-04-25T14:04:19.4174811+04:00"},{"id":33481,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"fb9cda9cd6b9a7f5744171afb8f7e363","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2468-2570","gmt_create":"2026-04-25T14:04:19.4174811+04:00","gmt_modified":"2026-04-25T14:04:19.4174811+04:00"},{"id":33482,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"9ed4b415735a3f0cf2878f9ae3a744dc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#689-697","gmt_create":"2026-04-25T14:04:19.4174811+04:00","gmt_modified":"2026-04-25T14:04:19.4174811+04:00"},{"id":33483,"source_id":"a49bd340a179d1cbdb19ed84c7cf27d1","target_id":"9ed4b415735a3f0cf2878f9ae3a744dc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 689-697","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33484,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"b64b47b1e02c1dcf9b19e7f858be9626","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5241-5274","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33485,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"b64b47b1e02c1dcf9b19e7f858be9626","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5241-5274","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33486,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"1f1c272cfeb3757d8b32564734e9bc4b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#284-290","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33487,"source_id":"b7482d6af46ff9d48a2e5a5c830db528","target_id":"1f1c272cfeb3757d8b32564734e9bc4b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 284-290","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33488,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"1779580471466d619f7b9944eb728d04","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#86-88","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33489,"source_id":"f34af374a10610073b7e51c29f9f5695","target_id":"1779580471466d619f7b9944eb728d04","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 86-88","gmt_create":"2026-04-25T14:04:19.4184802+04:00","gmt_modified":"2026-04-25T14:04:19.4184802+04:00"},{"id":33490,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"882dbfe6681b8d7b080573e9b279faae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#735-740","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33491,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"882dbfe6681b8d7b080573e9b279faae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 735-740","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33492,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"ca1b6c296389c05dcaa7510e9e9d36b8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1814-1862","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33493,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"ca1b6c296389c05dcaa7510e9e9d36b8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1814-1862","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33494,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"c416b0f74c1189b065331c29b4bd45b7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#772-785","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33495,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"c416b0f74c1189b065331c29b4bd45b7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 772-785","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33496,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"367c2f1ea732b9760cb221b1bc353ee7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: documentation/snapshot-plugin.md#339-374","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33497,"source_id":"82895ed8f5fc6b434b0e594b1c94098f","target_id":"367c2f1ea732b9760cb221b1bc353ee7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 339-374","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33498,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"614cea5f68d9ad766630341d35224e07","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#585-649","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33499,"source_id":"a49bd340a179d1cbdb19ed84c7cf27d1","target_id":"614cea5f68d9ad766630341d35224e07","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 585-649","gmt_create":"2026-04-25T14:04:19.4199846+04:00","gmt_modified":"2026-04-25T14:04:19.4199846+04:00"},{"id":33500,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"4b1ed8eac044a85f9b3ce72dc25df2a9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#673-677","gmt_create":"2026-04-25T14:04:19.420989+04:00","gmt_modified":"2026-04-25T14:04:19.420989+04:00"},{"id":33501,"source_id":"a49bd340a179d1cbdb19ed84c7cf27d1","target_id":"4b1ed8eac044a85f9b3ce72dc25df2a9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 673-677","gmt_create":"2026-04-25T14:04:19.420989+04:00","gmt_modified":"2026-04-25T14:04:19.420989+04:00"},{"id":33502,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"dd68b0a06254dfd88e5837ff20fa6700","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#744-755","gmt_create":"2026-04-25T14:04:19.4219893+04:00","gmt_modified":"2026-04-25T14:04:19.4219893+04:00"},{"id":33503,"source_id":"a49bd340a179d1cbdb19ed84c7cf27d1","target_id":"dd68b0a06254dfd88e5837ff20fa6700","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 744-755","gmt_create":"2026-04-25T14:04:19.4219893+04:00","gmt_modified":"2026-04-25T14:04:19.4219893+04:00"},{"id":33504,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"266bcb3a1090d1b9f5e8b6a43dda72b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#165-176","gmt_create":"2026-04-25T14:04:19.4219893+04:00","gmt_modified":"2026-04-25T14:04:19.4219893+04:00"},{"id":33505,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"266bcb3a1090d1b9f5e8b6a43dda72b9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 165-176","gmt_create":"2026-04-25T14:04:19.4219893+04:00","gmt_modified":"2026-04-25T14:04:19.4219893+04:00"},{"id":33506,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"64df55004cd0a970a769d236b3f31f1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1587-1596","gmt_create":"2026-04-25T14:04:19.4219893+04:00","gmt_modified":"2026-04-25T14:04:19.4219893+04:00"},{"id":33507,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"64df55004cd0a970a769d236b3f31f1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1587-1596","gmt_create":"2026-04-25T14:04:19.4219893+04:00","gmt_modified":"2026-04-25T14:04:19.4219893+04:00"},{"id":33508,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"b3cb54f092ab0d8cec996f8905b86351","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1610-1620","gmt_create":"2026-04-25T14:04:19.422989+04:00","gmt_modified":"2026-04-25T14:04:19.422989+04:00"},{"id":33509,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"b3cb54f092ab0d8cec996f8905b86351","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1610-1620","gmt_create":"2026-04-25T14:04:19.422989+04:00","gmt_modified":"2026-04-25T14:04:19.422989+04:00"},{"id":33510,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"6a78f667d7b8a87cbcc79bf79f0674df","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1812-1877","gmt_create":"2026-04-25T14:04:19.422989+04:00","gmt_modified":"2026-04-25T14:04:19.422989+04:00"},{"id":33511,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"6a78f667d7b8a87cbcc79bf79f0674df","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1812-1877","gmt_create":"2026-04-25T14:04:19.4325014+04:00","gmt_modified":"2026-04-25T14:04:19.4325014+04:00"},{"id":33512,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"72102cbd80a22f67b05f19d66483c094","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp#24-34","gmt_create":"2026-04-25T14:04:19.4334998+04:00","gmt_modified":"2026-04-25T14:04:19.4334998+04:00"},{"id":33513,"source_id":"f34af374a10610073b7e51c29f9f5695","target_id":"72102cbd80a22f67b05f19d66483c094","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 24-34","gmt_create":"2026-04-25T14:04:19.4334998+04:00","gmt_modified":"2026-04-25T14:04:19.4334998+04:00"},{"id":33514,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"34d635484e3842abac2cb2c15eabd89b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2598-2680","gmt_create":"2026-04-25T14:04:19.4345001+04:00","gmt_modified":"2026-04-25T14:04:19.4345001+04:00"},{"id":33515,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"34d635484e3842abac2cb2c15eabd89b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2598-2680","gmt_create":"2026-04-25T14:04:19.4345001+04:00","gmt_modified":"2026-04-25T14:04:19.4345001+04:00"},{"id":33516,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"7b7e6ead87fdaa1eb526b334e1959fc4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#364-432","gmt_create":"2026-04-25T14:04:19.4354995+04:00","gmt_modified":"2026-04-25T14:04:19.4354995+04:00"},{"id":33517,"source_id":"6e93df783d566a1cb831543e5287d8a5","target_id":"7b7e6ead87fdaa1eb526b334e1959fc4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 364-432","gmt_create":"2026-04-25T14:04:19.4354995+04:00","gmt_modified":"2026-04-25T14:04:19.4354995+04:00"},{"id":33518,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"7f13445a5ab689834d7b6870b926a79b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/CMakeLists.txt#27-38","gmt_create":"2026-04-25T14:04:19.4354995+04:00","gmt_modified":"2026-04-25T14:04:19.4354995+04:00"},{"id":33519,"source_id":"304418a1e63eb01e6db5cb51359ec4e7","target_id":"7f13445a5ab689834d7b6870b926a79b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-38","gmt_create":"2026-04-25T14:04:19.4354995+04:00","gmt_modified":"2026-04-25T14:04:19.4354995+04:00"},{"id":33520,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"544911d9893dd78790333ef2b262cc5a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#2294-2464","gmt_create":"2026-04-25T14:04:19.4364992+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00"},{"id":33521,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"544911d9893dd78790333ef2b262cc5a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2294-2464","gmt_create":"2026-04-25T14:04:19.4364992+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00"},{"id":33522,"source_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","target_id":"da168568e0c63b152359710edae113e2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1378-1464","gmt_create":"2026-04-25T14:04:19.4364992+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00"},{"id":33523,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"da168568e0c63b152359710edae113e2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1378-1464","gmt_create":"2026-04-25T14:04:19.4364992+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00"},{"id":33524,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"0698c4d838bb14dce85a7e626b473ff7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/include/graphene/plugins/witness/witness.hpp","gmt_create":"2026-04-25T14:04:31.8215675+04:00","gmt_modified":"2026-04-25T14:04:31.8215675+04:00"},{"id":33525,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-25T14:04:31.8226257+04:00","gmt_modified":"2026-04-25T14:04:31.8226257+04:00"},{"id":33526,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c7921a27698fb8be5279964066859dc4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness_api/include/graphene/plugins/witness_api/plugin.hpp","gmt_create":"2026-04-25T14:04:31.8226257+04:00","gmt_modified":"2026-04-25T14:04:31.8226257+04:00"},{"id":33527,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c39c62e34751c935ec975cdfab654a3f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness_api/plugin.cpp","gmt_create":"2026-04-25T14:04:31.8236163+04:00","gmt_modified":"2026-04-25T14:04:31.8236163+04:00"},{"id":33528,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"dab69962a93278eb2f6f640c8d788712","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/witness_objects.hpp","gmt_create":"2026-04-25T14:04:31.8236163+04:00","gmt_modified":"2026-04-25T14:04:31.8236163+04:00"},{"id":33529,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"678bda782f3f79a35c7dd3f4c8c3e018","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/chain_objects.hpp","gmt_create":"2026-04-25T14:04:31.8236163+04:00","gmt_modified":"2026-04-25T14:04:31.8236163+04:00"},{"id":33530,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"2c0e459bc9ce83513c9e1465ef2dedf6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-04-25T14:04:31.8236163+04:00","gmt_modified":"2026-04-25T14:04:31.8236163+04:00"},{"id":33531,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"02dbf249fc8c10dab447eced53151995","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-25T14:04:31.8236163+04:00","gmt_modified":"2026-04-25T14:04:31.8236163+04:00"},{"id":33532,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"fb70b5aeb94bb2dcf55b122df1a7718d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-04-25T14:04:31.824618+04:00","gmt_modified":"2026-04-25T14:04:31.824618+04:00"},{"id":33533,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"66fa326245da38aa1614b28e74aca5fe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-25T14:04:31.824618+04:00","gmt_modified":"2026-04-25T14:04:31.824618+04:00"},{"id":33534,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"6f433f2199d9bb80b243015b8f21ec49","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/time/time.hpp","gmt_create":"2026-04-25T14:04:31.8256185+04:00","gmt_modified":"2026-04-25T14:04:31.8256185+04:00"},{"id":33535,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"fd04237f3c66ae03b254bbd76360711c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/time/time.cpp","gmt_create":"2026-04-25T14:04:31.8256185+04:00","gmt_modified":"2026-04-25T14:04:31.8256185+04:00"},{"id":33536,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"b2352c2a941a883a938ab8be56cd85cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/network/ntp.cpp","gmt_create":"2026-04-25T14:04:31.8256185+04:00","gmt_modified":"2026-04-25T14:04:31.8256185+04:00"},{"id":33537,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c97da0489451e0d566d8359873f8f53c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: programs/vizd/main.cpp","gmt_create":"2026-04-25T14:04:31.8256185+04:00","gmt_modified":"2026-04-25T14:04:31.8256185+04:00"},{"id":33538,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c3b81f8048c72b4ab59cb02d72200fdd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-25T14:04:31.8256185+04:00","gmt_modified":"2026-04-25T14:04:31.8256185+04:00"},{"id":33539,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"034fe2e1d06c141a582bfd0c6735aa4b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/protocol/include/graphene/protocol/config.hpp","gmt_create":"2026-04-25T14:04:31.8256185+04:00","gmt_modified":"2026-04-25T14:04:31.8256185+04:00"},{"id":33540,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c8f2db27bae624cb0754ff09a0d61570","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-25T14:04:31.8266169+04:00","gmt_modified":"2026-04-25T14:04:31.8266169+04:00"},{"id":33541,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"f0905ba7a9a198fa44a0579125b415ac","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config_witness.ini","gmt_create":"2026-04-25T14:04:31.8266169+04:00","gmt_modified":"2026-04-25T14:04:31.8266169+04:00"},{"id":33542,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"7ca8666ed964c2fbcf14068ecc810032","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: programs/vizd/main.cpp#63-92","gmt_create":"2026-04-25T14:04:31.8266169+04:00","gmt_modified":"2026-04-25T14:04:31.8266169+04:00"},{"id":33543,"source_id":"c97da0489451e0d566d8359873f8f53c","target_id":"7ca8666ed964c2fbcf14068ecc810032","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 63-92","gmt_create":"2026-04-25T14:04:31.8276177+04:00","gmt_modified":"2026-04-25T14:04:31.8276177+04:00"},{"id":33544,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"bfbaf6710a5ef014c5bb6cb3bdc25b1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/include/graphene/plugins/witness/witness.hpp#34-68","gmt_create":"2026-04-25T14:04:31.8276177+04:00","gmt_modified":"2026-04-25T14:04:31.8276177+04:00"},{"id":33545,"source_id":"0698c4d838bb14dce85a7e626b473ff7","target_id":"bfbaf6710a5ef014c5bb6cb3bdc25b1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 34-68","gmt_create":"2026-04-25T14:04:31.8276177+04:00","gmt_modified":"2026-04-25T14:04:31.8276177+04:00"},{"id":33546,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"dfb8fecf3d381014ba0c5fc8a5a47596","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#59-118","gmt_create":"2026-04-25T14:04:31.8276177+04:00","gmt_modified":"2026-04-25T14:04:31.8276177+04:00"},{"id":33547,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"dfb8fecf3d381014ba0c5fc8a5a47596","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 59-118","gmt_create":"2026-04-25T14:04:31.8286167+04:00","gmt_modified":"2026-04-25T14:04:31.8286167+04:00"},{"id":33548,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"81c50af79e584f63bad0aa07dcd8e34a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/include/graphene/plugins/witness_api/plugin.hpp#56-98","gmt_create":"2026-04-25T14:04:31.8286167+04:00","gmt_modified":"2026-04-25T14:04:31.8286167+04:00"},{"id":33549,"source_id":"c7921a27698fb8be5279964066859dc4","target_id":"81c50af79e584f63bad0aa07dcd8e34a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 56-98","gmt_create":"2026-04-25T14:04:31.8286167+04:00","gmt_modified":"2026-04-25T14:04:31.8286167+04:00"},{"id":33550,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"63ffe758852ab37baa4b5ae1e36eea4d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#13-28","gmt_create":"2026-04-25T14:04:31.8286167+04:00","gmt_modified":"2026-04-25T14:04:31.8286167+04:00"},{"id":33551,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"63ffe758852ab37baa4b5ae1e36eea4d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-28","gmt_create":"2026-04-25T14:04:31.8286167+04:00","gmt_modified":"2026-04-25T14:04:31.8286167+04:00"},{"id":33552,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"8cd057508618ab5b1d0348584d395fee","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#37-83","gmt_create":"2026-04-25T14:04:31.8296161+04:00","gmt_modified":"2026-04-25T14:04:31.8296161+04:00"},{"id":33553,"source_id":"2c0e459bc9ce83513c9e1465ef2dedf6","target_id":"8cd057508618ab5b1d0348584d395fee","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-83","gmt_create":"2026-04-25T14:04:31.8296161+04:00","gmt_modified":"2026-04-25T14:04:31.8296161+04:00"},{"id":33554,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"e56a6a0eda224e8d188fef372d63f406","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/witness_objects.hpp#27-132","gmt_create":"2026-04-25T14:04:31.8296161+04:00","gmt_modified":"2026-04-25T14:04:31.8296161+04:00"},{"id":33555,"source_id":"dab69962a93278eb2f6f640c8d788712","target_id":"e56a6a0eda224e8d188fef372d63f406","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-132","gmt_create":"2026-04-25T14:04:31.8296161+04:00","gmt_modified":"2026-04-25T14:04:31.8296161+04:00"},{"id":33556,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"33f2137a37d0414b906c4723fd4288ca","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/chain_objects.hpp#174-201","gmt_create":"2026-04-25T14:04:31.8296161+04:00","gmt_modified":"2026-04-25T14:04:31.8296161+04:00"},{"id":33557,"source_id":"678bda782f3f79a35c7dd3f4c8c3e018","target_id":"33f2137a37d0414b906c4723fd4288ca","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 174-201","gmt_create":"2026-04-25T14:04:31.8296161+04:00","gmt_modified":"2026-04-25T14:04:31.8296161+04:00"},{"id":33558,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"a89974138f097d8ba68dbafab17ec724","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#53-81","gmt_create":"2026-04-25T14:04:31.8306155+04:00","gmt_modified":"2026-04-25T14:04:31.8306155+04:00"},{"id":33559,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"a89974138f097d8ba68dbafab17ec724","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 53-81","gmt_create":"2026-04-25T14:04:31.8306155+04:00","gmt_modified":"2026-04-25T14:04:31.8306155+04:00"},{"id":33560,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"a8b5b7a70913ba4913761486c24a2644","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/time/time.cpp#13-53","gmt_create":"2026-04-25T14:04:31.8306155+04:00","gmt_modified":"2026-04-25T14:04:31.8306155+04:00"},{"id":33561,"source_id":"fd04237f3c66ae03b254bbd76360711c","target_id":"a8b5b7a70913ba4913761486c24a2644","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-53","gmt_create":"2026-04-25T14:04:31.8306155+04:00","gmt_modified":"2026-04-25T14:04:31.8306155+04:00"},{"id":33562,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"5ee8ab19d8681e2c4eae20cb56d5238f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#1267-1276","gmt_create":"2026-04-25T14:04:31.8306155+04:00","gmt_modified":"2026-04-25T14:04:31.8306155+04:00"},{"id":33563,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"5ee8ab19d8681e2c4eae20cb56d5238f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1267-1276","gmt_create":"2026-04-25T14:04:31.8316154+04:00","gmt_modified":"2026-04-25T14:04:31.8316154+04:00"},{"id":33564,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"480376362c103e814eb41208a6f35d5c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#206-249","gmt_create":"2026-04-25T14:04:31.8316154+04:00","gmt_modified":"2026-04-25T14:04:31.8316154+04:00"},{"id":33565,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"480376362c103e814eb41208a6f35d5c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 206-249","gmt_create":"2026-04-25T14:04:31.8316154+04:00","gmt_modified":"2026-04-25T14:04:31.8316154+04:00"},{"id":33566,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"2afe320ed511e0afd70320c348c2b590","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#206-276","gmt_create":"2026-04-25T14:04:31.8316154+04:00","gmt_modified":"2026-04-25T14:04:31.8316154+04:00"},{"id":33567,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"2afe320ed511e0afd70320c348c2b590","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 206-276","gmt_create":"2026-04-25T14:04:31.8316154+04:00","gmt_modified":"2026-04-25T14:04:31.8316154+04:00"},{"id":33568,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"2ef71b2e26606c610a5ba74419baa0c2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#278-423","gmt_create":"2026-04-25T14:04:31.8331201+04:00","gmt_modified":"2026-04-25T14:04:31.8331201+04:00"},{"id":33569,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"2ef71b2e26606c610a5ba74419baa0c2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 278-423","gmt_create":"2026-04-25T14:04:31.8331201+04:00","gmt_modified":"2026-04-25T14:04:31.8331201+04:00"},{"id":33570,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"8363e9f506e72da4681e239223fae348","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#447-471","gmt_create":"2026-04-25T14:04:31.8331201+04:00","gmt_modified":"2026-04-25T14:04:31.8331201+04:00"},{"id":33571,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"8363e9f506e72da4681e239223fae348","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 447-471","gmt_create":"2026-04-25T14:04:31.8331201+04:00","gmt_modified":"2026-04-25T14:04:31.8331201+04:00"},{"id":33572,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"b15dbcb2869d19e3587864ed61aea00f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#590-695","gmt_create":"2026-04-25T14:04:31.8331201+04:00","gmt_modified":"2026-04-25T14:04:31.8331201+04:00"},{"id":33573,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"b15dbcb2869d19e3587864ed61aea00f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 590-695","gmt_create":"2026-04-25T14:04:31.834125+04:00","gmt_modified":"2026-04-25T14:04:31.834125+04:00"},{"id":33574,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"988f3a98d843c99bf5fdc399c516aa27","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#263-266","gmt_create":"2026-04-25T14:04:31.834125+04:00","gmt_modified":"2026-04-25T14:04:31.834125+04:00"},{"id":33575,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"988f3a98d843c99bf5fdc399c516aa27","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 263-266","gmt_create":"2026-04-25T14:04:31.834125+04:00","gmt_modified":"2026-04-25T14:04:31.834125+04:00"},{"id":33576,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"764ed972b734516fe87533b94635a90c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4317-4332","gmt_create":"2026-04-25T14:04:31.834125+04:00","gmt_modified":"2026-04-25T14:04:31.834125+04:00"},{"id":33577,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"764ed972b734516fe87533b94635a90c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4317-4332","gmt_create":"2026-04-25T14:04:31.834125+04:00","gmt_modified":"2026-04-25T14:04:31.834125+04:00"},{"id":33578,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"b70b5e1b9b73b5902b4872d659b26cee","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/time/time.cpp#74-76","gmt_create":"2026-04-25T14:04:31.834125+04:00","gmt_modified":"2026-04-25T14:04:31.834125+04:00"},{"id":33579,"source_id":"fd04237f3c66ae03b254bbd76360711c","target_id":"b70b5e1b9b73b5902b4872d659b26cee","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 74-76","gmt_create":"2026-04-25T14:04:31.835126+04:00","gmt_modified":"2026-04-25T14:04:31.835126+04:00"},{"id":33580,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"7dcf38ee74a296687b5e568ca18cd09f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2824-2839","gmt_create":"2026-04-25T14:04:31.835126+04:00","gmt_modified":"2026-04-25T14:04:31.835126+04:00"},{"id":33581,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"7dcf38ee74a296687b5e568ca18cd09f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2824-2839","gmt_create":"2026-04-25T14:04:31.835126+04:00","gmt_modified":"2026-04-25T14:04:31.835126+04:00"},{"id":33582,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"93791f2b6e0d628d9be800a41f9b52f7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2871-2886","gmt_create":"2026-04-25T14:04:31.835126+04:00","gmt_modified":"2026-04-25T14:04:31.835126+04:00"},{"id":33583,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"93791f2b6e0d628d9be800a41f9b52f7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2871-2886","gmt_create":"2026-04-25T14:04:31.8361264+04:00","gmt_modified":"2026-04-25T14:04:31.8361264+04:00"},{"id":33584,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"bbe3fd2b852d97dedc12a8a6fe955e17","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1223-1267","gmt_create":"2026-04-25T14:04:31.8361264+04:00","gmt_modified":"2026-04-25T14:04:31.8361264+04:00"},{"id":33585,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c34a55889c5bb9e3a8a46b4edc20200a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#125-133","gmt_create":"2026-04-25T14:04:31.8361264+04:00","gmt_modified":"2026-04-25T14:04:31.8361264+04:00"},{"id":33586,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"c34a55889c5bb9e3a8a46b4edc20200a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 125-133","gmt_create":"2026-04-25T14:04:31.8371271+04:00","gmt_modified":"2026-04-25T14:04:31.8371271+04:00"},{"id":33587,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"1b9fbc9defd5b5206b4e87d50ea0cc10","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#149-155","gmt_create":"2026-04-25T14:04:31.8371271+04:00","gmt_modified":"2026-04-25T14:04:31.8371271+04:00"},{"id":33588,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"1b9fbc9defd5b5206b4e87d50ea0cc10","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 149-155","gmt_create":"2026-04-25T14:04:31.8478843+04:00","gmt_modified":"2026-04-25T14:04:31.8478843+04:00"},{"id":33589,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"e791058a2689740e0ba640d95b20253b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#222-224","gmt_create":"2026-04-25T14:04:31.8483895+04:00","gmt_modified":"2026-04-25T14:04:31.8483895+04:00"},{"id":33590,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"e791058a2689740e0ba640d95b20253b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 222-224","gmt_create":"2026-04-25T14:04:31.8489058+04:00","gmt_modified":"2026-04-25T14:04:31.8489058+04:00"},{"id":33591,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"428578279131ff3e6ec0868a51624cc1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/protocol/include/graphene/protocol/config.hpp#57-58","gmt_create":"2026-04-25T14:04:31.8489058+04:00","gmt_modified":"2026-04-25T14:04:31.8489058+04:00"},{"id":33592,"source_id":"034fe2e1d06c141a582bfd0c6735aa4b","target_id":"428578279131ff3e6ec0868a51624cc1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 57-58","gmt_create":"2026-04-25T14:04:31.8489058+04:00","gmt_modified":"2026-04-25T14:04:31.8489058+04:00"},{"id":33593,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"1d81f0c988d10db4c624cb88984d737d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#99-103","gmt_create":"2026-04-25T14:04:31.8494207+04:00","gmt_modified":"2026-04-25T14:04:31.8494207+04:00"},{"id":33594,"source_id":"c8f2db27bae624cb0754ff09a0d61570","target_id":"1d81f0c988d10db4c624cb88984d737d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 99-103","gmt_create":"2026-04-25T14:04:31.8499399+04:00","gmt_modified":"2026-04-25T14:04:31.8499399+04:00"},{"id":33595,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"e9d5a5b870e6435fb8575e9ddc374459","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config_witness.ini#76-80","gmt_create":"2026-04-25T14:04:31.8504576+04:00","gmt_modified":"2026-04-25T14:04:31.8504576+04:00"},{"id":33596,"source_id":"f0905ba7a9a198fa44a0579125b415ac","target_id":"e9d5a5b870e6435fb8575e9ddc374459","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 76-80","gmt_create":"2026-04-25T14:04:31.8504576+04:00","gmt_modified":"2026-04-25T14:04:31.8504576+04:00"},{"id":33597,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"a6228e5a9ba9a2c58215c3c7d13844e2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#120-169","gmt_create":"2026-04-25T14:04:31.850974+04:00","gmt_modified":"2026-04-25T14:04:31.850974+04:00"},{"id":33598,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"a6228e5a9ba9a2c58215c3c7d13844e2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 120-169","gmt_create":"2026-04-25T14:04:31.8514907+04:00","gmt_modified":"2026-04-25T14:04:31.8514907+04:00"},{"id":33599,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"7ed3d3801811506b1eeb0c4b8a9abc29","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#171-192","gmt_create":"2026-04-25T14:04:31.852028+04:00","gmt_modified":"2026-04-25T14:04:31.852028+04:00"},{"id":33600,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"7ed3d3801811506b1eeb0c4b8a9abc29","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 171-192","gmt_create":"2026-04-25T14:04:31.852543+04:00","gmt_modified":"2026-04-25T14:04:31.852543+04:00"},{"id":33601,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"602ba29f5c66fb073d2846970e380785","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#73","gmt_create":"2026-04-25T14:04:31.8530602+04:00","gmt_modified":"2026-04-25T14:04:31.8530602+04:00"},{"id":33602,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"602ba29f5c66fb073d2846970e380785","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 73","gmt_create":"2026-04-25T14:04:31.8535747+04:00","gmt_modified":"2026-04-25T14:04:31.8535747+04:00"},{"id":33603,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"6bc5868131148dc9d5a4f6dc496d733b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#151-166","gmt_create":"2026-04-25T14:04:31.854094+04:00","gmt_modified":"2026-04-25T14:04:31.854094+04:00"},{"id":33604,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"6bc5868131148dc9d5a4f6dc496d733b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 151-166","gmt_create":"2026-04-25T14:04:31.8546099+04:00","gmt_modified":"2026-04-25T14:04:31.8546099+04:00"},{"id":33605,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"ea1f85261e40685d70eff6d8cc082b35","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1456-1471","gmt_create":"2026-04-25T14:04:31.8546712+04:00","gmt_modified":"2026-04-25T14:04:31.8546712+04:00"},{"id":33606,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"ea1f85261e40685d70eff6d8cc082b35","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1456-1471","gmt_create":"2026-04-25T14:04:31.8546712+04:00","gmt_modified":"2026-04-25T14:04:31.8546712+04:00"},{"id":33607,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"d8c4a536e031814cd855791b08fd743a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#269-274","gmt_create":"2026-04-25T14:04:31.8551759+04:00","gmt_modified":"2026-04-25T14:04:31.8551759+04:00"},{"id":33608,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"1a8b439a3c3f144945e45997228c1798","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2807-2839","gmt_create":"2026-04-25T14:04:31.8551759+04:00","gmt_modified":"2026-04-25T14:04:31.8551759+04:00"},{"id":33609,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"1a8b439a3c3f144945e45997228c1798","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2807-2839","gmt_create":"2026-04-25T14:04:31.8556917+04:00","gmt_modified":"2026-04-25T14:04:31.8556917+04:00"},{"id":33610,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"08ea8b29c5974ba43c6d754a0ca3d241","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2897-2914","gmt_create":"2026-04-25T14:04:31.8556917+04:00","gmt_modified":"2026-04-25T14:04:31.8556917+04:00"},{"id":33611,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"08ea8b29c5974ba43c6d754a0ca3d241","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2897-2914","gmt_create":"2026-04-25T14:04:31.8556917+04:00","gmt_modified":"2026-04-25T14:04:31.8556917+04:00"},{"id":33612,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"c8108bc51976a8cb1e9e364198f4f6f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1294-1311","gmt_create":"2026-04-25T14:04:31.8562077+04:00","gmt_modified":"2026-04-25T14:04:31.8562077+04:00"},{"id":33613,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"c8108bc51976a8cb1e9e364198f4f6f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1294-1311","gmt_create":"2026-04-25T14:04:31.8562077+04:00","gmt_modified":"2026-04-25T14:04:31.8562077+04:00"},{"id":33614,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"674471d172ca55a420173e309a70fe6a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#30-49","gmt_create":"2026-04-25T14:04:31.8562077+04:00","gmt_modified":"2026-04-25T14:04:31.8562077+04:00"},{"id":33615,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"674471d172ca55a420173e309a70fe6a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30-49","gmt_create":"2026-04-25T14:04:31.8567215+04:00","gmt_modified":"2026-04-25T14:04:31.8567215+04:00"},{"id":33616,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"376c61290cb08c067274cd8e1966a6d6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#75-91","gmt_create":"2026-04-25T14:04:31.8567215+04:00","gmt_modified":"2026-04-25T14:04:31.8567215+04:00"},{"id":33617,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"376c61290cb08c067274cd8e1966a6d6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 75-91","gmt_create":"2026-04-25T14:04:31.8567215+04:00","gmt_modified":"2026-04-25T14:04:31.8567215+04:00"},{"id":33618,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"96c65817591d591001257e3fdfa2860c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#102-125","gmt_create":"2026-04-25T14:04:31.8567215+04:00","gmt_modified":"2026-04-25T14:04:31.8567215+04:00"},{"id":33619,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"96c65817591d591001257e3fdfa2860c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 102-125","gmt_create":"2026-04-25T14:04:31.8567215+04:00","gmt_modified":"2026-04-25T14:04:31.8567215+04:00"},{"id":33620,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"1afa75de7ceb614892122a75a2ca8d4e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#127-159","gmt_create":"2026-04-25T14:04:31.8572372+04:00","gmt_modified":"2026-04-25T14:04:31.8572372+04:00"},{"id":33621,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"1afa75de7ceb614892122a75a2ca8d4e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 127-159","gmt_create":"2026-04-25T14:04:31.8572372+04:00","gmt_modified":"2026-04-25T14:04:31.8572372+04:00"},{"id":33622,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"ba309e4cffb6bc970c3675e375b18bf7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#161-169","gmt_create":"2026-04-25T14:04:31.8572372+04:00","gmt_modified":"2026-04-25T14:04:31.8572372+04:00"},{"id":33623,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"ba309e4cffb6bc970c3675e375b18bf7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 161-169","gmt_create":"2026-04-25T14:04:31.8572372+04:00","gmt_modified":"2026-04-25T14:04:31.8572372+04:00"},{"id":33624,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"7dadbfa3f4e47a0b4baf0428f9480769","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#171-203","gmt_create":"2026-04-25T14:04:31.8572372+04:00","gmt_modified":"2026-04-25T14:04:31.8572372+04:00"},{"id":33625,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"7dadbfa3f4e47a0b4baf0428f9480769","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 171-203","gmt_create":"2026-04-25T14:04:31.8577515+04:00","gmt_modified":"2026-04-25T14:04:31.8577515+04:00"},{"id":33626,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"24209d87defd879a2bafea6991f1d3ae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#102-159","gmt_create":"2026-04-25T14:04:31.8582688+04:00","gmt_modified":"2026-04-25T14:04:31.8582688+04:00"},{"id":33627,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"24209d87defd879a2bafea6991f1d3ae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 102-159","gmt_create":"2026-04-25T14:04:31.8582688+04:00","gmt_modified":"2026-04-25T14:04:31.8582688+04:00"},{"id":33628,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"df13a9de4b4ef860e2a3b90412feb6df","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness_api/plugin.cpp#161-203","gmt_create":"2026-04-25T14:04:31.8582688+04:00","gmt_modified":"2026-04-25T14:04:31.8582688+04:00"},{"id":33629,"source_id":"c39c62e34751c935ec975cdfab654a3f","target_id":"df13a9de4b4ef860e2a3b90412feb6df","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 161-203","gmt_create":"2026-04-25T14:04:31.8582688+04:00","gmt_modified":"2026-04-25T14:04:31.8582688+04:00"},{"id":33630,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"df5d797239db266f90f4c7ba9b6a337f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/witness_objects.hpp#104-171","gmt_create":"2026-04-25T14:04:31.8587835+04:00","gmt_modified":"2026-04-25T14:04:31.8587835+04:00"},{"id":33631,"source_id":"dab69962a93278eb2f6f640c8d788712","target_id":"df5d797239db266f90f4c7ba9b6a337f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 104-171","gmt_create":"2026-04-25T14:04:31.8587835+04:00","gmt_modified":"2026-04-25T14:04:31.8587835+04:00"},{"id":33632,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"a04a7c64aea913ef6a096771ad8af41d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/fork_database.hpp#90-95","gmt_create":"2026-04-25T14:04:31.8593246+04:00","gmt_modified":"2026-04-25T14:04:31.8593246+04:00"},{"id":33633,"source_id":"fb70b5aeb94bb2dcf55b122df1a7718d","target_id":"a04a7c64aea913ef6a096771ad8af41d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 90-95","gmt_create":"2026-04-25T14:04:31.8593246+04:00","gmt_modified":"2026-04-25T14:04:31.8593246+04:00"},{"id":33634,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"708acf80796ae3f89bdde0343e4468f0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1626-1805","gmt_create":"2026-04-25T14:04:31.8598413+04:00","gmt_modified":"2026-04-25T14:04:31.8598413+04:00"},{"id":33635,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"708acf80796ae3f89bdde0343e4468f0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1626-1805","gmt_create":"2026-04-25T14:04:31.8598413+04:00","gmt_modified":"2026-04-25T14:04:31.8598413+04:00"},{"id":33636,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"7a06368da91a740509d9f92f916174a2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#4334-4463","gmt_create":"2026-04-25T14:04:31.8603534+04:00","gmt_modified":"2026-04-25T14:04:31.8603534+04:00"},{"id":33637,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"7a06368da91a740509d9f92f916174a2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4334-4463","gmt_create":"2026-04-25T14:04:31.8603534+04:00","gmt_modified":"2026-04-25T14:04:31.8603534+04:00"},{"id":33638,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"643b93529cb8ca2756d333de5fa696b4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database.hpp#492-499","gmt_create":"2026-04-25T14:04:31.8603534+04:00","gmt_modified":"2026-04-25T14:04:31.8603534+04:00"},{"id":33639,"source_id":"2c0e459bc9ce83513c9e1465ef2dedf6","target_id":"643b93529cb8ca2756d333de5fa696b4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 492-499","gmt_create":"2026-04-25T14:04:31.8608698+04:00","gmt_modified":"2026-04-25T14:04:31.8608698+04:00"},{"id":33640,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"bdf0576fcea647f967a8a86d9b2adead","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/time/time.cpp#36-39","gmt_create":"2026-04-25T14:04:31.8618986+04:00","gmt_modified":"2026-04-25T14:04:31.8618986+04:00"},{"id":33641,"source_id":"fd04237f3c66ae03b254bbd76360711c","target_id":"bdf0576fcea647f967a8a86d9b2adead","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-39","gmt_create":"2026-04-25T14:04:31.862413+04:00","gmt_modified":"2026-04-25T14:04:31.862413+04:00"},{"id":33642,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"a8b8e2b42217fbcdc5b709c46f8e362f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/network/ntp.cpp#184-201","gmt_create":"2026-04-25T14:04:31.862413+04:00","gmt_modified":"2026-04-25T14:04:31.862413+04:00"},{"id":33643,"source_id":"b2352c2a941a883a938ab8be56cd85cd","target_id":"a8b8e2b42217fbcdc5b709c46f8e362f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 184-201","gmt_create":"2026-04-25T14:04:31.8629267+04:00","gmt_modified":"2026-04-25T14:04:31.8629267+04:00"},{"id":33644,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"8434222792eac7d005e1ace75179d613","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/network/ntp.cpp#236-266","gmt_create":"2026-04-25T14:04:31.8634485+04:00","gmt_modified":"2026-04-25T14:04:31.8634485+04:00"},{"id":33645,"source_id":"b2352c2a941a883a938ab8be56cd85cd","target_id":"8434222792eac7d005e1ace75179d613","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 236-266","gmt_create":"2026-04-25T14:04:31.8634485+04:00","gmt_modified":"2026-04-25T14:04:31.8634485+04:00"},{"id":33646,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"5e0f1b085d9490f9a003ce1fe5800b8a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#255-271","gmt_create":"2026-04-25T14:04:31.8655135+04:00","gmt_modified":"2026-04-25T14:04:31.8655135+04:00"},{"id":33647,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"5e0f1b085d9490f9a003ce1fe5800b8a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 255-271","gmt_create":"2026-04-25T14:04:31.8660649+04:00","gmt_modified":"2026-04-25T14:04:31.8660649+04:00"},{"id":33648,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"fe37bdd3121f8def3920ce35923a9550","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#387-396","gmt_create":"2026-04-25T14:04:31.866584+04:00","gmt_modified":"2026-04-25T14:04:31.866584+04:00"},{"id":33649,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"fe37bdd3121f8def3920ce35923a9550","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 387-396","gmt_create":"2026-04-25T14:04:31.866584+04:00","gmt_modified":"2026-04-25T14:04:31.866584+04:00"},{"id":33650,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"99ab00bee9e9b1cffeb3a0b0678724aa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2826-2836","gmt_create":"2026-04-25T14:04:31.8681335+04:00","gmt_modified":"2026-04-25T14:04:31.8681335+04:00"},{"id":33651,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"99ab00bee9e9b1cffeb3a0b0678724aa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2826-2836","gmt_create":"2026-04-25T14:04:31.8686475+04:00","gmt_modified":"2026-04-25T14:04:31.8686475+04:00"},{"id":33652,"source_id":"e57beb6d-e848-4301-afca-f2eb81aa0103","target_id":"3afb339981807e8b85861f2f30db2a3b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#2873-2883","gmt_create":"2026-04-25T14:04:31.8686475+04:00","gmt_modified":"2026-04-25T14:04:31.8686475+04:00"},{"id":33653,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"3afb339981807e8b85861f2f30db2a3b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 2873-2883","gmt_create":"2026-04-25T14:04:31.8691647+04:00","gmt_modified":"2026-04-25T14:04:31.8691647+04:00"},{"id":33654,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"331a4aa7c67d97a76a782eb180cbb96c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/chainbase/include/chainbase/chainbase.hpp","gmt_create":"2026-04-25T14:06:18.717524+04:00","gmt_modified":"2026-04-25T14:06:18.717524+04:00"},{"id":33655,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"e13cf4bead3e76f941e9d7fea2878285","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/chainbase/src/chainbase.cpp","gmt_create":"2026-04-25T14:06:18.717524+04:00","gmt_modified":"2026-04-25T14:06:18.717524+04:00"},{"id":33656,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"02dbf249fc8c10dab447eced53151995","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-25T14:06:18.7190094+04:00","gmt_modified":"2026-04-25T14:06:18.7190094+04:00"},{"id":33657,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"6e93df783d566a1cb831543e5287d8a5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/chain/plugin.cpp","gmt_create":"2026-04-25T14:06:18.7195146+04:00","gmt_modified":"2026-04-25T14:06:18.7195146+04:00"},{"id":33658,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"1dae06760d581fc3f3f4d71b6efa88ac","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/shared_ptr.hpp","gmt_create":"2026-04-25T14:06:18.7195146+04:00","gmt_modified":"2026-04-25T14:06:18.7195146+04:00"},{"id":33659,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"8f1ff2bff79671d4b9ae63b9071b2787","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/shared_ptr.cpp","gmt_create":"2026-04-25T14:06:18.7200375+04:00","gmt_modified":"2026-04-25T14:06:18.7200375+04:00"},{"id":33660,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"ba5300cb3243be4066aa13f1c4775950","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/smart_ref_fwd.hpp","gmt_create":"2026-04-25T14:06:18.7200375+04:00","gmt_modified":"2026-04-25T14:06:18.7200375+04:00"},{"id":33661,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"e1a87eb7697f0020e36104351e4cc9b2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/smart_ref_impl.hpp","gmt_create":"2026-04-25T14:06:18.7200375+04:00","gmt_modified":"2026-04-25T14:06:18.7200375+04:00"},{"id":33662,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"1afc8ed69b2ebcf3c215e75621795a1d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/unique_ptr.hpp","gmt_create":"2026-04-25T14:06:18.7200375+04:00","gmt_modified":"2026-04-25T14:06:18.7200375+04:00"},{"id":33663,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"cf60d7251f2cf8bf8b93eaecf7aa22a1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/interprocess/file_mapping.hpp","gmt_create":"2026-04-25T14:06:18.7200375+04:00","gmt_modified":"2026-04-25T14:06:18.7200375+04:00"},{"id":33664,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"be1b64e4e35f93e8a336ae8302acf2c8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/interprocess/file_mapping.cpp","gmt_create":"2026-04-25T14:06:18.7205499+04:00","gmt_modified":"2026-04-25T14:06:18.7205499+04:00"},{"id":33665,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"dfc892082de4b043f6615f43bbe93b54","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/interprocess/mmap_struct.hpp","gmt_create":"2026-04-25T14:06:18.7205499+04:00","gmt_modified":"2026-04-25T14:06:18.7205499+04:00"},{"id":33666,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"2cc1e61d03782caa5973bf9da68ebe05","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/src/interprocess/mmap_struct.cpp","gmt_create":"2026-04-25T14:06:18.7205499+04:00","gmt_modified":"2026-04-25T14:06:18.7205499+04:00"},{"id":33667,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"ac88cc22f563abdf7be97e6fb36ca02b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/container/flat.hpp","gmt_create":"2026-04-25T14:06:18.7205499+04:00","gmt_modified":"2026-04-25T14:06:18.7205499+04:00"},{"id":33668,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"b3f6a5e7ef51c880cb80577e3fbe7d77","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/thread/thread_specific.hpp","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33669,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"fe40d72b6579351b0ae2ef725eddb28d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/scoped_exit.hpp","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33670,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"a57154ad32a7aeb1cbb873d9e5609c27","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: thirdparty/fc/include/fc/aligned.hpp","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33671,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/witness/witness.cpp","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33672,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"ef845cd2ba2446709ae0304829afa909","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#1319-1328","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33673,"source_id":"331a4aa7c67d97a76a782eb180cbb96c","target_id":"ef845cd2ba2446709ae0304829afa909","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1319-1328","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33674,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"887998543bd9a75003d2075b67c3de88","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#613-653","gmt_create":"2026-04-25T14:06:18.7215553+04:00","gmt_modified":"2026-04-25T14:06:18.7215553+04:00"},{"id":33675,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"887998543bd9a75003d2075b67c3de88","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 613-653","gmt_create":"2026-04-25T14:06:18.7316094+04:00","gmt_modified":"2026-04-25T14:06:18.7316094+04:00"},{"id":33676,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"b45ca4ca1197a0cb18823ef305dbfce2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/witness/witness.cpp#503-507","gmt_create":"2026-04-25T14:06:18.7337838+04:00","gmt_modified":"2026-04-25T14:06:18.7337838+04:00"},{"id":33677,"source_id":"476cc5ceb8a95f6d18d2c1fbbba90fec","target_id":"b45ca4ca1197a0cb18823ef305dbfce2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 503-507","gmt_create":"2026-04-25T14:06:18.7337838+04:00","gmt_modified":"2026-04-25T14:06:18.7337838+04:00"},{"id":33678,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"ac08c744d626527ee00b9bee03b6db2d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/shared_ptr.hpp#13-64","gmt_create":"2026-04-25T14:06:18.7337838+04:00","gmt_modified":"2026-04-25T14:06:18.7337838+04:00"},{"id":33679,"source_id":"1dae06760d581fc3f3f4d71b6efa88ac","target_id":"ac08c744d626527ee00b9bee03b6db2d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-64","gmt_create":"2026-04-25T14:06:18.7337838+04:00","gmt_modified":"2026-04-25T14:06:18.7337838+04:00"},{"id":33680,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"6799329233a3f12f9563d69dbeb6facf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/smart_ref_fwd.hpp#9-52","gmt_create":"2026-04-25T14:06:18.7347831+04:00","gmt_modified":"2026-04-25T14:06:18.7347831+04:00"},{"id":33681,"source_id":"ba5300cb3243be4066aa13f1c4775950","target_id":"6799329233a3f12f9563d69dbeb6facf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 9-52","gmt_create":"2026-04-25T14:06:18.7347831+04:00","gmt_modified":"2026-04-25T14:06:18.7347831+04:00"},{"id":33682,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"8b3251d6f3b5ea8afec55cbe7f29128e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/unique_ptr.hpp#7-66","gmt_create":"2026-04-25T14:06:18.7347831+04:00","gmt_modified":"2026-04-25T14:06:18.7347831+04:00"},{"id":33683,"source_id":"1afc8ed69b2ebcf3c215e75621795a1d","target_id":"8b3251d6f3b5ea8afec55cbe7f29128e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 7-66","gmt_create":"2026-04-25T14:06:18.7347831+04:00","gmt_modified":"2026-04-25T14:06:18.7347831+04:00"},{"id":33684,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"cdea55bf7c52f89d159dd15c362d5e8e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#1078-1111","gmt_create":"2026-04-25T14:06:18.7357813+04:00","gmt_modified":"2026-04-25T14:06:18.7357813+04:00"},{"id":33685,"source_id":"331a4aa7c67d97a76a782eb180cbb96c","target_id":"cdea55bf7c52f89d159dd15c362d5e8e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1078-1111","gmt_create":"2026-04-25T14:06:18.7357813+04:00","gmt_modified":"2026-04-25T14:06:18.7357813+04:00"},{"id":33686,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"a2ec06756c5c974dfc585442b1ad74f8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/shared_ptr.hpp#1-64","gmt_create":"2026-04-25T14:06:18.7357813+04:00","gmt_modified":"2026-04-25T14:06:18.7357813+04:00"},{"id":33687,"source_id":"1dae06760d581fc3f3f4d71b6efa88ac","target_id":"a2ec06756c5c974dfc585442b1ad74f8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-64","gmt_create":"2026-04-25T14:06:18.7367825+04:00","gmt_modified":"2026-04-25T14:06:18.7367825+04:00"},{"id":33688,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"8b063b3965b0249046f07bbe080601d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/smart_ref_fwd.hpp#1-53","gmt_create":"2026-04-25T14:06:18.7367825+04:00","gmt_modified":"2026-04-25T14:06:18.7367825+04:00"},{"id":33689,"source_id":"ba5300cb3243be4066aa13f1c4775950","target_id":"8b063b3965b0249046f07bbe080601d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-53","gmt_create":"2026-04-25T14:06:18.7367825+04:00","gmt_modified":"2026-04-25T14:06:18.7367825+04:00"},{"id":33690,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"bbcc4ec0f64acb23208ac18b50a3437e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/unique_ptr.hpp#1-68","gmt_create":"2026-04-25T14:06:18.7367825+04:00","gmt_modified":"2026-04-25T14:06:18.7367825+04:00"},{"id":33691,"source_id":"1afc8ed69b2ebcf3c215e75621795a1d","target_id":"bbcc4ec0f64acb23208ac18b50a3437e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-68","gmt_create":"2026-04-25T14:06:18.7367825+04:00","gmt_modified":"2026-04-25T14:06:18.7367825+04:00"},{"id":33692,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"24ea1e546cffdcb3008a2ebf99392ba7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/src/chainbase.cpp#70-102","gmt_create":"2026-04-25T14:06:18.7367825+04:00","gmt_modified":"2026-04-25T14:06:18.7367825+04:00"},{"id":33693,"source_id":"e13cf4bead3e76f941e9d7fea2878285","target_id":"24ea1e546cffdcb3008a2ebf99392ba7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 70-102","gmt_create":"2026-04-25T14:06:18.7377813+04:00","gmt_modified":"2026-04-25T14:06:18.7377813+04:00"},{"id":33694,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"33409e2a9f8272c152530755145c5298","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/interprocess/file_mapping.cpp#9-41","gmt_create":"2026-04-25T14:06:18.7377813+04:00","gmt_modified":"2026-04-25T14:06:18.7377813+04:00"},{"id":33695,"source_id":"be1b64e4e35f93e8a336ae8302acf2c8","target_id":"33409e2a9f8272c152530755145c5298","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 9-41","gmt_create":"2026-04-25T14:06:18.7377813+04:00","gmt_modified":"2026-04-25T14:06:18.7377813+04:00"},{"id":33696,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"c0f31fdbe7750576da693cc0b63868bf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/interprocess/mmap_struct.cpp#20-44","gmt_create":"2026-04-25T14:06:18.7377813+04:00","gmt_modified":"2026-04-25T14:06:18.7377813+04:00"},{"id":33697,"source_id":"2cc1e61d03782caa5973bf9da68ebe05","target_id":"c0f31fdbe7750576da693cc0b63868bf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-44","gmt_create":"2026-04-25T14:06:18.7377813+04:00","gmt_modified":"2026-04-25T14:06:18.7377813+04:00"},{"id":33698,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"82b808b61a1d64042e1dd0fee9d24b11","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#1189-1193","gmt_create":"2026-04-25T14:06:18.7387847+04:00","gmt_modified":"2026-04-25T14:06:18.7387847+04:00"},{"id":33699,"source_id":"331a4aa7c67d97a76a782eb180cbb96c","target_id":"82b808b61a1d64042e1dd0fee9d24b11","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1189-1193","gmt_create":"2026-04-25T14:06:18.7387847+04:00","gmt_modified":"2026-04-25T14:06:18.7387847+04:00"},{"id":33700,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"e00d3dba6b6387dad87940fe1cc9763f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/shared_ptr.cpp#16-25","gmt_create":"2026-04-25T14:06:18.7397862+04:00","gmt_modified":"2026-04-25T14:06:18.7397862+04:00"},{"id":33701,"source_id":"8f1ff2bff79671d4b9ae63b9071b2787","target_id":"e00d3dba6b6387dad87940fe1cc9763f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-25","gmt_create":"2026-04-25T14:06:18.7397862+04:00","gmt_modified":"2026-04-25T14:06:18.7397862+04:00"},{"id":33702,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"9fae3ecb646de7968f85a2469372f69e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/src/shared_ptr.cpp#1-30","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33703,"source_id":"8f1ff2bff79671d4b9ae63b9071b2787","target_id":"9fae3ecb646de7968f85a2469372f69e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-30","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33704,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"834a8e059f4e268023cf3fefa43fa7da","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/shared_ptr.hpp#13-28","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33705,"source_id":"1dae06760d581fc3f3f4d71b6efa88ac","target_id":"834a8e059f4e268023cf3fefa43fa7da","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-28","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33706,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"79cdde1d9acd77f9911b1f5e0fda6f00","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/smart_ref_impl.hpp#40-134","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33707,"source_id":"e1a87eb7697f0020e36104351e4cc9b2","target_id":"79cdde1d9acd77f9911b1f5e0fda6f00","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-134","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33708,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"ae5de13b40f2f11558ce54e39636d3f1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/scoped_exit.hpp#5-40","gmt_create":"2026-04-25T14:06:18.7407858+04:00","gmt_modified":"2026-04-25T14:06:18.7407858+04:00"},{"id":33709,"source_id":"fe40d72b6579351b0ae2ef725eddb28d","target_id":"ae5de13b40f2f11558ce54e39636d3f1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5-40","gmt_create":"2026-04-25T14:06:18.7417832+04:00","gmt_modified":"2026-04-25T14:06:18.7417832+04:00"},{"id":33710,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"8ab63f2d7b9fa4f23647e36ade8deb35","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/aligned.hpp#4-21","gmt_create":"2026-04-25T14:06:18.7417832+04:00","gmt_modified":"2026-04-25T14:06:18.7417832+04:00"},{"id":33711,"source_id":"a57154ad32a7aeb1cbb873d9e5609c27","target_id":"8ab63f2d7b9fa4f23647e36ade8deb35","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4-21","gmt_create":"2026-04-25T14:06:18.7417832+04:00","gmt_modified":"2026-04-25T14:06:18.7417832+04:00"},{"id":33712,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"062ed4f4e1f5f0d12bf3be43c0ed5d1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/smart_ref_impl.hpp#1-136","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33713,"source_id":"e1a87eb7697f0020e36104351e4cc9b2","target_id":"062ed4f4e1f5f0d12bf3be43c0ed5d1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-136","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33714,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"fd480b0a81941e59e3a27b3ca02e386d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/scoped_exit.hpp#1-40","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33715,"source_id":"fe40d72b6579351b0ae2ef725eddb28d","target_id":"fd480b0a81941e59e3a27b3ca02e386d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-40","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33716,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"5eb6bdd404fe6b6222df8b1ba3f7ff37","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/aligned.hpp#1-21","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33717,"source_id":"a57154ad32a7aeb1cbb873d9e5609c27","target_id":"5eb6bdd404fe6b6222df8b1ba3f7ff37","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-21","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33718,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"82cf06631c82de10235a57caa09e77c0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#53-59","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33719,"source_id":"331a4aa7c67d97a76a782eb180cbb96c","target_id":"82cf06631c82de10235a57caa09e77c0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 53-59","gmt_create":"2026-04-25T14:06:18.742289+04:00","gmt_modified":"2026-04-25T14:06:18.742289+04:00"},{"id":33720,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"e038b4f545a8794371d958964a73ee74","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/fc/include/fc/container/flat.hpp#1-140","gmt_create":"2026-04-25T14:06:18.7432947+04:00","gmt_modified":"2026-04-25T14:06:18.7432947+04:00"},{"id":33721,"source_id":"ac88cc22f563abdf7be97e6fb36ca02b","target_id":"e038b4f545a8794371d958964a73ee74","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-140","gmt_create":"2026-04-25T14:06:18.7432947+04:00","gmt_modified":"2026-04-25T14:06:18.7432947+04:00"},{"id":33722,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"a558531f1bc124f4e82109b7bd877607","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#1070-1167","gmt_create":"2026-04-25T14:06:18.7432947+04:00","gmt_modified":"2026-04-25T14:06:18.7432947+04:00"},{"id":33723,"source_id":"331a4aa7c67d97a76a782eb180cbb96c","target_id":"a558531f1bc124f4e82109b7bd877607","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1070-1167","gmt_create":"2026-04-25T14:06:18.7432947+04:00","gmt_modified":"2026-04-25T14:06:18.7432947+04:00"},{"id":33724,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"e67121e2b04e1a5d1b81cb6ecabd7ff3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#648-682","gmt_create":"2026-04-25T14:06:18.7432947+04:00","gmt_modified":"2026-04-25T14:06:18.7432947+04:00"},{"id":33725,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"e67121e2b04e1a5d1b81cb6ecabd7ff3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 648-682","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33726,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"b73088be54eb1e9003b6b3fb0a8a52b6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#609-646","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33727,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"b73088be54eb1e9003b6b3fb0a8a52b6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 609-646","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33728,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"40e98a3ac2c8a60b39b5bf3cb2c33289","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/chain/plugin.cpp#199-211","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33729,"source_id":"6e93df783d566a1cb831543e5287d8a5","target_id":"40e98a3ac2c8a60b39b5bf3cb2c33289","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 199-211","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33730,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"f45bd59f81e19f7127a7855c45a0da40","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/src/chainbase.cpp#295-310","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33731,"source_id":"e13cf4bead3e76f941e9d7fea2878285","target_id":"f45bd59f81e19f7127a7855c45a0da40","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 295-310","gmt_create":"2026-04-25T14:06:18.7444493+04:00","gmt_modified":"2026-04-25T14:06:18.7444493+04:00"},{"id":33732,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"1987e8487d7787c160e4463c3fdabf0b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/include/chainbase/chainbase.hpp#1319-1323","gmt_create":"2026-04-25T14:06:18.745456+04:00","gmt_modified":"2026-04-25T14:06:18.745456+04:00"},{"id":33733,"source_id":"331a4aa7c67d97a76a782eb180cbb96c","target_id":"1987e8487d7787c160e4463c3fdabf0b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1319-1323","gmt_create":"2026-04-25T14:06:18.745456+04:00","gmt_modified":"2026-04-25T14:06:18.745456+04:00"},{"id":33734,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"115979303f8e1526ef91584f626a95d5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1554-1556","gmt_create":"2026-04-25T14:06:18.7464579+04:00","gmt_modified":"2026-04-25T14:06:18.7464579+04:00"},{"id":33735,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"115979303f8e1526ef91584f626a95d5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1554-1556","gmt_create":"2026-04-25T14:06:18.7464579+04:00","gmt_modified":"2026-04-25T14:06:18.7464579+04:00"},{"id":33736,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"9365f8f64aaba2663765d4571a993eb9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/src/chainbase.cpp#278-293","gmt_create":"2026-04-25T14:06:18.7464579+04:00","gmt_modified":"2026-04-25T14:06:18.7464579+04:00"},{"id":33737,"source_id":"e13cf4bead3e76f941e9d7fea2878285","target_id":"9365f8f64aaba2663765d4571a993eb9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 278-293","gmt_create":"2026-04-25T14:06:18.7474569+04:00","gmt_modified":"2026-04-25T14:06:18.7474569+04:00"},{"id":33738,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"c38b767d343277b69570cd2a3fea3b1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#624-652","gmt_create":"2026-04-25T14:06:18.7474569+04:00","gmt_modified":"2026-04-25T14:06:18.7474569+04:00"},{"id":33739,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"c38b767d343277b69570cd2a3fea3b1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 624-652","gmt_create":"2026-04-25T14:06:18.7474569+04:00","gmt_modified":"2026-04-25T14:06:18.7474569+04:00"},{"id":33740,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"a852b960d4b82efca416c1b71810dd85","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#577-610","gmt_create":"2026-04-25T14:06:18.7474569+04:00","gmt_modified":"2026-04-25T14:06:18.7474569+04:00"},{"id":33741,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"a852b960d4b82efca416c1b71810dd85","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 577-610","gmt_create":"2026-04-25T14:06:18.7484575+04:00","gmt_modified":"2026-04-25T14:06:18.7484575+04:00"},{"id":33742,"source_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","target_id":"303588f8e546d2f76f5953ffc8716a75","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: thirdparty/chainbase/src/chainbase.cpp#80-89","gmt_create":"2026-04-25T14:06:18.7484575+04:00","gmt_modified":"2026-04-25T14:06:18.7484575+04:00"},{"id":33743,"source_id":"e13cf4bead3e76f941e9d7fea2878285","target_id":"303588f8e546d2f76f5953ffc8716a75","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 80-89","gmt_create":"2026-04-25T14:06:18.7484575+04:00","gmt_modified":"2026-04-25T14:06:18.7484575+04:00"},{"id":33744,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"9d3453253995e8388c4821315fa0aa14","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_connection.hpp","gmt_create":"2026-04-25T14:08:40.2809255+04:00","gmt_modified":"2026-04-25T14:08:40.2809255+04:00"},{"id":33745,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"7940a1efbb00411501c6178af59932a3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_connection.cpp","gmt_create":"2026-04-25T14:08:40.2809255+04:00","gmt_modified":"2026-04-25T14:08:40.2809255+04:00"},{"id":33746,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"b7482d6af46ff9d48a2e5a5c830db528","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-04-25T14:08:40.2959623+04:00","gmt_modified":"2026-04-25T14:08:40.2959623+04:00"},{"id":33747,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"7ab596ff5f3d168bcc165af5345769ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/node.cpp","gmt_create":"2026-04-25T14:08:40.2970755+04:00","gmt_modified":"2026-04-25T14:08:40.2970755+04:00"},{"id":33748,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a144469f6776ef7c9c8fa34c2e4c7305","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message_oriented_connection.hpp","gmt_create":"2026-04-25T14:08:40.2970755+04:00","gmt_modified":"2026-04-25T14:08:40.2970755+04:00"},{"id":33749,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"5b9e2f1c0be9ec9ec4a07e608bcf2953","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/message_oriented_connection.cpp","gmt_create":"2026-04-25T14:08:40.297601+04:00","gmt_modified":"2026-04-25T14:08:40.297601+04:00"},{"id":33750,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"2cd382024aa3c3641bb0232e8a884804","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/stcp_socket.hpp","gmt_create":"2026-04-25T14:08:40.297601+04:00","gmt_modified":"2026-04-25T14:08:40.297601+04:00"},{"id":33751,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"15f7fafdde6d1342efcb1d031a3ed373","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/stcp_socket.cpp","gmt_create":"2026-04-25T14:08:40.297601+04:00","gmt_modified":"2026-04-25T14:08:40.297601+04:00"},{"id":33752,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/core_messages.hpp","gmt_create":"2026-04-25T14:08:40.297601+04:00","gmt_modified":"2026-04-25T14:08:40.297601+04:00"},{"id":33753,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a9a2225f71a7ab62f94545ee401cd989","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/core_messages.cpp","gmt_create":"2026-04-25T14:08:40.2981209+04:00","gmt_modified":"2026-04-25T14:08:40.2981209+04:00"},{"id":33754,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"e7935c1ea13856e803e38031e7c8b7fc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-04-25T14:08:40.2981209+04:00","gmt_modified":"2026-04-25T14:08:40.2981209+04:00"},{"id":33755,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"5a260bfef2b0b67807385beef10081d6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/peer_database.hpp","gmt_create":"2026-04-25T14:08:40.298638+04:00","gmt_modified":"2026-04-25T14:08:40.298638+04:00"},{"id":33756,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"198304be143e9b899367298aa00c63b6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/peer_database.cpp","gmt_create":"2026-04-25T14:08:40.2991585+04:00","gmt_modified":"2026-04-25T14:08:40.2991585+04:00"},{"id":33757,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"26f3c820ac62766be33bd6ac481a31fc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-04-25T14:08:40.2991585+04:00","gmt_modified":"2026-04-25T14:08:40.2991585+04:00"},{"id":33758,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"9a0cb62287914164e62afa4cbd0ff65e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/network/include/graphene/network/exceptions.hpp","gmt_create":"2026-04-25T14:08:40.2991585+04:00","gmt_modified":"2026-04-25T14:08:40.2991585+04:00"},{"id":33759,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a49bd340a179d1cbdb19ed84c7cf27d1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-25T14:08:40.299681+04:00","gmt_modified":"2026-04-25T14:08:40.299681+04:00"},{"id":33760,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"02dbf249fc8c10dab447eced53151995","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/database.cpp","gmt_create":"2026-04-25T14:08:40.3002012+04:00","gmt_modified":"2026-04-25T14:08:40.3002012+04:00"},{"id":33761,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"66fa326245da38aa1614b28e74aca5fe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/fork_database.cpp","gmt_create":"2026-04-25T14:08:40.3002012+04:00","gmt_modified":"2026-04-25T14:08:40.3002012+04:00"},{"id":33762,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"af710aa1c667707f524bb6fbd62ecb1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: libraries/chain/include/graphene/chain/database_exceptions.hpp","gmt_create":"2026-04-25T14:08:40.3007255+04:00","gmt_modified":"2026-04-25T14:08:40.3007255+04:00"},{"id":33763,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"409f6ade4ddf9121d618f872bdacafab","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.hpp","gmt_create":"2026-04-25T14:08:40.3007255+04:00","gmt_modified":"2026-04-25T14:08:40.3007255+04:00"},{"id":33764,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"c3b81f8048c72b4ab59cb02d72200fdd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: plugins/snapshot/plugin.cpp","gmt_create":"2026-04-25T14:08:40.3007255+04:00","gmt_modified":"2026-04-25T14:08:40.3007255+04:00"},{"id":33765,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"82895ed8f5fc6b434b0e594b1c94098f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: documentation/snapshot-plugin.md","gmt_create":"2026-04-25T14:08:40.301243+04:00","gmt_modified":"2026-04-25T14:08:40.301243+04:00"},{"id":33766,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"c8f2db27bae624cb0754ff09a0d61570","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: share/vizd/config/config.ini","gmt_create":"2026-04-25T14:08:40.301243+04:00","gmt_modified":"2026-04-25T14:08:40.301243+04:00"},{"id":33767,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"975e7c774bd6742eb3d0ffdf9b054b27","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#79-351","gmt_create":"2026-04-25T14:08:40.3018907+04:00","gmt_modified":"2026-04-25T14:08:40.3018907+04:00"},{"id":33768,"source_id":"9d3453253995e8388c4821315fa0aa14","target_id":"975e7c774bd6742eb3d0ffdf9b054b27","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-351","gmt_create":"2026-04-25T14:08:40.3018907+04:00","gmt_modified":"2026-04-25T14:08:40.3018907+04:00"},{"id":33769,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"8f0521fc24f28f12a7d388a0ffa49005","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#45-79","gmt_create":"2026-04-25T14:08:40.3023938+04:00","gmt_modified":"2026-04-25T14:08:40.3023938+04:00"},{"id":33770,"source_id":"a144469f6776ef7c9c8fa34c2e4c7305","target_id":"8f0521fc24f28f12a7d388a0ffa49005","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45-79","gmt_create":"2026-04-25T14:08:40.302915+04:00","gmt_modified":"2026-04-25T14:08:40.302915+04:00"},{"id":33771,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"da9b9a0455261a1d96a4cfde032011c1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#37-93","gmt_create":"2026-04-25T14:08:40.302915+04:00","gmt_modified":"2026-04-25T14:08:40.302915+04:00"},{"id":33772,"source_id":"2cd382024aa3c3641bb0232e8a884804","target_id":"da9b9a0455261a1d96a4cfde032011c1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-93","gmt_create":"2026-04-25T14:08:40.302915+04:00","gmt_modified":"2026-04-25T14:08:40.302915+04:00"},{"id":33773,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"bd7a6b3901d17761f95abcc24de29752","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#72-95","gmt_create":"2026-04-25T14:08:40.3034306+04:00","gmt_modified":"2026-04-25T14:08:40.3034306+04:00"},{"id":33774,"source_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","target_id":"bd7a6b3901d17761f95abcc24de29752","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 72-95","gmt_create":"2026-04-25T14:08:40.3034306+04:00","gmt_modified":"2026-04-25T14:08:40.3034306+04:00"},{"id":33775,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"9df573a120639a854f144a770bab90af","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#42-106","gmt_create":"2026-04-25T14:08:40.3034306+04:00","gmt_modified":"2026-04-25T14:08:40.3034306+04:00"},{"id":33776,"source_id":"26f3c820ac62766be33bd6ac481a31fc","target_id":"9df573a120639a854f144a770bab90af","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-106","gmt_create":"2026-04-25T14:08:40.3034306+04:00","gmt_modified":"2026-04-25T14:08:40.3034306+04:00"},{"id":33777,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"84f35e5db5f76201b869bb4906f4203c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#190-304","gmt_create":"2026-04-25T14:08:40.3039447+04:00","gmt_modified":"2026-04-25T14:08:40.3039447+04:00"},{"id":33778,"source_id":"b7482d6af46ff9d48a2e5a5c830db528","target_id":"84f35e5db5f76201b869bb4906f4203c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 190-304","gmt_create":"2026-04-25T14:08:40.3039447+04:00","gmt_modified":"2026-04-25T14:08:40.3039447+04:00"},{"id":33779,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a15462ec0bbbc48740799f63479c10c9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#104-134","gmt_create":"2026-04-25T14:08:40.3039447+04:00","gmt_modified":"2026-04-25T14:08:40.3039447+04:00"},{"id":33780,"source_id":"5a260bfef2b0b67807385beef10081d6","target_id":"a15462ec0bbbc48740799f63479c10c9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 104-134","gmt_create":"2026-04-25T14:08:40.3039447+04:00","gmt_modified":"2026-04-25T14:08:40.3039447+04:00"},{"id":33781,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"fd649f3742889ad2c6fe7ff2b959163b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#593-601","gmt_create":"2026-04-25T14:08:40.3044607+04:00","gmt_modified":"2026-04-25T14:08:40.3044607+04:00"},{"id":33782,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"fd649f3742889ad2c6fe7ff2b959163b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 593-601","gmt_create":"2026-04-25T14:08:40.3044607+04:00","gmt_modified":"2026-04-25T14:08:40.3044607+04:00"},{"id":33783,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"5cd868524baa1893efad33406f8ccd66","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5240-5274","gmt_create":"2026-04-25T14:08:40.3049767+04:00","gmt_modified":"2026-04-25T14:08:40.3049767+04:00"},{"id":33784,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"5cd868524baa1893efad33406f8ccd66","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5240-5274","gmt_create":"2026-04-25T14:08:40.3049767+04:00","gmt_modified":"2026-04-25T14:08:40.3049767+04:00"},{"id":33785,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"9ed4b415735a3f0cf2878f9ae3a744dc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#689-697","gmt_create":"2026-04-25T14:08:40.3049767+04:00","gmt_modified":"2026-04-25T14:08:40.3049767+04:00"},{"id":33786,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"69f34d8085a9d37a5acfcdb1b00e9611","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/snapshot/plugin.cpp#3039-3045","gmt_create":"2026-04-25T14:08:40.3054949+04:00","gmt_modified":"2026-04-25T14:08:40.3054949+04:00"},{"id":33787,"source_id":"c3b81f8048c72b4ab59cb02d72200fdd","target_id":"69f34d8085a9d37a5acfcdb1b00e9611","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3039-3045","gmt_create":"2026-04-25T14:08:40.3054949+04:00","gmt_modified":"2026-04-25T14:08:40.3054949+04:00"},{"id":33788,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"db150ce854a9a1b6a9276b8e7a2333b2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1215-1246","gmt_create":"2026-04-25T14:08:40.3054949+04:00","gmt_modified":"2026-04-25T14:08:40.3054949+04:00"},{"id":33789,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"db150ce854a9a1b6a9276b8e7a2333b2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1215-1246","gmt_create":"2026-04-25T14:08:40.3060179+04:00","gmt_modified":"2026-04-25T14:08:40.3060179+04:00"},{"id":33790,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"d7570da2a4cffd5140f0c82ab5f9b6b9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#34-46","gmt_create":"2026-04-25T14:08:40.3060179+04:00","gmt_modified":"2026-04-25T14:08:40.3060179+04:00"},{"id":33791,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"758c4af65ff127e21da17020065b26b4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/exceptions.hpp#33-45","gmt_create":"2026-04-25T14:08:40.3065359+04:00","gmt_modified":"2026-04-25T14:08:40.3065359+04:00"},{"id":33792,"source_id":"9a0cb62287914164e62afa4cbd0ff65e","target_id":"758c4af65ff127e21da17020065b26b4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-45","gmt_create":"2026-04-25T14:08:40.3065359+04:00","gmt_modified":"2026-04-25T14:08:40.3065359+04:00"},{"id":33793,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a7c5e3037bd0ca3486eab3886dd795db","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#1-386","gmt_create":"2026-04-25T14:08:40.3070575+04:00","gmt_modified":"2026-04-25T14:08:40.3070575+04:00"},{"id":33794,"source_id":"9d3453253995e8388c4821315fa0aa14","target_id":"a7c5e3037bd0ca3486eab3886dd795db","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-386","gmt_create":"2026-04-25T14:08:40.3075792+04:00","gmt_modified":"2026-04-25T14:08:40.3075792+04:00"},{"id":33795,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"5b029dc52193bbcfa010b0e2634f9d75","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#1-85","gmt_create":"2026-04-25T14:08:40.3075792+04:00","gmt_modified":"2026-04-25T14:08:40.3075792+04:00"},{"id":33796,"source_id":"a144469f6776ef7c9c8fa34c2e4c7305","target_id":"5b029dc52193bbcfa010b0e2634f9d75","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-85","gmt_create":"2026-04-25T14:08:40.3081036+04:00","gmt_modified":"2026-04-25T14:08:40.3081036+04:00"},{"id":33797,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"108264b31296eda8fd7a493737556a57","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#1-99","gmt_create":"2026-04-25T14:08:40.3081036+04:00","gmt_modified":"2026-04-25T14:08:40.3081036+04:00"},{"id":33798,"source_id":"2cd382024aa3c3641bb0232e8a884804","target_id":"108264b31296eda8fd7a493737556a57","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-99","gmt_create":"2026-04-25T14:08:40.3086246+04:00","gmt_modified":"2026-04-25T14:08:40.3086246+04:00"},{"id":33799,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a780979edb41332a330b7fde3eb0918e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#1-573","gmt_create":"2026-04-25T14:08:40.3086246+04:00","gmt_modified":"2026-04-25T14:08:40.3086246+04:00"},{"id":33800,"source_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","target_id":"a780979edb41332a330b7fde3eb0918e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-573","gmt_create":"2026-04-25T14:08:40.3086246+04:00","gmt_modified":"2026-04-25T14:08:40.3086246+04:00"},{"id":33801,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"fc71c63708e383baa3478397a0504100","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#1-374","gmt_create":"2026-04-25T14:08:40.3091542+04:00","gmt_modified":"2026-04-25T14:08:40.3091542+04:00"},{"id":33802,"source_id":"b7482d6af46ff9d48a2e5a5c830db528","target_id":"fc71c63708e383baa3478397a0504100","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-374","gmt_create":"2026-04-25T14:08:40.3091542+04:00","gmt_modified":"2026-04-25T14:08:40.3091542+04:00"},{"id":33803,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"d5db37e8f93fe64dd7d0612b6beafe87","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#1-141","gmt_create":"2026-04-25T14:08:40.3096775+04:00","gmt_modified":"2026-04-25T14:08:40.3096775+04:00"},{"id":33804,"source_id":"5a260bfef2b0b67807385beef10081d6","target_id":"d5db37e8f93fe64dd7d0612b6beafe87","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-141","gmt_create":"2026-04-25T14:08:40.3096775+04:00","gmt_modified":"2026-04-25T14:08:40.3096775+04:00"},{"id":33805,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"8edd69c54bd69f89e89edb819e52e47b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#1-114","gmt_create":"2026-04-25T14:08:40.3101876+04:00","gmt_modified":"2026-04-25T14:08:40.3101876+04:00"},{"id":33806,"source_id":"26f3c820ac62766be33bd6ac481a31fc","target_id":"8edd69c54bd69f89e89edb819e52e47b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-114","gmt_create":"2026-04-25T14:08:40.3101876+04:00","gmt_modified":"2026-04-25T14:08:40.3101876+04:00"},{"id":33807,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"46d3848165b0cc3dedc2d3f8c3a1d767","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1-6389","gmt_create":"2026-04-25T14:08:40.310704+04:00","gmt_modified":"2026-04-25T14:08:40.310704+04:00"},{"id":33808,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"46d3848165b0cc3dedc2d3f8c3a1d767","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-6389","gmt_create":"2026-04-25T14:08:40.310704+04:00","gmt_modified":"2026-04-25T14:08:40.310704+04:00"},{"id":33809,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"f124e76655366afa700a34e4083c24fc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/fork_database.cpp#1-271","gmt_create":"2026-04-25T14:08:40.3112316+04:00","gmt_modified":"2026-04-25T14:08:40.3112316+04:00"},{"id":33810,"source_id":"66fa326245da38aa1614b28e74aca5fe","target_id":"f124e76655366afa700a34e4083c24fc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-271","gmt_create":"2026-04-25T14:08:40.3112316+04:00","gmt_modified":"2026-04-25T14:08:40.3112316+04:00"},{"id":33811,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"56d660775b68ee44cf861b561d65c0cd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/exceptions.hpp#1-49","gmt_create":"2026-04-25T14:08:40.311753+04:00","gmt_modified":"2026-04-25T14:08:40.311753+04:00"},{"id":33812,"source_id":"9a0cb62287914164e62afa4cbd0ff65e","target_id":"56d660775b68ee44cf861b561d65c0cd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-49","gmt_create":"2026-04-25T14:08:40.3123337+04:00","gmt_modified":"2026-04-25T14:08:40.3123337+04:00"},{"id":33813,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"872f222c612b48577639689c04437108","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#68-162","gmt_create":"2026-04-25T14:08:40.3138888+04:00","gmt_modified":"2026-04-25T14:08:40.3138888+04:00"},{"id":33814,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"872f222c612b48577639689c04437108","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 68-162","gmt_create":"2026-04-25T14:08:40.3138888+04:00","gmt_modified":"2026-04-25T14:08:40.3138888+04:00"},{"id":33815,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"008f8667ff32111a7be22d722ac31459","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#128-140","gmt_create":"2026-04-25T14:08:40.3149342+04:00","gmt_modified":"2026-04-25T14:08:40.3149342+04:00"},{"id":33816,"source_id":"5b9e2f1c0be9ec9ec4a07e608bcf2953","target_id":"008f8667ff32111a7be22d722ac31459","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 128-140","gmt_create":"2026-04-25T14:08:40.3154467+04:00","gmt_modified":"2026-04-25T14:08:40.3154467+04:00"},{"id":33817,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a224f3c8025ab755b098e66506721e68","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#49-72","gmt_create":"2026-04-25T14:08:40.3154467+04:00","gmt_modified":"2026-04-25T14:08:40.3154467+04:00"},{"id":33818,"source_id":"15f7fafdde6d1342efcb1d031a3ed373","target_id":"a224f3c8025ab755b098e66506721e68","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 49-72","gmt_create":"2026-04-25T14:08:40.3159707+04:00","gmt_modified":"2026-04-25T14:08:40.3159707+04:00"},{"id":33819,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"726eaf8bf4bee91c2ef30dacbde65b1b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#233-306","gmt_create":"2026-04-25T14:08:40.3159707+04:00","gmt_modified":"2026-04-25T14:08:40.3159707+04:00"},{"id":33820,"source_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","target_id":"726eaf8bf4bee91c2ef30dacbde65b1b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 233-306","gmt_create":"2026-04-25T14:08:40.3164789+04:00","gmt_modified":"2026-04-25T14:08:40.3164789+04:00"},{"id":33821,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"6a2b7bf38eaf3df82f34a15be6b40e41","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#424-799","gmt_create":"2026-04-25T14:08:40.3164789+04:00","gmt_modified":"2026-04-25T14:08:40.3164789+04:00"},{"id":33822,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"6a2b7bf38eaf3df82f34a15be6b40e41","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 424-799","gmt_create":"2026-04-25T14:08:40.3164789+04:00","gmt_modified":"2026-04-25T14:08:40.3164789+04:00"},{"id":33823,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"f948de76b0ebb5b5734497c718fad51b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_database.cpp#100-174","gmt_create":"2026-04-25T14:08:40.3170531+04:00","gmt_modified":"2026-04-25T14:08:40.3170531+04:00"},{"id":33824,"source_id":"198304be143e9b899367298aa00c63b6","target_id":"f948de76b0ebb5b5734497c718fad51b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 100-174","gmt_create":"2026-04-25T14:08:40.3175565+04:00","gmt_modified":"2026-04-25T14:08:40.3175565+04:00"},{"id":33825,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"f844fb63cee5ff73313f2ecaa6695a90","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#208-242","gmt_create":"2026-04-25T14:08:40.3185982+04:00","gmt_modified":"2026-04-25T14:08:40.3185982+04:00"},{"id":33826,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"f844fb63cee5ff73313f2ecaa6695a90","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 208-242","gmt_create":"2026-04-25T14:08:40.3191214+04:00","gmt_modified":"2026-04-25T14:08:40.3191214+04:00"},{"id":33827,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"98ab793d980a86051643734bda5bfb3e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#135-140","gmt_create":"2026-04-25T14:08:40.3191214+04:00","gmt_modified":"2026-04-25T14:08:40.3191214+04:00"},{"id":33828,"source_id":"5b9e2f1c0be9ec9ec4a07e608bcf2953","target_id":"98ab793d980a86051643734bda5bfb3e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 135-140","gmt_create":"2026-04-25T14:08:40.3196386+04:00","gmt_modified":"2026-04-25T14:08:40.3196386+04:00"},{"id":33829,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"6c00abc76aaaf65d567f52ee631c867f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#69-72","gmt_create":"2026-04-25T14:08:40.3196386+04:00","gmt_modified":"2026-04-25T14:08:40.3196386+04:00"},{"id":33830,"source_id":"15f7fafdde6d1342efcb1d031a3ed373","target_id":"6c00abc76aaaf65d567f52ee631c867f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 69-72","gmt_create":"2026-04-25T14:08:40.3201672+04:00","gmt_modified":"2026-04-25T14:08:40.3201672+04:00"},{"id":33831,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"99654a57de56122ba4cf91969a004c87","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#233-272","gmt_create":"2026-04-25T14:08:40.3206933+04:00","gmt_modified":"2026-04-25T14:08:40.3206933+04:00"},{"id":33832,"source_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","target_id":"99654a57de56122ba4cf91969a004c87","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 233-272","gmt_create":"2026-04-25T14:08:40.3206933+04:00","gmt_modified":"2026-04-25T14:08:40.3206933+04:00"},{"id":33833,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"d05a9f2dcaf4127f10252c1db4477aa9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#662-718","gmt_create":"2026-04-25T14:08:40.3212125+04:00","gmt_modified":"2026-04-25T14:08:40.3212125+04:00"},{"id":33834,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"d05a9f2dcaf4127f10252c1db4477aa9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 662-718","gmt_create":"2026-04-25T14:08:40.3212125+04:00","gmt_modified":"2026-04-25T14:08:40.3212125+04:00"},{"id":33835,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"16a52da7c33a693c3b4441d0d9bedad0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#41-66","gmt_create":"2026-04-25T14:08:40.3222567+04:00","gmt_modified":"2026-04-25T14:08:40.3222567+04:00"},{"id":33836,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"16a52da7c33a693c3b4441d0d9bedad0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 41-66","gmt_create":"2026-04-25T14:08:40.3222567+04:00","gmt_modified":"2026-04-25T14:08:40.3222567+04:00"},{"id":33837,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"ad7057275825d866159043c459096521","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#244-338","gmt_create":"2026-04-25T14:08:40.3227741+04:00","gmt_modified":"2026-04-25T14:08:40.3227741+04:00"},{"id":33838,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"ad7057275825d866159043c459096521","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 244-338","gmt_create":"2026-04-25T14:08:40.3233017+04:00","gmt_modified":"2026-04-25T14:08:40.3233017+04:00"},{"id":33839,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"f82ec608f1b8c631fafb0e689a528a44","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#240-278","gmt_create":"2026-04-25T14:08:40.3238249+04:00","gmt_modified":"2026-04-25T14:08:40.3238249+04:00"},{"id":33840,"source_id":"9d3453253995e8388c4821315fa0aa14","target_id":"f82ec608f1b8c631fafb0e689a528a44","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 240-278","gmt_create":"2026-04-25T14:08:40.3238249+04:00","gmt_modified":"2026-04-25T14:08:40.3238249+04:00"},{"id":33841,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"27cc6086a8e067925e0d2668e4008761","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#237-283","gmt_create":"2026-04-25T14:08:40.3243404+04:00","gmt_modified":"2026-04-25T14:08:40.3243404+04:00"},{"id":33842,"source_id":"5b9e2f1c0be9ec9ec4a07e608bcf2953","target_id":"27cc6086a8e067925e0d2668e4008761","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 237-283","gmt_create":"2026-04-25T14:08:40.3243404+04:00","gmt_modified":"2026-04-25T14:08:40.3243404+04:00"},{"id":33843,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"08c48829dfc1f1cb10adb5fc1d96978a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/message_oriented_connection.cpp#148-235","gmt_create":"2026-04-25T14:08:40.3248568+04:00","gmt_modified":"2026-04-25T14:08:40.3248568+04:00"},{"id":33844,"source_id":"5b9e2f1c0be9ec9ec4a07e608bcf2953","target_id":"08c48829dfc1f1cb10adb5fc1d96978a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 148-235","gmt_create":"2026-04-25T14:08:40.3248568+04:00","gmt_modified":"2026-04-25T14:08:40.3248568+04:00"},{"id":33845,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"182cbf47bc0bd507f6e4edaebca74a86","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/stcp_socket.cpp#132-177","gmt_create":"2026-04-25T14:08:40.3258605+04:00","gmt_modified":"2026-04-25T14:08:40.3258605+04:00"},{"id":33846,"source_id":"15f7fafdde6d1342efcb1d031a3ed373","target_id":"182cbf47bc0bd507f6e4edaebca74a86","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 132-177","gmt_create":"2026-04-25T14:08:40.3258605+04:00","gmt_modified":"2026-04-25T14:08:40.3258605+04:00"},{"id":33847,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"5ed13f3a1eda58065f691be7c2114887","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#82-106","gmt_create":"2026-04-25T14:08:40.3293932+04:00","gmt_modified":"2026-04-25T14:08:40.3293932+04:00"},{"id":33848,"source_id":"9d3453253995e8388c4821315fa0aa14","target_id":"5ed13f3a1eda58065f691be7c2114887","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 82-106","gmt_create":"2026-04-25T14:08:40.3293932+04:00","gmt_modified":"2026-04-25T14:08:40.3293932+04:00"},{"id":33849,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"76ba3e9bd1586de8779db7c3668d30cc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#356-369","gmt_create":"2026-04-25T14:08:40.3303937+04:00","gmt_modified":"2026-04-25T14:08:40.3303937+04:00"},{"id":33850,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"76ba3e9bd1586de8779db7c3668d30cc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 356-369","gmt_create":"2026-04-25T14:08:40.3303937+04:00","gmt_modified":"2026-04-25T14:08:40.3303937+04:00"},{"id":33851,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"2a03b2ac9a29267367b1e4e831f99cbd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#718-740","gmt_create":"2026-04-25T14:08:40.3303937+04:00","gmt_modified":"2026-04-25T14:08:40.3303937+04:00"},{"id":33852,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"2a03b2ac9a29267367b1e4e831f99cbd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 718-740","gmt_create":"2026-04-25T14:08:40.3314182+04:00","gmt_modified":"2026-04-25T14:08:40.3314182+04:00"},{"id":33853,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"db5cbda9cc8faccbe74ee1102aa66ed3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5272-5274","gmt_create":"2026-04-25T14:08:40.3314182+04:00","gmt_modified":"2026-04-25T14:08:40.3314182+04:00"},{"id":33854,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"db5cbda9cc8faccbe74ee1102aa66ed3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5272-5274","gmt_create":"2026-04-25T14:08:40.3314182+04:00","gmt_modified":"2026-04-25T14:08:40.3314182+04:00"},{"id":33855,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"87a041911f992635eb732d7638de65d3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#169-242","gmt_create":"2026-04-25T14:08:40.3314182+04:00","gmt_modified":"2026-04-25T14:08:40.3314182+04:00"},{"id":33856,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"87a041911f992635eb732d7638de65d3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 169-242","gmt_create":"2026-04-25T14:08:40.3314182+04:00","gmt_modified":"2026-04-25T14:08:40.3314182+04:00"},{"id":33857,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"44c69ec3388fb2df0f06a5140c3191be","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#310-338","gmt_create":"2026-04-25T14:08:40.3324188+04:00","gmt_modified":"2026-04-25T14:08:40.3324188+04:00"},{"id":33858,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"44c69ec3388fb2df0f06a5140c3191be","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 310-338","gmt_create":"2026-04-25T14:08:40.3324188+04:00","gmt_modified":"2026-04-25T14:08:40.3324188+04:00"},{"id":33859,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"9025eb86f00163e1519f9870d57379aa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#255-308","gmt_create":"2026-04-25T14:08:40.3324188+04:00","gmt_modified":"2026-04-25T14:08:40.3324188+04:00"},{"id":33860,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"9025eb86f00163e1519f9870d57379aa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 255-308","gmt_create":"2026-04-25T14:08:40.3334211+04:00","gmt_modified":"2026-04-25T14:08:40.3334211+04:00"},{"id":33861,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"23685ed722f99d2e44670cbe71e2eb9a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#58-58","gmt_create":"2026-04-25T14:08:40.3334211+04:00","gmt_modified":"2026-04-25T14:08:40.3334211+04:00"},{"id":33862,"source_id":"e7935c1ea13856e803e38031e7c8b7fc","target_id":"23685ed722f99d2e44670cbe71e2eb9a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 58-58","gmt_create":"2026-04-25T14:08:40.3334211+04:00","gmt_modified":"2026-04-25T14:08:40.3334211+04:00"},{"id":33863,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"1a0f41827a37f86ae966c14f359ba6f1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#175-279","gmt_create":"2026-04-25T14:08:40.3334211+04:00","gmt_modified":"2026-04-25T14:08:40.3334211+04:00"},{"id":33864,"source_id":"9d3453253995e8388c4821315fa0aa14","target_id":"1a0f41827a37f86ae966c14f359ba6f1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 175-279","gmt_create":"2026-04-25T14:08:40.3449355+04:00","gmt_modified":"2026-04-25T14:08:40.3449355+04:00"},{"id":33865,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"c24f664eefd33018e1bde6ec97f9a78c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#428-480","gmt_create":"2026-04-25T14:08:40.3465295+04:00","gmt_modified":"2026-04-25T14:08:40.3465295+04:00"},{"id":33866,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"c24f664eefd33018e1bde6ec97f9a78c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 428-480","gmt_create":"2026-04-25T14:08:40.3474547+04:00","gmt_modified":"2026-04-25T14:08:40.3474547+04:00"},{"id":33867,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"4e477e9c054addadfcdfde41a11b55fc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#47-71","gmt_create":"2026-04-25T14:08:40.3474547+04:00","gmt_modified":"2026-04-25T14:08:40.3474547+04:00"},{"id":33868,"source_id":"5a260bfef2b0b67807385beef10081d6","target_id":"4e477e9c054addadfcdfde41a11b55fc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 47-71","gmt_create":"2026-04-25T14:08:40.3474547+04:00","gmt_modified":"2026-04-25T14:08:40.3474547+04:00"},{"id":33869,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"4a08120c5f3262ed540c2bbf320e6a07","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#518-526","gmt_create":"2026-04-25T14:08:40.3474547+04:00","gmt_modified":"2026-04-25T14:08:40.3474547+04:00"},{"id":33870,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"4a08120c5f3262ed540c2bbf320e6a07","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 518-526","gmt_create":"2026-04-25T14:08:40.3474547+04:00","gmt_modified":"2026-04-25T14:08:40.3474547+04:00"},{"id":33871,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"85e2ce2c051e55ac7c71cfb33007c788","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5265-5274","gmt_create":"2026-04-25T14:08:40.3484527+04:00","gmt_modified":"2026-04-25T14:08:40.3484527+04:00"},{"id":33872,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"85e2ce2c051e55ac7c71cfb33007c788","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5265-5274","gmt_create":"2026-04-25T14:08:40.3484527+04:00","gmt_modified":"2026-04-25T14:08:40.3484527+04:00"},{"id":33873,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"1d7dcd040fc765da988b0479b48e6073","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3598-3626","gmt_create":"2026-04-25T14:08:40.3494517+04:00","gmt_modified":"2026-04-25T14:08:40.3494517+04:00"},{"id":33874,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"1d7dcd040fc765da988b0479b48e6073","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3598-3626","gmt_create":"2026-04-25T14:08:40.3494517+04:00","gmt_modified":"2026-04-25T14:08:40.3494517+04:00"},{"id":33875,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"d2e0d83ba70517cc5d6822e1b9ed2d7a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: plugins/p2p/p2p_plugin.cpp#172-182","gmt_create":"2026-04-25T14:08:40.3494517+04:00","gmt_modified":"2026-04-25T14:08:40.3494517+04:00"},{"id":33876,"source_id":"a49bd340a179d1cbdb19ed84c7cf27d1","target_id":"d2e0d83ba70517cc5d6822e1b9ed2d7a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 172-182","gmt_create":"2026-04-25T14:08:40.3494517+04:00","gmt_modified":"2026-04-25T14:08:40.3494517+04:00"},{"id":33877,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"28ea3150eed4d22263a6cf0b50c34f04","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#599-600","gmt_create":"2026-04-25T14:08:40.3494517+04:00","gmt_modified":"2026-04-25T14:08:40.3494517+04:00"},{"id":33878,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"28ea3150eed4d22263a6cf0b50c34f04","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 599-600","gmt_create":"2026-04-25T14:08:40.3494517+04:00","gmt_modified":"2026-04-25T14:08:40.3494517+04:00"},{"id":33879,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"f8717b5227754e2665c5c052d491aeaf","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#4472-4479","gmt_create":"2026-04-25T14:08:40.3504523+04:00","gmt_modified":"2026-04-25T14:08:40.3504523+04:00"},{"id":33880,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"f8717b5227754e2665c5c052d491aeaf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 4472-4479","gmt_create":"2026-04-25T14:08:40.3504523+04:00","gmt_modified":"2026-04-25T14:08:40.3504523+04:00"},{"id":33881,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"8fcb1b6e0618debd0047884f427fb770","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5016-5021","gmt_create":"2026-04-25T14:08:40.3514532+04:00","gmt_modified":"2026-04-25T14:08:40.3514532+04:00"},{"id":33882,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"8fcb1b6e0618debd0047884f427fb770","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5016-5021","gmt_create":"2026-04-25T14:08:40.3514532+04:00","gmt_modified":"2026-04-25T14:08:40.3514532+04:00"},{"id":33883,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"4eae962bc809dfe6dd03748c803453f9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_database.cpp#120-137","gmt_create":"2026-04-25T14:08:40.3514532+04:00","gmt_modified":"2026-04-25T14:08:40.3514532+04:00"},{"id":33884,"source_id":"198304be143e9b899367298aa00c63b6","target_id":"4eae962bc809dfe6dd03748c803453f9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 120-137","gmt_create":"2026-04-25T14:08:40.3514532+04:00","gmt_modified":"2026-04-25T14:08:40.3514532+04:00"},{"id":33885,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"0f049b5e91b778562cd59d76d9e56a3f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#5013-5014","gmt_create":"2026-04-25T14:08:40.3514532+04:00","gmt_modified":"2026-04-25T14:08:40.3514532+04:00"},{"id":33886,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"0f049b5e91b778562cd59d76d9e56a3f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5013-5014","gmt_create":"2026-04-25T14:08:40.352455+04:00","gmt_modified":"2026-04-25T14:08:40.352455+04:00"},{"id":33887,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"160398b60c444933e0887c6dd5d987fa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3061-3062","gmt_create":"2026-04-25T14:08:40.352455+04:00","gmt_modified":"2026-04-25T14:08:40.352455+04:00"},{"id":33888,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"160398b60c444933e0887c6dd5d987fa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3061-3062","gmt_create":"2026-04-25T14:08:40.352455+04:00","gmt_modified":"2026-04-25T14:08:40.352455+04:00"},{"id":33889,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"471037d1ce733b80b4a5638eef9d8687","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#340-354","gmt_create":"2026-04-25T14:08:40.3534531+04:00","gmt_modified":"2026-04-25T14:08:40.3534531+04:00"},{"id":33890,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"471037d1ce733b80b4a5638eef9d8687","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 340-354","gmt_create":"2026-04-25T14:08:40.3534531+04:00","gmt_modified":"2026-04-25T14:08:40.3534531+04:00"},{"id":33891,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"7335a9476e83f328e52aed77c481211c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#371-399","gmt_create":"2026-04-25T14:08:40.3534531+04:00","gmt_modified":"2026-04-25T14:08:40.3534531+04:00"},{"id":33892,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"7335a9476e83f328e52aed77c481211c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 371-399","gmt_create":"2026-04-25T14:08:40.3534531+04:00","gmt_modified":"2026-04-25T14:08:40.3534531+04:00"},{"id":33893,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"31f9b0f76aa81ca2a0393386972980f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: share/vizd/config/config.ini#96-101","gmt_create":"2026-04-25T14:08:40.3544533+04:00","gmt_modified":"2026-04-25T14:08:40.3544533+04:00"},{"id":33894,"source_id":"c8f2db27bae624cb0754ff09a0d61570","target_id":"31f9b0f76aa81ca2a0393386972980f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 96-101","gmt_create":"2026-04-25T14:08:40.3544533+04:00","gmt_modified":"2026-04-25T14:08:40.3544533+04:00"},{"id":33895,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"4791d80d40da16166e47841aa0678240","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_connection.hpp#26-45","gmt_create":"2026-04-25T14:08:40.3569609+04:00","gmt_modified":"2026-04-25T14:08:40.3569609+04:00"},{"id":33896,"source_id":"9d3453253995e8388c4821315fa0aa14","target_id":"4791d80d40da16166e47841aa0678240","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-45","gmt_create":"2026-04-25T14:08:40.3569609+04:00","gmt_modified":"2026-04-25T14:08:40.3569609+04:00"},{"id":33897,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"88bd2a9a0abb4fa09daa8a8cb10d0b8c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message_oriented_connection.hpp#26-28","gmt_create":"2026-04-25T14:08:40.3579667+04:00","gmt_modified":"2026-04-25T14:08:40.3579667+04:00"},{"id":33898,"source_id":"a144469f6776ef7c9c8fa34c2e4c7305","target_id":"88bd2a9a0abb4fa09daa8a8cb10d0b8c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-28","gmt_create":"2026-04-25T14:08:40.3579667+04:00","gmt_modified":"2026-04-25T14:08:40.3579667+04:00"},{"id":33899,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"89c7100622c0b23d67ef1ae646d499e8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/stcp_socket.hpp#26-28","gmt_create":"2026-04-25T14:08:40.3579667+04:00","gmt_modified":"2026-04-25T14:08:40.3579667+04:00"},{"id":33900,"source_id":"2cd382024aa3c3641bb0232e8a884804","target_id":"89c7100622c0b23d67ef1ae646d499e8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-28","gmt_create":"2026-04-25T14:08:40.3579667+04:00","gmt_modified":"2026-04-25T14:08:40.3579667+04:00"},{"id":33901,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"969b7e21a9195e24fae1b767f9d32e98","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#26-35","gmt_create":"2026-04-25T14:08:40.3589669+04:00","gmt_modified":"2026-04-25T14:08:40.3589669+04:00"},{"id":33902,"source_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","target_id":"969b7e21a9195e24fae1b767f9d32e98","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-35","gmt_create":"2026-04-25T14:08:40.3589669+04:00","gmt_modified":"2026-04-25T14:08:40.3589669+04:00"},{"id":33903,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"428a1b448f010faa899231f4213d372b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/node.hpp#26-31","gmt_create":"2026-04-25T14:08:40.3589669+04:00","gmt_modified":"2026-04-25T14:08:40.3589669+04:00"},{"id":33904,"source_id":"b7482d6af46ff9d48a2e5a5c830db528","target_id":"428a1b448f010faa899231f4213d372b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-31","gmt_create":"2026-04-25T14:08:40.3589669+04:00","gmt_modified":"2026-04-25T14:08:40.3589669+04:00"},{"id":33905,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"4b37e77df79d6904f7a0b3de67802afd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/peer_database.hpp#26-35","gmt_create":"2026-04-25T14:08:40.3589669+04:00","gmt_modified":"2026-04-25T14:08:40.3589669+04:00"},{"id":33906,"source_id":"5a260bfef2b0b67807385beef10081d6","target_id":"4b37e77df79d6904f7a0b3de67802afd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-35","gmt_create":"2026-04-25T14:08:40.3589669+04:00","gmt_modified":"2026-04-25T14:08:40.3589669+04:00"},{"id":33907,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"a5e688fef1a4e25ebeb5a71d58e91b7a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/message.hpp#26-31","gmt_create":"2026-04-25T14:08:40.3599666+04:00","gmt_modified":"2026-04-25T14:08:40.3599666+04:00"},{"id":33908,"source_id":"26f3c820ac62766be33bd6ac481a31fc","target_id":"a5e688fef1a4e25ebeb5a71d58e91b7a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-31","gmt_create":"2026-04-25T14:08:40.3599666+04:00","gmt_modified":"2026-04-25T14:08:40.3599666+04:00"},{"id":33909,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"263e5946a8d014117e11558ac1b8f2c4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/core_messages.hpp#285-306","gmt_create":"2026-04-25T14:08:40.360967+04:00","gmt_modified":"2026-04-25T14:08:40.360967+04:00"},{"id":33910,"source_id":"2bbfbcb6829a9d4bd6524d16fb376c3b","target_id":"263e5946a8d014117e11558ac1b8f2c4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 285-306","gmt_create":"2026-04-25T14:08:40.360967+04:00","gmt_modified":"2026-04-25T14:08:40.360967+04:00"},{"id":33911,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"9191091dc04fe839ddf875ecb57733a2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#48-50","gmt_create":"2026-04-25T14:08:40.360967+04:00","gmt_modified":"2026-04-25T14:08:40.360967+04:00"},{"id":33912,"source_id":"e7935c1ea13856e803e38031e7c8b7fc","target_id":"9191091dc04fe839ddf875ecb57733a2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 48-50","gmt_create":"2026-04-25T14:08:40.360967+04:00","gmt_modified":"2026-04-25T14:08:40.360967+04:00"},{"id":33913,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"6d8a9bfe7d00655a50e0dd2e83ef96de","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/peer_connection.cpp#314-325","gmt_create":"2026-04-25T14:08:40.360967+04:00","gmt_modified":"2026-04-25T14:08:40.360967+04:00"},{"id":33914,"source_id":"7940a1efbb00411501c6178af59932a3","target_id":"6d8a9bfe7d00655a50e0dd2e83ef96de","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 314-325","gmt_create":"2026-04-25T14:08:40.3619672+04:00","gmt_modified":"2026-04-25T14:08:40.3619672+04:00"},{"id":33915,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"ba96043ad78b4237941727486c634ac3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3448-3470","gmt_create":"2026-04-25T14:08:40.3619672+04:00","gmt_modified":"2026-04-25T14:08:40.3619672+04:00"},{"id":33916,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"ba96043ad78b4237941727486c634ac3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3448-3470","gmt_create":"2026-04-25T14:08:40.3619672+04:00","gmt_modified":"2026-04-25T14:08:40.3619672+04:00"},{"id":33917,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"94f11e7fc48da3d084cf64f6ade85fa6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/include/graphene/network/config.hpp#26-106","gmt_create":"2026-04-25T14:08:40.3619672+04:00","gmt_modified":"2026-04-25T14:08:40.3619672+04:00"},{"id":33918,"source_id":"e7935c1ea13856e803e38031e7c8b7fc","target_id":"94f11e7fc48da3d084cf64f6ade85fa6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-106","gmt_create":"2026-04-25T14:08:40.3629682+04:00","gmt_modified":"2026-04-25T14:08:40.3629682+04:00"},{"id":33919,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"5e5ecb33e688b77e80c2243346312c0d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/database.cpp#1239-1241","gmt_create":"2026-04-25T14:08:40.3639685+04:00","gmt_modified":"2026-04-25T14:08:40.3639685+04:00"},{"id":33920,"source_id":"02dbf249fc8c10dab447eced53151995","target_id":"5e5ecb33e688b77e80c2243346312c0d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1239-1241","gmt_create":"2026-04-25T14:08:40.3639685+04:00","gmt_modified":"2026-04-25T14:08:40.3639685+04:00"},{"id":33921,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"fc051dd33938b4a7f885f7387ddf038b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/chain/include/graphene/chain/database_exceptions.hpp#86-86","gmt_create":"2026-04-25T14:08:40.3639685+04:00","gmt_modified":"2026-04-25T14:08:40.3639685+04:00"},{"id":33922,"source_id":"af710aa1c667707f524bb6fbd62ecb1e","target_id":"fc051dd33938b4a7f885f7387ddf038b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 86-86","gmt_create":"2026-04-25T14:08:40.3649679+04:00","gmt_modified":"2026-04-25T14:08:40.3649679+04:00"},{"id":33923,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"041661726677b33bd0b38179389905a2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#79-82","gmt_create":"2026-04-25T14:08:40.3649679+04:00","gmt_modified":"2026-04-25T14:08:40.3649679+04:00"},{"id":33924,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"041661726677b33bd0b38179389905a2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 79-82","gmt_create":"2026-04-25T14:08:40.3649679+04:00","gmt_modified":"2026-04-25T14:08:40.3649679+04:00"},{"id":33925,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"cc8a01f66b6f18dcb3d65caee4494505","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3278-3281","gmt_create":"2026-04-25T14:08:40.3649679+04:00","gmt_modified":"2026-04-25T14:08:40.3649679+04:00"},{"id":33926,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"cc8a01f66b6f18dcb3d65caee4494505","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3278-3281","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33927,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"76d36af1870a128598931bc419e8d8da","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3633-3636","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33928,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"76d36af1870a128598931bc419e8d8da","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3633-3636","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33929,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"2feb7e07bc2c7e2dc0a3d43ed8ac51a2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3653-3656","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33930,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"2feb7e07bc2c7e2dc0a3d43ed8ac51a2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3653-3656","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33931,"source_id":"2deffa19-44be-4603-b6ca-57169300ae40","target_id":"8b59c2217bd1ef2dd001c2f91f9cba34","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: libraries/network/node.cpp#3671-3674","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33932,"source_id":"7ab596ff5f3d168bcc165af5345769ea","target_id":"8b59c2217bd1ef2dd001c2f91f9cba34","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3671-3674","gmt_create":"2026-04-25T14:08:40.3659686+04:00","gmt_modified":"2026-04-25T14:08:40.3659686+04:00"},{"id":33933,"source_id":"14fc9cac-5b93-4b5e-be04-a39fe4921d65","target_id":"7dcd76b3-1147-4bd0-b2f8-8fa838859143","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14fc9cac-5b93-4b5e-be04-a39fe4921d65 -\u003e 7dcd76b3-1147-4bd0-b2f8-8fa838859143","gmt_create":"2026-04-25T14:08:41.0597624+04:00","gmt_modified":"2026-04-25T14:08:41.0597624+04:00"},{"id":33934,"source_id":"14fc9cac-5b93-4b5e-be04-a39fe4921d65","target_id":"0ca20526-783d-4cdc-b61b-786546e12adb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14fc9cac-5b93-4b5e-be04-a39fe4921d65 -\u003e 0ca20526-783d-4cdc-b61b-786546e12adb","gmt_create":"2026-04-25T14:08:41.0603993+04:00","gmt_modified":"2026-04-25T14:08:41.0603993+04:00"},{"id":33935,"source_id":"14fc9cac-5b93-4b5e-be04-a39fe4921d65","target_id":"0c429d8b-ef57-4aff-8e3e-e646a87dd905","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14fc9cac-5b93-4b5e-be04-a39fe4921d65 -\u003e 0c429d8b-ef57-4aff-8e3e-e646a87dd905","gmt_create":"2026-04-25T14:08:41.0610257+04:00","gmt_modified":"2026-04-25T14:08:41.0610257+04:00"},{"id":33936,"source_id":"14fc9cac-5b93-4b5e-be04-a39fe4921d65","target_id":"0e1ca92b-025a-4f58-9fee-4159c5ef1725","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14fc9cac-5b93-4b5e-be04-a39fe4921d65 -\u003e 0e1ca92b-025a-4f58-9fee-4159c5ef1725","gmt_create":"2026-04-25T14:08:41.0615394+04:00","gmt_modified":"2026-04-25T14:08:41.0615394+04:00"},{"id":33937,"source_id":"14fc9cac-5b93-4b5e-be04-a39fe4921d65","target_id":"c5bba880-5c17-4baa-b010-4d3f9f755718","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 14fc9cac-5b93-4b5e-be04-a39fe4921d65 -\u003e c5bba880-5c17-4baa-b010-4d3f9f755718","gmt_create":"2026-04-25T14:08:41.062725+04:00","gmt_modified":"2026-04-25T14:08:41.062725+04:00"},{"id":33938,"source_id":"3ab75d9c-6dfc-4bd0-884c-43e9626baab9","target_id":"12b30985-aed7-41d3-89de-639a5948e0b8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 3ab75d9c-6dfc-4bd0-884c-43e9626baab9 -\u003e 12b30985-aed7-41d3-89de-639a5948e0b8","gmt_create":"2026-04-25T14:08:41.0643203+04:00","gmt_modified":"2026-04-25T14:08:41.0643203+04:00"},{"id":33939,"source_id":"3ab75d9c-6dfc-4bd0-884c-43e9626baab9","target_id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 3ab75d9c-6dfc-4bd0-884c-43e9626baab9 -\u003e 67eea108-ae13-4fab-a04b-5d8bbd9ae380","gmt_create":"2026-04-25T14:08:41.0648532+04:00","gmt_modified":"2026-04-25T14:08:41.0648532+04:00"},{"id":33940,"source_id":"f206cbf1-5aae-425a-a4ed-aa16aff8e94d","target_id":"237a4712-d1d6-40f2-a824-6632071a782a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f206cbf1-5aae-425a-a4ed-aa16aff8e94d -\u003e 237a4712-d1d6-40f2-a824-6632071a782a","gmt_create":"2026-04-25T14:08:41.0654273+04:00","gmt_modified":"2026-04-25T14:08:41.0654273+04:00"},{"id":33941,"source_id":"f206cbf1-5aae-425a-a4ed-aa16aff8e94d","target_id":"15c04d43-e9c0-4464-a5f0-eb57be7b9dee","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f206cbf1-5aae-425a-a4ed-aa16aff8e94d -\u003e 15c04d43-e9c0-4464-a5f0-eb57be7b9dee","gmt_create":"2026-04-25T14:08:41.0664951+04:00","gmt_modified":"2026-04-25T14:08:41.0664951+04:00"},{"id":33942,"source_id":"7710a627-ac9b-4f70-9684-0bf6455a3a99","target_id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7710a627-ac9b-4f70-9684-0bf6455a3a99 -\u003e 6deaeb67-35ff-4805-a04f-053fba4a4ab8","gmt_create":"2026-04-25T14:08:41.0670141+04:00","gmt_modified":"2026-04-25T14:08:41.0670141+04:00"},{"id":33943,"source_id":"7710a627-ac9b-4f70-9684-0bf6455a3a99","target_id":"cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7710a627-ac9b-4f70-9684-0bf6455a3a99 -\u003e cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe","gmt_create":"2026-04-25T14:08:41.0675399+04:00","gmt_modified":"2026-04-25T14:08:41.0675399+04:00"},{"id":33944,"source_id":"7710a627-ac9b-4f70-9684-0bf6455a3a99","target_id":"40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7710a627-ac9b-4f70-9684-0bf6455a3a99 -\u003e 40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","gmt_create":"2026-04-25T14:08:41.0681236+04:00","gmt_modified":"2026-04-25T14:08:41.0681236+04:00"},{"id":33945,"source_id":"7710a627-ac9b-4f70-9684-0bf6455a3a99","target_id":"e8a06e2a-7b12-472c-ad47-e3e87b8d7fd2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7710a627-ac9b-4f70-9684-0bf6455a3a99 -\u003e e8a06e2a-7b12-472c-ad47-e3e87b8d7fd2","gmt_create":"2026-04-25T14:08:41.0686391+04:00","gmt_modified":"2026-04-25T14:08:41.0686391+04:00"},{"id":33946,"source_id":"b32047b5-2580-4476-9c9f-5e181cd8b824","target_id":"a5ebd55b-88db-46f8-9884-2d39ffe8d52f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b32047b5-2580-4476-9c9f-5e181cd8b824 -\u003e a5ebd55b-88db-46f8-9884-2d39ffe8d52f","gmt_create":"2026-04-25T14:08:41.0692751+04:00","gmt_modified":"2026-04-25T14:08:41.0692751+04:00"},{"id":33947,"source_id":"b32047b5-2580-4476-9c9f-5e181cd8b824","target_id":"d0ba0bc2-7fa4-4751-a043-e89b4db90b77","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b32047b5-2580-4476-9c9f-5e181cd8b824 -\u003e d0ba0bc2-7fa4-4751-a043-e89b4db90b77","gmt_create":"2026-04-25T14:08:41.0697988+04:00","gmt_modified":"2026-04-25T14:08:41.0697988+04:00"},{"id":33948,"source_id":"b32047b5-2580-4476-9c9f-5e181cd8b824","target_id":"1a8bf886-a95d-4e0c-aebf-4cc91985b1dc","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b32047b5-2580-4476-9c9f-5e181cd8b824 -\u003e 1a8bf886-a95d-4e0c-aebf-4cc91985b1dc","gmt_create":"2026-04-25T14:08:41.0703283+04:00","gmt_modified":"2026-04-25T14:08:41.0703283+04:00"},{"id":33949,"source_id":"b32047b5-2580-4476-9c9f-5e181cd8b824","target_id":"6c48a7c0-43fc-46ed-8af1-cb481ad48cd9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b32047b5-2580-4476-9c9f-5e181cd8b824 -\u003e 6c48a7c0-43fc-46ed-8af1-cb481ad48cd9","gmt_create":"2026-04-25T14:08:41.0713762+04:00","gmt_modified":"2026-04-25T14:08:41.0713762+04:00"},{"id":33950,"source_id":"bf276ed6-cc65-4d1d-90de-6f1aff0b8266","target_id":"2f88efa6-3484-4670-82a8-9fcc8b681372","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: bf276ed6-cc65-4d1d-90de-6f1aff0b8266 -\u003e 2f88efa6-3484-4670-82a8-9fcc8b681372","gmt_create":"2026-04-25T14:08:41.0713762+04:00","gmt_modified":"2026-04-25T14:08:41.0713762+04:00"},{"id":33951,"source_id":"bf276ed6-cc65-4d1d-90de-6f1aff0b8266","target_id":"ba624715-f41c-4aa3-b268-c2df3091df6c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: bf276ed6-cc65-4d1d-90de-6f1aff0b8266 -\u003e ba624715-f41c-4aa3-b268-c2df3091df6c","gmt_create":"2026-04-25T14:08:41.0719741+04:00","gmt_modified":"2026-04-25T14:08:41.0719741+04:00"},{"id":33952,"source_id":"bf276ed6-cc65-4d1d-90de-6f1aff0b8266","target_id":"3820c8f2-4aa7-42e4-bd02-1426d28295e0","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: bf276ed6-cc65-4d1d-90de-6f1aff0b8266 -\u003e 3820c8f2-4aa7-42e4-bd02-1426d28295e0","gmt_create":"2026-04-25T14:08:41.0724774+04:00","gmt_modified":"2026-04-25T14:08:41.0724774+04:00"},{"id":33953,"source_id":"bf276ed6-cc65-4d1d-90de-6f1aff0b8266","target_id":"dca06895-8015-4887-b68a-1481e4b954e1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: bf276ed6-cc65-4d1d-90de-6f1aff0b8266 -\u003e dca06895-8015-4887-b68a-1481e4b954e1","gmt_create":"2026-04-25T14:08:41.0724774+04:00","gmt_modified":"2026-04-25T14:08:41.0724774+04:00"},{"id":33954,"source_id":"8e2be000-67af-43c0-873f-83ca630a1511","target_id":"057e0dd5-f52d-41b3-9d67-3fae379ac2bf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8e2be000-67af-43c0-873f-83ca630a1511 -\u003e 057e0dd5-f52d-41b3-9d67-3fae379ac2bf","gmt_create":"2026-04-25T14:08:41.0729969+04:00","gmt_modified":"2026-04-25T14:08:41.0729969+04:00"},{"id":33955,"source_id":"8e2be000-67af-43c0-873f-83ca630a1511","target_id":"ce1cbbe5-d11c-420f-9037-8939456544d3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8e2be000-67af-43c0-873f-83ca630a1511 -\u003e ce1cbbe5-d11c-420f-9037-8939456544d3","gmt_create":"2026-04-25T14:08:41.0729969+04:00","gmt_modified":"2026-04-25T14:08:41.0729969+04:00"},{"id":33956,"source_id":"8e2be000-67af-43c0-873f-83ca630a1511","target_id":"df4c6467-74c3-4778-8425-5a390b8573a5","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8e2be000-67af-43c0-873f-83ca630a1511 -\u003e df4c6467-74c3-4778-8425-5a390b8573a5","gmt_create":"2026-04-25T14:08:41.0735146+04:00","gmt_modified":"2026-04-25T14:08:41.0735146+04:00"},{"id":33957,"source_id":"8e2be000-67af-43c0-873f-83ca630a1511","target_id":"23d8f439-c51d-4eb0-b3a2-5b11001dbb26","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8e2be000-67af-43c0-873f-83ca630a1511 -\u003e 23d8f439-c51d-4eb0-b3a2-5b11001dbb26","gmt_create":"2026-04-25T14:08:41.0735146+04:00","gmt_modified":"2026-04-25T14:08:41.0735146+04:00"},{"id":33958,"source_id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","target_id":"c7ea60a4-9845-44fb-b325-c1057aded33b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6deaeb67-35ff-4805-a04f-053fba4a4ab8 -\u003e c7ea60a4-9845-44fb-b325-c1057aded33b","gmt_create":"2026-04-25T14:08:41.0740315+04:00","gmt_modified":"2026-04-25T14:08:41.0740315+04:00"},{"id":33959,"source_id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","target_id":"b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6deaeb67-35ff-4805-a04f-053fba4a4ab8 -\u003e b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","gmt_create":"2026-04-25T14:08:41.0740315+04:00","gmt_modified":"2026-04-25T14:08:41.0740315+04:00"},{"id":33960,"source_id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","target_id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6deaeb67-35ff-4805-a04f-053fba4a4ab8 -\u003e b93456c3-8861-44ef-88ee-e193ff1fc21b","gmt_create":"2026-04-25T14:08:41.0745487+04:00","gmt_modified":"2026-04-25T14:08:41.0745487+04:00"},{"id":33961,"source_id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","target_id":"a99f548d-fa46-481d-b2c7-c0b8e7e0ef24","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6deaeb67-35ff-4805-a04f-053fba4a4ab8 -\u003e a99f548d-fa46-481d-b2c7-c0b8e7e0ef24","gmt_create":"2026-04-25T14:08:41.0745487+04:00","gmt_modified":"2026-04-25T14:08:41.0745487+04:00"},{"id":33962,"source_id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","target_id":"c75d9c44-4540-4713-ba2c-d70b5fbbb48d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6deaeb67-35ff-4805-a04f-053fba4a4ab8 -\u003e c75d9c44-4540-4713-ba2c-d70b5fbbb48d","gmt_create":"2026-04-25T14:08:41.0750651+04:00","gmt_modified":"2026-04-25T14:08:41.0750651+04:00"},{"id":33963,"source_id":"2f88efa6-3484-4670-82a8-9fcc8b681372","target_id":"f180ae7b-576b-46dc-abce-6a8a67842bd5","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2f88efa6-3484-4670-82a8-9fcc8b681372 -\u003e f180ae7b-576b-46dc-abce-6a8a67842bd5","gmt_create":"2026-04-25T14:08:41.075261+04:00","gmt_modified":"2026-04-25T14:08:41.075261+04:00"},{"id":33964,"source_id":"2f88efa6-3484-4670-82a8-9fcc8b681372","target_id":"b29a3c94-97af-469e-8fc9-a31f8b4c259d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2f88efa6-3484-4670-82a8-9fcc8b681372 -\u003e b29a3c94-97af-469e-8fc9-a31f8b4c259d","gmt_create":"2026-04-25T14:08:41.0757671+04:00","gmt_modified":"2026-04-25T14:08:41.0757671+04:00"},{"id":33965,"source_id":"2f88efa6-3484-4670-82a8-9fcc8b681372","target_id":"2346df6d-bc8c-4c0a-9f4c-3a71b5408ad1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2f88efa6-3484-4670-82a8-9fcc8b681372 -\u003e 2346df6d-bc8c-4c0a-9f4c-3a71b5408ad1","gmt_create":"2026-04-25T14:08:41.0762912+04:00","gmt_modified":"2026-04-25T14:08:41.0762912+04:00"},{"id":33966,"source_id":"2f88efa6-3484-4670-82a8-9fcc8b681372","target_id":"0e734628-495f-4d55-9d69-18a42b889a8d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2f88efa6-3484-4670-82a8-9fcc8b681372 -\u003e 0e734628-495f-4d55-9d69-18a42b889a8d","gmt_create":"2026-04-25T14:08:41.0763472+04:00","gmt_modified":"2026-04-25T14:08:41.0763472+04:00"},{"id":33967,"source_id":"cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe","target_id":"f394ef4d-0d59-4dba-9651-16016769f887","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe -\u003e f394ef4d-0d59-4dba-9651-16016769f887","gmt_create":"2026-04-25T14:08:41.0773815+04:00","gmt_modified":"2026-04-25T14:08:41.0773815+04:00"},{"id":33968,"source_id":"cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe","target_id":"fde741b0-3737-4c7c-b347-c02bd1e1c59a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe -\u003e fde741b0-3737-4c7c-b347-c02bd1e1c59a","gmt_create":"2026-04-25T14:08:41.0773815+04:00","gmt_modified":"2026-04-25T14:08:41.0773815+04:00"},{"id":33969,"source_id":"0ca20526-783d-4cdc-b61b-786546e12adb","target_id":"894ef639-3175-42b9-9d5d-106c8d1b7c8b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0ca20526-783d-4cdc-b61b-786546e12adb -\u003e 894ef639-3175-42b9-9d5d-106c8d1b7c8b","gmt_create":"2026-04-25T14:08:41.0784156+04:00","gmt_modified":"2026-04-25T14:08:41.0784156+04:00"},{"id":33970,"source_id":"0ca20526-783d-4cdc-b61b-786546e12adb","target_id":"fc047b8d-3e20-4559-b53a-6f8b3e0425f6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0ca20526-783d-4cdc-b61b-786546e12adb -\u003e fc047b8d-3e20-4559-b53a-6f8b3e0425f6","gmt_create":"2026-04-25T14:08:41.0784156+04:00","gmt_modified":"2026-04-25T14:08:41.0784156+04:00"},{"id":33971,"source_id":"0ca20526-783d-4cdc-b61b-786546e12adb","target_id":"e2dd940e-7b1d-46df-9f73-b7385093da04","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0ca20526-783d-4cdc-b61b-786546e12adb -\u003e e2dd940e-7b1d-46df-9f73-b7385093da04","gmt_create":"2026-04-25T14:08:41.0789229+04:00","gmt_modified":"2026-04-25T14:08:41.0789229+04:00"},{"id":33972,"source_id":"0ca20526-783d-4cdc-b61b-786546e12adb","target_id":"90242adf-4ea5-4fa2-b54f-98819f5ba9e6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0ca20526-783d-4cdc-b61b-786546e12adb -\u003e 90242adf-4ea5-4fa2-b54f-98819f5ba9e6","gmt_create":"2026-04-25T14:08:41.0789229+04:00","gmt_modified":"2026-04-25T14:08:41.0789229+04:00"},{"id":33973,"source_id":"40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","target_id":"7feaa538-2f0b-40ec-ab7b-54b3514e1a5c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788 -\u003e 7feaa538-2f0b-40ec-ab7b-54b3514e1a5c","gmt_create":"2026-04-25T14:08:41.0794644+04:00","gmt_modified":"2026-04-25T14:08:41.0794644+04:00"},{"id":33974,"source_id":"40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","target_id":"3ffa5713-7b24-4aa3-b04f-aec212dfb4d4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788 -\u003e 3ffa5713-7b24-4aa3-b04f-aec212dfb4d4","gmt_create":"2026-04-25T14:08:41.0800196+04:00","gmt_modified":"2026-04-25T14:08:41.0800196+04:00"},{"id":33975,"source_id":"40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","target_id":"25deaf50-1ff0-47af-b2c9-2345d8aaefde","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788 -\u003e 25deaf50-1ff0-47af-b2c9-2345d8aaefde","gmt_create":"2026-04-25T14:08:41.0946699+04:00","gmt_modified":"2026-04-25T14:08:41.0946699+04:00"},{"id":33976,"source_id":"40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","target_id":"33399f0d-4990-4e2d-978c-2dbc7791825d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788 -\u003e 33399f0d-4990-4e2d-978c-2dbc7791825d","gmt_create":"2026-04-25T14:08:41.095733+04:00","gmt_modified":"2026-04-25T14:08:41.095733+04:00"},{"id":33977,"source_id":"0c429d8b-ef57-4aff-8e3e-e646a87dd905","target_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0c429d8b-ef57-4aff-8e3e-e646a87dd905 -\u003e 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","gmt_create":"2026-04-25T14:08:41.096262+04:00","gmt_modified":"2026-04-25T14:08:41.096262+04:00"},{"id":33978,"source_id":"0c429d8b-ef57-4aff-8e3e-e646a87dd905","target_id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0c429d8b-ef57-4aff-8e3e-e646a87dd905 -\u003e 996d2018-0dbb-4684-bc25-52d52ebc5de0","gmt_create":"2026-04-25T14:08:41.096262+04:00","gmt_modified":"2026-04-25T14:08:41.096262+04:00"},{"id":33979,"source_id":"0c429d8b-ef57-4aff-8e3e-e646a87dd905","target_id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0c429d8b-ef57-4aff-8e3e-e646a87dd905 -\u003e b5d32b4b-9c44-4430-8a26-1acb580195f2","gmt_create":"2026-04-25T14:08:41.0968722+04:00","gmt_modified":"2026-04-25T14:08:41.0968722+04:00"},{"id":33980,"source_id":"0c429d8b-ef57-4aff-8e3e-e646a87dd905","target_id":"ab105d6f-038c-45e8-86c3-5fed9d10c58c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0c429d8b-ef57-4aff-8e3e-e646a87dd905 -\u003e ab105d6f-038c-45e8-86c3-5fed9d10c58c","gmt_create":"2026-04-25T14:08:41.0968722+04:00","gmt_modified":"2026-04-25T14:08:41.0968722+04:00"},{"id":33981,"source_id":"0e1ca92b-025a-4f58-9fee-4159c5ef1725","target_id":"121dc337-a951-4314-9d51-1ef5996f6430","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0e1ca92b-025a-4f58-9fee-4159c5ef1725 -\u003e 121dc337-a951-4314-9d51-1ef5996f6430","gmt_create":"2026-04-25T14:08:41.0973807+04:00","gmt_modified":"2026-04-25T14:08:41.0973807+04:00"},{"id":33982,"source_id":"0e1ca92b-025a-4f58-9fee-4159c5ef1725","target_id":"9f4a5616-6cba-4ce7-a8ce-4d21a7275f53","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0e1ca92b-025a-4f58-9fee-4159c5ef1725 -\u003e 9f4a5616-6cba-4ce7-a8ce-4d21a7275f53","gmt_create":"2026-04-25T14:08:41.0973807+04:00","gmt_modified":"2026-04-25T14:08:41.0973807+04:00"},{"id":33983,"source_id":"0e1ca92b-025a-4f58-9fee-4159c5ef1725","target_id":"87617dd4-e63d-4aa0-b89d-320bd64d980f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0e1ca92b-025a-4f58-9fee-4159c5ef1725 -\u003e 87617dd4-e63d-4aa0-b89d-320bd64d980f","gmt_create":"2026-04-25T14:08:41.0979122+04:00","gmt_modified":"2026-04-25T14:08:41.0979122+04:00"},{"id":33984,"source_id":"0e1ca92b-025a-4f58-9fee-4159c5ef1725","target_id":"a982d327-f748-48b6-9544-0f3533c4fd29","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0e1ca92b-025a-4f58-9fee-4159c5ef1725 -\u003e a982d327-f748-48b6-9544-0f3533c4fd29","gmt_create":"2026-04-25T14:08:41.0979122+04:00","gmt_modified":"2026-04-25T14:08:41.0979122+04:00"},{"id":33985,"source_id":"c7ea60a4-9845-44fb-b325-c1057aded33b","target_id":"fe6e03bc-c326-4838-bb8d-72e002683a8e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c7ea60a4-9845-44fb-b325-c1057aded33b -\u003e fe6e03bc-c326-4838-bb8d-72e002683a8e","gmt_create":"2026-04-25T14:08:41.0984437+04:00","gmt_modified":"2026-04-25T14:08:41.0984437+04:00"},{"id":33986,"source_id":"c7ea60a4-9845-44fb-b325-c1057aded33b","target_id":"dffbad88-8fb0-4606-97ea-a780e955b98d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c7ea60a4-9845-44fb-b325-c1057aded33b -\u003e dffbad88-8fb0-4606-97ea-a780e955b98d","gmt_create":"2026-04-25T14:08:41.0984437+04:00","gmt_modified":"2026-04-25T14:08:41.0984437+04:00"},{"id":33987,"source_id":"c7ea60a4-9845-44fb-b325-c1057aded33b","target_id":"206ddf0f-4d9f-4728-a5ea-acd30f64a982","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c7ea60a4-9845-44fb-b325-c1057aded33b -\u003e 206ddf0f-4d9f-4728-a5ea-acd30f64a982","gmt_create":"2026-04-25T14:08:41.0995163+04:00","gmt_modified":"2026-04-25T14:08:41.0995163+04:00"},{"id":33988,"source_id":"c7ea60a4-9845-44fb-b325-c1057aded33b","target_id":"f4bafab1-1dbb-4445-926e-6c0dacd017a4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c7ea60a4-9845-44fb-b325-c1057aded33b -\u003e f4bafab1-1dbb-4445-926e-6c0dacd017a4","gmt_create":"2026-04-25T14:08:41.1000502+04:00","gmt_modified":"2026-04-25T14:08:41.1000502+04:00"},{"id":33989,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"7982fa68-7c35-4927-bb87-7e69bd22a370","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e 7982fa68-7c35-4927-bb87-7e69bd22a370","gmt_create":"2026-04-25T14:08:41.1005811+04:00","gmt_modified":"2026-04-25T14:08:41.1005811+04:00"},{"id":33990,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"dd61e4cf-3045-46a9-990e-8d6bfef728d7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e dd61e4cf-3045-46a9-990e-8d6bfef728d7","gmt_create":"2026-04-25T14:08:41.1005811+04:00","gmt_modified":"2026-04-25T14:08:41.1005811+04:00"},{"id":33991,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"e10f3fcf-758a-4656-87ad-42105272ceba","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e e10f3fcf-758a-4656-87ad-42105272ceba","gmt_create":"2026-04-25T14:08:41.1005811+04:00","gmt_modified":"2026-04-25T14:08:41.1005811+04:00"},{"id":33992,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"4f703692-fec3-49c8-9adc-dcf735acb5d9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e 4f703692-fec3-49c8-9adc-dcf735acb5d9","gmt_create":"2026-04-25T14:08:41.1011351+04:00","gmt_modified":"2026-04-25T14:08:41.1011351+04:00"},{"id":33993,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"57a8f8d4-bb87-422f-92dd-ed31519c3b71","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e 57a8f8d4-bb87-422f-92dd-ed31519c3b71","gmt_create":"2026-04-25T14:08:41.1016583+04:00","gmt_modified":"2026-04-25T14:08:41.1016583+04:00"},{"id":33994,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"e21a91e9-1e50-4ce8-a872-3994748819e8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e e21a91e9-1e50-4ce8-a872-3994748819e8","gmt_create":"2026-04-25T14:08:41.1016583+04:00","gmt_modified":"2026-04-25T14:08:41.1016583+04:00"},{"id":33995,"source_id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","target_id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d -\u003e 0d59d4d3-17cd-4a2b-8226-677e278202ed","gmt_create":"2026-04-25T14:08:41.1021934+04:00","gmt_modified":"2026-04-25T14:08:41.1021934+04:00"},{"id":33996,"source_id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","target_id":"11caab94-5133-49a7-8e19-42fa7ac4fee0","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 996d2018-0dbb-4684-bc25-52d52ebc5de0 -\u003e 11caab94-5133-49a7-8e19-42fa7ac4fee0","gmt_create":"2026-04-25T14:08:41.1027221+04:00","gmt_modified":"2026-04-25T14:08:41.1027221+04:00"},{"id":33997,"source_id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","target_id":"f3b53f06-6fe4-4bf8-a694-217ed019cebd","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 996d2018-0dbb-4684-bc25-52d52ebc5de0 -\u003e f3b53f06-6fe4-4bf8-a694-217ed019cebd","gmt_create":"2026-04-25T14:08:41.1027221+04:00","gmt_modified":"2026-04-25T14:08:41.1027221+04:00"},{"id":33998,"source_id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","target_id":"5292978e-71f3-4891-9ddd-0fe9d2f7b677","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 996d2018-0dbb-4684-bc25-52d52ebc5de0 -\u003e 5292978e-71f3-4891-9ddd-0fe9d2f7b677","gmt_create":"2026-04-25T14:08:41.1032474+04:00","gmt_modified":"2026-04-25T14:08:41.1032474+04:00"},{"id":33999,"source_id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","target_id":"89967357-aa15-4c13-8cc0-8dbd248e2646","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 996d2018-0dbb-4684-bc25-52d52ebc5de0 -\u003e 89967357-aa15-4c13-8cc0-8dbd248e2646","gmt_create":"2026-04-25T14:08:41.1032474+04:00","gmt_modified":"2026-04-25T14:08:41.1032474+04:00"},{"id":34000,"source_id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","target_id":"d83b23a0-c059-4600-a442-5c5ae5be7df2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 996d2018-0dbb-4684-bc25-52d52ebc5de0 -\u003e d83b23a0-c059-4600-a442-5c5ae5be7df2","gmt_create":"2026-04-25T14:08:41.1037762+04:00","gmt_modified":"2026-04-25T14:08:41.1037762+04:00"},{"id":34001,"source_id":"b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","target_id":"e3bc97df-f52d-438e-adf4-e73bdcde9b51","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b9ee2728-cd4e-4181-b1ee-37bdbfde5b60 -\u003e e3bc97df-f52d-438e-adf4-e73bdcde9b51","gmt_create":"2026-04-25T14:08:41.1048399+04:00","gmt_modified":"2026-04-25T14:08:41.1048399+04:00"},{"id":34002,"source_id":"b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","target_id":"defd730f-0883-4cfb-bfea-44905725aaa0","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b9ee2728-cd4e-4181-b1ee-37bdbfde5b60 -\u003e defd730f-0883-4cfb-bfea-44905725aaa0","gmt_create":"2026-04-25T14:08:41.1053701+04:00","gmt_modified":"2026-04-25T14:08:41.1053701+04:00"},{"id":34003,"source_id":"b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","target_id":"e089b7ca-941e-4dba-85d7-319196ca8942","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b9ee2728-cd4e-4181-b1ee-37bdbfde5b60 -\u003e e089b7ca-941e-4dba-85d7-319196ca8942","gmt_create":"2026-04-25T14:08:41.1059981+04:00","gmt_modified":"2026-04-25T14:08:41.1059981+04:00"},{"id":34004,"source_id":"b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","target_id":"6f603f88-ce60-471f-814e-9bf61e725845","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b9ee2728-cd4e-4181-b1ee-37bdbfde5b60 -\u003e 6f603f88-ce60-471f-814e-9bf61e725845","gmt_create":"2026-04-25T14:08:41.1065059+04:00","gmt_modified":"2026-04-25T14:08:41.1065059+04:00"},{"id":34005,"source_id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","target_id":"c60eb041-d6d1-4927-bea0-3b069570a489","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b93456c3-8861-44ef-88ee-e193ff1fc21b -\u003e c60eb041-d6d1-4927-bea0-3b069570a489","gmt_create":"2026-04-25T14:08:41.1070336+04:00","gmt_modified":"2026-04-25T14:08:41.1070336+04:00"},{"id":34006,"source_id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","target_id":"b5cde6f6-b7ed-4821-8bfc-d772b473cfc4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b93456c3-8861-44ef-88ee-e193ff1fc21b -\u003e b5cde6f6-b7ed-4821-8bfc-d772b473cfc4","gmt_create":"2026-04-25T14:08:41.1080841+04:00","gmt_modified":"2026-04-25T14:08:41.1080841+04:00"},{"id":34007,"source_id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","target_id":"862ef4b1-7457-437a-b82d-e220c6d38e69","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b93456c3-8861-44ef-88ee-e193ff1fc21b -\u003e 862ef4b1-7457-437a-b82d-e220c6d38e69","gmt_create":"2026-04-25T14:08:41.1080841+04:00","gmt_modified":"2026-04-25T14:08:41.1080841+04:00"},{"id":34008,"source_id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","target_id":"94ed475e-3385-49db-9ddf-9f9572b77e19","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b93456c3-8861-44ef-88ee-e193ff1fc21b -\u003e 94ed475e-3385-49db-9ddf-9f9572b77e19","gmt_create":"2026-04-25T14:08:41.1080841+04:00","gmt_modified":"2026-04-25T14:08:41.1080841+04:00"},{"id":34009,"source_id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","target_id":"818b3d34-904d-43b6-b7ea-57e6af4aeb6e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b93456c3-8861-44ef-88ee-e193ff1fc21b -\u003e 818b3d34-904d-43b6-b7ea-57e6af4aeb6e","gmt_create":"2026-04-25T14:08:41.1086076+04:00","gmt_modified":"2026-04-25T14:08:41.1086076+04:00"},{"id":34010,"source_id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","target_id":"53c7bdc7-50df-44fd-8ebf-982ec4ae6ee3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b5d32b4b-9c44-4430-8a26-1acb580195f2 -\u003e 53c7bdc7-50df-44fd-8ebf-982ec4ae6ee3","gmt_create":"2026-04-25T14:08:41.1091267+04:00","gmt_modified":"2026-04-25T14:08:41.1091267+04:00"},{"id":34011,"source_id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","target_id":"2deffa19-44be-4603-b6ca-57169300ae40","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b5d32b4b-9c44-4430-8a26-1acb580195f2 -\u003e 2deffa19-44be-4603-b6ca-57169300ae40","gmt_create":"2026-04-25T14:08:41.1101668+04:00","gmt_modified":"2026-04-25T14:08:41.1101668+04:00"},{"id":34012,"source_id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","target_id":"0d8f57cb-4d40-47b4-b3b8-d22acbb624a3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b5d32b4b-9c44-4430-8a26-1acb580195f2 -\u003e 0d8f57cb-4d40-47b4-b3b8-d22acbb624a3","gmt_create":"2026-04-25T14:08:41.1101668+04:00","gmt_modified":"2026-04-25T14:08:41.1101668+04:00"},{"id":34013,"source_id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","target_id":"f34fa712-c880-4892-85d8-00ae3373c21c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b5d32b4b-9c44-4430-8a26-1acb580195f2 -\u003e f34fa712-c880-4892-85d8-00ae3373c21c","gmt_create":"2026-04-25T14:08:41.1106907+04:00","gmt_modified":"2026-04-25T14:08:41.1106907+04:00"},{"id":34014,"source_id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","target_id":"000b7dcf-8451-4fdf-8013-5a6956a49702","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b5d32b4b-9c44-4430-8a26-1acb580195f2 -\u003e 000b7dcf-8451-4fdf-8013-5a6956a49702","gmt_create":"2026-04-25T14:08:41.1106907+04:00","gmt_modified":"2026-04-25T14:08:41.1106907+04:00"},{"id":34015,"source_id":"7982fa68-7c35-4927-bb87-7e69bd22a370","target_id":"04396a79-7975-4223-b7a0-0d7af57b4a90","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7982fa68-7c35-4927-bb87-7e69bd22a370 -\u003e 04396a79-7975-4223-b7a0-0d7af57b4a90","gmt_create":"2026-04-25T14:08:41.111214+04:00","gmt_modified":"2026-04-25T14:08:41.111214+04:00"}],"source_files":[{"id":"fb70b5aeb94bb2dcf55b122df1a7718d","path":"libraries/chain/include/graphene/chain/fork_database.hpp","filename":"fork_database.hpp","gmt_create":"2026-04-25T14:03:59.2307777+04:00","gmt_modified":"2026-04-25T14:03:59.2307777+04:00"},{"id":"66fa326245da38aa1614b28e74aca5fe","path":"libraries/chain/fork_database.cpp","filename":"fork_database.cpp","gmt_create":"2026-04-25T14:03:59.2307777+04:00","gmt_modified":"2026-04-25T14:03:59.2307777+04:00"},{"id":"2c0e459bc9ce83513c9e1465ef2dedf6","path":"libraries/chain/include/graphene/chain/database.hpp","filename":"database.hpp","gmt_create":"2026-04-25T14:03:59.2307777+04:00","gmt_modified":"2026-04-25T14:03:59.2307777+04:00"},{"id":"02dbf249fc8c10dab447eced53151995","path":"libraries/chain/database.cpp","filename":"database.cpp","gmt_create":"2026-04-25T14:03:59.2312949+04:00","gmt_modified":"2026-04-25T14:03:59.2312949+04:00"},{"id":"903f4b4d21958aad03ca3cb60e83791e","path":"libraries/chain/include/graphene/chain/block_log.hpp","filename":"block_log.hpp","gmt_create":"2026-04-25T14:03:59.2312949+04:00","gmt_modified":"2026-04-25T14:03:59.2312949+04:00"},{"id":"88ed2b5e83949ecd30d1f37a87c50f6e","path":"libraries/chain/include/graphene/chain/dlt_block_log.hpp","filename":"dlt_block_log.hpp","gmt_create":"2026-04-25T14:03:59.2312949+04:00","gmt_modified":"2026-04-25T14:03:59.2312949+04:00"},{"id":"03b58611ba9e019370df1d275d0af64e","path":"libraries/chain/dlt_block_log.cpp","filename":"dlt_block_log.cpp","gmt_create":"2026-04-25T14:03:59.2312949+04:00","gmt_modified":"2026-04-25T14:03:59.2312949+04:00"},{"id":"a49bd340a179d1cbdb19ed84c7cf27d1","path":"plugins/p2p/p2p_plugin.cpp","filename":"p2p_plugin.cpp","gmt_create":"2026-04-25T14:03:59.2312949+04:00","gmt_modified":"2026-04-25T14:03:59.2312949+04:00"},{"id":"476cc5ceb8a95f6d18d2c1fbbba90fec","path":"plugins/witness/witness.cpp","filename":"witness.cpp","gmt_create":"2026-04-25T14:03:59.2318105+04:00","gmt_modified":"2026-04-25T14:03:59.2318105+04:00"},{"id":"034fe2e1d06c141a582bfd0c6735aa4b","path":"libraries/protocol/include/graphene/protocol/config.hpp","filename":"config.hpp","gmt_create":"2026-04-25T14:03:59.2318105+04:00","gmt_modified":"2026-04-25T14:03:59.2318105+04:00"},{"id":"e053c9622fa61524116755003ebeb15c","path":"libraries/chain/hardfork.d/12.hf","filename":"12.hf","gmt_create":"2026-04-25T14:03:59.2318105+04:00","gmt_modified":"2026-04-25T14:03:59.2318105+04:00"},{"id":"c3b81f8048c72b4ab59cb02d72200fdd","path":"plugins/snapshot/plugin.cpp","filename":"plugin.cpp","gmt_create":"2026-04-25T14:04:19.3789211+04:00","gmt_modified":"2026-04-25T14:04:19.3789211+04:00"},{"id":"f34af374a10610073b7e51c29f9f5695","path":"plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-25T14:04:19.379428+04:00","gmt_modified":"2026-04-25T14:04:19.379428+04:00"},{"id":"acd25a60972ea8911ec05b8ae4f4887b","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_types.hpp","filename":"snapshot_types.hpp","gmt_create":"2026-04-25T14:04:19.379428+04:00","gmt_modified":"2026-04-25T14:04:19.379428+04:00"},{"id":"f550768bf389b46733cf4123fbc0e4fd","path":"plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp","filename":"snapshot_serializer.hpp","gmt_create":"2026-04-25T14:04:19.379428+04:00","gmt_modified":"2026-04-25T14:04:19.379428+04:00"},{"id":"304418a1e63eb01e6db5cb51359ec4e7","path":"plugins/snapshot/CMakeLists.txt","filename":"CMakeLists.txt","gmt_create":"2026-04-25T14:04:19.379428+04:00","gmt_modified":"2026-04-25T14:04:19.379428+04:00"},{"id":"0f2d1fb78cf4a86691a5760e304898c8","path":"share/vizd/snapshot.json","filename":"snapshot.json","gmt_create":"2026-04-25T14:04:19.379428+04:00","gmt_modified":"2026-04-25T14:04:19.379428+04:00"},{"id":"456108d9aeada4816d32a51b85052876","path":"share/vizd/snapshot-testnet.json","filename":"snapshot-testnet.json","gmt_create":"2026-04-25T14:04:19.3805742+04:00","gmt_modified":"2026-04-25T14:04:19.3805742+04:00"},{"id":"82895ed8f5fc6b434b0e594b1c94098f","path":"documentation/snapshot-plugin.md","filename":"snapshot-plugin.md","gmt_create":"2026-04-25T14:04:19.3805742+04:00","gmt_modified":"2026-04-25T14:04:19.3805742+04:00"},{"id":"6e93df783d566a1cb831543e5287d8a5","path":"plugins/chain/plugin.cpp","filename":"plugin.cpp","gmt_create":"2026-04-25T14:04:19.381078+04:00","gmt_modified":"2026-04-25T14:04:19.381078+04:00"},{"id":"8d3608196aeef15f15996314adcca080","path":"plugins/chain/include/graphene/plugins/chain/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-25T14:04:19.381078+04:00","gmt_modified":"2026-04-25T14:04:19.381078+04:00"},{"id":"e3023fb4d49bffa1eff77d9255e77dd8","path":"thirdparty/fc/src/interprocess/file_mutex.cpp","filename":"file_mutex.cpp","gmt_create":"2026-04-25T14:04:19.3811298+04:00","gmt_modified":"2026-04-25T14:04:19.3811298+04:00"},{"id":"c8f2db27bae624cb0754ff09a0d61570","path":"share/vizd/config/config.ini","filename":"config.ini","gmt_create":"2026-04-25T14:04:19.3811298+04:00","gmt_modified":"2026-04-25T14:04:19.3811298+04:00"},{"id":"7ab596ff5f3d168bcc165af5345769ea","path":"libraries/network/node.cpp","filename":"node.cpp","gmt_create":"2026-04-25T14:04:19.3811298+04:00","gmt_modified":"2026-04-25T14:04:19.3811298+04:00"},{"id":"b7482d6af46ff9d48a2e5a5c830db528","path":"libraries/network/include/graphene/network/node.hpp","filename":"node.hpp","gmt_create":"2026-04-25T14:04:19.3811298+04:00","gmt_modified":"2026-04-25T14:04:19.3811298+04:00"},{"id":"d91c0c67cfc4de5fe0f8c8815c803a5a","path":"thirdparty/fc/src/log/logger_config.cpp","filename":"logger_config.cpp","gmt_create":"2026-04-25T14:04:19.3816341+04:00","gmt_modified":"2026-04-25T14:04:19.3816341+04:00"},{"id":"87ec04c2e8d5cf6298d36f2e9adcb32c","path":"thirdparty/fc/src/log/console_appender.cpp","filename":"console_appender.cpp","gmt_create":"2026-04-25T14:04:19.3816341+04:00","gmt_modified":"2026-04-25T14:04:19.3816341+04:00"},{"id":"0698c4d838bb14dce85a7e626b473ff7","path":"plugins/witness/include/graphene/plugins/witness/witness.hpp","filename":"witness.hpp","gmt_create":"2026-04-25T14:04:31.8027179+04:00","gmt_modified":"2026-04-25T14:04:31.8027179+04:00"},{"id":"c7921a27698fb8be5279964066859dc4","path":"plugins/witness_api/include/graphene/plugins/witness_api/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-25T14:04:31.8032225+04:00","gmt_modified":"2026-04-25T14:04:31.8032225+04:00"},{"id":"c39c62e34751c935ec975cdfab654a3f","path":"plugins/witness_api/plugin.cpp","filename":"plugin.cpp","gmt_create":"2026-04-25T14:04:31.8032225+04:00","gmt_modified":"2026-04-25T14:04:31.8032225+04:00"},{"id":"dab69962a93278eb2f6f640c8d788712","path":"libraries/chain/include/graphene/chain/witness_objects.hpp","filename":"witness_objects.hpp","gmt_create":"2026-04-25T14:04:31.8032225+04:00","gmt_modified":"2026-04-25T14:04:31.8032225+04:00"},{"id":"678bda782f3f79a35c7dd3f4c8c3e018","path":"libraries/chain/include/graphene/chain/chain_objects.hpp","filename":"chain_objects.hpp","gmt_create":"2026-04-25T14:04:31.8037361+04:00","gmt_modified":"2026-04-25T14:04:31.8037361+04:00"},{"id":"6f433f2199d9bb80b243015b8f21ec49","path":"libraries/time/time.hpp","filename":"time.hpp","gmt_create":"2026-04-25T14:04:31.8037361+04:00","gmt_modified":"2026-04-25T14:04:31.8037361+04:00"},{"id":"fd04237f3c66ae03b254bbd76360711c","path":"libraries/time/time.cpp","filename":"time.cpp","gmt_create":"2026-04-25T14:04:31.8042534+04:00","gmt_modified":"2026-04-25T14:04:31.8042534+04:00"},{"id":"b2352c2a941a883a938ab8be56cd85cd","path":"thirdparty/fc/src/network/ntp.cpp","filename":"ntp.cpp","gmt_create":"2026-04-25T14:04:31.8042534+04:00","gmt_modified":"2026-04-25T14:04:31.8042534+04:00"},{"id":"c97da0489451e0d566d8359873f8f53c","path":"programs/vizd/main.cpp","filename":"main.cpp","gmt_create":"2026-04-25T14:04:31.8042534+04:00","gmt_modified":"2026-04-25T14:04:31.8042534+04:00"},{"id":"f0905ba7a9a198fa44a0579125b415ac","path":"share/vizd/config/config_witness.ini","filename":"config_witness.ini","gmt_create":"2026-04-25T14:04:31.8042534+04:00","gmt_modified":"2026-04-25T14:04:31.8042534+04:00"},{"id":"331a4aa7c67d97a76a782eb180cbb96c","path":"thirdparty/chainbase/include/chainbase/chainbase.hpp","filename":"chainbase.hpp","gmt_create":"2026-04-25T14:06:18.7095477+04:00","gmt_modified":"2026-04-25T14:06:18.7095477+04:00"},{"id":"e13cf4bead3e76f941e9d7fea2878285","path":"thirdparty/chainbase/src/chainbase.cpp","filename":"chainbase.cpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"1dae06760d581fc3f3f4d71b6efa88ac","path":"thirdparty/fc/include/fc/shared_ptr.hpp","filename":"shared_ptr.hpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"8f1ff2bff79671d4b9ae63b9071b2787","path":"thirdparty/fc/src/shared_ptr.cpp","filename":"shared_ptr.cpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"ba5300cb3243be4066aa13f1c4775950","path":"thirdparty/fc/include/fc/smart_ref_fwd.hpp","filename":"smart_ref_fwd.hpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"e1a87eb7697f0020e36104351e4cc9b2","path":"thirdparty/fc/include/fc/smart_ref_impl.hpp","filename":"smart_ref_impl.hpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"1afc8ed69b2ebcf3c215e75621795a1d","path":"thirdparty/fc/include/fc/unique_ptr.hpp","filename":"unique_ptr.hpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"cf60d7251f2cf8bf8b93eaecf7aa22a1","path":"thirdparty/fc/include/fc/interprocess/file_mapping.hpp","filename":"file_mapping.hpp","gmt_create":"2026-04-25T14:06:18.7100537+04:00","gmt_modified":"2026-04-25T14:06:18.7100537+04:00"},{"id":"be1b64e4e35f93e8a336ae8302acf2c8","path":"thirdparty/fc/src/interprocess/file_mapping.cpp","filename":"file_mapping.cpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"dfc892082de4b043f6615f43bbe93b54","path":"thirdparty/fc/include/fc/interprocess/mmap_struct.hpp","filename":"mmap_struct.hpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"2cc1e61d03782caa5973bf9da68ebe05","path":"thirdparty/fc/src/interprocess/mmap_struct.cpp","filename":"mmap_struct.cpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"ac88cc22f563abdf7be97e6fb36ca02b","path":"thirdparty/fc/include/fc/container/flat.hpp","filename":"flat.hpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"b3f6a5e7ef51c880cb80577e3fbe7d77","path":"thirdparty/fc/include/fc/thread/thread_specific.hpp","filename":"thread_specific.hpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"fe40d72b6579351b0ae2ef725eddb28d","path":"thirdparty/fc/include/fc/scoped_exit.hpp","filename":"scoped_exit.hpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"a57154ad32a7aeb1cbb873d9e5609c27","path":"thirdparty/fc/include/fc/aligned.hpp","filename":"aligned.hpp","gmt_create":"2026-04-25T14:06:18.7105626+04:00","gmt_modified":"2026-04-25T14:06:18.7105626+04:00"},{"id":"9d3453253995e8388c4821315fa0aa14","path":"libraries/network/include/graphene/network/peer_connection.hpp","filename":"peer_connection.hpp","gmt_create":"2026-04-25T14:08:40.2426036+04:00","gmt_modified":"2026-04-25T14:08:40.2426036+04:00"},{"id":"7940a1efbb00411501c6178af59932a3","path":"libraries/network/peer_connection.cpp","filename":"peer_connection.cpp","gmt_create":"2026-04-25T14:08:40.2426036+04:00","gmt_modified":"2026-04-25T14:08:40.2426036+04:00"},{"id":"a144469f6776ef7c9c8fa34c2e4c7305","path":"libraries/network/include/graphene/network/message_oriented_connection.hpp","filename":"message_oriented_connection.hpp","gmt_create":"2026-04-25T14:08:40.2441092+04:00","gmt_modified":"2026-04-25T14:08:40.2441092+04:00"},{"id":"5b9e2f1c0be9ec9ec4a07e608bcf2953","path":"libraries/network/message_oriented_connection.cpp","filename":"message_oriented_connection.cpp","gmt_create":"2026-04-25T14:08:40.2441092+04:00","gmt_modified":"2026-04-25T14:08:40.2441092+04:00"},{"id":"2cd382024aa3c3641bb0232e8a884804","path":"libraries/network/include/graphene/network/stcp_socket.hpp","filename":"stcp_socket.hpp","gmt_create":"2026-04-25T14:08:40.2441092+04:00","gmt_modified":"2026-04-25T14:08:40.2441092+04:00"},{"id":"15f7fafdde6d1342efcb1d031a3ed373","path":"libraries/network/stcp_socket.cpp","filename":"stcp_socket.cpp","gmt_create":"2026-04-25T14:08:40.2441092+04:00","gmt_modified":"2026-04-25T14:08:40.2441092+04:00"},{"id":"2bbfbcb6829a9d4bd6524d16fb376c3b","path":"libraries/network/include/graphene/network/core_messages.hpp","filename":"core_messages.hpp","gmt_create":"2026-04-25T14:08:40.2441092+04:00","gmt_modified":"2026-04-25T14:08:40.2441092+04:00"},{"id":"a9a2225f71a7ab62f94545ee401cd989","path":"libraries/network/core_messages.cpp","filename":"core_messages.cpp","gmt_create":"2026-04-25T14:08:40.2451172+04:00","gmt_modified":"2026-04-25T14:08:40.2451172+04:00"},{"id":"e7935c1ea13856e803e38031e7c8b7fc","path":"libraries/network/include/graphene/network/config.hpp","filename":"config.hpp","gmt_create":"2026-04-25T14:08:40.2451172+04:00","gmt_modified":"2026-04-25T14:08:40.2451172+04:00"},{"id":"5a260bfef2b0b67807385beef10081d6","path":"libraries/network/include/graphene/network/peer_database.hpp","filename":"peer_database.hpp","gmt_create":"2026-04-25T14:08:40.2451172+04:00","gmt_modified":"2026-04-25T14:08:40.2451172+04:00"},{"id":"198304be143e9b899367298aa00c63b6","path":"libraries/network/peer_database.cpp","filename":"peer_database.cpp","gmt_create":"2026-04-25T14:08:40.2451172+04:00","gmt_modified":"2026-04-25T14:08:40.2451172+04:00"},{"id":"26f3c820ac62766be33bd6ac481a31fc","path":"libraries/network/include/graphene/network/message.hpp","filename":"message.hpp","gmt_create":"2026-04-25T14:08:40.2451172+04:00","gmt_modified":"2026-04-25T14:08:40.2451172+04:00"},{"id":"9a0cb62287914164e62afa4cbd0ff65e","path":"libraries/network/include/graphene/network/exceptions.hpp","filename":"exceptions.hpp","gmt_create":"2026-04-25T14:08:40.2451172+04:00","gmt_modified":"2026-04-25T14:08:40.2451172+04:00"},{"id":"af710aa1c667707f524bb6fbd62ecb1e","path":"libraries/chain/include/graphene/chain/database_exceptions.hpp","filename":"database_exceptions.hpp","gmt_create":"2026-04-25T14:08:40.2461213+04:00","gmt_modified":"2026-04-25T14:08:40.2461213+04:00"},{"id":"409f6ade4ddf9121d618f872bdacafab","path":"plugins/snapshot/plugin.hpp","filename":"plugin.hpp","gmt_create":"2026-04-25T14:08:40.2461213+04:00","gmt_modified":"2026-04-25T14:08:40.2461213+04:00"}],"wiki_catalogs":[{"id":"0114764d-2c87-45bc-adac-575b234c8df6","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Project Overview","description":"overview","prompt":"Create comprehensive content for the VIZ CPP Node project overview section. Explain the project's purpose as a Graphene-based blockchain implementation with Fair-DPOS consensus algorithm, its architecture as a full consensus node for the VIZ World platform, and its relationship to the broader blockchain ecosystem. Document the core value proposition, target audience (node operators, application developers, wallet developers), and key differentiators from other blockchain implementations. Include both conceptual overviews for beginners new to blockchain technology and technical highlights for experienced developers. Use terminology consistent with the VIZ codebase. Provide practical examples demonstrating common use cases such as running a full node, developing applications, and operating witness nodes. Document the project's position in the Graphene blockchain family and its unique features like Fair-DPOS consensus and social network integration.","progress_status":"completed","dependent_files":"README.md,programs/vizd/main.cpp,libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:31:56+04:00","raw_data":"WikiEncrypted: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"},{"id":"3bbe0662-99a3-4020-b6a2-a55460236e09","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"System Overview","description":"system-overview","prompt":"Create comprehensive content for the VIZ CPP Node system overview section. Explain the overall architecture showing how the main vizd process orchestrates all components including the plugin system, core libraries, and external dependencies. Document the modular design that allows for flexible feature addition and removal through plugins. Describe the relationship between the application framework (appbase), the blockchain core (chain library), protocol definitions (protocol library), networking (network library), and wallet functionality (wallet library). Include system boundaries showing how the node interacts with peers, handles API requests, and manages persistent state. Provide high-level component diagrams illustrating the data flow from JSON-RPC requests through plugins to database operations, and explain the observer pattern used for event-driven architecture. Address the separation of concerns between different library layers and how they work together to form a complete blockchain node.","parent_id":"75556906-e1ce-4720-984a-3094f741c8aa","progress_status":"completed","dependent_files":"programs/vizd/main.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/protocol/include/graphene/protocol/operations.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:39:03+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"adb37512-8234-4100-b362-3eef9ab640b5","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Build System","description":"build-system","prompt":"Create comprehensive build system documentation for VIZ CPP Node. Document the CMake-based build configuration including cross-platform compilation, dependency management, and build targets. Explain the build helper tools including configure_build.py, cat_parts.py, and newplugin.py. Cover Docker-based development and production builds with detailed instructions for different environments. Document build options, compiler flags, and optimization settings. Include practical examples of common build scenarios such as development builds, release builds, and cross-compilation. Address troubleshooting common build issues, dependency conflicts, and platform-specific compilation problems. Explain the relationship between build configuration and runtime performance, making it accessible to developers while providing sufficient technical depth for advanced build customization.","parent_id":"423ed32e-852d-4f0a-a4e8-aaebd7c97483","progress_status":"completed","dependent_files":"install-deps-linux.sh,build-linux.sh,build-mac.sh,build-mingw.bat,build-msvc.bat,CMakeLists.txt,programs/build_helpers/,share/vizd/docker/,.github/workflows/","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-04-21T16:26:53+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"535fca00-c31a-40bb-8daf-6d8477df073d","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Node Configuration","description":"node-configuration","prompt":"Create comprehensive node configuration documentation for VIZ CPP Node. Document the complete configuration file structure including all available parameters, their purposes, default values, and acceptable ranges. Explain different node types (full node, witness node, low-memory node, testnet node) and their specific configuration requirements. Cover essential settings such as database location, plugin activation, network parameters, and performance tuning options. Document authentication settings, API access controls, and security configurations. Include practical examples of common configuration scenarios for different deployment environments. Address parameter validation, configuration file syntax, and troubleshooting invalid configurations. Provide guidance on configuration file organization, backup strategies, and version management.","parent_id":"a3fb1343-15dc-4495-a972-0870c4a88b85","progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_testnet.ini,share/vizd/config/config_witness.ini,share/vizd/config/config_mongo.ini,share/vizd/config/config_debug.ini","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-03-03T07:40:51+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"663a33c7-3329-490a-86b9-bcdf15178fba","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Node Deployment","description":"node-deployment","prompt":"Create comprehensive node deployment documentation for VIZ CPP Node. Document production deployment strategies including hardware requirements, system prerequisites, and installation procedures. Cover different node types including full nodes, witness nodes, and seed nodes with their specific configuration requirements and operational procedures. Explain the node startup process, configuration file management, and service integration. Include step-by-step installation guides for different operating systems, dependency management, and build optimization. Document performance tuning parameters, resource allocation recommendations, and capacity planning. Address security hardening procedures, firewall configuration, and access control setup. Provide troubleshooting guidance for common deployment issues, startup failures, and configuration errors.","parent_id":"45075f91-f7a8-4457-9ce7-afd81aa84742","progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/vizd.sh,programs/vizd/main.cpp,documentation/building.md","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-03-03T07:40:48+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"a6ef080d-9495-476f-8c15-110e53037d64","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Plugin Lifecycle and Registration","description":"plugin-lifecycle-registration","prompt":"Create comprehensive content for plugin lifecycle and registration mechanisms. Document the complete plugin lifecycle from initialization to shutdown, including the plugin_initialize, plugin_startup, and plugin_shutdown phases. Explain how plugins register themselves with the appbase framework and the role of APPBASE_PLUGIN_REQUIRES macro in dependency management. Detail the plugin registration process in main.cpp and how the application framework manages plugin loading order. Include concrete examples of plugin initialization sequences and dependency resolution. Document the plugin naming conventions, static name() method implementation, and how plugins declare their requirements. Address plugin startup timing, error handling during initialization, and graceful shutdown procedures. Provide practical examples of plugin registration patterns and common pitfalls to avoid.","parent_id":"d05f2002-2293-4fc3-abb8-2d31fb7c6bf4","progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,plugins/snapshot/plugin.cpp,programs/vizd/main.cpp,libraries/utilities/include/graphene/utilities/git_revision.hpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-04-20T10:26:06+04:00","raw_data":"WikiEncrypted:FgT6N5UmoqQ/n0GhU4kWL0J+Fybs3wSrBZ8i488xBvorI6lbBGjTYhS7bWXZzNetCm3S8JjcFgc9memzvSTO1YQPmT49Uldgjtl2WhFXjcF3WJX4hC0AP6UDYCYSCpEQRv9FPzViWgqq1DAOKLH+wBLA4uPKXHhu9yy+0mxa4aF6S4miAF3erjorTWHLA6eZthaZDF/KtxoS72PiMdX7my+r/UgxX2mhhzK4HFwOQsfLffXQD0QEh+3jSSXo7zksFg4c4HtLPHVniAghLUc4FaiLk4QFZXlsjRxPv9BGuHwpHdYEuf1paaNdIBxZnU6TwCa2zP+eoetFX/hv9cLPE3l34RJBTe3wc1a7XFlDFibG7B0J+cLTdLAoBbZhRWjZtE1jZ38MG19LiU8RC+/BMnG3Kez75HzaUyTdmrrQqVdzv7kWmLDr2ThjIUaJ8DQkZy04RHRESRIBA1lgvJHZvMT8NcvJs61mGdbbjPgm//7a9yxi7My3yX1iwGRqn3a/Lqro9m0YGAhxPL3igGWL4/yIH8gO/GppVOau8yklmHGVQu9sgROoFomlNcZjIUhjPnw/uM0DWMPEnpH8Oc+fqNXXVp8wpQDodiD65535YGFCx/7KABM6loSnvsPbRWYb9pV0KYB0b14G8jaRpOJbgJCApsYhcqTu5sydWErz6v3gUjTszz6cmK/3bvjy0SMoAl7MNDMYebUs8cZiR+8GzHYcHPs9ryxF5ofTQio5BxnxbKH1X7JB00SJVWogJHRL1KkShj5Asor6n/UugH/W+tclRJ/mK9WdtxaV1ifY61reOTJUCmD/eHgvDixPIrC6Z791SNiFzhWLqSJBwOIDrud9LLoSUYWRST13iunjJcEYVzRGkVxR2OU6rsDDFeb+ECIRi4WVM5Kte43i303/Po3fmPSmSdts5p3TU75MteEn71R5ONoH1vNowPjsyuyqGtNssow9U0prKW0nE5FZbXXi3IXUkFWtWroI0kR2htD6Ef70I+bG1C8j+UlcvM9Poffck/PbEruGH+aavXpaxMRcayIT6SGBEy4u+Iu6nughmmP9wKpSzEpStW6ZqgNOnYuOBqJihAHjutfprPUcZjdoifyNNnKRNxBO8EPMBsrIPEysvB7ubU5r0Gb29skV8Wb9LVqm5nGLBC24s8G5bmDfHCqyVxbx+b8AJOVVhAu8dKQK2Pt92R+PXA+VoTQEc0oaxgvsNPJjBx0W/dItwgUB+nItoqSytXeiucfQhINaKD6Ws/KvGKk3mRaS8i6KOJB0V0RoWpwWP0ZjUCGYZXr1i65I9ni82/QtacyhPKeR/dV508moShmcw2S3eD8BqmGKSnPAF7tH8RzIPcvuOFYLH9e7FNcoKV2NhKeNUgZdvVwTcf1NTZTx2ri19AUCa4vIawJUyhQ3/r7UxLrvqBxK8daQ+thKHrXe1gN1K0XAMQoNWSPy+srNGqhpD427EDMl03T99zDRZ8LbeufN2/KsYohFnR/rMKAsI/E1L0YR/5ZNtEKxqNbr68ADWZkE2Sup6GtbMqDmmgYV5G6HXTQsV5ZXSRJnextrT5JNJEoLW+HfSOESLc4syDu5fdoTXi7i772CuEzigL1YKaV1TzR4fpoHzc/CZh6rVObeBEVxqkaLniq228ZuM2e6omqfcHId8BjTE7hi5cBczbOJbVaUEErzMdIvr0EfHByOxwctdQ7JGbMQnxGnYwv2IqQgD1roNER2MFVMmabYAxqqlVGJvH4bRS4uAIK9R6j9O15/bsjfnsWIutsiUJq7WtMZ","layer_level":2},{"id":"42ccdc59-7a1d-423f-b3ce-771b880e1451","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Hardfork Management","description":"hardfork-management","prompt":"Create comprehensive hardfork management documentation for VIZ CPP Node. Document the hardfork system architecture including version management, scheduled upgrades, and backward compatibility handling. Explain the hardfork directory structure and how hardfork files are processed during node startup. Detail the migration procedures for upgrading from older versions, including data schema changes and state transitions. Cover the hardfork evaluation system and how different operation types are handled across hardfork boundaries. Document the rollback mechanisms and recovery procedures for failed upgrades. Include practical examples of implementing custom hardfork logic, adding new operation types, and modifying existing behavior. Address common hardfork scenarios such as protocol changes, bug fixes, and feature additions. Provide troubleshooting guidance for hardfork-related issues and validation procedures for ensuring successful upgrades.","parent_id":"c7f3fbd6-170d-4ddb-b57f-0bb2cc86fbdb","progress_status":"completed","dependent_files":"libraries/chain/hardfork.d/0-preamble.hf,libraries/chain/database.cpp,libraries/chain/hardfork.d/12.hf,libraries/protocol/include/graphene/protocol/config.hpp,libraries/chain/hardfork.d/,libraries/chain/chain_evaluator.cpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-04-20T11:24:22+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"13ca21e2-bc83-4de1-be5f-6204258b4c3b","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Transaction Processing Pipeline","description":"transaction-processing","prompt":"Create comprehensive documentation for the transaction processing pipeline in the VIZ node. Explain the complete flow from transaction reception through validation, operation processing, authority verification, and state application. Document the transaction validation stages including syntax checking, signature verification, and operation validation. Detail the evaluator registry mechanism and how different operation types are processed through their respective evaluators. Include the transaction object lifecycle, from creation to final application. Explain error handling throughout the pipeline and rollback mechanisms. Document performance optimizations like batch processing and caching strategies used during transaction validation.","parent_id":"a276ebcb-3239-4375-acd4-369aef9806ce","progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/protocol/transaction.cpp,libraries/chain/transaction_object.cpp,libraries/chain/chain_evaluator.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-03T07:53:30+04:00","raw_data":"WikiEncrypted:pze/wTPA8hT9dADtWGlHVecGIju168riPHUw4TY8/AOhja4aeOzUlmfgdY/KTiokGkE0pwevgTXyU4//H92NNxIZ90VqY2mbD0yvEYoazibaKq9O1InwoMVUng4EkSsQB9oHT43atze2e4KWPpApnOpuXM/kNSqRnBSucHXjsMd+Tjj5PradoQvpJLU8cQA/Z7rNIJC0cpQOT83jnvDj0V6NqUee6Tv82FRi8ClWzP6EZWLJOwLqfzlzlavNBvEzOVrawfC21Hgjv0XI+S8iljUPDEK+/k4kPqQwBtNAZVNvSxdOMdQQd4H8dHYj42tsWQ4M2CHxt/jWDy4RZ7gusItaB76xjlAkrZESkdwZBkd//EMqxuKfE/A4/LQdGHNOTm+uaj6m8t76OHM9h4VR9V4eueF6t3bMM8jowIFMUsjHBlU+dkSn/NSR6LigMB4jIbNt61XMmwk1mFvwxws6PxL8XqLxS6WdTzKfDE4/IBBD7TZqimc2cA4z2+g/OZ39ZEQlIpiv8/TzTdAWlsxWrctDiJB94u/AwbbOehhEdFH2nS66e1wKUfknITsWMgsuyzC0CfWRd/fwrEG58bYEi74d+wo1sJlOuZEBaSfMiOosE7wvOH3oQ8Y2UgwJ0vjzgZUiE9G0ScjOOZWniMF0bqPEe06ztnJIGeefrHJOWjdIfN1dkS9ufS455XmgRlNSE/NqG4hDmxF9R9NWjkexlSw2BcqQfD6budkT9gXrT+DmvhvTAZNbhg3rbqVluS4bL3ruC2r+ajzWHoYzImenOWqpDXtY3PDdWzlF25dvXKPOiFCgnpIhx4/aEBmvfoFugNyi2rgkZ/GxUvgLFwYxUWsrXzOW3ghrF82KYZiOzclpGc9/z4O3aOx2rsywhd3+bwSLqnWiTUPCcJaACADsGSIk2O+4SSb/+dGgJEi0+9f+XVUkdntAmb/GY0r1Pj9Aggwk6gllw1jhIAFrhSeeN9YQkHHngVWQDTIqpEZrLiK8l9KRp0xOidl2MSvQPSjBk4h2qqynktmU6u6INK0QjvFuStt1EBvl9TX3ObV9TqdxQyTeD4wyygPZWQEip1CHg04iAihm5uA9siBylj/kLKn9MnuWugqJDyQmvMVc7PXW2PjXtPzhW7/Jb/SHMJoTD4Gr9dGOx46lLwizMVmH+Wdgu7ThE5TRiLm3zbM6Vva42JyyhlKovJOwOzbdE7oL4PEURcpIb7CwrNkCvuOclVRFhgGE6YTkuBTdHLlFpLoInX5qE2OW9+ydHnq5m3kxjp0jqHR1FEndp/SOAgjK8j5GUBfktjso1ePTCXqGifq82fcPCltrzG7k2QOtOSECTUa+pOeVnhutaJ3CR//hRALu3mrquQnFk0tLrX117kwCT9zFNRljPROygJRvN4BCTzDJgnqakMlqteAIkiRD3Fb0oHccw3FqJPY5lOQvvyGOgQeuBimDKH34MRTRl3pkYQbHOqjUqUi035eAfFu0Rvt/1KkKcP/6anglXytX8/wCssuFHVX8WLr/XarAK8wkI0F8fuBcwaifM6C4xWQNCD3dZMCNDxfik3SCqkRtAzmd1xC3HA1SQ5I/qlbrtzwC","layer_level":2},{"id":"20d0240b-1238-45fc-a385-f596bebc8a21","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Chain Library","description":"chain-library","prompt":"Create comprehensive content for the Chain Library, which serves as the core blockchain state management system. Document the database.hpp/cpp implementation that handles blockchain state persistence, block validation, and fork resolution. Explain the chain_objects.hpp and chain_object_types.hpp that define the complete blockchain data model including account objects, transaction objects, witness objects, and committee objects. Detail the fork_database.hpp implementation for handling blockchain forks and maintaining consensus. Cover the block_log.hpp functionality for efficient block storage and retrieval. Include the database API methods for querying blockchain state, managing object lifecycles, and handling state transitions. Document the evaluator system for operation processing and the observer pattern implementation for event-driven architecture. Provide examples of common database operations, state queries, and performance optimization techniques.","parent_id":"2e9dab7f-8a98-493b-9d28-5efc04641da7","progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,plugins/chain/include/graphene/plugins/chain/plugin.hpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/database.cpp,libraries/chain/include/graphene/chain/chain_objects.hpp,libraries/chain/include/graphene/chain/chain_object_types.hpp,libraries/chain/include/graphene/chain/fork_database.hpp,libraries/chain/include/graphene/chain/block_log.hpp,libraries/chain/include/graphene/chain/transaction_object.hpp,libraries/chain/include/graphene/chain/account_object.hpp,libraries/chain/include/graphene/chain/witness_objects.hpp,libraries/chain/include/graphene/chain/committee_objects.hpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-04-23T11:18:36+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"c6c73cf8-a371-43e8-88b5-96478658761c","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"CMake Configuration","description":"cmake-configuration","prompt":"Create comprehensive CMake configuration documentation for VIZ CPP Node. Document the primary CMakeLists.txt structure including project setup, compiler requirements (GCC 4.8+, Clang 3.3+), and platform-specific configurations for Windows, macOS, and Linux. Explain build options including BUILD_TESTNET, LOW_MEMORY_NODE, CHAINBASE_CHECK_LOCKING, and ENABLE_MONGO_PLUGIN with their effects on compilation flags and feature availability. Detail the Boost library configuration with required components and static/dynamic linking options. Document compiler flags for different platforms, optimization settings, and debug/release configurations. Include practical examples of common CMake invocations for development, testing, and production builds. Address troubleshooting build configuration issues, dependency resolution problems, and platform-specific compilation challenges.","parent_id":"adb37512-8234-4100-b362-3eef9ab640b5","progress_status":"completed","dependent_files":"CMakeLists.txt,programs/build_helpers/configure_build.py,programs/build_helpers/CMakeLists.txt","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-03-03T07:53:46+04:00","raw_data":"WikiEncrypted:g3OHqDqjdBWAhmAZ37hW4JJS2u8qzwOVBZXve9aVGP6gazow1Wn8Wd0+UNTa//LywYD6BGd6YGJkamwOkpXAoi0OlYTJa1FWkUUdxN1EH33gTvgfxPrMV7qyTVAROvgnOaS+tl2HssNZt7914i9BaqorW50sTZye5RfdS89LYex/7mydM08IxLGVg4gJKjYPQuSdcpIS1hg+PsDlN9X/Ug8WYWzJ+yxiG9mx1LcaQ+EI6rrhmGEdPeGU6Qw9fk7ruPSqXVu9l9r4mKjSvUhBVKVkT1jFCBng1YqT9JGF0Ab6sCFyIsYqqszQOLVi+oQb1sqQjqb3zoWeB3SFa1Lms0I815Os4GqTE5eta8dnR9ObaTP2AARVEVUdZ6XTwAhUmyuVXzTyZN1URmGpLwWgMrDc7yhhGMV7769Lp1+4GlGgsYH3BI4ib6bfIlNusoofQp42/eD+SyU89DesRdReUag/QKOjfpsM4gI5MmmTVf7/VR5anxsQqwRyee+KZc9tNkW8u1ACyQ4rBstC3cBbHCmXMO3IBU0SyeskR3omlFced0DsX1iB9QuorjlKPKOnDPGIduPawhEA9p2q/FGQlRvsy69nI4aoEAtK8a1J2btjSCNTptMk8up5/UXig8N3WCwoOHQWylIeW1FS+voCO++HTscJGW8SiGRJ4Hy4okzLnJYhSbr2PCfyU0Ky/55gZOzwUC0tUzLaYJFPT6DhdVrucg/2QGwEW3Qr9xTXZWw3dbwyyJruOZAz9myg8yALLUnLa2oPa6JVEa8rMEXPYxLwUtxTvUz/9bta1Bk+8fV+yOKErm3S3c1Iy4rvdFrAw7EnK51nRMEgByN+6Mhz2At31gy/QH6NlKr9W84zJhxL89GRL+fFeY+cqb+D67sAZwA5Os1+hmQnNA0+Br0N5RCQFesEkPBNwX/P+dCzjBFVVFQJisw5esrClIk6Tyd6ZKfkBanNs/6jz0xhs4J4cSZEuVF1pZ5EuixRGZW9lG1ggwrToUFbxK/vlC48sFwKgMqKHoGLc3hYxJnNlOBzRmeUI0NkdGyBuynWi0YwdOhD+09MwmNRaykuqjMww/WUUvF8ZBftLHxEbkRWve/phBWR3zEpEWL7hxR0ofgKgm3y1glXck1Z4D6MFhfdGwNSXyxqBm/AAmQKEXGL2XLWC6HndhK60NNddB6HnvXjUpoJGUSL27pegS/wjGD2vIA5HXH68AzH+yt9UEj1PKzxWR1Zz9HaStw5nObACNkxOW4w/+j74auyHjuFC3/Hivjjf4vmpEAeRih0rkX3wAoDqZyG7g52qWlnNwPy/KoX2pJd87L865JOVDOXYigrgrSgb2t/CZVhSYYvk5bLD5RxJIbjyewxJ8dsPJ3k9edjffT6KwJ6N53zENqv1r6PPWxM2OVhkwbnKaIw9jBL+sA41LyFEcDjG8lzKt2jHbZvSlGkFf/GMK8ULEEMcLmhsz9337fYZohcNiYN9XyRV6WIL4steB3eN0xB7x25P+N+SzYXoVP4WJdaVruEIzfzwoN0yC4v9dhAWgq4exjh9o3QbKTxrsDjyG0PjP4gBYGypP4906w87pWPHheId+lDzjmGW09YAmm6Hg6SB285rTwUs1mbeWfEq3Xg4wqmBWF8gQp/ux8in34C2cYdn8ytE52DOq5OZbPQ4L9+/cMeoXuJZUBBxogig+Q8Qa3pwTCeedNxpddMOO6/qrfMbIaCm7xlKAkvQs31RM3WucVcQeDtL/0CpS/ECiSuk5lvuqy7Ua3KtF22KFv4BRoxy3FZZTUSw76br3o0DmfPWrDJYT1VoRMKMjztGzsy9kF7S5xcml4w3JpuWP559CFPYHvxznYSLIm6QhlLbIUKsz9WGweCxOnj09bqNE+GvddfuRisAa4=","layer_level":2},{"id":"8b85e3a5-32d2-4890-9fe1-18c4d4d9049f","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Unit Testing Infrastructure","description":"unit-testing-infrastructure","prompt":"Create comprehensive unit testing infrastructure documentation for VIZ CPP Node. Document the Boost.Test framework setup and configuration used throughout the testing suite. Explain the test categories including basic_tests for fundamental functionality, block_tests for blockchain operations, live_tests for historical data validation, operation_tests for individual operation validation, operation_time_tests for time-dependent operations, and serialization_tests for data encoding/decoding. Cover test execution commands using make chain_test and the generated chain_test executable. Document runtime configuration options including log_level settings (all, success, test_suite, message, warning, error, cpp_exception, system_error, fatal_error, nothing), report_level controls (no, confirm, short, detailed), and run_test filters for selective test execution. Include practical examples of running specific test suites, interpreting test results, and adding new test cases. Address test data management, mock object usage, and test environment isolation.","parent_id":"abc7d4fa-93e3-4e27-bad4-dccebc67d4a5","progress_status":"completed","dependent_files":"documentation/testing.md,programs/util/schema_test.cpp,programs/util/test_block_log.cpp","gmt_create":"2026-03-03T07:29:31+04:00","gmt_modified":"2026-03-03T07:54:54+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"0f9844d5-345d-4ccb-b908-faddb7af8dd9","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Debug Node Plugin","description":"debug-node-plugin","prompt":"Create comprehensive documentation for the debug node plugin functionality. Document the plugin's purpose as a development and debugging tool for blockchain state manipulation. Explain the available debug APIs including debug_push_blocks, debug_push_json_blocks, debug_generate_blocks, debug_generate_blocks_until, debug_pop_block, debug_get_witness_schedule, debug_set_hardfork, and debug_has_hardfork. Detail the block generation capabilities for creating test scenarios and the block pushing functionality for importing existing blockchain data. Document the witness schedule inspection features and hardfork management utilities. Include practical examples of common debugging workflows such as creating test environments, reproducing edge cases, and validating blockchain state changes. Explain the plugin's integration with the chain plugin and JSON-RPC framework. Address security considerations and proper usage in development vs production environments.","parent_id":"2328ccf2-46d2-4cd5-b887-81c71ab7e579","progress_status":"completed","dependent_files":"plugins/debug_node/include/graphene/plugins/debug_node/plugin.hpp,plugins/debug_node/plugin.cpp,plugins/debug_node/include/graphene/plugins/debug_node/api_helper.hpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T07:55:19+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"0122ca3a-4e81-4c40-86f6-4105a7965637","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Installation and Setup","description":"installation-setup","prompt":"Create comprehensive installation and setup documentation for VIZ CPP Node. Document system requirements including hardware specifications, operating system compatibility, and dependency prerequisites. Provide step-by-step installation procedures for different platforms (Linux, Windows, macOS) with detailed build instructions using CMake. Cover dependency management including Boost, OpenSSL, and other required libraries. Document cross-compilation procedures and platform-specific considerations. Include Docker containerization setup with pre-built images for production and development environments. Address common installation issues, build errors, and troubleshooting steps. Provide verification procedures to confirm successful installation and basic functionality testing.","parent_id":"663a33c7-3329-490a-86b9-bcdf15178fba","progress_status":"completed","dependent_files":"documentation/building.md,CMakeLists.txt,share/vizd/config/config.ini,share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-03-03T07:56:01+04:00","raw_data":"WikiEncrypted:6nDTd1wU0hYJuRoAJhne4b5ashHc1omfgy81/++xSBe2w9rUrWuXSbrEHiZ6Cy0q5An6XvzHHLEqEmHIyn2epq5KEULOgH2CqfXy5wyGH0EduXcfrSX56fWPXFubhJoHVQNhHkotTEhKINivrUKUNsPV6o/SCw0uS9y0psxcKPtjaDoh0Fsz18Pdv9IgWC70bflhQsm2jmkHFIc62gg8wOTFVxbF44Nq2KVMgUmZu8HHDVmcWYlGBJG4KP3DT1WhmlX7YVXdIyz/7tiSMjzEmTAQvZZnyO7dKtsVFg3ASsOiAFqYVsIAD2SdlPu/dd4xojgsZw4HhAKnTZn+evhBpNEpL8R9UK82ostEvM0NLTbmE0HKj4B4RySYX7KYg/1d2bpsvrnoJ/ZhVZ8+9AvHl2H5pBA9HcIqHHTTGWu/WnGJDaaSjUfCPXaKPFx4joabBkzYJin7GRLyH+5IZNHA6n3VowgfhsraSEw/MnNETir9SG5GGrWTylTeglHHrcie14oBS34syZT+fNopbAHIhb02nGx/6OCLZ93UO3EGJgnIPuGoFjBUQoQNuOYYjLOAGMP/s+sfVM3r/HZHBua59+e/1tldVB/S2mDsKp26kPb8mx7mr2k/G7ZiBT9K41KCmTJsTej2HHTu0Ht9v/g6hYB9YXKnes9JogX33PqeOULXpDei3Xh9WM8PlpHH+Z9tHuDr+Q6CI5yHVart8aTTkL8zqZFHU9Bm9Ann/Nir98TTITDtqGSvAC+73P10xOYmx6FHJlBkoD+dc7yYj+YQF5ObJ3UCsFNrDQUGXpUUsQiSJkmzKzNwLSHkn0VHNi2webLwLUngr9FCvC/l4GtYDDIR0T5p5nJaaog5uzhpZiGACLuZeGcg4/VOQOZ4USyuIqDviAtW1szf7Okr5nIG3LbRQ9SN1zIGrTkdLys3ywOkB2ZE4kiRq5+GYL5cWQJMeWBkMo3pSPrk6Yv/4zQs/h3E1T/C7t+woDjnKOt+Wntxx2CrHFr7dWF+bWjfBTmGxufuACM44zSCzhOiruhjAnz71o70QjkErs3ZDcBYfB+ilY35E4CtfUoS9G4sNESCs4tQ+qt1zPgWOKYXR//oskpoDuzS6dAEiASGk9w0r7hEKuNo/gDh/qkL7UV3HebH2KL6Ugt15CizV8jt1wVKKxi/n1rsQJy7Sj080qAZtdDosKTgGzOwW0GXxC9h92lY/2ev69kX4pfXel0X1+l2LkwkOUqf64q6OSnAmzKWC903+LQT0RnvWZKVioCDvIGH9hSjaBI9wTHVoocTVmhPLLSj76MSfVnvx/2d0AUEliHgZGNzY7KlEJxsQUEc0ZjkXwY7BQwVKrOL8boU+LyTxj8zbBoMmaEykSzX2qgSwLOd1gEsM+jXNh14gKTgmUmO81ca/j13pbb6UIn6KIaAZSQv4dht4V9WEdvUqG+o9w5HClkedaVicqnp2cdRABOBYzxqZvEaumXpOtEg2YhaXBtv44HwWWahfIlw4O5DbN8+kiJ8G8GWQbKikFzXi+5/jDhEgYeNLInwwXK5bZ1ZYQZlLrVVgHDj0SkGxKpw5Aw/vIuOLro4OvglrGOXmuo6IUXnA/5Sz3eCRnEcsSND5LWjDpt6LskiimzqDwvjDD1Pl6sd9EGaILAbu6DSNyaU/xba0wiM22V4Pu11P932NcUzo7155XM9ungXueuXGtu6w/Gf8m7nGscdJw5fqfk1uLML5/6MFsG3RjtSzTgpiPSPNaIjHy3OEC1yI41UqM2FYg33NLyBV0/cmiQxGsPPGKhSp2mJVRVT2+ncIwxcNw==","layer_level":2},{"id":"8d39fbcb-1b07-44b8-ab5e-f33e6492069d","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Operations Definition","description":"operations-definition","prompt":"Develop detailed content for the Operations Definition section covering the comprehensive operation type system. Document the static_variant definition in operations.hpp that enumerates all blockchain operations including account operations (transfer, account_update, account_create), asset operations (vesting transfers, withdrawals), content operations (content operations, votes), governance operations (proposals, witnesses), and specialized operations (committee requests, invites, paid subscriptions). Explain the operation_wrapper structure and serialization mechanisms. Detail the relationship between different operation categories and their hierarchical organization. Include examples of operation creation, validation, and serialization. Document the deprecated operations and their replacements. Address operation ordering requirements and hardfork implications.","parent_id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/operations.hpp,libraries/protocol/operations.cpp,libraries/protocol/include/graphene/protocol/chain_operations.hpp,libraries/protocol/chain_operations.cpp,libraries/protocol/include/graphene/protocol/proposal_operations.hpp,libraries/protocol/proposal_operations.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:29:14+04:00","raw_data":"WikiEncrypted:WmYz76ZuIeWtQgFK+sghtXF767cgFsJhrvsx9nsFYtfB5XvgI+IY8qvYq0/h998yGx0X+Dgr2b2iLXpkz+TmgaMpxhLilK+sobWU2aqDmbDndXA6D5tjoJfNBbgX2MM+5h6PtTeEWfh3jcub/MOm1xELBWkCOIkQbR2dWfj9pwA9WHeQK/TsUznoMqR0H+eSCxFzm3sZhtTxdFcx/1X4Z7rVp+g0fb5lKts9guqJLL2vhn1p5t5f/WRbR1lj1BEEZ/H9+BW3+niARpl+aTpKliwdQYlMyMBFR1O6MPihb3CQ+1zZIx+kYmgQvxZgmI6bNmbUtVIC/GKLBX87mg3vTfbnLwXNWlowpGesnDlZzrEx3P5SSHbYPxf3Nqs58mm2D2APH5PtVfvWQM1GPMAloPBAPaqRTdFNwKynsRIs5XIUg/fwKkVDemdjz4uAF2IBLLCvE8zj59gjQtNqbkvpYVwvT3H7u2RioPxY7A83eqXBFkRBq+VL3mmcsO9mnLx9KUDuZKw5fyIY6YHPoerUxIEaO2R0eM74oxnNXt7xL3GkVlA/p5NHqAuyB93+F5B6gNuSaqLwOVk/nieLGuV8mApifQ7mvk4r8AHzD9C15Nqi8TyAcopnkZs42DN5moJpBGADvrrVmDWvV2Q9BrvsTTE06Ym0HJaGC7dQNhMCWKjTRfzWBDdd/fVDf+SEglDdfoQUAUznB7CEvOErndZe0oyC03itZBtVjtklMVwk4FGx1G+P/A6ZvfmGJ2AFAhTASyPQqVmh0nR603jwCJYHifWTY1LB+u+/Go6XNf4DGqMY2FmbxHzpIvFeKqB2gv7CAkLPClSiyeH94JUkCbUKAOjK+eCoepVsZoOSvjC8eUnlCLcCUfUxi7qPr49/Z9btwrSUVowLbTDm4CeeQe5fu4YjrrQzE/AdGNHqCC465W9MlU8ekKT3mxtAzbzvxEluttPWRbFL+krpLarjasytFvbZL1aRqUoQw8ykcV4pqLhlgW/YtbWf3yloEQ68WraohvMt+DxICjT7R9jkxdqjO6b+bJbM9JPmEoiAtb+YWmGkb6LMOPaRSoxMwnXSwfyFGGIEDdjdFwAGk/S2adZeMCfzQeg5rxHJXuwlBMP7uQF783BZhOZ5aMjIJ+V+oa5wMrNkfc8qFtm1zCTS9fhAGpzckNbcDN4+0suzZ02tJ67HMLgxAUvQxre1zebhcgRiUgPoyAYIYaajWX3T1swYPNQj1HgnxTCSaq+NFBx5FQ+hM7Ia4Z+MMKZCfE3VYKKR/TeJqE/k3MOvqLY1mP9ERiEGxfSijZd/jJdvu84QVhjcEQYfBH8JYcdJBDTKGwI9ZdUxjQvk6WqYvHeuK8ulLJh1NAlYbtUyuN+S/sXMMGCC0mLPmx7Zg4uxahTINOJk0YjNY1OW7HF8Fq1pCPMcfoJAktfYDPCQJWiYCdVtfVw4BwZYL++Ua2ZqgMwQO7YhPdlxuejDOZ7Q9Gd6symlh+Bvf9aeoor7g35mEG/98dHEB80GoqMIYoSDJ+mtVX4jhoHkQXchjzm3U9QHvAwLL8DU76a/qYcNk3urfukXMILCtf5NrzImUM8gwpoDqhmdufzhwN/s+EeykpqZHigg4Su5u7vyY2dVUKTaklPneLJXJS27W90P07vT5XVr8U9irxarAnJKIGuhllU9VEhSxhfX3reYvlZ+54yTAKHxJHtFTvV6IW9zyWD3yuFU6G/TStOV3FTSEowaJqx986hkLs4jm9/92Pcr+Q10ULV8O8YtnU0gbS4nsYrnyFnpZwzHp28UTTkNj0h45BZM+6Emm4X8GIBRcJkqJ7nU85hewo9rMxjVIR6rn6xZF5EkZ1+CqoR7/o0ihhvY2mDt5ssA+o7an71DnC035AKeCKwfOvIc10JrXq7kgExwqupQgLqcBwaaz26gx47oXEoZ0DSOx8rKEDSjfmA9WKieS7wc7D+jctLU8AZYx2rPKYodgtCk6zX/5wYlvhxOCacM7YIdkysiqZ3//7lxPCLgHpnQGyy2bdTxNWy0fB6YRZsmIufteSu41cbwK6MyL4ZUZPORdA==","layer_level":3},{"id":"9431a609-d1cc-4c97-aa40-e1b832bbdada","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Database Management","description":"database-management","prompt":"Develop detailed content for the Database Management system that serves as the core state persistence layer for the VIZ blockchain. Document the database.hpp/cpp implementation including the database class constructor, destructor, and lifecycle management. Explain the open(), reindex(), and close() methods for database initialization and cleanup. Detail the validation steps enumeration (skip_nothing, skip_witness_signature, skip_transaction_signatures, etc.) and their use cases during block processing. Cover the database session management, memory allocation strategies, and shared memory configuration. Document the checkpoint system for fast synchronization and the block log integration. Include examples of database operations, state queries, and performance optimization techniques. Explain the relationship with chainbase database and the observer pattern implementation for event-driven state changes.","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/fork_database.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/include/graphene/chain/db_with.hpp,libraries/chain/include/graphene/chain/shared_db_merkle.hpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-04-23T09:42:13+04:00","raw_data":"WikiEncrypted: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","layer_level":3},{"id":"eda6f654-a385-4f97-a230-2b3d2c63817b","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Node Management","description":"node-management","prompt":"Develop detailed content for the Node Management component that handles overall network node orchestration and peer coordination. Document the node.hpp class implementation including node lifecycle management, peer connection establishment, and network topology maintenance. Explain the node_delegate interface for blockchain integration, including block handling, transaction processing, and synchronization callbacks. Cover node configuration methods like load_configuration(), listen_to_p2p_network(), and connect_to_p2p_network(). Detail peer management functions including add_node(), connect_to_endpoint(), and get_connected_peers(). Document network broadcasting capabilities through broadcast() methods and inventory management. Include examples of node initialization, peer discovery workflows, and network synchronization processes. Address node state management, connection limits, and bandwidth throttling. Provide troubleshooting guidance for common node startup and connection issues.","parent_id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","progress_status":"completed","dependent_files":"libraries/network/node.cpp,libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-04-23T08:46:18+04:00","raw_data":"WikiEncrypted:84sa6bLhPDu+UNjxUZw5rBAx9KYoUICf6oS5DojEq7h6OODVm92LmG6NSFskdLu4/BlwSqG4Jzo94ijeZaGGCOMnja8I3tGAEbT+3q+n8m/dw+d6coAvelXNpimAGqE+UgFSwNQ+QleFS2KnlnP0Ei+AyYS+W93RhzWk27zbV8GPjpKgme0so6woQQiGN1PmaTl8u03kRB5fRh9sxqVA8qa8YqnyO843mBnm8gceC1VG3ZkElSRJiah67i4rB8mwgmdDzWJDST7UlTgRtRQ6kxvZezrE60FHupzXUoNpmUzeCjYMp4HkB0VGqrOY7Q7zRwtBoyE2zfnXaZuAc8wCdI0TDc8rUfDnRTs2NEQ2+JDZfNlxp+Z5uhT2mCkfhIl0i8ciNT3yXwkxKft6tBOl1KVNCygqrecBFFjE2BprTsr8xv0rYl9g4nMfF8Q55xZxtZ0nrmobnFWDDLiF+5h6wM/rDMGbj5E/+UASJZFSPt4j/cQEKAjp5qI5Axm1BIDHQNDHicG76LbRl3iucTkM4QxCdPYuxcfR3SmzTeFQs2fnkQZKiwMAdWH9ef+B2FDRSverFsTbZg+sKOOw1MpmhghN9EtU6vwfWNi3TzrRj/VRfEnXqE50oX//jSWPsHota4t66ggpqucNRGurBl6aZfFkRXCSFyaYCRmH1sFMinKNS0aijN8tv6oPCYRS2atr0kIBzAX4Ru6MibCtvg80eKvDYujvZZr0bTH6Uh0fmuZwOX7YaDUX1KwBMuja4CmFymM7SGjnkJp/EI44GraxO1o0cuX/hnt5+jmnRqxjqQF5wJ8Tngw/Q3amWUMURWQhBFLGm5Af5QL4Hw5QDvbIJOl/gul82CDG6CC+TP4yW2TFhreAeUNMT8V+n8elOHPgLu7D1EtrLPjg1R4eU1pk1dIRJzlubWIspbm+ymQmlZzwV3AuDT3Eyu4iaY1qta/ZACGBg/DAHUgPDJIExAN5WVclSnIgChTAuOQoEQVMKRVb8oBis85sOEllEH2leXd6p4/vGKuhtX7F70sXWD/OrVT0KA5r/NX/+XUPqKH9WhVgt+kDGu/JcRKm/4MHupYjESCvRTu6orYpKaPYUC18zemoAkkHISq4eaQ4oDoCeyD3T3whl9FqTx4+RoYOrkMAStdijoz2OhY+PRgGaOgiO7MdjnDpj8zlYqbG8A9M/1Wal68lu5FLaOE8slWUY7e29fDGlQUDuUmkkx4FGt1XFM4ID7WgsmA3aNs2miYR/6ROruJVnMBP40Jp64j+HTyBlmE3zphn5KoQK0vPTcWzlXefUYsqxmCjwJ3xGytBa3Tf5p+pNj6gFMNTY/vP9d2W3IRG9Fanzo0hv+MAC4R5VLyipO0vFhsxx5veCg9bh8ZWZW5yobkatfzV/X+gS/CqtWBHf03gDsoxYbdfeLYXcrM4KvREqgVxShOXEBwCdo/g+ukZJkzzc1QYYqEn/Hptz4r8ByAPMzclKREd66MZDBbCj1goZ+J5MWyfy47ZXPJ10iT7neBSO8ggoQGAEs7RXp/SmzdmpYPRG3ScDN7RYIX/K1KenyTNlLuSXQYU4dvS4LmzX9hm2TAL8KScg6z4NSvtYSUR91oZ3EQFL+anrRDjR7TyasN4TdhENpsO2LuGTCeCFqGfDEsPfm06cB42ecQAwzAdVsOaHwhnpibENAAy/M8qD+tDmEiYAkqRDN8FLaIYjC8rRxUHQlx0uamaSK49tqLLd0OqNnpbG9HcJaqr1J1FjhffzOh5q0p4R1KY4ekSD3081e+XuggoOMzQfaJrMWcu+qIA3LFPGuBrC8J1ABpqqdvmYcsiO3d2aE1g1C1get3PYOByvGFsRCDu","layer_level":3},{"id":"2d4a074e-44e3-4a74-9055-5da20cb7d537","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Core Build Options","description":"core-build-options","prompt":"Create detailed documentation for VIZ CPP Node core build options and flags. Document the primary build configuration options including BUILD_TESTNET (enables test network compilation with -DBUILD_TESTNET), LOW_MEMORY_NODE (optimizes for reduced memory usage with -DIS_LOW_MEM), CHAINBASE_CHECK_LOCKING (enables chainbase locking checks with -DCHAINBASE_CHECK_LOCKING), and ENABLE_MONGO_PLUGIN (compiles MongoDB integration with -DMONGODB_PLUGIN_BUILT). Explain how each option affects compilation flags, feature availability, and runtime behavior. Include practical examples of CMake invocations with different option combinations for development, testing, and production environments. Document the relationship between build options and resulting executables, shared libraries, and plugin availability.","parent_id":"c6c73cf8-a371-43e8-88b5-96478658761c","progress_status":"completed","dependent_files":"CMakeLists.txt,programs/build_helpers/configure_build.py","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-03-03T08:11:41+04:00","raw_data":"WikiEncrypted:+hgVdflPLL0xmma3oFcNhzO50UdlcHF7zsXDx81IdubJW/ei3OO55+CdCQ8q5WiMdgjekSxvQIh/JW4dHdtvRsVOk97oJYxDnpMU2nARwm7MPVOE1fvGf21aemNsnNtFwaR6q/t3BG8xZS4vVWZKT5owJ77uYsNkUtyJqPayPXgZ6JPk8AgN3ErlK0xSf5sEg+aXImxZoamSb1RzUCLe/AJrMfwO/39F8fRnlooSObSAG9972AB8S3z8qkdT+/NvoP7Yu4c+O4xbkxSPRhVqqoDVzk2WqnvhZkuaibwIrH+emKKGGpww3D5gW5+moLgsLDC6m73VZEeZGSxbE7nms4iAyAJOciJRbc/48yTJ/q3q9oq0k/pV2FuB8A68A1zDWZAlutbh+29TzGfMBPNP1Wxrhno/VTrHMYsiQJOS6dZRxbbN0J/ByB5w5/JmntWDkKeEvOWRKrsw3CMHsKX66UataOYI1UWdk2eEDrSg4SRkNcr3T0prOUhOLk2WM73mmQYCcx/khTM2OtOAJoTBpshyseGs2nk+BdX6kCLmTglTkyiqV+OF0ycuk78gFPSyOQwkeOd6iPGQfzI3nr9VnuL8WYk7kBH9BCJcQTHkwRQjKZejrIH3O5WrLuzX+w5CTP/BrEW8dt29CEh/0s2L78fJo5pCvOsQslGF3j4tRYrDUGtDQ54GiDt0iYCnAIfzF27DbyQVNIkiMfPP9fmE0FoR6wYQKc7FT4NfQpMKTV1xjOzsPolWe2rzXbormwz9pfS0XN3kuarDHx1/UsspkBtInazzzduegUsyG5o1YBrMcnTKcmqphnb5eaQ3+QDWGjsouQfpiCUvowvf7Ajz9YMLtLvcPUK6fTnv47i5C0Ny5eNSnPexPKX+o2LEj1I46MTt2FZz9/UymAj0n5UlOpM297SrQ+WQoJBWKjh03W1x/aWrbpWhLOwmLQVUDz1lGMaKv68c9gNOWX3R8dtU+SuIfFQuMY1XgNpnzH+I1OsbcwOJNB1wtlirZ/XckeHB9fMocf8MICEkSMgPIS4PmRAfUJXh8Emr6GHkO/HIRdzEVykq2GTsMKcTIsnYzLwUsfmy1gH3nXTJRUvP3AdwxG5N4EG4ijcxXFKwenNLlvpzXvG/2uEgZjo728S+7Md1vhLZJ2dsepImJqn1TmEZv5WkEj3lbkemcfx37pZah1qkYgav2mrEVUBqbWdfZpYy6IwDPUCgE5TBzdESGu49HWgYaWW6oug4PTcbaul49Rbiv5LMbfwHEf4EKvuGqQiwjgcWsz+57SmE6omFem0XKE7PUiGMzl1vSMwIaUG3pfaRSMKE5UvrHPHaR1SrsVXt6OQ76yjj73HerLdyDRInKoUzQwkZ9jaHE1hft4Yste+Lej7O2OrUSKE4wzhhVBkwwh9AIUqntzEaaB9U4lFVk5uX6v6IJ9ssNwZMzl5j8bUVDfb+HDc2K26alme+A0EjEKlIL4ENYXCZk8zoRhhzibeDx1ZEZXPjSKdZz73dORKb78hvre4u88arxQuxwmwt","layer_level":3},{"id":"b56b650b-ed86-4f47-ba5f-ad7c4d0dcd65","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Production Dockerfile","description":"production-dockerfile","prompt":"Create detailed documentation for the production Dockerfile configuration used for VIZ CPP Node deployment. Explain the multi-stage build process, base image selection (phusion/baseimage:bionic-1.0.0), and build environment setup. Document the CMake configuration options including BUILD_SHARED_LIBRARIES, LOW_MEMORY_NODE, CHAINBASE_CHECK_LOCKING, and ENABLE_MONGO_PLUGIN settings. Cover the dependency installation process for Boost, OpenSSL, Python, and development tools. Explain the build optimization techniques including ccache usage and parallel compilation. Detail the runtime image construction, user creation, volume mounting configuration, and exposed ports (8090 for HTTP, 8091 for WebSocket, 2001 for P2P). Include practical examples of building and running the production container, volume management for persistent blockchain data, and network configuration for node connectivity.","parent_id":"457e128b-594d-400d-86b6-6e9de70687ec","progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-production","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:13:22+04:00","raw_data":"WikiEncrypted:1PcQ+NupkgQiLQ506NXlam2NaTESDp42+Zw7VpfY+CzCiLAg7GShqb8JCcPdfBZaP7WIo1Mgj6cRsriY4RimiUKdLamglD6mtocdtihAp1RQvMgjoGAVK79Z0f2cu7KECfA2Z+Ievqh+9tvt69UamhE1qHeFeJsTu0aWWWpl5rcj2YSIR5H0RebtCzB36Sv/CERib288ap2vqUEZU89BGsYKIWlHMuGgzeFzUMYrV+wk9eG5jVZjG906/zYCaDWTbh/TekpxoiIf6HSW4xXhrMD7AZJWn5k0n6jctguU6jEHQP9nzYFUiTMQ2lMvD/jnXKsLpwJqAZR71nU87TaUO8FVZul2iQ+vQFFwzyNXGE4ddtidjCMxKR2Ww73haXvYbAKHAAAdbw0OXyAcdKL7K2fcga/3WAuxnWWVMGg+E5msVSmXsJcIZSV5C5r4Va9hWjxCi27IEGMvBsLBQXwRNsAn8aSlu/fa/jYxeM297Dx450DFq32jM4NPOOXjC5XJaOBlCvsZa5P7zSnR6NJi/X+7fWOw9yjkvU8Py5K3PMH2RW0KfPHB4nSgLXhw7SBcxT1sdiFVcF6VrY01bksI3y6ZFQeU2Mr1vAWTAnZvhbpann/UGYuYmo9u7R6+OoRu7tP/uEmnBKM159+qF/2olZ7ZKbq0jX9b/9HGNcCEWiPovpxyKkfyNvPpJwaiKsoQKs7Z7VJXgM3qZUJI591RB+ZcnmWCqM8nEQcRvf71HmasT4O8Y3sTM2dBr8kEZhAlpbsQKQuv/tO4kgC39gsKvLSkt5o6PZ8rP/QWZKPdyO214qNoge+jhAzViysspNcJh6FXLe3DD6YtFK+txrue5yI9R1M3aoDc/bXI9A5j56VWBYXHbfPf23c5SX4VJL1tryaUnD7HopiWlFdRMMWK4Lkn/2+Q0acfSzOCJ0FwsfSAC8BpfNe60OO6hYvSrt4uhGDRMGa3SGJOJGLial88QaoDUKgcHRRq6xPKtHWGyD/spZpRXxFYPZcPv4y6RRPSrcytnWWxf2UWcR+HQRb1V4MNKxPXh0RW3gSVo9D7smSAIXNAwuZ5uJBZvg7CYavG0mjPm9+32YDh8vPLBHGXUa4i4T4KTfEvENMVQuZVw0amZ5S231HODaR8LmFhvy9QjC/c0hlkiAyQP5zq7Qh9tc8eQ4p8tuxKAPtrhzVy1xTTKXNmZrKKD55p/3sootgWp8RzFJapVolQ4JkSSNZVtNP7J04uG6jAGktkZw0eHLya0dr0D2IRcuFXNoDjTPzy0wVnv3PmAu8ao05iAinwPhwsx9RoTW58m44Z6rqM6uhOkoIi60y9hPWNK4tNtipS+4aX2ZgQanujtzdVUqDmmDQr/q6VdzTCSHieHN5LHp+5aCHW4oKBPABE9RL8gnzlgRxlPxgRzXW0rAj9TnTyuiD8c3HskKJARSiBAcF1oZKweAISYXvb6QGe1TG87AcdEsvUtzDqgcZuKJvULl/zRwIkJ2jDFaDAeUWeORgrzmYEFNQjYLKrqNZULFVqRxeouW732TCle3fBejZlmUVGxfeshmIRsezj254Gy3zs35hkwnB/9C/kBh4EfPu2rzOAqwbIKoHSfjewV2R4z74esD2maXgH255Nd22YvowdyqvJ7UyFouWyze17p/cTLztRvKY2xfFFQ/DFa8DuFRmLSA==","layer_level":3},{"id":"09da5186-2e74-4ef0-a615-5ac3556fe992","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Code Assembly Tools","description":"code-assembly-tools","prompt":"Create comprehensive documentation for VIZ CPP Node code assembly tools. Document the cat-parts utility (cat-parts.cpp) for combining source code fragments from directory structures, including its command-line syntax, directory scanning logic, and file concatenation process. Explain the Python counterpart (cat_parts.py) for automated code assembly workflows. Detail the hardfork directory (.d) processing mechanism, file sorting algorithms, and change detection capabilities. Include practical examples of using these tools for code generation, schema assembly, and automated build processes. Address command-line options, input validation, error handling, and integration with the main build pipeline. Provide troubleshooting guidance for common file system issues and permission problems.","parent_id":"942792af-b86c-46d9-9f7a-22e783f2d6cb","progress_status":"completed","dependent_files":"programs/build_helpers/cat-parts.cpp,programs/build_helpers/cat_parts.py","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:13:01+04:00","raw_data":"WikiEncrypted:Ux5Ub3OP0MtzohTlWbMlC5lEm19o2HQfwDVneLB1a1hTXHDwEhsig5jNN5z+LIXqsxmLUM25wY69aB6+bwuz6D/wkQEy8W5IUBq/kV+7tBHA+L6qCLLNXOlhHVGHuo6JbY9p5a9HNMXuJ5REPOH2cRjbMvOpX2JPYNiqO0206sp7CU+POZ9RIr3gREMK5LT9JmW1upbSPZzeGpNAVcWFEvpI7hlGDI0xytSGBevLkpSH0dT1FJ93u/i1N/YAwGNI7V110fcuiklNuAMYwCAM+sTshWG1AasofpIxFVC3HWLgQc3T6aGyEx/vw988/JCZ3dzRc68yQHQgLyzP+e7VTGUrkw42ZTu7b1d0sFkwjZb3Q8i+O5hhuWGjDAb22Pnufu7fRCCbKxLrbs2IFj0YB2urm0PopQh9GmAVCyiTaLtmt2/GkT96Z5vQDYVAkCAXtWP/eXVV7W7HlEZ+x8N/gBpkGiAzDeauGpvdlpZcFTEv2jhqXIdDe/EIWHBYJ18Nwed4Bv3UQDgYA5s5TUXeVEyRF9243AurwhVMW0Y9x7figiVO3AFR5yoHHxjPwzLkI0F8Q1PLK5zs62CmA03WCostwnKhqG1Tj2x/E80KstYRsF7pR1TwqOmeX5gvlNeEir+x0afFhDoXKKLmFUhmqq3mThWMoxONDYxZSSFUNyI3oPDBvVyXHFQglhuFu+ZxTHn7fz1Tsced3XnAHVq/pcbZlt4wi5umSVXi1mPrz9zBZN9irqYU5bU20vhfwqSuLI/s911aqeeJEPIIxb7paftniC2Ou7p3IraD3n026CfuxsgUGDWGLLsopvN36hlEnPXNWCZgU1dVRqd/Na5f5DjzjUc25GCoUeqOSqboRpjxki0D7e5OM232kS+KKeTKrXQX6QPba7xdzt9dPKEfs2ehTU8E9OnosImfPwc7FM7LIswSmEV0xvaXnJehqLwtNs7ABTiNyZ3tst92hHxxBU6YtNfSCFk6lqVzVRBci7stxUXbF9JkIVPnRtaSqJhTQfd9RP9hfTOvPrihnlkWRJzyOMH2jhuVnCAMTFgkUKe8gVqBGrBLoMY0fzXFrkfsNvj5Vq3Rd9SmCtCHH5CvDL3FvgPJmrmwzbaVrQIThX9c383OKjjYmC3PFTFOekX7IxgCvF9eihK/cCM4WWMozIXKkm8UYPEtKApNGLISn3KlPrI9yOretN0iKCHD0gjF14ZgrGlpZdhtp9mp+9YIqTZtjCDAW+T+rgC/rEPcHwcNFJfpWEXvS4Btct7MDBZUq/irXLxBFJe6Js58ALQtDOPVtXH3F8wzTnsBxNeqgRcFPJZhksU2iu1OGRL/60p5RYLKGJ34USY9z+LghuRBh72H2K6GQOtlGNPjOyF9PlQirmbNa2iTGZv6RSnOAXUgtYRVY6FR7hul7EZ0V4V/oaBEnF1RjxZJlenfKmY18X2+yn5pmAy0s6nKT2rkh9iNN1f/LajWKwoV5kQfiyIG7VI2+eIKJq+u6TUy+VmmF630T0evodIP7j1gmAiqx1IQnqY+scdhg1aDsmUymhwjg76gHZ+BnMqHxas940dtVvNZsJT+ZDMIPoI/VF/2x+Jj","layer_level":3},{"id":"ae456061-b64b-4654-ba1c-a7e71cfa4bbf","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Getting Started","description":"getting-started","prompt":"Create comprehensive getting started content for VIZ CPP Node. Cover prerequisites including system requirements (Linux Ubuntu LTS, macOS, Windows), dependency installation (Boost 1.57+, OpenSSL, CMake), and environment setup. Document multiple installation approaches including Docker deployment, manual compilation from source, and package installation. Provide step-by-step instructions for first-time node setup, configuration file customization, and initial synchronization. Include practical examples of common setup scenarios such as running a full node, testnet node, and witness node. Document basic troubleshooting for common installation issues, network connectivity problems, and configuration errors. Address security considerations for initial setup and provide guidance on monitoring node health. Make content accessible to beginners while ensuring experienced developers can quickly get up and running.","order":1,"progress_status":"completed","dependent_files":"documentation/building.md,share/vizd/config/config.ini,CMakeLists.txt,README.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:31:32+04:00","raw_data":"WikiEncrypted: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"},{"id":"d05f2002-2293-4fc3-abb8-2d31fb7c6bf4","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Plugin Architecture","description":"plugin-architecture","prompt":"Develop detailed content for the plugin architecture section. Thoroughly explain the modular plugin-based design that allows for flexible feature addition and removal. Document the plugin registration process, lifecycle management, and inter-plugin communication mechanisms. Include concrete examples from the actual codebase showing how plugins are registered in main.cpp and how they interact with the appbase framework. Explain the plugin template system created by newplugin.py and how custom plugins can be developed. Document the plugin API design patterns, including how plugins access the chain database, handle operations, and communicate with other plugins. Address plugin loading/unloading mechanisms, runtime plugin management, and the observer pattern implementation using Boost.Signals2. Include practical examples of plugin development workflows and best practices for extending the node functionality.","parent_id":"75556906-e1ce-4720-984a-3094f741c8aa","order":1,"progress_status":"completed","dependent_files":"plugins/snapshot/plugin.cpp,plugins/snapshot/include/graphene/plugins/snapshot/snapshot_serializer.hpp,plugins/chain/include/graphene/plugins/chain/plugin.hpp,plugins/chain/plugin.cpp,programs/util/newplugin.py,libraries/utilities/include/graphene/utilities/git_revision.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-04-15T13:00:48+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"abc7d4fa-93e3-4e27-bad4-dccebc67d4a5","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Testing Framework","description":"testing-framework","prompt":"Create detailed testing framework documentation for VIZ CPP Node. Document the complete testing infrastructure including unit tests, integration tests, and performance benchmarks. Explain the test categories including basic_tests, block_tests, live_tests, operation_tests, operation_time_tests, and serialization_tests. Cover the Boost.Test framework configuration, test execution commands, and reporting options. Document code coverage testing with lcov integration and HTML report generation. Include practical examples of writing new tests, running specific test suites, and interpreting test results. Address test data management, mock objects, and test environment setup. Explain continuous integration testing workflows and automated test execution. Document performance testing methodologies and benchmarking tools.","parent_id":"423ed32e-852d-4f0a-a4e8-aaebd7c97483","order":1,"progress_status":"completed","dependent_files":"documentation/testing.md,programs/util/schema_test.cpp,programs/util/test_block_log.cpp","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-03-03T07:41:49+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"28fd73c2-0338-4c4b-aae9-8bd6616ca37c","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Build Configuration","description":"build-configuration","prompt":"Create detailed build configuration documentation for VIZ CPP Node. Document the CMake build system including available build options, compiler flags, and feature toggles. Explain cross-platform compilation requirements, dependency management, and third-party library integration. Cover build variants such as debug builds, release builds, and optimized production builds. Document environment variable requirements, toolchain configuration, and platform-specific considerations. Include practical examples of common build scenarios including development builds, production deployments, and cross-compilation setups. Address build troubleshooting, dependency resolution, and performance optimization during compilation. Provide guidance on build system customization and integration with continuous integration pipelines.","parent_id":"a3fb1343-15dc-4495-a972-0870c4a88b85","order":1,"progress_status":"completed","dependent_files":"build-linux.sh,CMakeLists.txt,.gitmodules,thirdparty/fc/CMakeLists.txt,thirdparty/chainbase/CMakeLists.txt,thirdparty/appbase/CMakeLists.txt,programs/build_helpers/configure_build.py,programs/build_helpers/CMakeLists.txt","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-04-23T06:46:47+04:00","raw_data":"WikiEncrypted:zhwwHcEGfkuzROuyPGwGZLgEuwkLmCJioSHL+8ma+IsP4HWz+GN9H0U25AqQRHK3L59M10gr45pFReqaj4GOOb8Z9aT/QO4hhPN0jgK5fYd2yMVetje5pyOq7zXq1Lj/JJXJl07KB5k64BRJh8v4hfjeClISavpSORMLQhetNPDvCvaVzerBMSglSrb97gpDulDUKDoAo53v50Ceo1wx2etrBZ6i6WgGt+hWlVld6efBdcfIe+Jr9BjPIOvB7FaIG67gsETPV1I5my00+6kZEJagsg49ntRWLitwDJtDiuhjfiSRfzSbJQdh3wpo5YRTFf7m619WgneLdErqIksweor3zFGyZZzqyocjj0851WOdtjYQcDCS49tjElfqemfvhx54ZhFxeoQwpzu/NAyqpFftj7Bh44eGWz/u6V3g8XaMDeiodnFFKN7xJjUr5Ees8PLfTaXrXozttqVfDfTlefkdBzodWgYgEKcSKytMykv1T3lnHi1goeLo66qnP3pebdMJ/wL76Ew0WAx3hw15DMWXknSQV9q+WivH7jFzQvrfrdrmHs5U04bLGWDr2ADC7JSU8OHMnofxGWANMjYzCV4LvsnYro0apR9sEz4TCBhWmigaBsPwxG84Z2bdey1QPCkCnTiQ+OuZPT6IU5WJkfYzHPkaybH8XJwveENv1uEXczinKULmzAh9dD+qJl8T/Y8xRDv/5FmtNYz7iur8JN6pXa24T9n9KlFixFuf+UjrEFR+HGB8aGqDATFo58K9vkCQS5zkswJCNAKR3w10klm959kpmA6Qa6OPL39Tl2eNnY/qIRL/YOMUmOUEqVzmSNzRTXx9I9/fMi9X6+WclaUQyOhwLsIsWORgITSY4OO6CYJySEs+Kd1Qa90jIQrgoh37l4OUxDm6BcIR7rTD3/YmtbHMIJwXvltsm8ZAifeXVwPsWQNUqA6D/b2yzbJCpaH3ehSTeuaDAjRZHGqzBkSqSNqZuP2wuZeKRqqXfS0ciXIVi8UU0LZKHoeWnBsk9JwNWoeJhYiToeduImNi7//cFUeQcrlFuFwjfFKen2yOQi3+TTZXj9AKh/iDa9zYoo+x6lnADxleKXyL4YIFPU9cxrbs99dUov0wh4NSfNSM3gwfQRzdR5kkB1N7K6aDFav1tfO+gRsaFgmHmQMO8NvcZ2d+qyFxiJNvseYZIvJJwVJlEEyAKUkg7Smja1vtWTgttnHHwFu+yR3OUK9b3fr+aICzqEM1sIE5HgMf/ityIawv+oeI8yTAPaDWN4TQ4p3qRE4Y/m8hC2ApWW0xwLDyi8y2z9gAzOoK1R/fJP6jHZ9m7ZJ2afVJQ0Ltkce0FcS5VQ5UZIXmckLNc0MomSohS1raykA7CZ0Or10JB5JYkkisaDiXQlNJidl6ZpSiA4f7qmvJY2O3Do4LH5AZY4iS+GcgRymKXngcHl/f4zyRYyhfvJyfNaHFNG7w03ifeLkWfB3h09W0UB2NLJRzEWMYI/rau8D7yurizrnQm+mSbahsVS9ls6UwqobA8YNNzn8Ic0ziJiC6ZFhI7AVnl79Li9G4ghKkKEGd2+xNCoWQudcfLHQThcJQh1gy3YBPbm4dJplqEsxI1aYwJA9VWwMHfo462Ky6m4+BPdRHwDoK2kTXu/YSTt0R3H5ECLru/RjZvbHxECelsAdysvZs75vH5Y27MIcnCte1Y+xRBH7+C+nepm+bzA9mxrF2QIFRfsCT4p72k39a2UFcryej8Y/1y6liN2isaZ9MPLwCqOZOgBkydCBRF6YxCWzouXw/yLAwNYnpajzwEqfcgme7zCFTD9iiCG9hxRWlsFZ01RiDUJ7wkq39DfAt28lHqmZVtTbAGgkqiNptEkEdZErPVMfHyTtzu9DNWCy5+9BfkYe6tugwDbT7O241mlmSC4xPrrdo/w5VbQGDzIwRdm87ugKSqiKCdKyNzr+u4xRVBqvBIss5GHhvsif/uBgs5tFd/vI2deB9DO5RKYdKI9/TDA==","layer_level":1},{"id":"a3cf6748-e854-4f94-bdf3-8f4d9fc44a42","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Containerization and Docker","description":"containerization-docker","prompt":"Create detailed containerization and Docker deployment documentation for VIZ CPP Node. Document Docker image variants including production, testnet, low-memory, and MongoDB-enabled containers with their specific use cases and configuration options. Explain Dockerfile construction, multi-stage builds, and optimization techniques for reduced image sizes. Cover container orchestration with Docker Compose, Kubernetes deployment patterns, and service discovery mechanisms. Document volume management for persistent data, configuration mounting, and network configuration. Include container security best practices, resource limits, and monitoring integration. Provide examples of container deployment workflows, scaling strategies, and upgrade procedures. Address troubleshooting container-related issues, log management, and performance optimization within containerized environments.","parent_id":"45075f91-f7a8-4457-9ce7-afd81aa84742","order":1,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet,share/vizd/docker/Dockerfile-lowmem,share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-03-03T07:43:26+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"e7106f96-90d3-4c63-8d7b-0a6e699f26bd","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Inter-Plugin Communication","description":"inter-plugin-communication","prompt":"Develop detailed content for inter-plugin communication patterns and mechanisms. Thoroughly explain how plugins communicate with each other using the appbase framework's dependency injection system. Document the observer pattern implementation using Boost.Signals2 signals and slots for event-driven communication. Include concrete examples of signal emission and subscription patterns used throughout the codebase. Explain how plugins can expose APIs to other plugins and establish communication channels. Detail the plugin dependency graph and how required plugins are automatically initialized and made available. Document best practices for loose coupling between plugins and avoiding circular dependencies. Address thread safety considerations in plugin communication and synchronization mechanisms. Include practical examples of plugin-to-plugin messaging and event propagation patterns.","parent_id":"d05f2002-2293-4fc3-abb8-2d31fb7c6bf4","order":1,"progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,libraries/network/include/graphene/network/node.hpp,libraries/utilities/include/graphene/utilities/git_revision.hpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-03-03T11:26:31+04:00","raw_data":"WikiEncrypted:+VS3nPXgxjNRzComTBushLS5L02zjsVFvaKCFsqlKpfaDTTPhP96kOqBLeSiPQLmJfMOrOA/aPyYvvtobOnI+yTy5f4Y/9dCTolJoifXEZ5XGFZqDjDoX+djFBEuFlLpFGPST8HMi5z0Ch/1DOLnzXQnZlkaKIp93GltP3r4YI5EER18kAyvOB0UR1rZAxG8UmuZGRoOeXBu0QnM0v3Xce8hayEwp3K/c36ogR1Qn7rZRVjpgCnyg+JP2l6grJxEgapS9MM4uzsM+Ku2QJq3iBjKpNcAZ6WmWmyMNpd6LesnnwaUonLuQ4YvpjRnZtu2lxPpCCkb7x1aYhJNhyhJr7lZkv6hmSrH/NFcjzW50VwA6Em7zVksqvKRHnrksPvdmJB2yWPRJ6MP3Lh+1zBUke1tfZ7evrMKetz1YDTeUWWu+3agM6kRBztnYqRzt+Y3m0UZHdyGo4XFJxZ8qG37YiuKh8xqwnalsKBrw5H7/qRF/eFE5AsjH/YG7zcDUtzMRgM+ajOULwE1//efI2uZyQfmQBLdop1uIFPEMAx/NXkHp5XYHw7pMpqYjjQGCGrI0L44iup2Hpb3t2EGQk5rubDPVo1hYprbomzKYd+3Cn9x1PyMFfGgrIUGNlHUPaxRZU3GgOXGJZ5jZkp5NY54lmzHhkUsxFqg2pKZhTFPZdG2KZJVn3lPEwY9VgOTYSK1mBkHD70mY+1hbRVecnF5biyhKYdxF9EHBRQmdwajNqqPikD4ZQHJztBaN0+1XL1B3E0MJF5y3SwH4i5fqn0nlx3dv88Gff7qR+VqR10q44CaCKYB0Y6xH8rWXqhY615nAuXq/vxY266kyLPhPbI11pWeCUqS9lM7EbQBUlH0Nl2HWMEtF07m4WGB2cFFC0nl0ncXt+htNKg9FQwCluyVL57GanbdPVJAXZHb/Lf663Mvkmy73MHwlPsdOX9JlciDGL0hvKypGxgJx/YXIS9sRec1lx8quZc8pHsMEl8w6+hYdyViF1Wi8K5uNOW5B6dK0N8VxDbgLarfB0b2tX+9W157CYhERVOXIYc1wwhGpMgbzpfrrHixuoUZwQHK2Vu2pUtFiq1x8utSzkwTfO/utllIdTkjMcm/rCGus0j1Gxe0GNTxjpJY4mJjFYDOTpqF1uFBlFy3z3P+aDXUktOK1/GvaHAHKaT9S+4m4n5PSOzjMSnTs7tI3m6ed9yvWgyD5NXmg7WdzkWu+1bmGXD7FkAxqM1n4ftetysxyvLJfm6il0cF1wj/r/gsAR9rXYdeaR/4YT46kEbQCKJNJ5XuE26c7pc3u53eafEB73iKkZ5DgjEdZvjeZEnQMYKoAYgucfPlmF6PxJGpNSzGg7GUrUk8bgQoz56XfSi/UPVqHvBzirD+HOvO0BqMFBirpsqit8ryr1rcIsubw9x/qpnxm32RWo/QZ/J+KTY2WScmFdKTREIXfPFgt8L5UH5+ZiUEHT00xmtYq9T4uWDklpxy4dDFpwdgzRQC6kdKLgSopQ0YTkb0uTzHOGTIzKcj0Qu7MDmB3JZOfN4GIzaRugdUa8ia0oyZsYHKdq1xd9jg11jOya0autYoLgHkNYV5kzcMIYWAAx7AkW6QqbAvd0Q+ZkpTF1hgq+dt3fJ6KUHA9feV15PnROyq29KGCVOFMahYdN1R2Um2mkHNW2xlpNO7w2TSXzFhPuLJMLd5mAfIXWt/Nyq1qTOe5nEQ0HxtWCqz9MRP+JyTlBDOEXB6TH/VrA==","layer_level":2},{"id":"9ec3517a-5342-4ea9-9fe4-8422f1eaeb35","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Database Schema Design","description":"database-schema-design","prompt":"Create detailed database schema design documentation for VIZ CPP Node. Document the object persistence system including chain object types, database schema definitions, and storage optimization strategies. Explain the fork database implementation including conflict resolution algorithms, branch management, and state synchronization. Cover index management and optimization techniques for query performance including primary keys, foreign keys, and composite indexes. Detail the object relationship patterns and how different entities interact within the database schema. Document the schema evolution process including versioning, migration strategies, and backward compatibility considerations. Include practical examples of extending the database schema with custom objects and optimizing query patterns. Address database maintenance procedures including compaction, cleanup, and performance monitoring. Provide guidance on designing efficient data models for custom plugins and extensions.","parent_id":"c7f3fbd6-170d-4ddb-b57f-0bb2cc86fbdb","order":1,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/chain_object_types.hpp,libraries/chain/chain_objects.cpp,libraries/chain/fork_database.cpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-03-03T07:45:31+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"3a3b92dc-cf2b-4494-ab72-da2201dd7413","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Block Processing and Validation","description":"block-processing","prompt":"Develop detailed documentation for block processing and validation mechanisms. Explain the complete block validation pipeline including header validation, transaction extraction, and state application. Document the fork resolution algorithms and how the node handles conflicting chains. Detail the block logging system and how blocks are persisted to disk. Explain the role of the fork database in maintaining chain history and handling reorganizations. Include block production coordination for witness nodes and block acceptance criteria. Document performance considerations for block processing and optimization techniques used in high-throughput scenarios.","parent_id":"a276ebcb-3239-4375-acd4-369aef9806ce","order":1,"progress_status":"completed","dependent_files":"plugins/witness/witness.cpp,libraries/chain/database.cpp,libraries/protocol/block.cpp,libraries/chain/block_log.cpp,libraries/chain/fork_database.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-05T10:59:59+04:00","raw_data":"WikiEncrypted:R9i/29qd1Uv5xEgS1tKQyKa0Xuqqfm5cq0GV9nRcndmrxsHsnYwJpAewisCUpG2ti9GxrCpxWosUOZaN9wIJ7/8/157xbaOnn2BOhyeyJDPEjOCeYSYjSjv1dxVt5lXdjoBxvlwsQJBLdQGEe+5WerFA204eHfHpA1L7TlPStdeTCWWLb4c1UyCkfl0qGROdTrG24Ugtwamly3cB72eJqa8Y0UT6zN/Xn67BJN2Mb9Jn1Fof43nVsq9zozwUIXYsn9u7l+nYX100oi6s3IgFFBCC02LsQ0tXoMIPxErRXI/7ZZfndbTC9aoFCHdbO7/GqNjEiOgdFx770bV7xxcXgT9vNQNintlXErFbB22ngxi60g2UVCIg9xnH+btIMjT6YHA4d8bufdYzjTrwToCdHX4D3WTjboZrCLyaKQibYUtU2ZzyIl0TiiPKoHOrtH7tl80lx+6XNbW+OY3CsJO8Y9X5GNVE8RwjvyKhSOhulRat1nlH2g7qkGMfXh5qk7wv+vNhORGTMvSVqKk9FzIuvjBf8bh1ZV+ivN3/cowso7sJt+PEJeItobpVl0kbkbIA1E//L8B/3wx6XtJBtEUwt06O/q0ixorcjVJ7ds/aomEvKF/ONR8BEJvlk3VzayStOTePDLNDJWK1kCq7Ez5JYOt7dTfHlriwbWabMlltC2joKiBEdTvv9mgcoNK08pmAIfJxH8zH+ElcAeqo7sVAFMwUJgxFmCjdCfn3odsIzLNx292ctSPapViCFR5xvmdp4uYNLktrNKhVmlWdjoO4UZ36rZzEvwuQPx3BHgHvfhDYvAZdH5IRythWMDWyaRO6/MuRaHXPao+2gAS2NQP50XIP5VjsUtg8bPjqmlOZVgCFmqUKW+Q00TKf5uVd3nI0h/+S5YumBLr5SEavmBHAyF3/fHHcYUOkYcIx4+2Z7Dqg8dmCQuC5DI0ax3rx0KTw54S4ffeyTl4a0/36ropKo2SF7tt64JObM+A9U9eK1mZFFE42Io+3CyO0TpZs67jqXzJMjfuNcgd6AZfDwSYIv24U2w9wqukaqhnfg9W/Zil3hq6GkJjVanCF2ykO41BJReeKRAAR7We+HZWOw0yGSd8dvQJby0syzrN88Wvu03tWJkM7u8DE9BNhfm5zwzdWD1qPOwaqK6WllmDKFQoAPG20KC4l2bw4Ozj+MooTbf7JFQr0y/PCEbjW/gkb1O0mK6kYc/54LI0hk5sdDDJhF4fC7tF8xVh7RFSbwAuUViI8A8neO5ziGWn+LR46kVGNCM387vvl4E4mZg6tAAC0Oufb/1yQOYtXUU2Cq73D/99M4YRAoW8JT6R7zk/pbvA2ICZcjgj4cz20acCebzhvPPqGUt41NseNy4dw3mfemsqZle4qoHSOzfxb6Q90LZpuizTwkU10JtqswqNi7DhmeBIh10MP1KNFLjXW/z6weL1oHlXgBNlzQkkkwhbNERz5pWFQHGoFEMORjpCPrf1ZwhrYzeqtae5GFUI6eqzTmi8A187/ekxmNMFBz2RLz47T2sVKwAk9rS/CUvOTq0Bd+A==","layer_level":2},{"id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Protocol Library","description":"protocol-library","prompt":"Create comprehensive content for the Protocol Library that defines the blockchain's operational framework. Document the operations.hpp implementation containing all transaction operation types including account operations, asset operations, content operations, and governance operations. Explain the transaction.hpp structure for transaction validation, signature verification, and operation serialization. Detail the authority.hpp implementation for authority requirement calculation, multi-signature validation, and permission checking. Cover the block.hpp and block_header.hpp structures for block validation and consensus mechanisms. Document the chain_operations.hpp for blockchain-specific operations and their evaluation logic. Include the types.hpp definitions for blockchain data types and their serialization formats. Provide examples of operation creation, transaction building, authority verification, and block validation processes. Address the relationship between protocol definitions and chain library implementations.","parent_id":"2e9dab7f-8a98-493b-9d28-5efc04641da7","order":1,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/operations.hpp,libraries/protocol/operations.cpp,libraries/protocol/include/graphene/protocol/transaction.hpp,libraries/protocol/transaction.cpp,libraries/protocol/include/graphene/protocol/authority.hpp,libraries/protocol/authority.cpp,libraries/protocol/include/graphene/protocol/types.hpp,libraries/protocol/include/graphene/protocol/block.hpp,libraries/protocol/include/graphene/protocol/block_header.hpp,libraries/protocol/include/graphene/protocol/chain_operations.hpp,libraries/protocol/chain_operations.cpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-03-03T07:57:42+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"942792af-b86c-46d9-9f7a-22e783f2d6cb","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Build Helper Tools","description":"build-helpers","prompt":"Develop detailed documentation for VIZ CPP Node build helper tools. Document the cat-parts utility for combining source code fragments, cat_parts.py for automated code assembly, and check_reflect.py for reflection validation. Explain the newplugin.py template system for creating custom plugins with proper file structure and boilerplate code. Cover pretty_schema.py for generating formatted schema representations and schema_test.cpp for validating database schemas. Include practical examples of using each tool in the development workflow, command-line options, input/output formats, and integration with the main build process. Address common usage patterns, troubleshooting tool-specific issues, and best practices for maintaining code organization through these utilities.","parent_id":"adb37512-8234-4100-b362-3eef9ab640b5","order":1,"progress_status":"completed","dependent_files":"install-deps-linux.sh,build-linux.sh,programs/build_helpers/cat-parts.cpp,programs/build_helpers/cat_parts.py,programs/build_helpers/check_reflect.py,programs/build_helpers/newplugin.py,programs/build_helpers/pretty_schema.py","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-04-21T16:26:14+04:00","raw_data":"WikiEncrypted:zhwwHcEGfkuzROuyPGwGZAaP8JUBGCZQRchVoluTSwBG0F8TNTcA7NnVPcgD17bZ8tkkmKBmN15pV9qTETgIyoqoLH7M7WPfGtqxxySlrJyCUM6SfuR45v/C5WGemH+0hRlRLA0flEYfomMObFQbk5Yk+NHzIvo4JgCZLW5F0XN7DLQWn8LEfXvdWhYrpycEb2+gRUNqVLrMR4Lj9NZBJQro9Xc43t1OtdTxlnZzJErkb/KowYnn4nnYNDGxG9hIQyrHFcPMamMN8EZgZ0hCu2+dpSJriVuNhJjimoclo6Cw3pyOQAVdprPNkw2xEpbHhZQ+rmE3VZlXZ+MLkJTN/XZYKwiYTp2uKbNEPmGsQQ2LomqWACjNw8wv4WqiN7uh6Y3SVosPebV0G/ZcCESHnBvGtowAOOZYPRnPfpDmnecYGNdDURlmBbiLalrynqnRqKVeASYvVRhaPsQynz2xKpKXOOioDWeEmlzNcUP2D0WeKQdlTbEeVPO5aSdRnCUv+tX5viqMRFV/aZaStqyEbDFofDhf1JqBalT0wv/VNgNo8kTnAZFGDOZ7xz67uGXDGXqJn3n/4th3Mdab/0WAx8kakRGAUxfaS2vsxGHC+7QCunw2c0sltmNXkWX3iBbDI+DygDoA0gCMz/aHmapgS90n237xk3kir9qU9TcRxzWK40xmo7Sw6FKr9WMGDkhPOPoAQ1UyBvkEfiBD4MDJr2rlS6heSMFoZIx8/ywk7nCxEx+Q0GV5xO5lyoVZ7IcaG1qcjeCuXta5O4pp6D0sORk2+3lC3RyHKqAFvJLXJK4Rn0Qj8NxjSLxuPnrMMP/z4i53otH5KRVpmj7PDloLwxm7Se1nx7kDpNs35zcbLlEuIZtMbmAu66DwTp97t86Sb5wAJ/lIQ0mzUqFRHIcTAzQpuMVW8o9h0q6bHxq7EYSG4jTchqULmB+GCKY2k6PKr/7T3DauDBVkxIdONfkS9O9XGHXv2A5vsZxP7uwVDL3u08b+BhwDTNCzmwIX8o+rk/rdpGCvVgOqtfkcl6WaPW/IFKnAEIY8MylFSyU9s4XJ3iBGigwuXdomwt1cuBE7EUfi79p3HEL+wLR+AF4vVVMqJYqppha/U+KsYo4B6U+knbKdteYsN6s3vOK46UeNKZrWoIhf/ef7++6us2IsTJKuSlWUvT+AR/qvbLI8mYQWqGfA+Nb8+207lwvZfwI3+518nB+L/C0pagznPrYzjcKWpHAlmPmTmsqqLvjD4BjCKxbG2sCKnimWkVT0LB+hRvV7lMfAk7Gy5kdQSK26mxsceYr0fxKYmag8dKFwHkHvcghZVIR3IHq+9Ir+X7pUunTFXP9j1L31CRnGHLXOnqTcTVwVKYOpqRDDh+e1bBBdP0cL4At2JEOY/gLxBdDUSv45+taH1UJLnCwRwugCz4BpDWxszi1q2n5a6iwGwjrXT/hhAsY30aXJtxMwTMW0boSb16P/oT6iBHls+6cpem4KKYzDAMclvkD0PwTQVZ4jz1Mmkf/GzDs+VNNW7Kwsh5/pZ/6U0avqrOxjIwkpN6gsFPWWmd3ts2BukG8AQhcQyIbMqDtnfDPqrJoDT55qBSSxNiwZeT3Qd1vdF1BhC6WlQ0ypbxK+GA8206/RTjYD8gy0BauM0Subh2zzN2+NEXWDVhzLdt1B3E2JLbjSdF9G4rwdQk/c+yLBVhWZCKC1RV8Mjd8BCkDs5Codlql20owYs9eT2pD3qaecCu7DPM57z6cARZWlp9xRxrJdEeR6HyDqfUnwAI9CyvBUijzQaiJYOtmmYqFvKhFzcD+y41yyaKxk8e3R9kX6T35ElNuhNiIyEFCtrJZTVFRwpwAe","layer_level":2},{"id":"6eb6a0f7-ecaf-4db8-8e96-b6fbb9adc46e","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Code Coverage Analysis","description":"code-coverage-analysis","prompt":"Develop detailed code coverage analysis documentation for VIZ CPP Node testing framework. Document the complete lcov integration workflow including installation prerequisites (brew install lcov), debug build configuration with ENABLE_COVERAGE_TESTING flag, and the multi-step coverage capture process. Explain each stage of the coverage workflow: initial capture with base.info, test execution with chain_test, secondary capture with test.info, tracefile combination with total.info, filtering of test directories with interesting.info, and HTML report generation with genhtml. Cover the cmake configuration options for enabling coverage testing in Debug builds. Document the lcov command-line options including --capture, --initial, --directory traversal, --output-file specification, --no-external filtering, --add-tracefile combination, and --remove-pattern filtering. Include practical examples of generating coverage reports, interpreting coverage metrics, and integrating coverage analysis into CI/CD pipelines. Address common coverage analysis scenarios and troubleshooting coverage collection issues.","parent_id":"abc7d4fa-93e3-4e27-bad4-dccebc67d4a5","order":1,"progress_status":"completed","dependent_files":"documentation/testing.md","gmt_create":"2026-03-03T07:29:31+04:00","gmt_modified":"2026-03-03T07:58:43+04:00","raw_data":"WikiEncrypted:afBNJtJ3aZk89DVxR5d9RDeqHL3U6NoA9st0DI4LTXIzUcMK9XYdrEb7kcNNF2ebOe5aMTflQIyQgAuet3zPK3fWlYSlhrb/9yoQ1hbB+Aciw+CgI64PF+vpqB4eYrAmKkhAcqEOgV/FF55yM23uMAqvb9Z/lr+JFayGeqHwpdj7L51J7Wnl0aAYvSp1faj7jjl9V8nCzakBvx9H5mY0WebOJXfGwbHpcP8D/Cd8PJBG3tP1wV5vpWqcq3m82Rp2y4M5MkL8QwckIlUeXAXeuipXut1mtd/dG4lJ02S5BfA6u3OOAdWbMPCVK+eRh2c4OeFQ4a6VZJmME1kGb9QZcYWZHZhr1dQIbzUVfp3TMN3EaqApWe6c0Tn5EzZZ8BCgeRA+Uwru/SZlGzuubxEsZCAV9EGCiR0EOcR8zgyoeAVD3CDL1ZkAwayw15MMls36ftZ2zM6zFXjpqAHpYtc0q55I5zlZtHObgIMaWlUeQKhUnDWJwcaX2EYpZqYmCN9CkCipBBRBpophN31fXWWg8q2cJPRB2t7NPqfz7DhvL+3aou3opvuwj5jJeKTX3U2GyRpQMxqfKzW9+b45pP96rQ4fEzywi+nHG1n2MRU6Jo1PI4ELozxtwLjxoCMxJyMkMI9XFfJsP/nEojJWcFHo7u9NhKjLYTkbEakF0CjGMYfnLrxTB/O6wGdG7lyK3PdUuaSJjJTyKf1Vp08/wB0wyIFtNFg/8s/tpri1zK4iZc/Bt6Zc2d8RY4+FF9xL/RDkphrE6dVEe6P4YaSnxGpKQ6SYdY1nDxrAKnGvsK9ON8GbI3BrBZxF8ZKbwUyXgQkp2rL3od1j8O0vdf34foMAviRMznuO/4UBbiFNLwNDRFpvJAR/nlSKSa52g4UvsqCiMnt2/P5NSYIn/GTKwDCI0yaBcCpvZLI3lB43X8YQElrrHcic7uf2nZNVo/K32C8nQIjI6hZPEIAVbzHl4TylX2+JfdnGBASaQPXYhb/tKDuau4n4NjgSrvjDkFuh5LMVra0UBAqucbePEpSqIf7LIEf//w4uaJmJbqQWGapm4rbzVc5lEoGjyTqe0r692nc1oSfusWkYQjq/IY3Q/IHqpwoLiZznTSdPcBz+eil42dEswxmqLWADszPnMws13JluTHMZ86OiUGoHWz4sE8ElicQzZVSD8vDbXoELBw6p8tFNz9mP1FCHqqssUpwM1foFolaSINCcUu/VWXRL4woFkUJXXLWC1AUFnCvJKd8MI/cpVsMc763+JdIHKQvKPItNhA7n1DXoRpYLGehoeWviSQczj3CdUnj8IoQp/QWplKUbXIRwLrzq9hNQTGjG+pizqeUJ0sxmR2ROBMRQtujDzYV8wRjXFd7yzmw1ZUsy62iXSQ0lyo4wSPEKmJJfP/i0wXD+dJtX9yrKCTNQ7IMt+dtL9uDxzdFdz1/dA9posXWdzsdbRJoNvNglvGX3xEPvXmgWN2B/Bsgk/ZrwJ8tyfxh8ilT6OEc3GyB9gym7e+xHZpW6RzuYTXqm3WpbtiRXhbvIjDiU7aJJpGF31KcnqYWWJtIOpPM3hkf39ywxyIemnN6GNPBs6L12wwCoZPEFpGLrnt7JdxoSXOk+HABcoN3n/oSbp4o0vVQWFe0e06e19/yyyeSwyvhmNpXztWbTqsEWd3/hcbktRAShi9WWQGIHRFpoOYFAy21AhqUraSzkztFDvrcC/nxKtFxqwDX88NooMqTGTIkEeyh18hdVa9CjlgLTsQRSkdhfAkz0FYUpDsKeM9+baMGSPYnGNJEu6dFacKCZ4P76S60TJ4yMCyi26oqZ1ziP1zdN0Mu3SzS1/4hbMT9vrZBR5Zi3oxidPGbfBuoYrKZwWVGoAbXG8cJ670FI/w+nrOKFO+jVBjmHyRh3opAFDCGMii59qrEZ39P6tpoFvj+H7NsqLfPcEaFdRp3quQU4LEEzckJbTaOLws6sKZzmxGlIGDkdxa23SVbBFXAcGZXgMfOTK/FrAiStLhv36q0cXF9zVCeo1O9gvlIQKed3CclwXLZLWFUGBUeukFeBZ76k8fZhySfFazUazUZQYkipR1WNWRIj41AJIRre6lNM73UkReMEXqnYS+fCHnO/72tvWCoaPKh5bQ==","layer_level":2},{"id":"41500c19-82c2-4c0f-b9ed-e70bfdbfc5e6","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Transaction Debugging Tools","description":"transaction-debugging-tools","prompt":"Develop detailed documentation for transaction debugging utilities in VIZ CPP Node. Document the sign_transaction tool for debugging transaction signing issues, including command-line usage, input/output formats, and common error scenarios. Explain the sign_digest utility for debugging cryptographic operations and signature verification processes. Cover the JavaScript operation serializer for converting between JSON and binary operation formats. Include practical examples of debugging transaction validation failures, signature verification problems, and serialization issues. Document command-line options, input parameter formats, and output interpretation. Address common debugging scenarios such as transaction construction errors, authority verification failures, and network transmission issues. Provide troubleshooting guides for typical transaction-related problems and their solutions.","parent_id":"2328ccf2-46d2-4cd5-b887-81c71ab7e579","order":1,"progress_status":"completed","dependent_files":"programs/util/sign_transaction.cpp,programs/util/sign_digest.cpp,programs/util/js_operation_serializer/main.cpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T07:59:59+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"d507272e-6f57-4dcc-aada-4023c1a341ca","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Node Types and Configurations","description":"node-types-configurations","prompt":"Create detailed documentation for different VIZ node types and their specific configurations. Document full node setup with complete blockchain synchronization and API exposure. Cover witness node configuration including block production setup, key management, and witness-specific parameters. Explain seed node configuration for network bootstrap and peer discovery. Document specialized configurations for testnet nodes, debug nodes, and MongoDB-integrated nodes. Include configuration file templates, parameter explanations, and operational differences between node types. Address performance tuning specific to each node type, resource allocation recommendations, and monitoring requirements. Provide comparison matrices showing feature availability and resource requirements across different node configurations.","parent_id":"663a33c7-3329-490a-86b9-bcdf15178fba","order":1,"progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_witness.ini,share/vizd/vizd.sh,share/vizd/config/config_testnet.ini,share/vizd/config/config_mongo.ini,share/vizd/config/config_debug.ini","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-04-21T15:32:31+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"dc863b2f-2934-4ffb-9287-430768a8c26d","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Transaction Processing","description":"transaction-processing","prompt":"Create comprehensive content for Transaction Processing covering transaction structure, validation, and execution. Document the transaction.hpp implementation including transaction body structure, operation arrays, and metadata fields. Explain transaction validation rules including expiration checking, operation validation, and signature verification. Detail the sign_state.hpp functionality for multi-signature validation and authority checking. Cover transaction serialization formats and network transmission protocols. Include examples of transaction construction, signing workflows, and validation scenarios. Document the relationship between transactions and blocks, and transaction lifecycle management.","parent_id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","order":1,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/transaction.hpp,libraries/protocol/transaction.cpp,libraries/protocol/include/graphene/protocol/sign_state.hpp,libraries/protocol/sign_state.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:14:41+04:00","raw_data":"WikiEncrypted:pze/wTPA8hT9dADtWGlHVecGIju168riPHUw4TY8/AOhja4aeOzUlmfgdY/KTiokGkE0pwevgTXyU4//H92NNz2DvJDyylHUIIAgFa19IOR1rIcwnR+M5gYnWP+MfMyP9rJdHksUzaXlv9bu0L+nSwyEwxvRjUsxXSJzFBEFHqMkwXP+kKSmf2P5ac7NUAQiXV93Cqe+SJpTYieODHUA2aXvlp8c9CzuexfREJPFweCojE4iuz2MpwhzLDyHYWZ0+Oo13SyBMRm8TSYEiJJ1qEryT0ka1GRDrBNabqCzOK6uY1kcgMVU1jjPuzIozI89v9TgBpUe3ZUX2D/okuey3ZXKbQsrqjCWtXu4h/QZb8rYGL0z4J0n4KskmV2PKYbFtn4srZQu7EbpGVbjsDnBXaaURzTiBAn/5bNsIYm+cIxhaOEE0GSJWPZKvt9h0knjB7xU0AMvSOozrAlPI8UzxVBsdecMiFyAtTBrLnr25+mj3ZwaWngPIkUmE4QfDwFvVBktD5TvLYHH5fYgQ6FQEOqADFR/zowPRsBSgtdJ9Eb/rsHcEzSds3O4vfJPa1xBvv0oREt4BtnPPo7h1GW3BkQTBPCsCLRrdxXj7pn96rupr/KX+UZx+3o2WnK2p8s5xzHrxoZ9FQTtLMrP1QfdpEFyryeihlhvZrCXbyJ0kHE91R4y1JciNNxtI/Bjrh6mVBYmrKujPXiV5CFrRwoI2mH19Wti9DQS6W7gklFuAeemFd4jTCHLmR/CDXLjhJDffCUzHS8513myK6oVS5EH7w6YPaLheZxNpurE5ol03A8c/WxlMAXjnBxaf2ZeHj8uxa1EEM6YHmC9P5jSRuEuUUzsS2GRlFgZVAOID0om/E0ENC/0hYqwiXqX6y9n0EmcAgNlDJkUnWeNYJ0oupFu7tnzV85Ilx3SxDP4ea05c5oMYIfzSWji/XEPnZgnS/O9MC1xoLO1yNnHi+fYQCTlLY1nkz1d4gX6E4KMS0BEe2hiCUeZYF3Ve1o8UByfeYpm2dpWLCmdhlT93SxA9Tc+6H2PULFfOIr+EUDlgTwFIjJeGJARDD7Wv2Eq+POFmLHPM1FVpRzVCzAKsxnI7OCf4iC/EthL2PFmXmYvtkCvAvxwMgEwm493vGA2ADLGhz9VzIRDanfMsMnv783wuN+hvDAanYwmAbdNF/scEaa6o7YYzUlSQaAvJ69tNU51UvQmyiiKCXW4ScC0hZ79uAf0ch71hOj4u/b+KFez1SbDRZpKZRxeU0pm+ZGWNs896vkM3THcbIvEb2jp1FDd9tRhuoP5Pu6q9Dpx/wNYMV3VRE0XMIMwliEXXF/ZEjvZQSw6MJVwTNQ/T7UFKiwYPiWR7zu22AG747F3nrt1QQ12XPYHxupLZYDmpv313bFI77gWmFvQm4wKDhyr+8uPpOKb56paTtid6wBDN9/JGgmMGR7/oSz5cLuCQMv2AuLrUnmh9WKD4cydsTT0W5KNDaGRrHfnZiT88kkOALg/Qn0w8oNN2idlbOac//Mwluk7C0esxezBf92dkmhrQsXZ4LjPCkTjDkSGBbvMeU0JhEyVDtolDVSe8XLlbQRNkp31hO/lC1QhlvCzGrrmSgI32+fgI10SmRUU+tqWWL+USh7BGB/ohXpQ+pQkPB8krp6c+tkn","layer_level":3},{"id":"3cbc1a05-29f2-476a-8cba-56f20a1c95dc","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Object Model and Persistence","description":"object-model","prompt":"Create comprehensive content for the Object Model and Persistence system that defines the complete blockchain data structure. Document all object types including account_object, transaction_object, content_object, witness_object, committee_object, and their relationships. Explain the object schema definitions, field types, and validation rules in chain_object_types.hpp. Detail the object lifecycle management including creation, modification, deletion, and indexing strategies. Cover the multi-index container patterns used for efficient object lookup and querying. Document the object serialization, deserialization, and persistence mechanisms. Include examples of object creation, querying, and manipulation operations. Explain the relationship between different object types and how they interact within the blockchain state. Address object versioning, schema evolution, and backward compatibility considerations.","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","order":1,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/chain_objects.hpp,libraries/chain/include/graphene/chain/chain_object_types.hpp,libraries/chain/chain_objects.cpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-03-03T08:15:23+04:00","raw_data":"WikiEncrypted:WrtF4UhzC84au2vkp01Wd8VhZuevsmYW0MiRsMATJ1XvzQRUZVUONQBd74I+5hpz5lJT7q5FmmBA+o8DqqOXNjGpt0nJ0BAMDy5P46t2LJR/9eNbkssWxJy2QJkEwyAnWrDBJjJ0RtuHhzMS9XMXa1dC84o0NwHImEkViQDS7Rpsr2tEFtNFHgqhdd5Zjk+OTwvCho2N8LT8e9ja8cNKp9BMFrmvVAq8aF9GWvThumhCK2w2w5CyEP2RMR4PW+tBxGQJFYDPJFgz9pTEzIVaFbKSiCUnWq0ESj25uR6wVSNMSVgq7zRG7y8IIsgrqnhJu+KgNUrZxmwpxoAcsJ0hKFwNo2lam+HL6ml2/2LVFk8Mzco7PC0p/zgxbfQrRFhP110QNXkeT0bYlTVVlMypAQ1Kxj3NBZ1KLmyLLs12q1EsOjSWSgxN9YXmkrXz8yLbFNZYT7qGDIBSXHVviTp2McCAVwIKGOXKskF71GBPcjqo9pXktSpgKxx7qaaBMhX83pvC95fYpq2cJc75oPgeq9KZXR//fZQakWRETvbbLxccAwa57y57RdnEaBfd9daY++/BbkT3oRJ2hqnpXXUBr2uUme/yb0WIntz6DyjzY8xSE7izPZxRsPcc8RJUWILAy7ZprMZASzMlwRn6/Ky/j23YT5a1e4zoyyoHebXifIGG6ZAse1LtKwo9TNNOQpHCamPfYntDKJg50qHWmO6/bi3qavsAFO/yitivdZkArtHqC398p+u7EFZ37JVRbVzlp3qeNVvPsjEgx8fT+bkd3/qwS7xa/muLbLdVBoTsgfnvYr2G3Is+K4mnBYPu/aNEpG4sm7qoBWE7KLYezbuMRJ9+1Fv1NpvrivJxTSjDVwbC5IA+oCD6Pro5lFg5VkenktCY0G79VFuE35+CL+R7esWyfgnM7V8YjaQTsnBr4DmI49qImBb8qqVwyWze9Zyo0WzDrFg59V/8kW+9HBbrh+JqtG2KpXW0GziW4YZTFW4dxYKV2I/LPpCoOMIgeP2YWhpZIV2nrw9FY4247hiAvnJCk2Q1xqRedjgoTM7IuMBq6LdX6BJU6JkzxAw8gnYuryYKtVkenMBIKVCzTQhreo+0OAPufetVLpssW3EcZU1Nn3pPyvncV+MvelP9nELnHgIKy1t6WMpRIx+q/1FhnSFI7ADmVelU+ntYSPmrDe6HoziMx5djs3WbbfCK+IaYGU8lay02M8Q5NC/UpELQYtdKRC/j738pt5904KOmXsVvbw8wRYjN0hqZut9fMN5dgepehlMduVsqXgzmRRVvgbk+K+O3/mGV3qj1swdiR9lt4skvBPrmh+jR2ACCL+MNoszJHNrglzKIBSUS029Nx5J+0ERK2muv4h27pkx2WHp1C44wXmad8a/qI84yR6y1KOFmGn0SIQ+wsUuTxHA37pOzS1mAJiYqLVgGMS+GNG/ENsAWGLkUVSYZohLq5i645j24mmoIj+BLI4PdQaPAXvBvMR4LdiMovmjf73UFLlA8t2TZ+TLEdIqQpAYHoqDj9ZMNLKTFLNkg/CbbVyL4uZpnscLgQGk1kyWR+sMsjy3nG/rQSGm5+rxc+wfeb+xLIM/ekGSKxF6TTOyDLC+fgVMNyQYE+2MRVg/lTKABDNjCFctgYnFwu39sxnx7gLLilxXTx98QGOM/Jp4L4U6eZYSLwI1pK6arSKqy9ls8TCZmRPFZJb3/RO+YK0K1S6R/aNh5Bn40Y5/rp5kYCDptiseq1xWjbUyVaGjKF5jsAkKQuiMnsaSAdYUEJ92RtZw9ZGhHskCV+3pzqkjd2Bsr8NK3ocd6GiMEHrapMKB+oJpQLFVtXgeck1Xl7v9nSipIUd9sDgGZuJ2u8IOf8JYlKi/NzTcJMCgtBM12aT5PPaM=","layer_level":3},{"id":"62d0c2f2-7b42-424a-b43a-f16714a09136","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Peer Connection Management","description":"peer-connection","prompt":"Create comprehensive content for Peer Connection Management that handles individual peer communication and connection lifecycle. Document the peer_connection.hpp implementation for managing bidirectional peer communication channels, connection state tracking, and message routing. Explain peer connection establishment protocols, authentication mechanisms, and handshake procedures. Cover connection lifecycle management including connection initiation, maintenance, graceful disconnection, and error recovery. Detail peer state tracking, connection quality metrics, and peer reputation systems. Document message queuing, priority handling, and connection multiplexing. Include examples of peer connection setup, message exchange patterns, and connection monitoring. Address connection pooling strategies, timeout handling, and connection reuse optimization. Provide guidance on peer selection algorithms, connection balancing, and fault tolerance mechanisms.","parent_id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","order":1,"progress_status":"completed","dependent_files":"libraries/network/node.cpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/network/node.hpp,plugins/p2p/p2p_plugin.cpp,libraries/network/peer_connection.cpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-04-25T14:08:40.3684806+04:00","raw_data":"WikiEncrypted:VR5KHiCGBNdKELy8Scjin5u2xY+Dj5+IyYWoQiU3xOSz7PDUoqR7wxPwIUx3wbq0KT3hCoqZJUqiKiMi3flUl1+CUwwthoJnvOb5U7feLpBHGIw6yavTfsvlZuEq8CPGuoOyFZaa2zkf41iNsK9UAbImB/s2YTF4pbH1WKKgt9awjXj/R7qAKNipl6dmVpDWrhKgzgDfJbWOqKzsrlGsxUO28WQYyYcmScksnpJiwjTsD3saFG7IFi7VVDjVxRKQaCqKs7OCa4+S3T+VqGUhHCcREY5Xn+sXhqdH8p8E0iaRMLI9vdZyTIuvzW3LWaUGKTv65D2Lzzp2eHMlj9E7td6uviE/cj5Pik6HFUOSxXmd/zOW6b1SzsjYFxjN+XJt/9befLMAZIUYdsb2oN4t9lR7lB1whb7xRYQcwy7OpJX31HhdQJBU/vKFE6Y2d1lKy0NjKV10GIbqxvplHrgFgJWLwBVIUiR12phPS39TB8VhtAfO2NjDU8snR7S3yEFExIltcQgZV9U8BQ99ZXoE0aAUc1G9VBJHoZVW0s+tyzHONh5YzK0V9K8bGsCfkiEv9y210JMFnHtLLJbqvJCN9FxadIghTHs2dUP+GFfH+2w8gbWKXCqM8iwToAl3sVoyvFup8124WuorDQzeuSXYrCmX2LYqTUUoGOFGp4EELbYhi4jwZoiRH5IX4yqQQv5RTlHG5ZEL/66o1dh7+9O85mGPE6jcmktXn1Zy5WA3P+Kmohrh2yfUHvirvcu3s0C/7ynV852S+Dy1E14CjGsRbp9gu7WqBmrpjdku591o9MhM8MeDkUCouj9n0ayS+vWFaBNsEj13XqKQhXOaWBxJHb/umni2/GtC1j2oRHmKdmSeRYFGbYsAEoX+k8PMYXsiiuTPM/fcpYPJ8CkEQ/4k+WKKUhd/ax6mrsYFKWNN8Hdl8cNYxC2kiM22YDgzrVMwPMO4d4O58hm7AModQy2yGPHPPk5momEnrnYNTPIrXezQBIu7sH8nLitmLtL2B/rN4MdCBWbnPwgTVVPT6Kf4AjgHJHlvGbsTkIhatpm0ONSxoPOfZvcJS8ZKvurDw15rFPZbQK/DCxtNnk2Qe8dGomIoVI+p3+2kyR+4FyS59p47WVVXkpi82Cjgr5hn4yI94nCgdb3cZiYsXdcF6FlAraOXncYup3IuGBgvFRjFewtpz+GyjC8zFZ90nHRDRKxzedRJtYXXyMeCSeGK2bjVbd0aw3zJOGMLLfFITljkfL55/kkklDQ7awpEdLqbnbHZDfSRUzaCgJ2DpG0jkB+wvxs1NH+Pse5FNfroeo+mkEe36UCRyAZMJAUVWOr6ggYCezTYGhE5t7qcnlqRR63h++r0ib/PUoWndRrQcVRBKRZncQh8LlOrYsRexEW0pFd/toyk2wyiMCIwxIDV0FGaJw1amaRlMAsQAbH38hmBZ2rA4fj4o4Ain3Hk8n6lN4O43ArohURCp3aY9TW6QxYDOHL3sbfFU16pqE9/Ns7cynRqokDXJSx4p6/Y5EOY81pf6dAxQa9GAAEWIgpUzcgs3fUQUIHdpcka8ztUFCbZs4yGxCzYa6YRYmTvH4CsFHAPLUv+WxJLzlUngzb+wc9DEpx9+wKZgWL0rxVIjsBl4d+JrXlq/0VS93V46Sh6VxM2nP8PXQ5lbiT78sozgLME9ACR31xfMOAR/Uo6J52eq/d+0WEuMGCL18ZdJqKvkW78V4fIw5TEwujZIH4Uo6E1/G4fsDms/0UxPafQb0/MeXEksHu7ueSiD3Jp+0TMJGUQ6j9+hxEjL0YyzaXx052PCnfQiIPsScpmAWFhs8SB63TYTkSkA+LMnOHNJswfTTfVWC68cE0LTfaGqaG6/M/u2Kq28C/0fUzGGt5xNCKMwR6rRxqv+HBMefAXlACIqs2P","layer_level":3},{"id":"c4057b99-0cde-48c7-8527-bdc20b7ed3b8","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Platform Configurations","description":"platform-configurations","prompt":"Create comprehensive platform-specific CMake configuration documentation for VIZ CPP Node. Document Windows configuration including MSVC and MinGW compiler settings, static linking requirements, Visual Studio project flags (/SAFESEH:NO), and TCL library integration. Detail macOS configuration with libc++ standard library, C++14 standard requirements, and Apple-specific compiler flags. Explain Linux configuration including GCC optimization flags (-O3/-O2), static linking options, pthread and rt library requirements, and OpenSSL detection. Include compiler version requirements (GCC 4.8+, Clang 3.3+) and platform-specific dependency resolution. Provide troubleshooting guidance for common platform-specific build issues, missing libraries, and compiler compatibility problems.","parent_id":"c6c73cf8-a371-43e8-88b5-96478658761c","order":1,"progress_status":"completed","dependent_files":"CMakeLists.txt","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-04-17T10:42:56+04:00","raw_data":"WikiEncrypted:Lagc5vDVDWJKf0nDI9TGSA5WFJDHl+XgRFW9Z8nrevG3TCAhYIcpEYU1rn2otzoK0HrEK0jMDM9tEMjTdqSFUT2s/zXxLUj1fG7NZ4iHEEDHSkF3MnlEpA0VfBICYmIEysUPG+skLqepPVWG1KHiaLKuhh5y8KMFGz8vf9czZdpBEri/pDAO0R5RG/XkYCd7kytb28lf7+fpAZojUubG1v/nxZl8JrpQybJss1uZ23nrdEWd86bqk3Cw9sbqiahAhqPJE6VBMtgpmRW7Twshw9gjmP2j80RvHuwzEq8HYraiFBGULt2nREETqCLUSJVay9QdNPFHSmcgv1nlO749K6IOf8jvyJEL5BAqr1Y/QKrIDm7hHZauFcS1WEVy7L6mrCOWY7KUpONwVu+vOaFxTTsdNku0ALldwRVrXmGgQ/wjDv0Bn/PGUcOxgW7n2pG//giNon6YErHA7GEiUYieQFI90ZJ+5oD95pxRWJcMumNRJE+uxkCuFyklJfLs2SAfZuqM2ULw0OH1mNLsaUNTcbBDlArHPV78IzpvWoUgk4tcfConWKCNRv838iec6Z8u2rUUNZR0CDOL7K6RFjybi8Ma6P+3RIGnRE7ZozR893j6kSU/yrhYWxR0m1IewVwhBVq6o95yWyHoMTZu3E3nJeehkNDWLnoi+MOrsYflA/1XiMBKZS60IVPM47jZJkvb9DM+ZoVRcD9lgI7md5J8qRvODiXZARh/hLuyNZCKBLfQkl5GiF7F9F9fOuYavuL/Ejp+R77uxMFnjDgyeFETjfVChxb397xHwJApBA0Rw1Ibcn9X3cWsbgXJgKQixvjfXq3MwLMPYtRFI+o/I8iIS0k8JB8dHihnT9FoOMd4P3CK0HT4KLuS10bC8OG5b78Gv+zA/MwZVOoPkiNyyMKpCJki/1BU+0AW5ZhlyH6W34eNJy+hDKPYFHqxIJNyaNXlKWfY8IA6hQcS4TibT3iohEZixNXcfay5LNd6PBf30w6/zIkVmo1aWX20WM/kmC8aYo8cEpVEfHgwe6sEB8P0J8oQiM/eSBlEyidmCkzEae9bpUkL5zWjdfpbwvOZ+aHxxF+bbjH8bbYCU+Kuef+HNviE0s25BLZqPyeXbJmQvoTAzMRslswCGNNw/yAp6FHylTiRUi59aLjibzqFd3lfEy7fchb+nfgdFtMNW1e8mfi1F4TmMYR5xG72yDllegJCfzjpSCtlXellUaG8LIOrjJ/g5J5s9C+u9Z7AZ14gyUMWwAfpnldXvgup46MMQzWFnkdgtoAXdgnyWIzZPze6reTtZt6vzuK/H0+2JUGiQubKLCmJJtHAOAtMPeERunxT5S0bPLAaGC+dVPQ3Bus9B7CXAUApDxXCj6bbBPOmIvu1mcQRQFSywDqN14NSSnxCb4QM997FzIH+KO0Q6DfXMU6Gt+UcZTyL4slDGwH0v7zW/O2uJW/StZhZZNyCtE3eaOvA4KSKrn5WtUgUDnFScw==","layer_level":3},{"id":"994221f3-1488-420c-91cf-8465afe1cc5e","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Testnet Dockerfile","description":"testnet-dockerfile","prompt":"Create comprehensive documentation for the testnet Dockerfile variant designed for VIZ test network deployment. Explain the differences from the production configuration, focusing on testnet-specific CMake options and configuration files. Document the testnet bootstrap process, seed node configuration, and testnet-specific volume mounts. Cover the automated testnet snapshot loading, genesis block configuration, and testnet RPC endpoint setup. Include practical examples of running testnet containers, connecting to testnet networks, and testing blockchain functionality. Address testnet-specific security considerations, resource allocation, and monitoring approaches. Provide troubleshooting guidance for common testnet connectivity and synchronization issues.","parent_id":"457e128b-594d-400d-86b6-6e9de70687ec","order":1,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-testnet","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:17:07+04:00","raw_data":"WikiEncrypted:1I+g3iB8Klr7mBC/4DeKMdGxNIcsjOObmJBHKNrFsun7NjeRSkAIkIjgPvn0Ch7mDdGDRfXoAe1bUR41yzysNp6O11x/lcS8a3Ql+s83U89N3Kn9QIK305NUVjepHpGRwCLfuUs6r49/Rmv3IvLnxRoEHmOVl0wtpa/lG3+y1Ne14xPHgmgdT5ReiUN/nXcbHA14+lOVT3SEcda9cKCVHqeI43P0FUZpZcLbL0Hb/8Q3ae4Zsguwd12Hpw95G68CsyAwN1Rm2xgHH7yDcTt5DjjL3XZq/H+YzSdgfFP+TLMsJAx4pY6R4M+6buO8lD5l3FFIQ3FqW/m8g7uM0jnK/8tbFSNYlPMJC1obXfxp0pVqUiYPm85iShtC8nhm/34/TVMpQqFGygDjckU7XuEi07HaP3hTRatT76OMoEXTDLpY232KsbsQjVW68uRk1yj+GQiMyb7g2BDZpxuY+P8Iu3o6DBn3sBUhF43BBVAJwKVoj56yKvSppF2SZfpScCkboybaiHmGwNGUoslVe/CgR9j0pv+uIbjmL2k+XefbYPqCW/DAFQD9YaPMLUX0rkDAGbiawu/EaTAXnYzCzevAwaBvaMimlEHB1EfzGhFbYsFJmwBz9wbcxtE9pPvkbFrzA9Rpz/eIVq7Ufg4lohlimnyu8OW9bP3a5hJML5Ul5tqAr1HfMAC9M5HnAzXqCnYYahVRIMMLjxVechrrwwfEDMHOFNxJmyWQ80unmDR5Dq53k9DL5jP6H6CB5r0z7U4mIMLp3E9yNZGY/1b2/XvcZJ/BWlpLyvfp1XVv+gQcNq7hAsIpyAq4XzBR3Yqlmgdfk2I3qg9AblCrpWwv9mZpvEFcEj8uTq7viBsiX4JurXfPsV79aRzkw0TExgPJV3ZXzglvZ1a49zfz1EcSqU42n68/5+COjjdk6vDvU95/6EoxQBb9zl7eOqluTjQ1R3vDbRKM6OJhrdgMS/nJD3qPjJPcnfGJxGmu5HjqHZm1rk/pqOg6NTm4jag3v1S9HO59r1uPwJXYh3p7tbUOlMYw/chuuNkmcsy6Uah+OKS/uLF9mgqmEey4XnX9U3GJhKy6dHYCUmi8IE4zgP2tWRR1dOX+pgluqLxW7Ub9RyuZ0KgsBEOBmJh5oNrmF602sSudrZcDN22O6PWNwKzukWJrg20wj+ZlZ5j1Hi4AoXBe06kKqLIPY2C8J7Sbra0PDHw14W9H90rpWsI/zOkUKdbcmrAM8x3wt1dBbFIZo7d7SDSMHqPo+MILMlP/cLh4e5zuOQolQhEsJkYT7fnqc3jAoOVSPoMpONhu1RcYpjX5zrVMMd/oJU/H4EVO421T6VMr5aYLgp7gVk6SvcmFXd5Q9NAIi5xge4XsGY8op5iz0Tr4lRrAB+GdneB9fiIOYJEk3L28A/kaWibKkbNe6YOBKCW86vLNQw9kNl0+1NwgRmpuEzxCvt5l7u67gfqHymyp","layer_level":3},{"id":"e532fae9-5ee9-42b4-88ac-6d3acc997889","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Reflection Validation Tools","description":"reflection-validation","prompt":"Develop detailed documentation for the VIZ CPP Node reflection validation tool (check_reflect.py). Explain how this tool validates reflection metadata for blockchain objects and operations, ensuring proper serialization and deserialization capabilities. Document the reflection checking algorithms, validation rules, and error reporting mechanisms. Include practical examples of running reflection checks during development, interpreting validation results, and fixing reflection-related issues. Cover integration with the build system, automated validation workflows, and continuous integration scenarios. Address common reflection errors, debugging techniques, and best practices for maintaining reflection consistency across the codebase.","parent_id":"942792af-b86c-46d9-9f7a-22e783f2d6cb","order":1,"progress_status":"completed","dependent_files":"programs/build_helpers/check_reflect.py","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:17:31+04:00","raw_data":"WikiEncrypted:bzyetvPZRDtDTnozObvREtrhIrVNlzR9GjOxDARd8qaPKEK0AkNVEuyEWFfIrzjBn8DY6shjGjbqn7TVEpFIluO//1stc1a9TeIVJ9x9W8GnhxuSgajiCEqcxRq/kcWqzRcNq+G5PBS2Vke+Q50oFUmdFPFUbshtige+XHhAM+vr1VbcBaNCvAUnkMSy0cxMpdfxTVp6Lt2BW7voUFp5V5v4wm+eGDYDNJaR/hahDs2WNVGZLd5R0rgYfezTRSEExKq7Q6et6AXVy+pmVgjjZ8ZlGuiO0PQUrn8+34AQSx6pG1b2AZWeaLkhKX7nsekKrRfQhE8xHLo44PBWGtCeP3R+0FPsvW2qbTMUKtpZzwUnfEGZKLte10pyWg39bdvFi7yVl68CABfWhuGT1/bcj615AJhU1WyQObutow+jFnlBjYThqH3JssNmHv1sqy/vwX0aD+YYIftEC94eF7GLoiFluSmUz/f0jk77xwnNPi1B5b3Xp8OarYxWlENi1n//v1POhwuOiylv5EJC8A+vt+k3lyM/E/fLYsZsbN3dxZK5D3ysSEpx5bybq+EOSQCTsMFIqUpGc0keJMdoUq8tLhA8T0ihnlvY3IHyE0Ekojgbf42PCqR5UWjQ2UMuT4qse91Ss00aLjiozuB5ncWKd411zVc3w+V/RuIEOgA7CrShgVwyKQqJY79EvjliATv5Kh4krN0OFZSA5l2BSXKmie4wpSrsKPK0pmDxFlfeuKBCurgkt6vPrUYKtmLy4etO/X9W2BMiMkZQXJSTaIt0rCK7dCPCmeE975IT32alaUaDIlZnBEjvpBqkVFN/Pb046CjE33AdgDHbXQg+T8aNRvOpYZMal3BCnw7IzbMMlG3rawYhXmnXggCxRFexufLtLWKHkxRARivsT7EHcredBAeoSt26ETGMyGZ/Pop47RzOgk0kKCaT3BCAm/I7wZlU+XgnStRjYuMf0wJKf8P8SChYRpK/cUWIlepMtHy6/8E5fkFgrdv5SpyhUoF/wqEHskj5jLC0ZmIcw2l5LrYcd70U2s49AdI4uIuiH4ItRGiqN98cImdA2ryU2izjj9Xde5f1vqBBQpLowqdBNH35QXJsxqIb1RE4+bZ2ySAj7LtV4SPUMffW08rQSlhFImRB9BnWYdCK0Utm+7t/BahAZTEI7L+yFhkq+jj+fdCJzkhzturXGB+OWE6FomYdiD8MYo6LPDyGpfuE8zHe5JoKPFzvp3pWPwxYn5UpnvRVwoOVXviLY2CQOMVLCpxkjXC0BQlrZ7377iK5HtByix3XosgFTKsVppHbl0RdE5iWZVm5lrHwDWctVdM1iB/+tsRrwUpXMUGWYeLvUSVx9b7cJdT87st9oQ6rAlcRyjeTqam5QFb/B8Vukl73nWFLQf4UJTFQyjEGTfvF306mXzZLoRkaeMZN1irqzHCHuS7d9c0=","layer_level":3},{"id":"bae46ace-641d-4b70-a7d6-836ec7abd500","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Snapshot Plugin System","description":"snapshot-plugin","parent_id":"94310041-e18f-4061-af9b-f8df7dca0154","order":1,"progress_status":"completed","dependent_files":"plugins/snapshot/plugin.cpp,documentation/snapshot-plugin.md,plugins/p2p/p2p_plugin.cpp,libraries/chain/database.cpp,share/vizd/config/config.ini,share/vizd/config/config_witness.ini,libraries/chain/fork_database.cpp,plugins/snapshot/include/graphene/plugins/snapshot/plugin.hpp,plugins/snapshot/CMakeLists.txt,plugins/snapshot/plugin.hpp,plugins/chain/plugin.cpp,libraries/chain/dlt_block_log.cpp,libraries/chain/include/graphene/chain/dlt_block_log.hpp","gmt_create":"2026-04-13T15:59:14+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00","raw_data":"WikiEncrypted:aMBX4tyQy9CspId6SOjUsPjDbWaE0XwjiYFfJC+6JmpoDChB3ZowO5dYf5bnEbW/owWEY1csO33LOVGSLpEpLAsElEIuL6651OxIlbI6Jx4VJMJygyPsMEb3u2618Hv1nZRF8bM+TfiU1NGhj29Hy0qd1fqE69rQbBWKi5dbhQ24IcpaQVxcr0jwtHYcNlyu3iyr+9efIBgOjrjiE7LLTo3xZdd/DdoxmlNKubXzvigx6D9XEAAnLhDIB005vzlSCgUUY/Ppn2/LQLy/XzVRUUQEJGgS/qkU4LEGFtrkccZHFxRFuQH49utQcrQxi4E13t1lYtnAMXvvMMsUwxzXkgZN9ZVN2LgHhZFGalEKc2X5wmxDifby1ZUBqZDggbHX0T2aFuipuNWfiL8abtIj3TvFw/pHSkkZlOtI6LkQ8cFVhj/mAxnupALfl+r3dKMqv+vEafwqY52NhL+JBgNpTnOtFQQ6pZ/c1OdL4KgC9NM1Re32QpCuydOuu0aKaSttxMbIwm5Wwv7ZFicZqP8X1McAsIgdu1euoK/6NeSIEivw8Kf37P/HJVqp7qEGyNo97y4HDiL5ZzYvcIt21K90lZLvyKOgGI5nM7HHmwGNM7IN8WmXudc+IrdhjMsk6uWmGejeYluvYHQoa7x1NS1eZHB4JizJB8FiVTKaV7rHTRYK91Ct2EiWahiJMTuWyvVUtTsftMMnFrV8A8G1w4NtnRUBoZd2563YIBJmImKZvlVp1vaiXlOvUBmExXMfl747MRYnjdRKYTN8M6Va++FsqDh8JbAKxMaoD55xAEXuxMZXZK5iossuDjRrUo1KbQgR","layer_level":1},{"id":"a8402db0-6fb3-400b-bc48-8526e1f63784","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"DLT Rolling Block Log","description":"dlt-block-log","parent_id":"9431a609-d1cc-4c97-aa40-e1b832bbdada","order":1,"progress_status":"completed","dependent_files":"libraries/chain/dlt_block_log.cpp,libraries/chain/include/graphene/chain/dlt_block_log.hpp,libraries/chain/database.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/fork_database.cpp,libraries/chain/dlt_block_log.hpp,plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-13T16:01:33+04:00","gmt_modified":"2026-04-20T10:26:23+04:00","raw_data":"WikiEncrypted:s2jjuqSQeKwD1hNHHJ9DR2MPb35AgwzTacHpcPL0OtJB0zaRNLYJ+orR6pmHUkGhks1yVrOPHhwOHdr0evYd0xEi282qASpCMeLKGxgeabO4wWJCefkdwW+00NAyLKPpF5TRyYZ+UwGTHAheIXwbFWqT9C+s+LA3IYd0iPIRaYDPXsWnOaxlFuByDTz2fGIFbzQbi2OBxoJs3dFF/ZA79XxaWyIxsn31Q00d4o2IBZ4Gal/zej4WgSrxFocEkfqYak6Gd82wv4w3Bt1lpmxaQGZBCli64gzqLG3v8RwIeE1xlaE7l7Xm8w+X7DvW6xbTpLre9hHx8RA/CZJSv5cCxsczw74XS5u7Y7TrwWgbgG8JL9Hzy7G4Q8cYCn7D20vgTK6jK/2BMyOJ5dd1NKC7otss80YqCsW8wtcpotteMqBujxThE3A8Wwl2EEWcUnjQ83BDUm+tv5h3vf0pG7rcDotJivTCSa7JvigtKWF5eqfpmOrCa9XoR+WHilZJG+mA9cWdpYZ0Csd8sAzDqyvvr5giVSaKFYQccNORBfPhc3M=","layer_level":4},{"id":"b7fe4b4f-02e3-44cc-8aee-b49b528e6f84","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Emergency Consensus System","description":"emergency-consensus-system","parent_id":"dc4fc4b1-8f74-40b7-9ff9-9e3baa576461","order":1,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/config_testnet.hpp,libraries/chain/database.cpp,libraries/network/node.cpp","gmt_create":"2026-04-20T06:57:07+04:00","gmt_modified":"2026-04-21T14:58:41+04:00","raw_data":"WikiEncrypted:yCC4O4QQiwfuc1LsaLvGZSv7iyGIp30QuTXuQp4YbjBPkP2yi2DSamCQ0erkARNQdFUVyIGCSLZc9P70aEvXU2XDlPi9dn8dxZ/3E7hfD7l8VSySXrg3ONRMw5gixEiSYtQ4qgAlp1kaZpLECZqtVHhhBDsmmA1+uBVR7U0iZY6dUNL8LK2WMd65KfmNdbM4Gs9dejUyJgNkxT/xr1Tax/V+2IgVqVpyPB4a6a9DVSAKXWHOU+jJnn4dPNrlf/gNXL653EZ+A0q0bSTttif9xGbjQWG9GfftOYnmeK2d1GA9enmwE92RCdxuID0mPi4J0JraL3Sdkw3VXUpljXRzXSVBa5Mu25FQ6zYhiimMZ7A=","layer_level":1},{"id":"75556906-e1ce-4720-984a-3094f741c8aa","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Architecture Overview","description":"architecture","prompt":"Create architectural documentation for the VIZ CPP Node system. Describe the high-level design showing the relationship between the main vizd process, core libraries (chain, protocol, network, wallet), plugin system, and external dependencies. Document the modular plugin-based architecture that allows for flexible feature addition and removal. Explain component interactions including data flow from JSON-RPC requests through plugins to database operations, and the observer pattern used for event-driven architecture. Include system boundaries showing how the node communicates with peers, handles API requests, and manages persistent state. Document technical decisions like the choice of C++ for performance, Boost.Signals2 for event handling, and the separation of concerns between different library layers. Address cross-cutting concerns like security, monitoring, and performance optimization. Provide system context diagrams and component breakdowns showing how all parts work together to form a complete blockchain node.","order":2,"progress_status":"completed","dependent_files":"programs/vizd/main.cpp,plugins/chain/include/graphene/plugins/chain/plugin.hpp,libraries/chain/include/graphene/chain/database.hpp,libraries/protocol/include/graphene/protocol/operations.hpp","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:32:30+04:00","raw_data":"WikiEncrypted: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"},{"id":"2e9dab7f-8a98-493b-9d28-5efc04641da7","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Core Libraries","description":"core-libraries","prompt":"Create comprehensive content for the core libraries section. Explain the four fundamental library layers: chain library for blockchain state management and validation, protocol library for operation definitions and transaction processing, network library for peer-to-peer communication, and wallet library for transaction signing and key management. Document the relationships between these libraries and how they work together to provide complete blockchain functionality. Include architectural patterns used in each library, such as the observer pattern for event handling and factory patterns for object creation. Explain the separation of concerns between libraries and how they maintain loose coupling while enabling tight integration. Address the design decisions behind choosing C++ for performance and the specific technologies used in each library layer.","parent_id":"75556906-e1ce-4720-984a-3094f741c8aa","order":2,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/database.hpp,libraries/protocol/include/graphene/protocol/operations.hpp,libraries/network/include/graphene/network/node.hpp,libraries/wallet/include/graphene/wallet/wallet.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:46:01+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"2328ccf2-46d2-4cd5-b887-81c71ab7e579","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Debugging Tools","description":"debugging-tools","prompt":"Create comprehensive debugging tools documentation for VIZ CPP Node. Document the debug node plugin functionality including state inspection, transaction tracing, and blockchain state visualization. Cover transaction serialization utilities including sign_transaction and sign_digest tools for debugging transaction signing issues. Explain network debugging capabilities and peer connection monitoring. Document performance profiling tools and memory analysis utilities. Include practical examples of common debugging scenarios such as transaction validation failures, consensus issues, and network connectivity problems. Address log analysis techniques, error message interpretation, and systematic debugging approaches. Document integration with external debugging tools and IDE integration. Explain debugging workflows for different development phases from unit testing to production troubleshooting.","parent_id":"423ed32e-852d-4f0a-a4e8-aaebd7c97483","order":2,"progress_status":"completed","dependent_files":"plugins/debug_node/,programs/util/sign_transaction.cpp,programs/util/sign_digest.cpp,programs/util/inflation_plot.py","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-03-03T07:45:42+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"613abe94-bae3-4839-b224-1b7c5a93bd9b","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Docker Configuration","description":"docker-configuration","prompt":"Create comprehensive Docker configuration documentation for VIZ CPP Node containerized deployment. Document all available Docker images including production, testnet, low-memory, and MongoDB variants. Explain container environment variables, volume mounting strategies for persistent data storage, and network configuration. Cover Docker Compose configurations, container orchestration patterns, and multi-container deployment scenarios. Document image customization options, base image selection, and security considerations for containerized deployments. Include practical examples of common Docker deployment patterns such as standalone containers, cluster deployments, and development environments. Address container monitoring, logging configuration, and troubleshooting containerized node operations. Provide guidance on Docker registry usage, image versioning, and update procedures.","parent_id":"a3fb1343-15dc-4495-a972-0870c4a88b85","order":2,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet,share/vizd/docker/Dockerfile-lowmem,share/vizd/docker/Dockerfile-mongo,share/vizd/vizd.sh","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-04-17T17:31:31+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"fc50b8d3-21de-4be4-9588-b55ac8b0a143","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Cloud and Infrastructure","description":"cloud-infrastructure","prompt":"Create comprehensive cloud and infrastructure deployment documentation for VIZ CPP Node. Document cloud provider deployment strategies for AWS, Google Cloud, Azure, and other major platforms including instance selection, storage configuration, and networking setup. Cover infrastructure-as-code approaches using Terraform, CloudFormation, and other IaC tools. Explain load balancing configurations, auto-scaling policies, and high availability setups. Document CDN integration, SSL/TLS certificate management, and security group configurations. Include monitoring and alerting setup with cloud-native tools, log aggregation, and performance metrics collection. Address cost optimization strategies, reserved instances, and spot instance usage. Provide disaster recovery planning, backup strategies, and multi-region deployment patterns. Document migration procedures, blue-green deployments, and rolling upgrade strategies.","parent_id":"45075f91-f7a8-4457-9ce7-afd81aa84742","order":2,"progress_status":"completed","dependent_files":"share/vizd/docker/,share/vizd/config/config.ini,documentation/building.md","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-03-03T07:46:55+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"3af1ac69-c370-40d9-81f8-75e77fba98a1","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Custom Plugin Development","description":"custom-plugin-development","prompt":"Create comprehensive content for developing custom plugins from scratch. Document the plugin template system created by newplugin.py and how to generate boilerplate code for new plugins. Explain the plugin class structure, required methods, and interface implementation patterns. Include step-by-step tutorials for creating different types of plugins: API plugins, database plugins, and network plugins. Detail the plugin development workflow from template generation to deployment and testing. Document plugin configuration options, command-line parameter handling, and integration with the main application. Address plugin testing strategies, unit testing patterns, and integration testing approaches. Include practical examples of common plugin patterns and anti-patterns. Provide guidelines for plugin packaging, distribution, and version management. Document debugging techniques and common development issues.","parent_id":"d05f2002-2293-4fc3-abb8-2d31fb7c6bf4","order":2,"progress_status":"completed","dependent_files":"programs/util/newplugin.py,plugins/chain/include/graphene/plugins/chain/plugin.hpp,plugins/chain/plugin.cpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-03-03T08:00:21+04:00","raw_data":"WikiEncrypted:VrTOMK0P24YINQ3w81YokeSPoB5X9Zo/YG1ok/2a/9ryYLsqc1VARxnFCL4h0y80V3hdIQYc2nWoxIlKRpkvalc7lk5z+JlJ/h/qV4B6VpDkk+7D+iI3Z4iiJ+aP+fnnzj9U/9miQtCCYqlIsgWw+M9ctNXxnyPRWq6ZFHOXO8ReBDq830QA0iedXPe15iArFJ0CpRhfTLTTh9ALhUWxyPZRIZcV2qFU6q+pSX3xNlG5GtLnDcpg9SthmqU/6DxfF0a/GwjHlA0Qm5Xf+F+i4Bdbvby/N9F61bsAtP6CIYEEHZLpvZ7bUxWipx6BT4CGRgByiPmQ39OAPt4yyHIaljAbblr55afTAwZrUbm/zWPAE/pOToMuqYS73Q6aDy9pnGPyS7rCRF9EkKJFcUNHl5hDCnShN+8gSxwHBbKCQS/XR3jbcnxP31XcNG3EM+iT2BUM0KL5nyDV7vLfXXzCeX5cVikVB4Xvdd+GxWgmynOSqmhniOSVBSDu72nUH5kJrVNHoq4Xz1GhNe2cJFUTNkj4PTWcJssbQpwkn+9d9n7cvrMZO3AXrXCluG87yDMzBWORt2Ea0c8YkAiIjgVQlJJwhagve5TCBW7UzjSk6V41rVhKTEM7lCXWLy/yp7YpGIfakUS7Lo/hCeMT/WyMLWXmqKUvfEnAGQUp6mO3rRRUZBCbNkG48j5RTa3tfd0ak0RCGAgJNjiGRso9vwW3Jcy2MDZmKhQmBrhDQU+VTIrOkUnE6BBsC19VAj5nax9ACH+hFBfL7DVYoQIGZQWp1UCDJ8KlWyhVOtYYCq4P4NYjpZTqjd1Vm4RASVSfB0H+7fXJHEKaB9G/eXLp3jG1nbt1IKwDLbT9PpTNnIeF5JChqi049/67JCP4z0rbSq8QP5NrL75g2vXzybKuUtBIRlltbRFisNBnLGabdSJSFZ1IhgJOrOeLMYi2QlJho/MC0Wj47wyZwfdQDYqPaKXRBXQf8g0cukIk1nsIzfdnkDFylPauDWhPeJzDDoj+Xjur1CqrVQgeqxTZl7F5qLt9zHcYMBKkKTGe7HXcBOPiBNyiqDaBxvSLGres01tOjl9CLdct1U01YH4NADG9O0zSpORIsSwTPiucTKNwtQK3KhLpXkhbBHtNc45Yqx96Ok8aKTjwFe7xsSBzPFPdzKDgYzK2O0wbdd5cXeoKtUIn2wloznUviwRJIA9vBh7DtFIUZZgubozRwhs7h3AQ20bM/3F74UthcMhn3AWW3KvV6lwe2ZAUufnBvtPcNQJaJuIk2JPwxkm6TgWeb9GjBtMUaFWYRbw5a5qPyku889Fa6+eB0DrWaDsAPZC01H6k847c3XKGxo/2lCbVnGbNeQC4oAmm677HgDhYaI/Igx75b19V1tEOkUDrxbKeMW+zH+M2XVjD0XvnmpZXJORM9byRnixT9WBsPniMEfMc4Wz6cl/LWi+j1zTYfIB3EVLEJAkZwwtMmwaUvaE/3QeeOrNl6PeYpaFmom2Jduvh1TrvsgC7qp4ii/vL6o76+31OePjzmCIY6ELli+eSVt8H4nqRSlcT541ZYf8jchQUrKXuMk1mtV1oLUgZeW0RZkQx6UN/3aqbbeTypZmueX5+evi4WFejrIPWU7EN0NFHUkZlAql1SXbK3nQ+aFAFVOXeafevdvZpRjQaS0j1idhirFDc/N+POguzTwbVsiJ4x1WByRcs4EuuSUTgWZeIxZLyQ5xd","layer_level":2},{"id":"9aecb517-2693-4400-8a4b-c6b89426c243","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Security Implementation","description":"security-implementation","prompt":"Create comprehensive security implementation documentation for VIZ CPP Node. Document the cryptographic security implementation including digital signature verification, key management, and secure communication protocols. Explain the authority system including multi-signature requirements, threshold calculations, and permission validation. Cover API authentication and authorization mechanisms including token-based authentication, rate limiting, and access control. Detail network security measures including peer authentication, secure connections, and protection against various attack vectors. Document vulnerability assessment procedures including common security risks, penetration testing approaches, and security audit methodologies. Address security best practices for plugin development including input validation, secure coding patterns, and threat modeling. Include practical examples of implementing security features in custom plugins and extensions. Provide guidance on security monitoring, incident response, and security update procedures.","parent_id":"c7f3fbd6-170d-4ddb-b57f-0bb2cc86fbdb","order":2,"progress_status":"completed","dependent_files":"libraries/protocol/authority.cpp,libraries/protocol/sign_state.cpp,libraries/chain/database.cpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-03-03T07:47:20+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"80798d0c-b974-47ae-a4af-44f35643a127","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"API Request Processing","description":"api-request-handling","prompt":"Create detailed documentation for API request processing from receipt to response generation. Explain the JSON-RPC request parsing, method routing, and parameter validation. Document the database query execution and result formatting for different API endpoints. Detail the webserver plugin's role in HTTP/WS request handling and response serialization. Explain authentication mechanisms and rate limiting for API access. Include error handling strategies, exception propagation, and response formatting standards. Document performance monitoring and optimization techniques for API request processing under load.","parent_id":"a276ebcb-3239-4375-acd4-369aef9806ce","order":2,"progress_status":"completed","dependent_files":"plugins/database_api/api.cpp,plugins/json_rpc/plugin.cpp,plugins/webserver/webserver_plugin.cpp,libraries/wallet/wallet.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-03T08:01:46+04:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg1JYzeCsCQE5DuJT41k9RTGrPgA2abBsNlRj9b4XM+jkw4/9NpaPKF6EJT5TeM3pEGtAXs6fmJFpD/ClSCokjO5iH688bbQoqGmQTvYhz6YFrqi2ZwZCgLZqxXjeQ+3tTxBnymCnZxB8FG4ZCYnO/aM7mVFF+wX7cs8cHpaPsXcOfr6Hd4fzmo068z3DM7cGFEXM5A9ls1NnArh155cTf2tueq9UMQkcnntwWzMc3neifSA8s7zCMMuRSbFSClMbY6V9dfVNk5WdOY7cmVE3DUCVinPejJUo5YqsnmY9dctLkvnCjD6r/kkmzQGUdQwKWL//akcURyfe4GYPSjtIZ44ZT/CLrBfKXTw7lan46TCZC7F6qfHQ9aadN3F4TnU5H1ujcRcpThzxdMPsuZ5BEQn14HqOBg4t1kbtlKTeiELTT55CEJBjW2rFbl+U9FB08CuygiPBZllXzpMe0RU4PDD9z79SDJBWHgOSd5WGX1YGQkYKq8L4nuJtoWQlrZ0BPAWIbvneiGiA3oNibLVvbq9BAn3NLuJI+AHJ3loWhzJGAZn6YE/6InN+lcFAd947H4Pe35OluAh6wFSB+XAcNyhKupdb5VKxOSe3opO5Qc8am/tofA8ZU9WYaCGGUEqT+/e6sSfhJsMLLmmY4CNJDdej/QfScNXvrkwcxc2LiYr0NgtIOrzGpsQCuhUVJMPO5LTXSgIqFPE6My9mOIRFinxm2t95cIsVXW4w9PLc3nX8s4sDtfXKxBJNNVzoPQqh4ovzWp8W0I3tY9AJTzVwJpyS3nRWg617dFDa4qGd2+4E1erMFsGEK8BgcY49CVHEMFf9sT45cISssrcMnGi02O6q0dnjHEEeAAY/0T9S4FTN7i80L4k4ZmYEqxKSZLyvrD0737gx9ST0tKa6JpoLG9tT9P1uZnS53sE9aD3HmZkiyLupKeDDv+qpXFpKQoFnkXRndxAB3otewfQhgjJBiHkvHJOUCcGwu7oUTksIx2X+p/HOUVm/a/YaOLOlZg30lXvoq/NBVfV6OXioS0MhhybUF1ZIFv7bCJjXmKAjJ8RzXFBIteGan7GbAqfpCj7QXfNKDIbLTzTS8Tcc3xAX5SftkaJP0F1zb/wPjohfgyOydr9/jfRh6sukEK9rzTfSOuFC2Fbbo/6WmxuoHaivcCwy0lnYP6CZSdGlum5moeyIrqTQBKfgud7vvmpVu7KYrWXaidCLR8KPdODZbPhMACrFawOh3JYjSLEpfTMgtfWikcDOVPjVG52gBOdZNLUQlkJi/ZOAXSmAlMebJ4m1bVS5tnVK9x2Xb3MMwNNJrrlh8aX4ugvzgu71ryH9sfQkOi0JNkbmRqzITStS4cC3qdTs9C75L7Vl5oaVmuz5yGSn","layer_level":2},{"id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Network Library","description":"network-library","prompt":"Create comprehensive content for the Network Library that handles peer-to-peer communication and network protocol implementation. Document the node.hpp implementation for network node management, peer discovery, and connection orchestration. Explain the peer_connection.hpp for individual peer communication, message handling, and connection lifecycle management. Detail the core_messages.hpp for standard network messages including block propagation, transaction broadcasting, and handshake protocols. Cover the stcp_socket.hpp implementation for secure TCP socket communication and network transport layer. Document the peer_database.hpp for peer address management, connection tracking, and network topology maintenance. Include the message.hpp structure for message serialization, deserialization, and protocol compliance. Provide examples of peer connection establishment, message exchange patterns, and network synchronization. Address network security considerations, connection pooling, and performance optimization techniques.","parent_id":"2e9dab7f-8a98-493b-9d28-5efc04641da7","order":2,"progress_status":"completed","dependent_files":"libraries/network/node.cpp,libraries/network/include/graphene/network/node.hpp,plugins/p2p/p2p_plugin.cpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/network/peer_connection.cpp,libraries/network/include/graphene/network/core_messages.hpp,libraries/network/core_messages.cpp,libraries/network/include/graphene/network/message.hpp,libraries/network/include/graphene/network/stcp_socket.hpp,libraries/network/stcp_socket.cpp,libraries/network/include/graphene/network/peer_database.hpp,libraries/network/peer_database.cpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-04-23T15:44:06+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"457e128b-594d-400d-86b6-6e9de70687ec","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Docker Integration","description":"docker-integration","prompt":"Create comprehensive Docker integration documentation for VIZ CPP Node development and production environments. Document the multi-stage Dockerfile variants including production, testnet, low-memory, and MongoDB-enabled builds. Explain the GitHub Actions CI/CD pipeline configuration for automated Docker builds and testing. Cover container orchestration patterns, volume mounting for persistent data, network configuration for node connectivity, and environment variable setup. Include practical examples of running development containers, connecting to test networks, and deploying production nodes. Address Docker-specific build optimization, image size reduction techniques, security considerations for blockchain node containers, and troubleshooting container-related issues. Document the relationship between Docker configurations and CMake build options.","parent_id":"adb37512-8234-4100-b362-3eef9ab640b5","order":2,"progress_status":"completed","dependent_files":".github/workflows/docker-main.yml,.github/workflows/docker-pr-build.yml,share/vizd/docker/Dockerfile-production,share/vizd/docker/Dockerfile-testnet,share/vizd/docker/Dockerfile-lowmem,share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-04-17T10:15:28+04:00","raw_data":"WikiEncrypted:CMPQKjsWj44q+b7DSXFoBXMIGf3GaM3SGkmd3tknFiEqzTeBe3V3x4Rl6LRWK8ucLbbUzS3JInyHtCKQF0ZtTRFsUM2pHuNQBR/McP7zrp8kqpYHwp5RGHgFScAIJwhQeXMWt06bLnmVd5jsAHbioGS3UmhZLSzkbyFrOFeAaGEXV1hChm+rrU6fiW6cWeDh/zmPZpRLLe9VMrpkoEeRdFbzZT3WClOHLOc21Q2QZIyRj/POcXUEOYFj7lriSL6UWS5n1a2f0990pasHQZrSROtt5Xmal47gweop/quaPDZwrVU6s1NnlXmCs6rEr4dJA5PRzeRuwA+IdaxWwk3Zb80SobupVgM5K8g0YWDexoK15CgzQujFwTMO2ERL8laZv5KLrIl5W8f5jaoBbQJ/lpn3NzJ7j8V5G2HV/Pxd0mQTNJQnaMEexQshyUq8A92SpD1Gs6HK1JIdhUlzhsRe1GRGoJuuPM8iA4tSta7F+VdgOw1OQR8qMP1qqr/fGPBLGlIv+hJiRrCjjNH7qpZbCcJ+PKj6aYiSpYSoEc9nvZtyH2+YnA2QhNmN4hBmJ6cg7dQo0aeXxovS/SXyorpTTYYDRllJmEvXUA5rZVLd9m4JHDlnClDCncfys3IV4iX9C+0Ah1xl89YcyJQl8XkY/g/I8pqvKkNxvEtpYL/TgSqROPQOwHOJpgfns8EsUoUrXC/j5oCa84HkdfonOoxNcSpP3tZ2DEj/grMQcCXy9p6atU/zKxVo34A94/vTRp+1ipz5l85OxMoNLshI/I3p4+dAn7iuK/aEe33cSFaI+8Inb5ihmdHlttjs5r/LOqmR+MT1od9da+q+eAkI2NU2wMeDjjQrohsBGZiCCc4fTm99YkcmaekEa1pKCELRIAb1HQKR8nJ6Lvcl3fXj/EddyME3X+v51draQWrzB84H0iqVHKBhvctVPQqp8F7UTzC9ZV97vjpmMpCKOUatXSiXCEA4U/zUEZkSXx+Om7XEhUGJjvZ6UOcd2JW17WKykU5RkzualU11W9DGXaQwMkZI2AY8ipfR1C0R7ZBmg1v3m5Ae8vCCzwjnIP1mkLI+YbifLz+WQNRyyx529VyDi+bndgCEnArzpZePLaLaIOTGwU+fupkPjyLtgO0Mkpjhg8Vjrr2boJhLj4YpFopCDcD23akpBgMUjtnkleOZIaM0c/CSz3r84qmWigf5JNU6vxgBsuosmE1RIbj3ql1+qtCEhfGozSOYcyiw9lR0rNCq2UzWi0fNGU8Yu36iNXw0nld+PFDTSNPLb4Ed+KkqeMzyIIMaPjx/FAGy7UnpG9ZlfLGR4lxxGVY2cOCPGYj65fMeBBL6AUWw4J+SxapwO/E+8gfdYpgThk25UybTF2EpYO4Gpn86aa93NSggOT18LsOWm74ys84v2mxBJ6ds1Fbizl3EJX4jLUG0bJBR6kpEMOwkYEgs5tIby0stgF8anPgJC/Npttwf4iGkZ9WrL9fDElVv70dYw61rXyzQV7NyplySti9UNFqHPqNYeW3PW1VdlXOAWcJx6ic4QFCQPHeX/42x3lcgwDmgUBFNuVBMzgHu+ErwRngOCG+eaBoN1RtIFoDrFTAuf17hiDRMN5yE5hIx9xbtb9LKoVnMnBRGHVt7zMpPE8bkGlFDyYfs/0j7xtso4DtUkFY7kOZcgB3HWnJfMXPQmCMahTDHo1bnk5cwa8WtJRLE7Ns87Wt4DgTeN8/JZnRxmY4uEOzAnehwmcb7I2OUEVk0ucosgNmJk56x2PxTuFbfLAgr7ZXznOt5zxJLOKhaRiqoY+T6fbdwdr5dDazRxSqhLEF5KYJbuFEoPvfILO04KeaXNdPZ0GzZXRHUJ+saTGDDDSJDjI/woJxYnpPrA/ejN0UIER/hnmJ4H2GlP6kgjCqt/X6f1ybak0FEPX+1HEModDzw/Cy3tw+ZyEROrOBk8q1iE1FyAoE=","layer_level":2},{"id":"2011501c-a1d7-437d-8756-169e629070a3","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Network Debugging Capabilities","description":"network-debugging-capabilities","prompt":"Create comprehensive documentation for network debugging capabilities in VIZ CPP Node. Document peer connection monitoring and debugging techniques including connection establishment issues, handshake failures, and network protocol problems. Explain message propagation debugging for understanding block and transaction distribution across the network. Cover network performance monitoring and latency analysis tools. Document peer database inspection for diagnosing network topology issues and connection quality problems. Include practical examples of common network debugging scenarios such as peer discovery failures, block propagation delays, and network partition detection. Address logging configuration for network debugging, connection state monitoring, and network traffic analysis. Provide troubleshooting guides for network connectivity issues and performance optimization techniques.","parent_id":"2328ccf2-46d2-4cd5-b887-81c71ab7e579","order":2,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/node.hpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/network/node.cpp,libraries/network/peer_connection.cpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T08:04:07+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"5dcfa7b9-aa15-4eaf-a23f-3facf27503f0","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Service Integration","description":"service-integration","prompt":"Create comprehensive service integration documentation for VIZ CPP Node deployment. Document systemd service configuration for Linux environments including service files, startup scripts, and process management. Cover Windows service installation and management procedures. Explain integration with reverse proxies, load balancers, and API gateways. Document monitoring integration including health checks, metrics collection, and alerting setup. Address log rotation, centralized logging, and log aggregation strategies. Include integration with cloud platforms, container orchestration systems, and automated deployment pipelines. Document backup and recovery procedures, disaster recovery planning, and high availability configurations. Provide integration examples with popular monitoring tools, logging systems, and infrastructure management platforms.","parent_id":"663a33c7-3329-490a-86b9-bcdf15178fba","order":2,"progress_status":"completed","dependent_files":"share/vizd/vizd.sh,programs/vizd/main.cpp,share/vizd/config/config.ini,plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-03-03T08:03:49+04:00","raw_data":"WikiEncrypted:vMsgMax61wW2sTWhXd8DH8qAw9CtLog8cZ1tiD2BFP+U0bXW3hqFYf3RL9xyiBC/9b4sFP+QmOk2wmA/qm9hf0gT3h2Jws99nvB34YCyl5dFaIRl84rx/o3Zykg3tatTYFluDC7sbSvs1O0o8gMlPHhUonDd9S0Wby8VPQZNvmSEJ/WgHJJygKImU3JR6hCKaVPIJYXeKFOu2MMIoj0sshp9BQnlc1PmbUL9S4on4eMkB10USK/Ro+RgIaYSkS55t21sHWbLTo0AlxIYQ+u0KpIzryme9wNUHxNVv1/IR7MrAd/lUW5ytYLeeT+8Vl87eR7Z3oPoyjsZ3ZbIID+QIAzdNu2832ZZA7xUUgZJBC5mMJz9XR+Ufm671kMd/tgGWmWR36CAQ6tg5WVoTK7FLLOP7NJr8n8JYqcBpGXHRoFWOzLaYd/eBTgigAT2//TsubTjnTst0Xr5wCwHMEizXHcho4YT8rdM97WryHG0LqDXPXpKfJdorLOlz48JKDaCjVGeE0oO77OerszQWRaaHz6Otzq3+Suf167Tp6EQB6ErQpC3x79NVUEBJkgeltwq8BZzB7mT8WjiD8dzA0ouZxOkfye1tPTKgdN9llQJQM8YmsxV7dzAJ9Zk4fQR32f2I+8aMONsLHq8Ye0GRjHmVjSP/I59+8qzq9/vTKE1DLsRm4ATPJm6qpIKnbhA0L/QUgRkjpOOiUiBlYcKuzkNtxwYGT3Kl2H16TVZv92wuUs9Q0igRFhOuMXtMF9dOAD+8d1kAMc7s4bQJGqb03MNS52ZDa2NIjyeDjP0N/ZIVSlCLqlIXeF6nFzlI1+2RLWMSqlSXt6WiZXkhtgnbBXQJLp4ZBaKnDBezrJI1PXBohf13XZ2y6AXkuGKjJwe2fxE0A8vynkyIyTeAHBpfoXcdDVI4GhaTQMaGsASUAJuQjOCFcSj01Z9IjxjFv9fddpSlR6KvnOhqrbnZhltVnNCS1CwWaGGvp6fakDvnZR8lnmI1mukzzde0zZ2GwMrypQo4wuGW5bUH/XJpG/r2UwS31ArKbP6E5Mfq60OymRDINMWSJD016iwBtvaEo1S0F1Vjf4P+4v/qFKApG9mMaDKbbKoS/PxvkW7YxbBhXqSws/TlykHsuEDeoVK2qNyZnn16LP+XaIog+yFNJBrS2FuZVo7pO6c/qdLfuiO550zmM/y3Iq9vfDEywnwrMah00LPAPrIw/Dmqwzn+PZdfz/GeSJifvAvbHN6iqVbUV9Est6nDFcNVqxGylGlPui1mJ3eFg0/wFAKf61Q4yzylgEf9LWqzN8hl6GDzQvN2IY7J0GbIzEPoh3fayxchmU1Zeom4xwtv56vCZFnrdKwgAQ4b3HBzBT75pYKEeNtPfI0y8BJNbfYdA6jocqZP0rnE2GTTX/2LIi+d5ftnKdahlv0oDtGTzHUEnh+q+ymfrrslIS1YjUiWsYi6g2LlRAmZ8gzhK76DQ7/dM8k7Q3SoCRk5z/kcLrgy4Z+lSLqasmUGhewoVBLdudC/Eam77SJ15s/5T58WIE3NT1UOw8h5O5j7YSWM6ErjZC3uTvEVtmRhBi3To4FqO7dWQW2Da8QJewcor/ldmjaEGpFSBFc/6ROzdHI34DTjOHmfroIsfx4/UVKbxb3RgViP4DVjAQj5jnLvHM5mdVIuI6vaHF1UAJZTsyAfcqHB6ryb9xGYZ22mWk11OakmTv73w0PCQRHAR3mqVUfiFG79eu7OLe/5+f4VbaxwegE0DGd9+WbkQl2tWc6wwm700mXO+ZWAB7RbkXEujlUF7HZ6lFfvT6nDQxEnb6riuw/0+d8RHlIWR93YaCmx/7UV+HhspCPHD1G7vaG2lFLfLaEMR1FucZeJsNLzzYDyqTfS7YNjOWpfjCSmzjS7qzViO7leJGrPVv47n//","layer_level":2},{"id":"ba0987e3-a356-474d-87a3-d8388e4f91a8","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Authority Management","description":"authority-management","prompt":"Develop detailed content for Authority Management covering permission systems and access control. Document the authority.hpp implementation including authority structures, weight calculations, and threshold validation. Explain multi-signature authority requirements and permission hierarchies. Detail the sign_state.hpp functionality for signature validation and authority checking during transaction processing. Cover authority inheritance patterns, custom authority types, and permission delegation mechanisms. Include examples of authority configuration, signature verification workflows, and permission validation scenarios. Document the relationship between authorities and operations requiring specific permissions.","parent_id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","order":2,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/authority.hpp,libraries/protocol/authority.cpp,libraries/protocol/include/graphene/protocol/sign_state.hpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:17:58+04:00","raw_data":"WikiEncrypted:Jgq9fCpm/NkqSNIWYhs+n4jiUARsKF/Jd4ydE+1m2zwQwWHJGmtOerLGG8TW7XbS4S/T35fVYB/yJZzgovCH718BLdmouX/kTxDmd8tNbBdrrta+doQxNGDkod8z/WaaQYLVb4IxX7U/EjoAr7/P+66vrhi6RqYj5fBPtrSgLJUW/RR9MCpaEUYd7pGcSU6JWeCOU2QyjuuYk1SyjFg+g1rcuLzhrRhHI9zKfjN872ae11+XxxBNxki1ElyJsf3BevyOBdOTFNxxS363QkNd/vpvy4NvNUs1OpK8DvQeMiVwEtO8/HAwIm2nwoQnxz0E3q+QPoaUTGSDd7BN9thcQWqlBd1D6lTayxEUnWl33CQOWEqRTocDEicRTnxYYEwujQCeNI8NVyTgieqInU4N2L/J58a02Wz8RQi6AJXBFQ6f1btOEF/VJS5xkGYxJDnigIiZctgWc5R/uQ+g2s9733TZBWZBG5jaZK8dp6ZIH1hX31+DnMRzJnO0xqnFq1JGcThh3FXCYiazMyDvVG4xlJVCLM9Jg61r4bStfBEfdQofNXQXURMWrAWgVRjgBpvKKSIsaJzo/m/mwupcs6A5ROCTsUktizLhzKbWqTUCOhya+jnqDYc966T4LKBkbRgz2G2viJ4xn0ApRwTxKB8eYeMeTPYlpmHdYAOGVqe3dAPJ9kXect7UPNO49edXXDW8c59l+VwSAGXSRIPWC1vBp/hFyYfOI2oO1qF0XiloGQrv69txOEG2PmXtvgz8Wj4UVm6zpeKhwcw/kdmqNBV6EAd4wu7ri2GlggsPU3vp85an6T0UVHXL/OxtJiLQWwrTpGOjaEAo7uCVA6F4KL8kKpsAIC/EPq3CBO2XJkylhWGGK+vbLH1QSzROeOoJQN/RmOUXveFYAkQxysQJi36XfXtBEcI0swK/nJPGsjje8+b8vZpoBlN98dW8t0Ns5PRfjyRuhRbCHYvN9Vvg6/5yuRQFHQPY0GArydv24Du0b4F4jYEfq1U/U0SqxKU2uOBEONQjr873NJVAjWVmM/TChAhjIgGPuIf1anSvWe/+3rCjs9E+YgrTU6fW9XKVinf/wF229mjENAXVsUPeekDSua6JWR3GoZ4n6L08jD57Z1GJDYvZpQC6OmiFbkwl0jZ1LVjqHPMMDtKd+gzj2TOLDHjEewcQLtTUws+fE0Z0A1j2oJOWR7ffPuRW86eGL7eT5croRguM1miNpTx3b7XjIY05QBx+cZfEW3dwauyynARfon3eYMJ1ywVqc+NeZ0uqVxtRhlXc+RD7Qt0rIu2irReEDQaz6Ruvi5GSWsNZSiAsJgNSMoBc6vIcU3vu0nUVZRIxQTZ2E6URcuRuWHR7xxtTZGl0FW7qPWYddIon/o93Y1kOj1tqKyGP3s1OghTd9vzmGKrbovd810tZXWyLrz4s1G3xf/GU9K7mYwUoXKtAOkbj26gosy2d7zXTU7ucfwn1XhZBThySCG6CjiRoCU7dPOBNwN3hcOcpagEr7UrxQQbiFwrVLSa5uy5t823DFb9iMAGkJ2H/IJZ05LeVDBC8cvgklwS7BEkMrU1nIcH0qUOhDN+PiCz74ePlbsdDCXpJ2XcfTk24dkzl05ZzDA==","layer_level":3},{"id":"ce9237f3-858a-4a38-84c7-92fe275239c9","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Fork Resolution and Consensus","description":"fork-resolution","prompt":"Develop detailed content for the Fork Resolution and Consensus system that maintains blockchain integrity and handles network partitions. Document the fork_database.hpp implementation including fork chain management, branch selection algorithms, and irreversible block determination. Explain the fork traversal mechanisms, common ancestor detection, and chain reorganization processes. Detail the block ID tracking, fork chain construction, and conflict resolution strategies. Cover the witness scheduling integration and how fork resolution affects block production. Document the API methods for fork detection, chain validation, and state recovery. Include examples of fork scenarios, resolution processes, and consensus mechanisms. Explain the relationship with the blockchain log and how forks are persisted and recovered. Address performance considerations for large fork chains and optimization strategies.","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","order":2,"progress_status":"completed","dependent_files":"libraries/chain/fork_database.cpp,libraries/chain/database.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/hardfork.d/12.hf,libraries/chain/include/graphene/chain/fork_database.hpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-04-25T14:03:59.3047928+04:00","raw_data":"WikiEncrypted:LF5XH+WZjZXH77Oahqhu33D8kMc2V5EyZ5sCQJaB6AbkaftNweUtSuIUOV/O1ju0L84BXRl/rB6mkbN9lJNCBp8gKu1Js50cynDLXNwHl9v3CFjgeOELp0KEyNk7HrPoblpscxDGsnAxbjU6uksUsyxpMglw3QbD3ox2lW93a8y8yQV9rkBDoZMzDNtOJXAgMR0oDSvbW92HizrdsQkB6l5NWFLVHJsReV7pvJubS5yfvGNlv6RMHHL3RdlcTe84v9fFpF+JVAVIHmCVytpwtKZ3NCOhc4BQCSwFP8tet3JTn/t3Vur6MZTqjpMFhPpUrrSu4fdkX6kNaGTyIiR1LlaQi5opGvnb0pA7OCyNpedmXRLMxCndcDkLy6wDZZHucMVaV0alW+eobuSlvo2WYrvJf8/YRMFbpiLA0OfBAv2pfPl6oaZDAyRRkd1gS3Oi3fmwTugwBqT8+f5N/QUqQljBY9nhpMuoOGq1fb5S1tH1MH4GVXGI6r7rgvJUhDTXwyTMf6eEXt+B1anvbHZ2hZhzl5ARKgp1nnwi0o91uZ+3knXsxyGJZNPp7jGtg90t7JNOyZHy1VAadmHBOeGPumz32sgM+Kr5bLRf+qUHN/cK7AZF1jkPDE9lO1w0RtJ6V+oP1oXTXOtEh33YQ3pbDHMIICM0b+M/Nrlk7WghI4gXeeLb59fF6hngpa79N/2ZW6RRKOch10XoAS6Hs1S2mkWA5XqkerBEmX8r4cbDXTy5VjnLa47m3+4uI+xDEK7p6mUJPM9/hsi7p376CuUSmoGzOg10q8Vp22Y0nZ1jO7Rf2WJ9X0u/8RGWe88m3kOJTJjr03r1LNLi69rTxzTZEJHQ0rnaHD+QVG3TPoF+egMJpR4l66aAcj4Zz8WAF0Bt8alOz7Q41eNHhu++7Qh1XiIKkNozr2HLD5h/N9i7C41yBJ+dPFk0bflapTmw7xNR/YI5EujG10sKfux1OinUunY5WrWnYGWlhCJdX2UDWzlocoYnDh/09Gj2O1Ot/CnXyZsd5fDsWkC4oqRQvfPoDQxspVXhKD+uvUkJ0+Wwv9veCPjDR7jZljO7xJUexGyYs/fs86PtAen3tL3TzFGqHblAABCgg/CXRKbkgeXVwxwuXS3D8+5lEjOqNkL3PLvD4C3OiMqgB5T8nMABXgIgtct5aT6KakrtocAEa+Q+JHJccVQg5aKy0jVRodXMPo+Pm3TmsaB3EYLnIZf4XcSDpV7SBs8aXjPsdbrK+wBVf1glaVitrYZCAM+uAhO9EMDwZ631/xXngQo/24/TKIg3fRHge3umOl5uJZTjGHSXsvZqrCmcOPoCERDP/A5LRGV3Y67/VfDeD52OmrPUa6gVFCnmbTdWbqK93a/DzXdkizez+Ed5SFzpnnZoppEQKxJayY+M/M/7ZAD1tF0T9pqnigUYXo0JDuJV25GpdWpTbOFoyygUk7FrfeWoaV2EOzVLqTDhrgTXKmxLsGmR/2vAahyREOd81raTBwxp+CwFgO4H7mncPTYp2xkqENYp5tPzwnPtCZ4Nkm0Q4ICm1YsCqWPpv70sYA8Z/5TlteERueRhj3vo/QXC1tkiNbWaHVhYCoWPlsUz3FwJZyyX/wsNRyd6wM9w3KBfq2dtf4J0Xd7IoWCmIiEn5ul6wdVU1rZ+GlekhOWplHLz4vBl4xYLMQrOZhdhku9b/A+X20cn3Q2+fhzGx/yTaVR3ZrMrJaibHxZvcan25IdcSHUgTEnn9gSUZuHu1pJtVNRYFOTXKlqS+zKN3CiI6FX1T+1zHSdeS+6i06dOwz/9wN4iUDr6UmJtqtC1pwaCTiM6X+deOshcj3gaZGfbtTf49K2bYlO+gzTm/I9BJdUwAVzh2R4pXAkPkrTRrzHEH/CsT64wE8AZwmRMKEawamA3fHCkQVR7QNdwYN00woHcMDHce9jaTj+/mkMbqI2zlhmxn0xWvSxgayvFwOiAKzP0YdCpKR1H","layer_level":3},{"id":"4ef3f925-96bb-43d8-bba2-58f3ef56f3c3","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Message Handling and Protocol","description":"message-handling","prompt":"Develop detailed content for Message Handling and Protocol that defines network communication standards and message processing. Document the core_messages.hpp implementation covering standard network message types including block_message, trx_message, and item_id structures. Explain message serialization, deserialization, and protocol compliance validation. Cover message routing, delivery guarantees, and message ordering mechanisms. Detail the message.hpp structure for generic message handling, payload encoding, and protocol versioning. Document message propagation tracking, duplicate detection, and message validation workflows. Include examples of message creation, transmission, and processing patterns. Address message compression, fragmentation handling, and protocol upgrade mechanisms. Provide guidance on implementing custom message types, message validation rules, and protocol extension points.","parent_id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","order":2,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/core_messages.hpp,libraries/network/core_messages.cpp,libraries/network/include/graphene/network/message.hpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-03-03T08:20:04+04:00","raw_data":"WikiEncrypted:IaaHBhg4aKVK2Z27STIpf61hPTwuvjJw00wghNRz0dqXZFnsx3+KXuJLymQNNBhm+4HmlhfiPgft+nBCx8lK4ljvr9u1N7eyZnhnwrufcfJWtCJmJAYdT6I/MbNWHUQIKT842G2JFoDfikSnGXpefzkqbmJ9h4HkLavoFO8GveAAfrmDKT8BrkB45sEUfJuABljdMo1Z4Po59a0a4om8B5rJ8OUxvmIemXI2d5efoKGKw5+cKGNGgMwYtApsVIFedpjM4uFtQnlachraAR2ooVuqRRO80ib4jrTSv6yeZ7H51ge5rgRDeYcFxsrJCoVdwdGWygXe8okjzamm+iH8qIoCmIeWbmGhMXfFlxEK/xb+wwY52MBM4YD0HCpQKrh+FO+ELHik/d6lsYRY9gPA/rOwZAD/lHaoyAvRfwGwxZBnI9v1hKYnBr3jkgYNLd2b4C+SN6V0q1D/J5y5JrGIEDD0UDlw9LcEozUbvr8SxlE/c3ssjyO70AP9AkWHy0n/edPKa7I1P8a5PI/LkoGgkbZsgmU2eWdzzRHPD+SAnRdp/wbF747R4uXmCN4zeoRvcIx7OcXyzlai1574JHXrHUXVa2PHa0w8B8126wMxdEQWP7//PnhsaFyMCTJtgGzzl4Z9itYmtAjL63fZhJ4/ulTh6nSVcAaG5zFsedHUkFowgbseLtQe/VZ/cnva8HtoTWZN1mFJ+RqQ9jfwt6LYrzEd2q3MirnV2jaYHYkcstr51bztnhXvUgkhWL+e3AELp6mphweylQexxr7cElbJkAXJKfxSoGgi6yrwn8HZrCLHucOZYM2oPk5hxPtgYidAWjD39B7q9sD5fd5HTpIbtXghy+Y0n03NfM1FVHHCxxjzfqjT2zJHMmFpwEg7TMxgVKXNzsaoXhfOVluWDB6boDg9qics2SnUgCnPjCrCaUfOL/+/3CYa+UyWEEKgG7CyS5/Y82EKHbZzSus9o4j4gANndEAiosEL3j2nl89R6zEhtRLCWEcaj2rvM5aHgTjhKovqUJXkKsmixnyt5qMgzbo5nsmiBjpOUlvVKwEBSXsLxENv+jTt+kgzsIbzy1Jp5xtzSiQhvHOoLZ30UfUSrf3lMZ6XwJ/uVJbfRPnkQxayMicktwKeQtCn4FChxyYZEp76MNcO23bGr0HXdcFwVB+V+6sOw35crzsrOX0G3Y5zxdwwg9AKekR1gVUEilUZk9axa+YC+9LJy7dzNX1rkOd7bVXWcUs1ZrGXwQEKkB1BPYhOsWZG44+DyxwIxnRp+jOUXNaPqE5EejlZDlomg7S1cOn4gOqSktzaWJjoGTILesnSEh2cL6x8Wy3fBDjYFWKF3L+PuCNh+pD4ChQBrf7ypQp+hBk8SvwZS7dp1cjzmzJZxVoJMDfb/TM4Earm3H0uHtPgyNB9Vtphl05jPHAf0f8vYuQ+s7cTaTyab/jpEqRdDzl6/cALbcywQ1V2aRNc0kPxcV2Zaopfp2UHzxC77e6+R15VG0KlBuF3PObzKl8w+w5wkN8x/18+NiQGljAIYuoslW70VeMMwUwo4fuB0U7f0r1Q9yeYVdIdFTT9y2SoL7yQgFs0wpWrAT5vjflJ7nPeIj9yMdKSOh6orsFq+PRqcVGaZPd+qVoghULPAqhBhvKqEe+2fuMItfkb1t/1K1HkFcu0s9KC8xYkZFFbClqzym72hHLhRXCU+9mTwqhkMHujFNlXu11k6j8K1Ep2jNU5J2M9v5RO91IEa0hRaKxJLDF8/SuYNgZoWdOIjPZxsoZyg1dmtaVoVp53","layer_level":3},{"id":"08a6f11f-beab-4e72-abb1-7a6a6add1f03","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Dependency Management","description":"dependency-management","prompt":"Create detailed dependency management documentation for VIZ CPP Node CMake configuration. Document Boost library configuration including required components (thread, date_time, system, filesystem, program_options, signals, serialization, chrono, unit_test_framework, context, locale, coroutine), static vs dynamic linking options, and version requirements (1.57+). Explain third-party dependency integration through subdirectories (appbase, chainbase, fc), OpenSSL configuration, and optional dependencies like MongoDB. Detail dependency resolution strategies, version compatibility matrices, and troubleshooting missing or incompatible dependencies. Include guidance for customizing dependency locations, handling corporate firewalls, and managing dependency updates across different platforms.","parent_id":"c6c73cf8-a371-43e8-88b5-96478658761c","order":2,"progress_status":"completed","dependent_files":"CMakeLists.txt,plugins/mongo_db/include/graphene/plugins/mongo_db/mongo_db_types.hpp,plugins/witness_api/include/graphene/plugins/witness_api/plugin.hpp,thirdparty/CMakeLists.txt","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-04-19T22:00:10+04:00","raw_data":"WikiEncrypted:Plae3AeD8kzvx5cS0SI01VxUgqb4buHXTzzTWj4gTygU7IDKBYr41L3/hTrS44leIMVa8ywMUh248ZyPirs+eIVofLm7+N0WlOX6fg0khoNhXtfGI1JGQ9weIgIVyjznsmVNtjh2fiQQu82cjIL5lPsNVUenQmG4sEvbSS9dpwJ3rEyNbj0zNlca/sosLrYifdoLBf6wi9rVRkw0R2HPbVqv1K62V8d2h1xVxhoD+mzciX08y+Y626vWX3TQ55XUKWPPezNHVOIkuhKKK/FvzNNEOWkkvBod7s12N1y5zsBJ7OnVtQ+te+Oraj1mZvD3yQNlf7OoLG+dWkEdXHOvf5CZFFffTB/IVrar9FXThN/I7Fc5spsivRhxmS2EtHqcjzaJttxdCdRQQ/BCFLgiPZjRjOfDJSF+XwX5s/wgAZIzXU8Fs+Q5CU2VClMl0ZBUMCFhbGkGobGoibrJW0gv+xCNWo9dvQy90S9DVkg2JHDWq6NQLU9/Ck03b6pCkb4oUVBlX+E2FjRHbbZRNMSRaaKp/+A0F3LfmijkIZtUidn2Ud5ssgcgnZ0xWqxULF0L7nK0uOpChFpQE37ofSZGu0ZYcgLBqoAqGM3z7FWLOT9QNFB2J2ghVFeM8ctDl15x5agpJ6c/n20KeYIQQ3YbyR1w7lEJ2DmAIJ115iDZOxh6T+la0Dxl1e6Z6gGg4R0x1BnYlD1RaeyHxnbcJpmmd25fYpjV0bwt8FMkic75TZmS6y1j4LbrrxRqsSAoq4YRuvS6ry5PgQBOPti5pLq1FtNs7nMTUGfERuRBF77QhfGS4zi95OM0MqSDSW1NNeL7hTmzhlbVNJzyRvgd/6gkuSoyWoccHQGp8IpMeJglYMcUS/1agV1WnMfkJO0IgyiMq03NBKaIDDyvY75Al1xdsUXFFSwS5PytKsQEt1WFbqNBe1dxZTAtRspq5I8JD5AAdK7DQWcjEZdeYgr305oWce1+VxuCkOHk7GIs2j/mFf2bY7c8pzqUhVQNYXfZFHuKet+VgRnEPP/FGnsPmbto4yg4y8H7RWaOD8tyi+e93Di9ifGP6c9XBzLRXZNceCcgqhEQP39gDKqBNFgCfEwmTexbqkDzoAB+uSkFe1g4ABb7klM7h/um1faCYTTD05mQgAcjQlUGu6Kig0OuvO20D/u2w+DkhZticFB7WdkEAMnzEA0J34GWtQjN08T/5j3K1NnlDCxAZQ7sS5MADnsU5FA5/ccz5ZPmHPTsUPPNcH+YLNVERxwyESTIBAfTgEhI0GVthOsevmZIAgvtZGLeT/vIFMhv5bywfq6/Ecu4Ns/AHG+gT0UXUg8r4Nqg8wgE94TVKAkBcthaCrkMgzh+dpgtkgf8dvur67TXqpUHdhuStZpvRlPhfA22RJm9XYNB7NZ+OLWCVxzmEwyncrvdieFuAP5kZs0IY6Fa7kvZ8E6kLTRwHvZU7BuMutV/73vTY4TiA15o0Z09KIRrbYRie/XkiK7Mo4Pe/2qhFQ/hqUvC0GpmyT3uQpk87+6XQO6TUzYuZvzO7fx8glSmEmJOBlIakoCXqY+heH5XcP4uAK0CrcjKNQt3n3/l3JDhZLXGtR4FSzfj7SswLAg5iSUJBG6KST3hab6DYHGqSrrJOHF7p6JnrWx6i2y6epIIluQQltuf6CtUp6ppPR+vZF+V2tnYisy6JXWohcO3wFw1jHbDq5UrBHWcXrEQaJCOA/OV","layer_level":3},{"id":"82ae9fa0-e6fd-42af-ab21-aa8e93d2c2e2","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Low-Memory Dockerfile","description":"low-memory-dockerfile","prompt":"Create detailed documentation for the low-memory Dockerfile optimized for resource-constrained environments. Explain the LOW_MEMORY_NODE build option impact on memory usage, reduced functionality, and performance trade-offs. Document the minimal dependency requirements, optimized build process, and reduced feature set compared to production builds. Cover use cases for low-memory deployments including lightweight nodes, development environments, and edge computing scenarios. Include practical examples of building low-memory containers, resource monitoring, and performance optimization techniques. Address limitations of low-memory mode, supported operations, and migration paths to full-featured builds when resources allow.","parent_id":"457e128b-594d-400d-86b6-6e9de70687ec","order":2,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-lowmem","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:20:43+04:00","raw_data":"WikiEncrypted:fKjMku8Fpv/b9ZP4Ul2Tm7Zca1h5FLirNykTI/AA7d47CnKOVNgTfrsa18b5sEdeunts328aDl/rj1iuGdoZlRmNliSHTyno4JbtoRql9rKHpIYLsGWMX9G2LUkeMbg5FlADbz3moUepTMX3AczHxUqbYB4AFqFyRp9NfIt2CAJxj+V+xIYQZNJxkd++ojQvXSYZIG5JstNLMOPkzDOBBMSmIkHlovPB1lMrLLJwFhzUpC1xCa+ND63Q5gMlN0G3yfjAIqOGUgrdT+ScVEXVikgbsMs2FR+Yf21LW0JY5SWTiW9asZnrbARtm1I0PBi1SwOnynvG4O70EZX9LRN9utgNzEKbQ/qb7A8SfVmVJ/5d2HzbGUMSHrkrOIOfbq7x+m5zQ+xeVa3ivGOz0zfrx0YS8ylBBcoxuQpJaKppYNws9zDTzNPyPKF6F8R0f1xEekSn/JYo8L8cTTlwORrSEVBL7LFIRgEWWaDNsVi/1O8gCAip4DBDZBQ2LPfC6P1QsUKasNlSO1mVC86ULrnACvyOlzdu4LgiRoNEiae/X7YYeJ27qk6miFPwfkqI74vrZqcB1SJtN1oM7wrhwKFiRe9nBzycLbwqgkO0CcPCTjuD4ODtK8fSqy3BoOB3//ZSvhyZGyn0R8gSDuAPdm+kh0/VZkaih+mXej8gh4sIMDIrJ2wnLHPiSUo0fHeGe7xvqvxBGfsukAs4x/6YobQGQrAcK8lvIiqbuv/zcWei0mxwkL+vtvgCGdgWdZNzVGlKpi+l0uM4+PmlnnUtI6E2ft7hMLxSRFFE0JCZJZibOiVittplbnVeb/JCKsBfBqhKT5ffxVvmAWmmz4FggTt3s6WiYfzMLbT5gs0JbLKyZw2fyzMJinM86Lsg4JoVDV2tEjnC5K+hG0CYL+/Hmdc06IdnAhagszBwJdg6UcIJmPbvVOGO5/yXMYF/PHJb4YEX0bYPFjmlxEiX2VH9mauNLPpt1jyCPGWgnZhyUwTWiQRTInuPux3MmvCBFIdhvbSqewELe+RCUR4kKk9YJS5GXYeZdik3EX7M9JK4p5q0/MxMgt4QtVQ/rYH/5oOzinNpJ6a6qM5G1yQe+AJJiNnMmCPHHNOzcC312TKra6dD7p85Thyog4vHQujObntWLiTnTOyNOJ4xY0pNqOZCXC/Q5ZorjBo1XHSB1Lp0wSdJAtzg644h4eKUjh85lW+FjpNYTVSH3dYhbW8ZQbhBhB1LSTXLsLYMDwhUlV29PLoAS5L+j2tTI5azUAjxI33HBbuYkzHJcOVoz9ZwiNPX/8aOHvoacoHQ3sNu0ZTYwXCfQcn/qQWFY79o04+IJ6ojQPjfOL9PxdOR+3+FXk7ksofNnnVe5/+jF7ZkrgbI13Bg2V2aDwse9dsZ8pT2WIlIDimfa+o8woVUK9ZsEODSEH7BfQ==","layer_level":3},{"id":"2edfb9f0-ac89-4c5b-abc6-05a43daacce7","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Plugin Development Tools","description":"plugin-development-tools","prompt":"Create comprehensive documentation for the VIZ CPP Node plugin development tool (newplugin.py). Document the template system for generating custom plugin boilerplate code, including directory structure generation, header file creation, and implementation skeleton templates. Explain the plugin naming conventions, file organization patterns, and integration requirements. Include step-by-step examples of creating new plugins using the template system, modifying generated code, and integrating plugins into the main application. Cover command-line options, customization parameters, and best practices for plugin development. Address common plugin development pitfalls, testing strategies, and deployment considerations.","parent_id":"942792af-b86c-46d9-9f7a-22e783f2d6cb","order":2,"progress_status":"completed","dependent_files":"programs/build_helpers/newplugin.py","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:21:29+04:00","raw_data":"WikiEncrypted:ukPV2tcWPRGn89Upsee0BNh0I4BWUQUUZnzOP1DB+1vlRoA2DnNNT/bHeFbdtIQSXyk7bUmdFD+AFhUw6F/GhxiiRn+hzkKtze7IIl7cKG/KiTWWAdasY0S/sUREmQTHx6fByz16NvdAO9bhp/o5Zn/mUi/wb3p4250DKByWWZfNOfNXVv2JlV04ypM3wlrlGWlbJ7X8Fy6U0pHiMDV7TSm1MqZ7jRntlHQPGcOntBT/sCsvcMG+2Tz+AhYuUPl5S8hp4VL5aF0Bldz2wMa/U1pJc7TfQFlMxB86sCIBeKzByisy5hcvzrvj4EnFi6GPdH6XeSu/FRtSiNKuU/+BLK4e+xVb299e30vgCpN+yGzMnQSwF6Hl+jcihMZsXvgHDNEI/RrCXZvssPbZrT7sDQLng4yvFg/DbS5ctr/s3st4H4yLiUYjxEqDeeDZJmUsl/gOzg5Npf6VYtyLMLyH9njN3FYygMBEItIWHS/ZMH1W3KPMaE+jELwWFWfW6x3luX1FV+5NfTiGDUZFr5zbOv1nTesTTLLSp0JnpHFC0GvbajAQrZqALmujKNhlB5TCYT05Flf0GcmXhPEou3sfRmVyejF6URcCf/d5kBLMvqRSdfpnl/N03KHaPxYZINuPHBIAvP6NhDUCR/fUp24M1VUaRdEYxuTA0xVGT4B/mJFB1GcM4+9oL3v5BAIoblxDFG0ot39YIWDKAEZJP+FvRnZW7pXYJeHiWSk0qtIKgtaISPvLuJjnsI/dT0oSS3xkL0kd2kYI0vsYF4O+AsB9t2ee1KQCgIm5wS/fpF5ZD6AzqEaVt4Bz7TefBcReXAJpcG3vuPU+gLWvuzjT41eG5LOaY9P3Xn7wAvALCYsFE0vfSh8VR6967R/tPj5malqd3ZlHC0dxWpbxK5zylOGQO4uxR11qWEo2wh0pDE9wImO0X1phGa0q8u9QH0mjXEQ/tKnVJMfCy44Ur4SoVgKhfwCVtzuOaQWJzffT2DQN0zbuTBYBWTCrq9HAR6vNZmH2Z3sEpQgc/+ZJvLWTGHYGzSkGBjeIvPAFT7j3+lGMmHjVnT2E1QbymYUm4bNV6N4jm82YWThsJ9rkZtizBTQnTkbtEeW/TDXtJESiADfebLTnRZTZl7I7WM5mLPsPhlwYWa5D4Ll1vbKBq3TOCFjt7mBHIGiV3sS8VL+r86dHiM5y9zVYhoVkQ6dZnGqT8NcjOrRqF4ysAeIFLlMfihEvI3KCXAR61jbN/0bv2w9K/DcKSf6l2e7fFEfrdNx9kXLwfiDmsII0LnZpIxwKudn1vbk74LhTEW8Cuq4YGMH2AKTpMPt3FKdP/7CGNTpSK6QxHL6TtvmZv+gP7Z3wdC5jd0QjQlu4NnBFMWzpn/9HWmVn0GOavzxl77UxMoNg+Zc3VHivV1ARsjNAEidCVxhg4Mnb7xQ2/trOZlh0kCHFa/M=","layer_level":3},{"id":"9d53f484-8b23-4670-a159-6c7dfe30bade","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"NTP Synchronization System","description":"ntp-synchronization-system","parent_id":"dc4fc4b1-8f74-40b7-9ff9-9e3baa576461","order":2,"progress_status":"completed","dependent_files":"libraries/time/time.cpp,libraries/time/include/graphene/time/time.hpp,plugins/witness/witness.cpp","gmt_create":"2026-04-21T15:57:29+04:00","gmt_modified":"2026-04-21T16:27:59+04:00","raw_data":"WikiEncrypted:kk2p6A+hTfq/j31wt7MAgu7PjcLqcqeJIlT11ZAX6rG6RFTstxzezqPewwuq7KJcZnmxN+1kb78oCoyll71+CuHlqFqb2IInJOarRp3GUu1hTuhP5Ph9c12xZHHA3N9Y6gkfFTURztr6jAT6LxmiaTH7GJAiS5z7eF8RNHQWKef/m7HHGsZr01TaIMaqh33KDw6kzrqzxNeZDzLMbyh/x9737bQIhT5RB3tSN8g6hBmfRWfk8EkMtWVf4AcsDkhJOGA2ZXZbKc+Ey4I2k6wZGpgW1sM4jfqwCC5VX8Nk9VocnoDSGLfxgLh/xYV2SF27P7AOCsOaBBGjXqSvStzw1Q==","layer_level":1},{"id":"dc4fc4b1-8f74-40b7-9ff9-9e3baa576461","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Core Libraries","description":"core-libraries","prompt":"Create comprehensive documentation for the VIZ CPP Node core libraries section. Explain the purpose and relationships between the four main library categories: chain library for blockchain state management and validation, protocol library for transaction and operation definitions, network library for peer-to-peer communication, and wallet library for transaction signing and key management. Document how these libraries interact to form the foundation of the blockchain node. Include both conceptual overviews for beginners understanding blockchain architecture and technical implementation details for experienced developers working with the codebase. Use terminology consistent with the VIZ codebase. Provide practical examples demonstrating how different library components work together in typical blockchain operations like transaction processing and block validation. Document public interfaces, key classes, and their responsibilities within the overall system architecture.","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/network/node.cpp,libraries/network/include/graphene/network/peer_connection.hpp,libraries/chain/include/graphene/chain/db_with.hpp,libraries/wallet/include/graphene/wallet/wallet.hpp,libraries/wallet/wallet.cpp,libraries/chain/,libraries/protocol/,libraries/network/,libraries/wallet/,libraries/api/","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-04-19T22:31:11+04:00","raw_data":"WikiEncrypted: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"},{"id":"a276ebcb-3239-4375-acd4-369aef9806ce","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Data Flow and Processing","description":"data-flow","prompt":"Create detailed documentation for data flow and processing patterns throughout the VIZ node. Explain the complete data flow from incoming JSON-RPC requests through plugin validation, operation processing, state application, and response generation. Document the transaction processing pipeline including validation, authority checking, state application, and fork resolution. Include block processing flow showing how blocks are validated, processed, and integrated into the blockchain. Explain the observer pattern implementation for event-driven architecture and how signals/slots enable decoupled communication between components. Document the data persistence mechanisms, including how state changes are applied to the database and how fork resolution works. Address performance considerations, caching strategies, and optimization techniques used throughout the data processing pipeline.","parent_id":"75556906-e1ce-4720-984a-3094f741c8aa","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/protocol/transaction.cpp,plugins/database_api/api.cpp,libraries/network/node.cpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:48:50+04:00","raw_data":"WikiEncrypted:PGdHQOrMWxh6s6galmzx60G4c66k6IPhWJyX8d8v0xn2Sl7SJvUGzCeuElhJ4SjnW1f5q1x3OM20oMAyLozbgKnw1geq3fLXvsMfIZaJytjp20ZVI2wKYo7M9ca6xvMqmvLCoFjV2Z0kELRuZLvDkmrlYmvgiiF44ET+JaQD3Tg6UnMB2AfY+GkjGaMezQa+OwIe8+/2009s6DSnQ122sSDAASlZ4rQAQgkeL7LK6gVM4lYmwTx7H0FRKgvN56jg92nJt8Q9ssKuyC3PnuMRtdmLRDD9GHl1UjneLNj58vnJAWszzHCQBtNk3VjHNP0deezRuhtgxwC+tewqd/JQSDdmqyXoyJE348rcbGaYl3xaUS1p7UrDoI32vDeIvbkTHgU7k5h+7g9gk3haKfN9RTzmsbqoL4b717U38BLqEOT3exi9WZkIorQW0NF5G6m0x9Q0Tj3SFO79eAxNuomk15MhXHBdLOea8nqT47FcO/+tqaorLLAUsGEH+NKXmbsnYD8mN6BS9AiVn3+3XJh5WvCSNOMqv2BkONJycxEao4fPiJe3Skv/lMqF2C5EGRNx5VUDJCHu5QSu7iNcehn6sFKJz7hJ1MvCwwEmlcnZTHZdCnSBWIGwj45ejQABCG69LOiZAmidK5KSRBFFqPcIEBWLz8Gjz8nSvvj/YOWHvnBGrJhJx7RWwwBisYRsAy8Z5cW61f+KRnOeiEN/pAz0CVwH/qCZ82Xoa3zbJhxDnVobI/YZxB38kzyIhZzD5f3TmRsWdYpru9hzJFPh4gEZUpsJG6MybcNpBh1TM2pH6c74FIjPfAU7ZiWVr0OrgabTZ7XlHJ7+uB2xNr3k8VzkQVf/V1AHJd8L5ZyI0pt4Dp9E0Op0q76xdp5vQHjmpfTZlnsM9Rjo/49Hsvs8G6a3fnlXts9G3Z+xo853HjLZVtYt2WD+9vjO7shN4ANJp6vwD1LpJWWEZMsRZT78kU0yIH7hAENi2GDclKPltKOA6xqDqNuz9cCyWGu/8JeX+SH00trq7Usn6zm+KCEs27c/T/YH/t93FMy7TOSXt3czenAk2eo5Y0Dwkfg76ikGVoLpj3QrHxmeFx/MCun8RXKjooErmweSQ0xhlAfNLUGdhsWcjsQQoA/g6jyIIfyVzl2FxuT86yu0Lyx13sc7HSif55cl1n3VweLstcitlhCQxCXHY1XnzOEuvylz+3+gqE81pk+e/EtYVpCOAnImJV56kOfkVIPHWVXQT/GazHgAtiW8XjD6WTHkeY/+kVBRMra0MvIz57qKdAw+zFgMJ3LXK+SybRY5ANWjt5RA4Un4tPdsOSE8XBkhZz1UFPkW8dtXySJd9Byr1XKqgUI1u/e7477TafcC/BWJNjeUIcIs4Kcjn+tzA1/wqJ4ImMm97/9cgv4QoDcxTPvZMEWmAKgYbjCsq5JuTsGWZeUd4gLTRYNdZMfeywZ1gARhSkt/BswMFAZFgL7DVbDgy7m3lvEz9l/U2i5ea7PWJv/KkYnXxer6DthsXvkHn+CEoQ7h1S9z3RNXMYEE8kZ+GOhOJib9twOdHelHqFefxCAoJQz7dJL8o9cmHq0Fr2WSTuKvcAvfX8iUnrtB1ur55PFh1Ub21t5HcA+Ofm44YsMlcT+G2k6lZsQpZP0Shrhe2kxei7508e065lBusZAeDpXsqIBC1BdRcJ3quwypSsS4SJyHeLaz4PHY9ubLEL+opj3D8JWdurRx8fFnB2+u1EiFth365AXKQR4baz4MaYaGxaJ4bBc/KzURVnTSI1Ysbh5eQQKGjFu4a7r/0sEw0E8tlDp5iw==","layer_level":1},{"id":"8379074d-4738-406d-92f8-af5f55a0cd3f","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Development Workflow","description":"development-workflow","prompt":"Create detailed development workflow documentation for VIZ CPP Node contributors. Document the complete development lifecycle including code style guidelines, commit conventions, and pull request processes. Explain the plugin development workflow with step-by-step instructions for creating new plugins using newplugin.py template. Cover the continuous integration pipeline including GitHub Actions workflows for Docker builds and PR validation. Document code review processes, testing requirements, and merge criteria. Include practical examples of common development tasks such as implementing new features, fixing bugs, and contributing to existing plugins. Address collaboration workflows, issue tracking, and community contribution guidelines. Explain the relationship between development workflow and project quality assurance processes.","parent_id":"423ed32e-852d-4f0a-a4e8-aaebd7c97483","order":3,"progress_status":"completed","dependent_files":"documentation/git_guildelines.md,documentation/plugin.md,programs/util/newplugin.py,.github/workflows/","gmt_create":"2026-03-03T07:28:48+04:00","gmt_modified":"2026-03-03T07:48:38+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"fd888d6e-faf4-402a-b04c-d6d81ea48c5a","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Network Configuration","description":"network-configuration","prompt":"Create detailed network configuration documentation for VIZ CPP Node peer-to-peer networking. Document peer connection settings, seed node configuration, and network discovery mechanisms. Explain listen address configuration, port settings, and firewall requirements for different deployment scenarios. Cover network security settings including TLS configuration, authentication requirements, and connection limits. Document network performance tuning parameters, bandwidth management, and connection quality metrics. Include practical examples of network setup for different environments including private networks, testnets, and public mainnet deployments. Address network troubleshooting including connection issues, latency problems, and peer discovery failures. Provide guidance on network monitoring, bandwidth optimization, and scaling considerations for high-traffic deployments.","parent_id":"a3fb1343-15dc-4495-a972-0870c4a88b85","order":3,"progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_debug.ini,share/vizd/config/config_mongo.ini,share/vizd/config/config_stock_exchange.ini,share/vizd/config/config_testnet.ini,share/vizd/config/config_witness.ini,plugins/chain/plugin.cpp,plugins/snapshot/plugin.cpp,share/vizd/vizd.sh,share/vizd/seednodes,share/vizd/seednodes_empty,libraries/network/include/graphene/network/config.hpp","gmt_create":"2026-03-03T07:28:57+04:00","gmt_modified":"2026-04-23T12:16:49+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"2445b4ad-4fb2-41a5-854a-e0daef1887a6","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Monitoring and Maintenance","description":"monitoring-maintenance","prompt":"Create comprehensive monitoring and maintenance documentation for VIZ CPP Node operations. Document health check endpoints, performance metrics collection, and system monitoring integration with tools like Prometheus, Grafana, and ELK stack. Cover log management strategies, log rotation, centralized logging, and log analysis procedures. Explain database maintenance tasks including compaction, optimization, and backup verification procedures. Document performance monitoring including CPU, memory, disk I/O, and network utilization tracking. Include proactive maintenance procedures such as regular updates, security patches, and configuration audits. Address incident response procedures, troubleshooting methodologies, and escalation workflows. Document capacity planning, growth forecasting, and resource optimization strategies. Provide automated maintenance scripts, monitoring dashboards, and alerting configurations for operational efficiency.","parent_id":"45075f91-f7a8-4457-9ce7-afd81aa84742","order":3,"progress_status":"completed","dependent_files":"plugins/p2p/p2p_plugin.cpp,share/vizd/config/config.ini,plugins/debug_node/,documentation/debug_node_plugin.md","gmt_create":"2026-03-03T07:29:04+04:00","gmt_modified":"2026-04-21T15:57:29+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"4188b9cc-4a36-4679-a5cf-916dc4435dee","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Plugin API Design Patterns","description":"plugin-api-patterns","prompt":"Develop detailed content for plugin API design patterns and best practices. Thoroughly explain how plugins access and interact with the blockchain database through the chainbase framework. Document the database access patterns including find, get, and index operations demonstrated in the chain plugin API. Include concrete examples of how plugins implement CRUD operations on blockchain objects. Explain the plugin API surface design principles and how to create clean, maintainable plugin interfaces. Detail the template-based database access patterns used throughout the codebase for type-safe object operations. Document error handling strategies, exception management, and data validation within plugin APIs. Address performance considerations in plugin database access and optimization techniques. Include practical examples of plugin API usage patterns and integration with other system components.","parent_id":"d05f2002-2293-4fc3-abb8-2d31fb7c6bf4","order":3,"progress_status":"completed","dependent_files":"plugins/chain/include/graphene/plugins/chain/plugin.hpp,plugins/database_api/include/graphene/plugins/database_api/plugin.hpp,libraries/chain/include/graphene/chain/database.hpp","gmt_create":"2026-03-03T07:29:09+04:00","gmt_modified":"2026-03-03T08:05:51+04:00","raw_data":"WikiEncrypted:ukPV2tcWPRGn89Upsee0BLgnn7JYGqI+7BDGQTVnjuRHRVrSL6tQDGezspM53gdtUsm79POkhFGbMKDAc/J73KOr8fv9yxwFP0VoRuKhzfwxYc3cuTurCXWgzU9qD33UyKcWZq5jbu8gui6I3BI09h3x8uoako0lZEJvMc987YbO8DFIAMI186UTX0GSkXJAiB+0tTnW0lK7Q7CyvzRlnJ4uvexA1xc+EZhQapFn0hFfn3BkqPvnFiPnhpszja3qVmCu0yxr5AX+OzkI9YrEHhMjnuc8KfaQdW9VHAia2WrQVVakOkiPAtBRLXw1SRpQtkxf6KrABOJaLawhkAo48bB2LOZHqAGu3tOxNEc72vQZfevNODQw/4xudcgAahRGx6P8V5QbfRG+7ZOzoOWphjKBaflPa3rNxq8WGsAT/7iITXZlKmwpq3pzl7blf9ohNDJ10/MGhxEznX6QxuFW4DthLR5kVo5FMpMbegc2qceJcr7rDsOVLLMyn4iJu3UaiybcuK+TNOvl/9FepZrihUrm7Rs1ztzDJ4QcscsNs+neY94/12m5K8AL6Mu2NzlcGwModzUdwsbItYtpPbN3vRWm+Nz4rmPUAYuKtui4c9vNm4avqaez3/tk9hTuof0mO/Pm7zStNDgQyzxVojbY3EL8rrMEPcI/D3OSAaUkUGRG2fLtZsmL+d/ZPTlIBTsNmlndMfEYTDrKr5E+W+3IRTPIKlzPWVBGmWGxi7haFJl2kgSpHJNyeh0Eo+8iETSeKxxu2TDgSHUkuYIg3HEGgdvgYIr1qGaupyRUtoY/q5EFKf5BRPbM5yv+gz+JC83OqEu+q80SULYKezoBiEdC5INZXHTv6NQVWGEl+8cCqdbUhMXEry7NmKGDeMJk5zVvI7BNCOTSguxS0P3q8tOjLfGnCxbOsLD8pxYvoN/z/twkUIVYuDYD322POm0xjzJ4AlPQArTp0rc4KlmH4w85aBBZ/nQ+fE49ONoyT3SW+Cp0lP0zVFHQPxLCqiO0CyKyNngE9HLAHdlN06IdGeLydDYg6DPV12HBIEV76AMcRaUL/CEr8dMWl2JhqmOYzIcZ54x/28IVV6uLzeZqSeBF86UMoiqp9mlO53qdRZ389i6a43ExR/fsho0biQmT1pYOg2z+Bs4JH/7havhY3tRk5/juh8+qSjyoYYJPDsqohP+9mGFBGc1L7BHbT6vyiZ9TjHmRwy+EnJSkDz/glriYfUpFIaSLN57bLnu+/sljxE/9WpEvw78No8/Rg/u5o0zhUxaSohbQRyrtjDWxh+2oFpvfLxStjsxVLZN+WS79BCIEnYef+pRZS/FzWgoaufxJaHm59yNZZYUdUB5rqxr8ex2ShwGoxeOaNmHsdrwGJ8/1m+Vg3BIlGtSTACH+Yt91iRdU2djDMu3OjKI7UKic90Ym6lDwCsnSjtgRZFxOa2+iYkqh87X0eA2XH4fcVs5dZv1zzPVTLYPu7ASfJWHRQQnPxabds2CqBynETnz4ROkyvaSshSNuqU3j0juF0GxFpyUNzVeHf5innJ7jt+muwMjOeff+m8cKbx//GFVgPhrp+2SM89QoZShNDkyyy9BlP71G4v5udRQgl7xC4qFX3ukbL1gg7nD9AT9bEcj4e4FwzePHvt633V7icBSGr0pCiDbBVwZEsmQvAuR8I+Pk8cIPh9trrznEmV1qLVkcEN/a1Rd3RANeS1yOnW2kVHHkpx+vQQWHnTzGpWTeMe7iVK02bsiYRcPro0nLDjwy+huJfeJA0v6pQciFTorypRWxbHa44CcnT9pJNzwdIwj6Qw==","layer_level":2},{"id":"bff9ec7a-13ca-4971-8720-2ef0e904b907","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Advanced Plugin Development","description":"advanced-plugin-development","prompt":"Create advanced plugin development documentation for VIZ CPP Node. Document custom plugin creation workflows including plugin architecture patterns, lifecycle management, and integration with the core system. Explain advanced plugin development techniques including custom evaluators, database object extensions, and inter-plugin communication patterns. Cover the plugin testing framework including unit testing strategies, integration testing approaches, and automated testing procedures. Detail advanced plugin features including custom API endpoints, real-time event handling, and asynchronous processing. Document plugin performance optimization techniques including memory management, caching strategies, and resource utilization. Include practical examples of developing complex plugins such as custom validators, specialized APIs, and system integrations. Address plugin deployment and distribution including packaging, installation procedures, and dependency management. Provide guidance on plugin debugging, profiling, and troubleshooting advanced issues.","parent_id":"c7f3fbd6-170d-4ddb-b57f-0bb2cc86fbdb","order":3,"progress_status":"completed","dependent_files":"plugins/test_api/,documentation/plugin.md,plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-03-03T07:29:10+04:00","gmt_modified":"2026-03-03T07:50:18+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"a6579a44-17b0-4718-83d8-34f4677508a6","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Event-Driven Communication Patterns","description":"event-driven-architecture","prompt":"Document the event-driven architecture and observer pattern implementation throughout the VIZ node. Explain how signals/slots enable decoupled communication between plugins and components. Detail the operation notification system and how state changes trigger event propagation. Document the plugin communication mechanisms and inter-component messaging patterns. Explain the role of Boost.Signals2 in managing event subscriptions and callback registration. Include examples of common event patterns like account updates, transaction confirmations, and block notifications. Address performance implications of event-driven architecture and optimization strategies for high-frequency events.","parent_id":"a276ebcb-3239-4375-acd4-369aef9806ce","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/operation_notification.cpp,libraries/network/node.cpp,plugins/database_api/state.cpp","gmt_create":"2026-03-03T07:29:21+04:00","gmt_modified":"2026-03-03T08:05:24+04:00","raw_data":"WikiEncrypted:W27BoG2tWSBKbrlfVNVQ+n30XbiFQ0QQI5a6lxogiBPjTg0DvvbBFVxLISoEha9gga8YkbF6lz5DhmIKlkxVqSrOPfvwP98GUOj8LffovPN0x6FVjem0YCS83Npx+6Ibzq2LUJxesBU+qAtPQEe1+kgERFazI8jpVPIEA5SAQs6E+tVyMbrp+izzDgE1An3BkZcmd8WlOiKBTXmO+BX9+gxzlWar87g9CugYmsBzcZwUUzG+TnbkVV8m9VyiERgc7YdTtwBSORP6zbFpLpqimwCl1WGfM2iPx3fmKl9ID7Vqcg9sjWHFHETcAef3vIQcCHn5ZwelrdlGWmjuugEqhEclWt6FQ+85c+7FlrVA/SJEkPHl21tbyLcXRo59nelJ479auS1kaMRkIAbbLLJFA89pTxBHLTh6UpmQfi/PnJX0FHKAQG4cCXDLpbng3u9V4jiScS+kPZDrvwbi0pxVlN3BoDGiYiup5naQqix6syTGND3DBn7DrrN97NOWB6As3M2nXHR2NvXMUoEN1DnpOIMbilF3IRve9B+8ZJCp0RU5fbFQjy1qD+s++dLoQP21N1/cjEFHD1iF0WYvAaqrRk/uDYDHno+tqeQ/mx+ZPbJqVfsvxIMdcTs+jDXnczvtHH+oOzAEz+66ridRpqISPDgcfO2cbHbD8yChkTSvPCRZdWYhTuPGD9FMpDyd0jIjtOB3xxYvHoZkAxGV+nMX9hasGMIF7kwGkhH9rmrYSGjPP7cDfNwTwu/FBc32a47b3jkk6hpJjVqUgKaUQwVLAljvp0rQBygK/1ZzcxVW+BIMsTioFS1YT3txI6Yht/fkrclLUxfXo4emNwybErlc27SOgQsen8u8XVq6ec0ymghCmX2GNpzdyBcoGHndxCnjXNjuytqWC148K/gEYnD8uMDDFR/FDCpTamlo9TnjmLOonJ+/0ajAF3YrxiqACGbHvCrJ4G+yuWD0h8hICR+5PP8s+bFUs/yKn7d9kaDv15PD1TKsDYh9+8aUEFoagYbWqdVUqdoaRVqqeuMH776Y5FkUXnii32wBY7HhXZLhzZSyp1xuekmM7J84yOOK2tBopwNQRS686YPC8+JftwhlJCmWcc0+mYaWoDpSZu4qYzYc84zrabiZWOKq7wECSRjNq1So/eOnTsS8aflZfO3NPSmfrPeog/Q5TzrA9SAmy+fQSmJFuZG2EpQmwndvbB6e6NcyddF6eHMQSXFsIQmzRkclcjFw5DWeX1BZU8uYADfXYb9MLMIiQFqfi7uQoiSiLvJ1KCqNhvLB6OVclq+W/oceE/acm/1XZZ8ivi1Qou4VtLQe1CWJECh3sTOOdIZyP0UWlmqWmT9BUQBQ1G6l5wGdjTmUEhh/r1xHfJHHYuzX2Wgc+JRQIS8LKGWlyVGcRi8l44kHDiM9Clhn2uGn4nL7baAM0wRSOGz/zGx0WsDBvGqL0nVkDgCZJdy0t2Y8WCG0Dfft57uM5GvoSFZ6MOzhOe0koPbRUZA9gA8yNzup8ltl7rocXAO12CAW7XD3rCUxhffjjXddeBpSijY8cpDxEylvPQnGr4rJuIbCjuM=","layer_level":2},{"id":"7a6f0709-a99b-4113-b106-2887016f8f14","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Wallet Library","description":"wallet-library","prompt":"Create comprehensive content for the Wallet Library that provides transaction signing capabilities and wallet management functionality. Document the wallet.hpp implementation for wallet state management, key storage, and transaction building. Explain the remote_node_api.hpp for connecting to remote blockchain nodes and delegating transaction signing. Detail the API documentation system for exposing wallet functionality through JSON-RPC interfaces. Cover the reflection utilities for dynamic API generation and type introspection. Include wallet encryption, key derivation, and security best practices. Document transaction construction, signature aggregation, and broadcast mechanisms. Provide examples of wallet creation, key import/export, transaction signing workflows, and remote node integration. Address wallet backup strategies, recovery procedures, and security considerations for key management.","parent_id":"2e9dab7f-8a98-493b-9d28-5efc04641da7","order":3,"progress_status":"completed","dependent_files":"libraries/wallet/include/graphene/wallet/wallet.hpp,libraries/wallet/wallet.cpp,libraries/wallet/include/graphene/wallet/remote_node_api.hpp,libraries/wallet/include/graphene/wallet/api_documentation.hpp,libraries/wallet/include/graphene/wallet/reflect_util.hpp","gmt_create":"2026-03-03T07:29:24+04:00","gmt_modified":"2026-03-07T21:45:11+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"1e3ac252-49fb-4a06-a86f-e45a8bf20c12","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Cross-Platform Compilation","description":"cross-platform-compilation","prompt":"Develop detailed cross-platform compilation documentation for VIZ CPP Node. Document platform-specific build configurations for Windows (MSVC and MinGW), macOS (Xcode), and Linux distributions. Explain compiler requirements, dependency installation procedures, and platform-specific optimization flags. Cover static vs dynamic linking considerations, library path configurations, and platform-specific build artifacts. Include step-by-step compilation instructions for each supported platform, common compilation errors and their solutions, and performance optimization techniques. Address cross-compilation scenarios, continuous integration setup, and automated build pipelines. Document the relationship between platform choices and runtime performance characteristics.","parent_id":"adb37512-8234-4100-b362-3eef9ab640b5","order":3,"progress_status":"completed","dependent_files":"CMakeLists.txt,programs/build_helpers/configure_build.py,share/vizd/config/config.ini","gmt_create":"2026-03-03T07:29:30+04:00","gmt_modified":"2026-03-03T08:06:47+04:00","raw_data":"WikiEncrypted:2GoRefXUXXQ3Xwp7OyY9nlon887ydNfpOl/itiNfh/4iWIxC9TaxKDiFwjOVFwQTPZYi+aDZcmdacy3T3sTlNOPDniBKjwz+vMIh3cB1plVH4KYwPt2TZXc/+ujGFDRr35exKHL5nJjwwQ0ZMNpW/UibupcGN0tcn8JuX3NpL4WLBra3PxQ3XTSuZYZPVzLj82+fwHHCLPcEK+78OX8e1RcVEklR+N1UsgtET9kO0/b+T0OBqa5ERNN3IEYqcp0mY5DL4MgmhZ5ELHFmyDcLeXPGbENuTTr/wv73OYFptwxgOC7zfdnxEof+OJt7oFB1H14TF9NkYiMrMg21KMYZ7SpknlH2jxvpqfrAZCvqdyxgE59BG/VXVZPBrsUVrClVTeHDodIoKQCzDVpuGZCDEUcM4ywm7n0JaWJSvA5QqTFe6FlcGrO4kJP0nIgvoYFjCNa6wMEbFOKpK082OTtsHnoZAn7Ygz/SktuD3sxaFQutzYzGUpESMp+7KK6ArmF3MZD1kHYrkbx8S1r3t7TRMBIPvNVbc8GJDepR8ER6t3haV1sBwAGTuVTiBApkEg1+z2snamjx/DMbTOTZC0t9VeDuyQmejRJ2nfbysv6hUkQPWiiVsQjp/J+k69s9+Ux7cnj9DlnC7yP61FjH09kWx24MLREOQlg4aqdv02Yaf/0NhCugHWGlzPlZRo9Rcm7A/fYVCWIdyBicPqoNenizmIRw/+0ZUncKEzrvzurMeUV+p6by+Wl4x/LuusxxAJNHAjzKBMDLPygjAixvqHVGme7S3iJkX6GEWMaATXOA58szwt0/m65fztGuJ6QnWZOGheD2ELMTHbAgxv9IgkRcqpDmLp2VaP7YYU4hq0gze2HaeR6u4tAs0fHJZX1HORBQV6m/1mzw/VUtnolpwqE/TDgNPDjy6eYc/8e8OPu/PHoavvf4IzJOMbuw9Jab/F5w158jHfEt9txnl5+n9JhFtPecLcLLIKgnb8rnsbOKzT4D5ggU6rqH4FkXNb3bwpNtX3vMcfTGxzXmertP2Lb88uXGxhfMWPiAvWdUrJtNxnCQIUWII2pyHmrr1hLGTBSzE0qEj2a1Y4kVgfkKUkeDNwNCf97ufWnDMqThJcy6zqCMYqHJIq/hc32CjSkIzzDOQouvmIOPaVwL6fpE699lSOwB+RKRrfZy4TBjrmA++IxZO00dgzzHFOHnN2m7tOKpsMnGukeWgOno6BUIexnY0lI9oY3VNKLjBq1WOxOBwi2qClZoCoD+7QkbJHk9gFUvcuZdAG8QeMQcgeeReC8hK9BHD4hZPTReh0bkSF1wEfAbM6TrdmuRtEECtHx8ccNSDmA0dl9OIyKfqRhsIsVF8knLOjcFBsaRt57n5d82KEfGVC68CqLC53zlhwC0f+83i16CySJnkLCgNBbd15ULQvB0CplndMfsziHgwpuJqtovu8ylKTtPg/wamM1QLvqMB5t4DVEbc90jw7qwR8T2SBAu+WoLfmaD20wd01rLkYH4tYuEUmmUq0XbGQtgOi+rUF1mBwHDdrHFW/gr7FuEdUWCclH5mbo1cA7ExHaHxPYDAxlKWN7m2zuym9yZ+Gf5h3jBjwldO1bHH58e5oSV8DQciXvAjBNDP9wIfpcfNEKgnr17F/GNHOBuQBfTDOUGLSGiAqCT5hu+QpkcGRq4U52dOsMI7FjTQau2lMxTyaQ=","layer_level":2},{"id":"dc06632d-6887-498d-b879-232d73eb4141","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Performance Profiling Utilities","description":"performance-profiling-utilities","prompt":"Document performance profiling and analysis utilities available in VIZ CPP Node. Explain the inflation_plot.py script for analyzing blockchain economic metrics and inflation patterns. Cover the size_checker utility for examining memory usage and object sizing within the blockchain database. Document test utilities including test_block_log and test_shared_mem for performance benchmarking and memory testing. Include practical examples of performance analysis workflows such as identifying memory bottlenecks, measuring transaction processing throughput, and analyzing database performance. Address profiling techniques for different system components including blockchain processing, network operations, and database performance. Provide guidance on interpreting performance metrics and identifying optimization opportunities. Document integration with external profiling tools and system monitoring approaches.","parent_id":"2328ccf2-46d2-4cd5-b887-81c71ab7e579","order":3,"progress_status":"completed","dependent_files":"programs/util/inflation_plot.py,programs/util/size_checker/main.cpp,programs/util/test_block_log.cpp,programs/util/test_shared_mem.cpp","gmt_create":"2026-03-03T07:29:38+04:00","gmt_modified":"2026-03-03T08:08:06+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"4a9e43d9-5745-4fa2-924a-ffa37e906ab5","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Security Hardening","description":"security-hardening","prompt":"Create comprehensive security hardening documentation for VIZ CPP Node deployments. Document network security configuration including firewall rules, port management, and network isolation procedures. Cover API security including authentication mechanisms, rate limiting, and access control implementation. Explain cryptographic security measures including key management, certificate handling, and secure communication protocols. Document system-level security including user permissions, file system security, and process isolation. Address security monitoring and threat detection including intrusion detection, anomaly monitoring, and security event logging. Include vulnerability assessment procedures, security update management, and incident response protocols. Document compliance considerations, audit logging, and security best practices for different deployment environments from development to production.","parent_id":"663a33c7-3329-490a-86b9-bcdf15178fba","order":3,"progress_status":"completed","dependent_files":"share/vizd/config/config.ini,share/vizd/config/config_debug.ini,libraries/protocol/include/graphene/protocol/authority.hpp,libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-03-03T07:29:47+04:00","gmt_modified":"2026-03-03T08:08:09+04:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"3409a0f3-2436-4d70-bcb2-529bc26107e2","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Block Structures","description":"block-structures","prompt":"Create comprehensive content for Block Structures covering blockchain block format and consensus mechanisms. Document the block.hpp implementation including block header structure, transaction inclusion, and block metadata. Explain the block_header.hpp specification covering block hash computation, timestamp validation, and witness signatures. Detail block validation rules including Merkle root verification, witness validation, and fork resolution criteria. Cover block production workflows, block propagation mechanisms, and consensus participation. Include examples of block construction, validation scenarios, and network synchronization. Document the relationship between blocks and blockchain state progression.","parent_id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","order":3,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/block.hpp,libraries/protocol/block.cpp,libraries/protocol/include/graphene/protocol/block_header.hpp,libraries/protocol/block_header.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:21:50+04:00","raw_data":"WikiEncrypted:boPmx5CcA0j/DyoZ7HyhKvDO0uY4WRRkzNPlVPFfuYd8x5dUCvXHd/9oi/DxEkfTxFYD6bAblx+fQQtuLzg3sNwWhDQfuhCUPU0fy858bISDVVeq0bZ9kOv+N1cQafYJexYNmmOXHAtODv6aTvln0mZMaSSdpskonjRSiVDR2JFQ1c3ihfXZ9aWKOJzr9HkollwT6o0GKJ8eorPz1iLxLjuuquHSqCI3XT9AEmwcOaNnQShyTG0htuDWIltom40CsZcu7Cy8U/5nQzjC0xDOrC250aMy5seipxo8FAkVVpMX1XNBS38rhNMjRx2OKCppowA7cIOi2FHW6V4Q5vbu+mU6FUxquGMY6lbq3yu8TbvoMAD/QHS8UL7YYUa+4otdwFZ9QSkbvu5GvmAg2jjbbBzHknhWswLPV2t16urDqHkTqrEYUcmJNobdpZwC6FMjh8IS60obeoHCmUMLWxbZKLs/at3r+7JaWiPt+7xh26AoOr2jvjva8YYv6aSKWGoTMW3H2qpeMDiwUqtqWS0L/REzV01evXpTy69qkgUnRQcWi+FkXRKAwQ4p5veRT8OF23DmlIPRBd9CX73BxgYX+wQmYU/ki8y2bDeb1P+++vOAPh+61ADmkl1O1DMHisuDnaDiCFOfYhQoUbJ8x19MSmRVDwe4AU6+EZrxp8RKz8/a9GwAtETrMQ+90BijOC54NEEGnoN4nI7onVLXrah4q7IPCn7ZsDwfiTROpju69VldR0fx5W3mcW5cR5QkvQ2GxhzLhsLECXMlAfQ8rmumlR3p2VeIdW8e/P/S/ozfNjWZzTfhrhDfu0Vh0Y7Vl6w8M+CVXnOs/tC7MadUAhjrh+JQyC+HMohGmdO7/z9++33J1xvTFJVyMw0GFOMSQFY6Ep07yumrY1mvZl7qZS05ItAmaINydqZu3p6K+KExgwoNhGWchPC4vfZ8xBQ0VJoT+F8Faidd+o4SynyU1Oa9a4nDGc4as1CSHvJdKS7A/xthytbfgo5QJNtZqwsgpqQiSBar6Jt5wb0v34osxOvwjhLvuvDRZ9fuSDvIlOiFT7/h1jeTg77hn49LMeK3SSge8uSY1mhYSX0wFFmSTZ09o0BBULQWJpqNi47MKUitiopByHGADdj6vHInz2cTcAegHNkmJElDw3ojdlDsbQibKm8vkNBNR/J43aDniBItv5XH9lShNCczTfl0ZYuawpqhiTDLOq8QJy8wCli16PSF3Wwq61hM7hq6qXdL1rZfvRsnYBW5GhCSL7weKEaqDTpsk+IxRFFdhwJ1ncnSZGEOLXXOeudTkfZHk8r+YxgLkt0NzpdB6t3M6r975QZs+Tj+4ReU8QJzH2lETRvs5l///xaT2cUdzYBloc/E60aX4zonk7ZyYs3KJwXniHXQefJRk+RsmN1DbuKpwaEFPVI1OiUgtuetyAT05BDA7lh2VSvtej7xZtkMI0FejtchcpCcvJFuH1BgjPfECJKdDQlWhRzLDP+YDKXAP8z5AFFA2tzEw7DXGyBxKo8/9vajdN/f2CiX1x1ryNzep77p2dM5fyk5ZvgmBvQlK5wEf4+BZgjSp+c9B8mojotd6/I5mRMJ6pUqqe92PePdrcW+I4qiFA==","layer_level":3},{"id":"0006b5cc-bf5d-40ab-97b0-59011f722ebc","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Block Processing and Validation","description":"Block Processing and Validation","prompt":"Create comprehensive content for the Block Processing and Validation system that handles incoming blocks and maintains blockchain consistency. Document the block_log.hpp implementation for efficient block storage, retrieval, and replay functionality. Explain the block validation pipeline including header validation, transaction validation, and state application. Detail the push_block() and validate_block() methods, their validation steps, and error handling mechanisms. Cover the block summary object creation, witness participation tracking, and block production scheduling. Document the block replay mechanisms for node synchronization and state reconstruction. Include examples of block processing workflows, validation scenarios, and performance optimization techniques. Explain the integration with fork database, witness scheduling, and state persistence. Address block size limits, transaction ordering, and consensus enforcement mechanisms.","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","order":3,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/chain/include/graphene/chain/block_log.hpp,libraries/chain/block_log.cpp,libraries/chain/include/graphene/chain/block_summary_object.hpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-04-20T08:23:26+04:00","raw_data":"WikiEncrypted:R9i/29qd1Uv5xEgS1tKQyKa0Xuqqfm5cq0GV9nRcndmrxsHsnYwJpAewisCUpG2ti9GxrCpxWosUOZaN9wIJ7/8/157xbaOnn2BOhyeyJDPEjOCeYSYjSjv1dxVt5lXdexGoI1KQL06BJsml/tJH8IGm3rSrWyMIJMVaaR4ggiX6+4EVB5GRcduKv4h7YPDYp3XIn5/mXxo9OTYPUOtsoVOv7rHyTlUbejkiXURwQve9fLOeUlvOIkZF4R06e8IAaiKcWGIvFXcY2VrH3QcxUFJsp4kJhDzGK2FUcgBnx3qjBwarMUwBpmjy4qxtg9mcgmICpt9DkXV/Qj7CgjGXDq0ch298hK9VXiT1gmCEUwmXar2PNH/y9g8c8RiIUMVAxrUCV6mO2cnruxbtn4bQRHyC6sk4Ob2Xl2kVvZuIDBbT66aj/kOiD69bs6LpzdWsztvVvmOAFqak3DVJANV/su1oWfc4dZHy1TVF86Ri31HD6HaOPhqNpMApI4ZuTGA6AuOth9U/yvJQNw9eJa2uqHSJLovcqephYqd/UVvPQUwwoQmeMyQpQGIgDu02ksU/4/umYthxfnKr9BCJZueLWKne0Ib/cxoDN+QlTPByFNxCIyaHLleav2nztHstwhM3KkUtSO48JMcEIF4KuBSW8rzzIVZSm8sfhQ+Z18r/cGnez0cCvKI8I6dIkLNeFeMz/WwUgYBbFFnw9LMJ0u7OulBWbJ6hXLwmS9uQEAywjdogAEWO7ff6hfllQ5ZJjUMBmDO4drvylBiNbQFRrwKjyqKxSoR2js37uA4O0CBA/JESRC6UsjfeRfGNWa1l/rXrdgoGwwBrE8hT7iNKOAgU2x/xiS81GBLWaUdxUtzTAK4j0jIgecLdmg9DWIxP35A4grHki8nATuqPuMzK/XD82HPaERxvdoyjYE/kyUsP/mUfCwD/JXekHhftIDxZUJSqV7l/fDYPQ5ipe2jBnJIy7Nh4rpvA2BW9RJhI41asIZjiphshvPGZWGOF2GAyVwTANhAoRWizBv+itY1p/2WOckumF9RlmFiXVuFJzkCrNMyvjdvkdCYcu003ud8rO4xtpyb+J6jN5TNAoQUSO5fOhVvcHght5e6GzQlmQqJsmhjwCIcHq0OfStaGzE49mWjAcY3UjQhLQluW7CXA6G0qGQ7XoDVDML/QxP22XB8y8Ag/eDa38ZbtVYhXNIhVy9pWH8EeWIPbbGJv1UMvE6KF89Ybpgi9DmWvsZz6grqkqVw7Kig7sPtS0YJOHjCaHQ7LJmHCCudaZuZ2MF2TuMAkYW5yaytTWIhz0H77S/dQmzQmMbytfA1mqlMnBDDXtlT22T3++L+II8JkaX+0jTi1DTG6QXHTBQ7GcRuJfIF8CXjnJPbDSyUgXNRdvY1/Mn9CbPL4uVjXu90DzGhoKrvUGDXTTIzcHERZKN2/WCYDuD2A/kt/ky+a4Ifw0xSaifi271XU3geXOUUbdpVlCcV9aORTRkhN252B0skqL0oEnWgTxGYxoqA7NSU0021Y5Bd8/1cnNsVTN2vGh0YqLujdAfT3t+xV4modisvpwYxQ50Aj0ZJpcYBstxuDpOaAhEkLR5hr5XLkyAkl1niPitqs2+wSSsmDR9AUBpEY9FszPwk0pJOauEP8Jfr1d5BLOVVyTx33OYPcaq7OSFBB+BVeb2PdBWIQ3rXPJh4/C4vFb2Dm7ANtijqKL05LFes9n4IA9RpbvGA4TKXkeuQ29BEmtOSBPphfzyG9SQXOvTw7hmw5S3Kynu9fQaK77qhLq8/bZnW5czbIhiCfmycKKVJJWKkhDVDc/QGJZkuISswBtvOZqyJEogCnVHh20eVcvsGuV4ki3KHOcPx4rUhjTjXNpaaFzlwE8XrbFLZ8u2B/jB+4toP9H8MuRsWry/rKhQmFlz+dl20Ow/ic6jWDvlTRVljvVsPFvB3bDy4T8IKvzVoVtpm8QJHxIkeEhA7FGrf3","layer_level":3},{"id":"b1a4b487-b492-444e-bd70-42aa91701455","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Transport Layer and Sockets","description":"transport-layer","prompt":"Create comprehensive content for Transport Layer and Sockets that implements secure TCP communication for network transport. Document the stcp_socket.hpp implementation for secure socket communication, including TLS/SSL encryption, certificate management, and secure connection establishment. Explain socket lifecycle management, connection pooling, and resource cleanup procedures. Cover transport security features including encryption negotiation, authentication verification, and secure channel establishment. Detail socket configuration options, buffer management, and performance optimization settings. Document error handling, connection recovery, and fault tolerance mechanisms. Include examples of secure socket setup, encrypted communication patterns, and transport layer debugging. Address network security considerations, vulnerability mitigation, and secure communication best practices. Provide guidance on socket monitoring, performance tuning, and troubleshooting transport layer issues.","parent_id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","order":3,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/stcp_socket.hpp,libraries/network/stcp_socket.cpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-03-03T08:24:00+04:00","raw_data":"WikiEncrypted:dkYJ53aRvrNDaS+3NsNNs6w5If3uzOgs0Hbe29DiBx3mo/yRmSwkQRnMBRPnzoWGqPZ92OwU/caHUIgxDw3SIzF6G+l+ERyUQeM+5k8nlB13TwLGj0fVp686VLtYOr41/lerWMRI7r1nkNr74ZsTI//FSbi2G9SrvyKZ61XeHQG52M/cayN69rlGN09zTApYx4BVQSWb2i6BxxSytcKaDWb1J20q6BHyKneNmvNVZgCaF0rwcMeSSoByQylXwRDtVsY/0BwBP4rfWpBp67hPXAduIM1/AM21CdQgxh2c6knORVht0g0QmQsZw0NWcx4YL9Y1nzZyFpQ70i7h6ipwiSBFydgbOJPVkWTCSkMboLQVC+JReq+N76UfDkZcuNeooMsYPKVmR21KRI53d1ksrMsqJKpk8m/l2Gx1mYC8RPnt8hA5HK7RK35cQcnLx+tHRlGouJ37O/Ho3ZjGeYnuXO06taOqh4oHKNhC0CuTM7j5briN+qDNziKL3qrEagkw8MQ2Flhw2Ut609zD4HJIE4DiH/98snKwoFEIvo3HIZ3XOuQrGA8tqN7EGe7F3pG0++qZeOZ7cUJhnNWxqTeXGsLDH7yxQWtZyBLyvjGQX1xr/juOFCZx4bAzdWoycAfVlvjr2uxkBo6EYFbTo/IyJrXg5VPan51QhuxjTDEzVNWlSwt1lnBCnuOCKwHgBdzcSJgJH56iYdia5kRnlRiLeBRmHyIE169xvgvBxxlrH1JndEb33mw9trClKcuQpM2pPzVA56qCbcbiM2Z44kdqKDr4CSG8ooHl6voaTHVMpIhfDUSmE67NTSyHYiI1dd/85iVQ+9FfNfoASUtTAXELUUYQYvzHMPJiU3MEaD2YcNWgsKvzjxN3VN4FTcmw8L40grY9Y82P4hOZiWDDUlAMLciKeF6y2t266s4DZ8JCnab8osDj8QF+6KTb6kkeqFJ3cCCGI0txYTS54YjlXZcPpiqHCPE0t9FvIT5upocG+rYGTWehyi1JYLJWC274vsGtm5GxLvRg6mbSqE7tBd1v8Zer9fNpXLEm4Vbddd/Rl6Eh0qbzB1Tsoq6fYyLBGLyV2fbQav8S8id2khKvjPBzrSRYlKUt4MIeJoj1OPBsETpBlksb/sBe6zXuWQl1xdv1gj9XrQNqLeVVV6nMW0llZzTx7hDht3JryMwsQg1tnfcOHSIT8O7jb/KR3IsyPyzBwErQdZ401BUyu+fG/uzA7BXgy7/APjoVyikPtgFONSsd2LohWJ/+o/xmuwCFIM3eNoMIwhCsFA98lztBOiM9foR5bXUo85+w7OvJTct69ak8sO+4KO5AH5/Tz7uFF7T77SRhUeDI7YjpD+Ik9HLNsoGKRyr8cbNLyac/UxKH1U4TKLDk4AXTIImmwF5rK8DJ0f5l1TNZgMaUZ8DFXO5vQClOfyqFxZWCt6klaU44p54Zp3LCMzEJnexfBmjaSv0DcVFHG8qLi18z3+qLjoEnRpsnnMHegrThAgDc/30MLr7k4e6iUcffJUilYu4Pu1Sc42USdHD2FfKrNDoUSfokki3E/ZKIrFVGQvC8gnoSqAwuh0ioo3iHGiJW1O3Hth8vbhUnFatBI/jLrXyzAFrOTkVzWwxQemSuJIF6jvWcGkgiAogUGWvRS60wJBSFfLyUdAMPIXDDve4qPvZ3uNGSNHXFN5w5oxjkJr9zWEXTyWOpAcb+j7G2l3FtGxwEAfgiPCl3sCAHm/4tpKr2gTx99oBrasStExD6+BpcjkMiFvcLVuwDnAuknrACPbPJ8vXTbEJ3TxUxzy5/jBlGmaFsNKC9zcFZfTn5AJGPPUGUziylI2Tr54IzA7ULa2tuHRctvQB9pah5y+GJCs/E0wSrqA==","layer_level":3},{"id":"27a9648a-15e6-4722-8043-eb722ca68c60","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Build Targets","description":"build-targets","prompt":"Create comprehensive build targets documentation for VIZ CPP Node CMake configuration. Document the main build targets including vizd (full node executable), cli_wallet (command-line wallet), js_operation_serializer (operation serialization tool), and various utility programs. Explain library targets (libraries/*) and plugin targets (plugins/*) with their dependencies and interconnections. Detail static vs shared library compilation options, test target configuration, and installation targets. Include examples of building specific components, skipping unnecessary targets, and customizing build scope for development workflows. Document target-specific compiler flags, linking requirements, and platform-specific considerations for each build target.","parent_id":"c6c73cf8-a371-43e8-88b5-96478658761c","order":3,"progress_status":"completed","dependent_files":"CMakeLists.txt,programs/CMakeLists.txt,libraries/CMakeLists.txt,plugins/CMakeLists.txt","gmt_create":"2026-03-03T07:30:07+04:00","gmt_modified":"2026-03-03T08:23:32+04:00","raw_data":"WikiEncrypted:ZHd6gDb1oAMJeik+Vv5fPmYm+3RvozY/gdL9KOhG1Gzli6r3m1Qs+ajLMwPD/vJq3bXqoW1huXFI4mNN8ySzLIQHLUimXSbYEWathKED4BP6kZB18cGiRNQidMb8cyrDV5Iuqrq7w4IXFOrP49KX1Fj+mOjkDg3HSykKn6cAceQlzfAz0DrSk7eNO5hzUQqSiElf3OV0v7+fK9Cm4IQq0058KWBtgI5xr1ykHT0HpoUy3JFULOqohFCF27f5ON1OWmLfAvFSCDxaw0Cl+BhogR6z4GT18ewS7uuTNy2PkJ1ia0uNOXkxMjsSSmmup5HxBMXdZkQpdPZNEoZL7fDXqwhfd98C+eejOh3Z4tyNJtppazTRl06TCmo9zBZKQAczNueGCUBgz5MmxlMxulgT+9hXgu1cWG4XA3eJ96P6ZBxnW25xp7PSSH9JRkMlDmOcuC46lfmCQWt0aTtIS2ozbWrcE0ww96p2VsQ45j2rNdqMIpi1ulIJUOotFpc/CddsAlKtEVpExeGMLcSkX76K3NIA90qoVwWSndANNc4MJ/8bh9ulFe2+uzoBBu3xinjVvUlbOCjyNGqFd1jnMZtnt3L7/t7PH0V9q2SOflN+SgM9jVRVitER45lZFxsqr/tav2KGrocQE/xxUOIjQIC5CMvx2HWPNHn7xRZU9XceW974jpXKFvL5kBh7vnmnsKJupnB9t42ya5cABJD3AQu6Z0j6CKGPS2/l4uzkYiQ89k5SPmbyPik64SWmpi1um5U9Kj7wI4cWS/oflhQlCNAmvw4uvDwwljAA6qj+M6gLAanR65d03Q9aDTAjBYMVwGmOo4abkQv3nf9TCwKxKDVFAs5ZcueELmtGXDiVHfj+aZxEo+t86mMMQ8g7u+kNm84EszGt09RKbBsjXslT7yQIutKSMsZJpE3XeEFYyhNtdvcx4MZ0/0C07WBxke/L+xeuddZajpKMJ3dJJCBkwNkDH9y1gQCS0cFOpuuviGp6SNKtCxcvsgaWS7wBAW+uPcsoMQE0llh0xjKnOnATbn9DIx0tfuUk7ESBuGr0VaKB9nfzTlBLkjl4PToRWCsnt84L3d+ueb44ND8vu7KMItz8QOKO4zuDAQv3ATK+TZjQcFqFxXPqpOu6tx2+SzU9U0Tm1N/U3VMkQgn+Uz1EBAQjxtp0HMRc8ziGnewPSGizlOykM6jUEZhJPFrMxDefENfoQxGLA+l6IrDKlL/lo86+eCXm4vFSHWEalAjeApSnERSF0wPuU6fm9QJcUdlhu7YfBgb2KoEhKQv99o5kzzGAwEO48dvnbGMlT5tg4Wy00FCskJlqYfDQBVxLTL24kNHfDTz7VM3JENKxyK0FPq8e+xgEtZrVx5vIEPzsppJ7Tm2JvwMNsgBNzTTVrWdB6GFc+ykwf9X+NihR8xU80Of6zgl/EQLw4MGr687/twMImC5bbwRa0EN4Pnpm+wfGnxag1dAxyCl7pFPa00FsMWfFsRJfEMTsBtYzA4fj+y8wFZji35gM1dsWtMer8ZNiTk+A","layer_level":3},{"id":"f67eeecc-2d9c-4f0b-be67-6888a35f1b49","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"MongoDB Integration Dockerfile","description":"mongo-dockerfile","prompt":"Create comprehensive documentation for the MongoDB-enabled Dockerfile variant that integrates VIZ CPP Node with MongoDB for enhanced indexing and query capabilities. Explain the ENABLE_MONGO_PLUGIN CMake option and its impact on build configuration and dependencies. Document the MongoDB plugin architecture, data synchronization mechanisms, and performance benefits of secondary indexing. Cover the MongoDB container setup, connection configuration, and data persistence strategies. Include practical examples of enabling MongoDB integration, configuring replica sets, and optimizing query performance. Address the trade-offs between traditional SQLite-based storage and MongoDB integration, including storage requirements, backup strategies, and migration procedures.","parent_id":"457e128b-594d-400d-86b6-6e9de70687ec","order":3,"progress_status":"completed","dependent_files":"share/vizd/docker/Dockerfile-mongo","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:24:06+04:00","raw_data":"WikiEncrypted:1goLeoGXOcr+JMF7YkmJQ4CA5GfPsgr9AOqxshcHKh0QXHY1oeNCF9v12XmDZHZdXhCy259YG0ezOu7wCXExHWK8rq0XwOg0suG4Rru7URghgXoS9VEljbRd1sl6vaFJhSLystxSvjxxzzlFJvD2tYkg8LaFtAmMvb8rZV8Ez/vZCMyxbPhKJ/eYVSciU7pmsK5xcHztFCn50vpB2r+Tj7t3gDP8WGYotYg9Jf5I0fqC3CInBw+7+Fy7HWpLVUIBIaIjozAoDMsShFMBja8RpTufBS28/UhItMRKddABKXVEZXD7SGIpEsoJoSREJ6yiSO+EmTw7r4tt0ORzmnJhtT97Bxk6r9hcgLBH9wNaggWiZSGB0X7RZSbzLF4qGNJ8kk/Dku4q/6vMsh1tZlnNTz+xeJ9Qdd4d6UNqdaS1i0rQHV/TauwScbWmVjrmaU3qQS5CwPasVE25WCIbXplFghy90JNbFQvZqI1Et3VDOQTiGhrW4WEULb81StceIyHZHPYG0KEkZ7RSnXUbIn1DARL6HzgoHsunnU1r15BIcy9NKrxjvCIQVJHpNSkt3Gj2AKDIAd1VCYM7KU4prw0cF23fcCABWMrCPPFmkFxsp0G/1NATKnFi56Km0ARP9qM78401kh9C5AVW7pDJ3akRvievrgrCd8ffmyrxqPThxJ4FWDo85X5RFbaaRiNj9qln0BKGqrR9t2JF2OHebqvlzwoROLwdN5DaJazsk9B6QVquqRJZLV+jBuJ59vK9g1rpdU1oBluHRJLvB4PZypWLlTVg5Pf/v5jCH0gnPTpCMxPwfPJlxUc2m5hojJE32fkJeAkFXJ8Q2j9mbQAvuDxUCH1844Bhwc+O8q0ZzPHADKs8yp2RPbPIU9cDsrHP8I3rkRdRHQkSpzW1Ja7wDnR7rHFtaV81Ygr5h0DDQqEGeJRycLYDrvbgXJ++N8yk2pMI3NdVp82G4v97ldxc7pmOoyCtSxLmM2L0AVmLCiJfEIIelQtOfafD8S/dXBowqYXgsFsj7pHzEfLu685kww+S0Hi2Ma58ydkYzot32TR3SBK6Euo5mDirRCGoi66xck8Ao84maWlxOIZR4/27ZoQsTCnnRPuONwNxwf4IArp+RpIyq6y8pMDvJS6D9+NUNajJvmdC3ripFYOzzg6AoGuxRkUKXPGkJJeUxIU0YUv6UUx3/Ceh5rSpXlBoWnIrnMvY57waMMR24d54ElfvPd61lvpdCD6zkMGQFpKPL2fuhcyOZXVUzBhG0iHARrL5sDw/qpkjwUp6pMY8lWFvqInaAAfRcYJqSSxcTf5lSDQncMV16JPUH71IzFKM75zM6dxgi5dX1EbdZHeDSFX4sBwGdR6tMxyw7x2Tr59DU2XjpNklRUYK+t81jNTVBFghVIAHiZbZh0iA26/Pgy/WrWoID8+MBc/XNy4wtzJXPUzsy1notTsYCLr/sK9uptZZRYnp","layer_level":3},{"id":"ef5183e4-4709-444c-9f32-bb0efaf17e1e","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Schema Generation Tools","description":"schema-generation-tools","prompt":"Develop detailed documentation for VIZ CPP Node schema generation and validation tools. Document the pretty_schema.py utility for generating formatted schema representations and documentation from blockchain object definitions. Explain the schema_test.cpp utility for validating database schemas and object relationships. Cover the schema generation process, formatting options, and output customization. Include practical examples of using these tools for documentation generation, schema validation, and development workflow integration. Address schema evolution patterns, backward compatibility considerations, and automated schema testing approaches. Provide guidance on interpreting schema validation results and resolving schema conflicts.","parent_id":"942792af-b86c-46d9-9f7a-22e783f2d6cb","order":3,"progress_status":"completed","dependent_files":"programs/build_helpers/pretty_schema.py,programs/util/schema_test.cpp","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:24:57+04:00","raw_data":"WikiEncrypted:7b0rATEHF8+R+XhpZF8awJS9ucITjIW8AZ92lNvy3q9A2A2uvYfv6YpvR0BnMFsd4Q0ovn849WEZySYF9U7MEsIS00oTyk5KL6C0n6FXddBjWTUR5PTJ3ztnl9XxWJzEUhzMMtIdmAd1KyvimpOCYwQ21QpwY5paukgVnjbsw/0pQ82INNTEiOIwF7BlzTf1HYfL7szXIL0WkJpLMdLxt2h9C2FHgQFy60+AKUZg1pt5Jd3K/aBQWV81VNnDXW/LnOx1FPSPwkGkzssRmbbAg0nFhMWsx5SMLXwbx+0OxsTzcsEom77ZZm1yybS/5zIQUFiRjQfIYwJuzu6N5Z2LWfsWSHYqLWmQF3c6umAOf3r1wW2ZNrCeX9orBn5VMOJZ7l8GTVOJXCDCFxdnr1WXweN5VGwCS0Odt+Ron1uBfAzu1GAw58ablMKRKv9VS4SXuxnr2wY/CQOMRjsWbRtvI71HuFhd2RJZIc3eVAsDc1GU1cmrTeTbUnOpZCUhW1oFgJZ7zk11j0lDuC7R2fp03fFJsHDnTeTn+KjHQ8dMIpWtQ8Nit6XrZb6D7tvpAC0SvTT6/p2f7HZgovIfTijfj1y1hPiIdc1d3NgzyEntYVppm5pepIF06TVVx7zfhhiuG9b6HE5hLuEvMq3DS/4XMm90Cnv4sZnjEyT3TEj5mX4J7N5cBAgYCSGgcNeI43T1C15pXX4uGLqfoOPXXnB/SCpxe9nWbiABMh2oto/9Xz2rUuQGDrsSrvRXL3iFGHAh+0c6m//cPkbqieTn8V+jGVQl6W0JlrLbKYhtiihZ2TDx24go8d7f8PL0ejj90ChkWSBVvmztGtG5cLsTAM5lB21FF4PXM72PfYtGrOCtfIOOHZfaXn/3vJKykmXqi9G01zdxiUzn5JV9g4bjIq2pAeYD9x8XC/bIO81rmTigEbB4nnLKa1ElZBsSM0/70h8jS+5z7IliXyuhB5FqyvZwwW0xVyIOUAzLtk33DyepAdhyg5fBwgApQ/HT48joEV2rTs8N48kN92Kxy2Ye79DVSUvQzIQPTLZoQkDnUqCOageMGKRgFzb6cqmHCuPViGnEMOQf0++miVciKXzhicWHaoLzp+sFjN3yGJMY6tZVI1oh/UiPejOTqvAQz8SMLfS229ZyyilSHYo4cKKzCuR9NlRx1X211iyYLzcNfOdkZwdM4CwTPQMSl3VtUnvqTSZHwYv1ZCeN76rrKV5GhJGX/NxT335dN0vycUHuJLIn/NlfOsFxQG5XodPVwtnxZp7S6TnnU1KVuZrm2ftDmexkuoC+050w+4hBvFdc/wjSpNOWgIx5HxbDS9wWBlmnw0TDrlXh3YEqotm+U3Crr7DxCF+D4IgTMGhdtmJ1R1jLTzSqu6SKtryd32ymbDmRgf1/8MZIIPbWljiJyYH5UNsPbK4WhW9WLV2g+eXlh+1UAwBgpyWvaeXm/t1ctPrjmfXsAnoJTYnhyJ6upeg8GnfHo7Z9UDfIJ3pyR/8d0SUQ7usL8Nb9HXxpWxddOk9Evqn5","layer_level":3},{"id":"94310041-e18f-4061-af9b-f8df7dca0154","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Plugin System","description":"plugin-system","prompt":"Create comprehensive documentation for the VIZ CPP Node plugin system architecture. Explain the plugin framework's role in enabling modular functionality, the plugin lifecycle from registration to shutdown, and inter-plugin communication patterns. Document the 40+ built-in plugins covering everything from core blockchain functionality to specialized APIs and integrations. Include both conceptual overviews for beginners understanding the plugin concept and detailed technical implementation for experienced developers creating custom plugins. Use terminology consistent with the appbase framework and VIZ codebase. Provide practical examples demonstrating plugin registration, API endpoint creation, and plugin interaction patterns. Document the plugin development workflow including the template-based creation tool, testing strategies, and deployment considerations. Address plugin configuration, dependency management, and performance implications.","order":4,"progress_status":"completed","dependent_files":"plugins/p2p/CMakeLists.txt,plugins/p2p/p2p_plugin.cpp,documentation/plugin.md,plugins/,plugins/chain/,plugins/webserver/,plugins/database_api/,programs/util/newplugin.py","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-04-23T09:46:06+04:00","raw_data":"WikiEncrypted:FgT6N5UmoqQ/n0GhU4kWL4ySXMqzdIeIHB99GsA0b+I7TbqnxImChi86IsAr8I5RNTbtgY7NYYL1jS31jg4SnFdi5WLYoSe4PseSomOK10NKLag2qd/thQi+3gHec9B+iMTzoJ0WPoKTOZ5332opO/GbF4CgiW0BqzV7m0sRkfKjZG+HHcAOcqWGdMstG4p+nwQjVyzp27PoqRv4i2rmRMyZMXmsKdBNkQ3wL20gJULbAp07LNGzb5anas98hyHVT2AyBk7Mb1Ku4r8V+WpbAI57l0agfzQfdyitY+iFZm2ODatNu6JTuPE05QRXis3ODAeOuiJKPxnIQcyaXyYsP8SpJbVSaDEpN9sQmby7qDmBhRQOINTHepF54QQMc7PWCJRuVs0MewpS00uYynbk3F2pD1SQYxnI7/G36L6uLswFffitG02/XJRAaIvGxAloOSBGDX0FH29TPHINJsrtBQF84EAzlYGuoCO7SNV1F9W1n/WpOEdAtxONctwmJtosJgkg/WnD7oSEoR0WNj2DIW1J3LJwS3P4pxXa5bOymHp1Q/mIAg1sS/AZuAb2ND1lvc3atafF/7eRor6vtLbG3y1rm/Cc6uVh7u1IR1QBToxWG6ml5l00XcLqolTmBQdpKlLLWq8cvi38pSv8q+Aex9fOCiGoL3YIEN1H9K4gGcPwedtoC/iB9/vBZ8gtPT0HU9+uZ60ewiYaLKPJm5p+l841hzsweeev02JH2fydl/x5111cAG0JU2qYa8WiTKTpTacy3O42CwYjEZn2hVOvU2k65wi5BlfsmKCzf33ADEMByoCy65prOuDzlJiSRaUkJkUjqejngwvemDGhlNspeYFAIpsNjUAoBg2tiwRN4yCTy88lbhDCZ8CJE2BB0qTAfpSv5FsMKnn0QCOavHKI9FKyL3jYBfobvN+VEUeMV8mMtGidY3e3v7dUAqwjCuZ5gTQSXpFqhz1ai3rMYFapBzIHAD2BrGT95A8flUzueDy1C3fi3idkSfkNx/Bgipbr0HSJ9Dr8NnWxG3PPnlPRKBcdEXgLELwYzPe9NTmXLbQATUwQpahGHHAaILasbjaHCt6f9jaw8Kedh/tC70FshXGR/70BEYgKvBPsdBsdX3IR8rJBGnaPB5djesTG4jLomKYRBSDXxvDO4eHekHP95AekouKB+Cn5xOz2+yGyP7V+fjywnaj/dU52E17tzRP68hoyJqRfSWeQ+Y8g9pIGL4TiEtxUEHtttbQU3J0aiW0qA8HUqntzAOvWi+Vj13WKiQcxAetOiNCWJOF3qJq2d0o0vjDbMB21Venzp/6M2fX6o4MV9j6nc0CwPfDxkiSV62MjwL9IJJmxGqJz0W4qDrPH4WXm+jCtKavacYyO7ua1Uqf/r15Azk2k7mt2T5OI5gOLQ/eAcnrmmesRsrFFI+miQiBCS5rFkq9Mhnc0wvrWhU3n8muzkZYoMvqDGS7FWaRciG7/Vp8E+XffoFNZ4IXXY3wUG8y9WOfVFSAyOHjE+VHVxfmaEKYnmf8T+2x0XpbsVMwTqix3EGXmdJtWYDsVeTho+/+VvsAzM9N97upELigovUIORB9WuxuggwalcSI4ZVo01+RYkx61nl+GMnRoQWxngAujtUzlphY7yVL8bJA4sEzGfB7QD3O4pFQbwwGA8k4qACVadArSvgcoSVytw/YCuq8HtRBRWbdqGb5xfmatyhYW64jGkmOahhDWApbaGLLO4WBKmkMlJE73G7+s9pN1TFGC2Ch+wxtcseJLSaSKGpd6TqupmhMF0tNnfrtrVttamsrSuydlWnC3TWZOFiWarBPEd1HuFvSXWfQ4bw2QwQioTI6R57JqISl1WuJ6OgDz+0jTev9F0DtkhIRtrMlXkQQBvdrFvqgwybaKUmE3CAHHL2Tndmosr+wqE8js54IFxb2pU+G5hGP10amlW2vZaHr5shaFGTtNLfxNAXeWPRsynIj7CaTB1Gta8piyzxDebx3CAbescosD78Eg1t6H9dPJTqF/7CuscBXFjxjDAACIAqNnUQzCj1SmMnkfh8g+JfR1i49AMAtM9gzIuOgezuL96LtagnZV3HmpfWfzOoQQHfnSQcCc3eWr2kU4KoCM51WnlWhzFwKt+yAeyzjHxRM5gee3DaaTp8tngzRhK2/pTOrOkrq/Th0eWvhQtJfO7TeakYELpTT/8+MjHpr7S+bmgMG2H8EsdF05s4OszPqgAqgPnFF2wjc1ELsXWCK+6M1xzwc7S/RNfyv7KU5C76yZJB171YfoWg4dz1nqF412KUbCGWjC58MlhpejZr8KIvLtDbN/NDdERWMW8TYb/BKlWFjlmZ0b2ARmxW7zVZL726OLDpv3bRTUk3HYrWOAv7Lr+z7uD/QsRq7ESESVg3PyzdlmRLnmDa7BXFf8uGvYm9ePmwnGHbpkSjJZHhbhaWcs0X6rrFe1MnQ5u9XffnfC1nVacz60Ku8tzkFG8u08wHNq0lf+xae/grC4KgP4pxE6Vjd9avG7MZHPZ5UH8A9v8Q0HlnKYC7XP0nvKfmdAT67WXXSrMlxt8xzS8YhFZVbgLA6LEK10Tku+5/YB9ZM5SumKpzTsIJjF4Ez4rKb+GCZRGaKbsKQnV09eahd0GjvWtRaMz5oi8MxDZ1NCRTev3o9VUklivFxmFQFaiy9X9Y3VlAEXKfWtbPlhKDIH+/FyHLLaNsnKp6c8WMAYbLzG3eiWwqvyLSM="},{"id":"06b2d03b-9b0a-4557-8460-4d26c9add4cb","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Design Patterns and Architectural Decisions","description":"design-patterns","prompt":"Develop comprehensive content for design patterns and architectural decisions section. Document the key architectural patterns used throughout the system including MVC-like separation between data (database), control (plugins), and view (APIs), event-driven architecture using Boost.Signals2, factory pattern for object creation, and strategy pattern for different evaluation strategies. Explain the technical decisions behind major architectural choices such as using C++ for performance, choosing appbase for application framework, and implementing a plugin-based architecture. Include trade-offs analysis for different design approaches and how they impact system performance, maintainability, and extensibility. Document cross-cutting concerns like security implementation, monitoring capabilities, and error handling strategies. Address scalability considerations and how the architecture supports horizontal and vertical scaling.","parent_id":"75556906-e1ce-4720-984a-3094f741c8aa","order":4,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/database.hpp,libraries/chain/include/graphene/chain/index.hpp,libraries/chain/include/graphene/chain/evaluator.hpp,libraries/network/include/graphene/network/node.hpp","gmt_create":"2026-03-03T07:28:18+04:00","gmt_modified":"2026-03-03T07:52:04+04:00","raw_data":"WikiEncrypted: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","layer_level":1},{"id":"1c90ed3a-75bf-4ee8-b83e-ee74ec1d78c2","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Data Types and Serialization","description":"data-types-serialization","prompt":"Develop detailed content for Data Types and Serialization covering blockchain data structures and encoding formats. Document the types.hpp definitions including basic data types, smart contracts types, and specialized blockchain types. Explain serialization mechanisms for operations, transactions, and blockchain objects. Detail the operation_util.hpp functionality for operation utilities and helper functions. Cover variant serialization, enum handling, and custom type serialization patterns. Include examples of data type usage, serialization scenarios, and deserialization workflows. Document the relationship between data types and protocol versioning.","parent_id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","order":4,"progress_status":"completed","dependent_files":"libraries/protocol/include/graphene/protocol/types.hpp,libraries/protocol/types.cpp,libraries/protocol/include/graphene/protocol/operation_util.hpp,libraries/protocol/operation_util_impl.cpp","gmt_create":"2026-03-03T07:29:54+04:00","gmt_modified":"2026-03-03T08:25:53+04:00","raw_data":"WikiEncrypted:4o0MsTZSJF8izk/4K4S0sgel0pL3GjUBgmfU2Jyx8LAEeqHSwBDIqrwqYaLa7vz0dZklAexiBrcyBPoGl0UL8BLUGv1A6Pm6qrXwLUFQaxQ3uw6aYd84Czg+l1rsyFCtZkGqcNdvR7IzXAukFAEoBdxczKyxinARYsusL7HRvAfVzJVoHceBpQQ3T8jYuUKHR7KxqUNsY1I1N4cKmpYRNuONQUbY3FaLt836Lwat+eczNxHuemF2h54DgyLIYFx7jGWD64tBO5H18dfTY45jnQWyvHaLi9b34BxaNrhm+fGKARUr4lS123jCX8Ogd6cROYLNUcfKWIV71Lza7SLjR3oy2fJHN2RTB7aek7eUs7BZ29A+DVGyDmeK8uCBtgTPDzclEAp6WftsK75zwen2vDxgiOSXFpRMVMEAOHAwj1IuDC7RNL+ffoS7VdEA68fjVq126qs32YF+sBGMUkEKyWEWX+gkggDLcEHsn/7+jSvzHtKBYqvBHDb4T0RhQ33cQm8MOsWmMxNa/cVQmnkVvOXkGhgMzkTo2aWzaU5vJ/1gxMrhMc+G6+zypIGtUI9UjmYZslWZiPNHcOTa2Fe+62p2Finm8c8m8ItRnKBSpvWLSmz+nIWazm7UWfByDY1S1v1wNfnY2PcdeEAjKCyxthZ5Cky9zotWIT+qrIOpc/qC26r4ZBiQR0j9E1GWg4iNMJxrVhTp02hdLeaTOL2pfLR0G4X7IcxRwvHRz0hH8trmEJpknID6V2HoDQ3xJPAyk7MoVzWBkP0ginPs2PFFCPTQKuJCx9YICn7OxOH8KNNGT8dqz2jLx+oipdS5PkG++aRBaQhBx/3XcXUJu1RLEc5ow1BZ5FfwwFI1SawDt2JI+TJwDy5UvAJg3NVZlw2VZNOWvlMSWjzRd1JXWKRnZ3ttaAdOh8Rnq8018rPe3hTKusOw0H7x6Qutwzuy861i00sXA1EpBOM+h4qwdylwOpck0nF6stCsQKPPthaeVkTF54qbg6oJiJisfp0I9QfmilymYVDuLFzflAylAFe8YSWyBHptb61CK4Ak5snS3b+69+zTp8vXayv56nEDuQ8gn7gtbYOmYf7PpkfCmWz5gUtos9IbU02Fw4OnqLWIyYUH6qOhbS87wfcuSqUp+1WKMYHFNxzTmXG7UQvt/7Ir6SJvZbS6l6YykQlv2yMFV7+LDWkQyA2o7PPDUcTjmV4IQVtY2pd2QEkdQlBFF7doTRILVr7moooL82uAYJK1aSAfGLpPLQ00ZG8qg6d0Wx3YVH00HTPF7xHCvt9YOJwKwPZ/uF5ycShlwxUNsN2qj6QIXK9CdnDV5a5JDGhP/JmICPhmAG/S7PUAL4d5+EE6xxFA4iwcsWyZm1i76v4W5l/+U3wz/4cREOAone0UPOTGBFFvTvrgLgt2iwBpoWCUJJs1T6w3dwWMyZRG1Sy4dJY6reScRpuOoPdBmKELw8zB4hBipR8Tlj5DA517ISX2rXS4QjE53Vk0mEbFdVha4CsZ33/5Ytms3zPrGhiUM2/KFGnEQMevHWbR+98FTktgxyxdpcmc3q9fByqAP2kYSvyRFDeX8oG+KsE+DdUEqk6u","layer_level":3},{"id":"3129e54a-678c-4e31-ba0f-26c5be02c20c","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Transaction Processing","description":"transaction-processing","prompt":"Develop detailed content for the Transaction Processing system that validates and executes blockchain operations. Document the transaction_object.hpp implementation including transaction metadata, status tracking, and fee calculation. Explain the evaluator system including the evaluator base class, evaluator_registry for operation dispatch, and custom operation interpreters. Detail the transaction validation pipeline including signature verification, authority checks, and operation validation. Cover the apply_transaction() and _apply_transaction() methods, their execution context, and rollback mechanisms. Document the pending transaction management, transaction pool operations, and broadcast mechanisms. Include examples of transaction processing workflows, operation evaluation, and error handling. Explain the relationship with the witness scheduling, fee markets, and state transitions. Address transaction size limits, priority handling, and performance optimization strategies.","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","order":4,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/transaction_object.hpp,libraries/chain/transaction_object.cpp,libraries/chain/include/graphene/chain/evaluator.hpp,libraries/chain/include/graphene/chain/evaluator_registry.hpp,libraries/chain/chain_evaluator.cpp","gmt_create":"2026-03-03T07:29:58+04:00","gmt_modified":"2026-03-03T08:26:05+04:00","raw_data":"WikiEncrypted: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","layer_level":3},{"id":"66bc9d6c-2ad0-4f68-a37d-3f94f217ecf3","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Peer Database and Discovery","description":"peer-database","prompt":"Develop detailed content for Peer Database and Discovery that manages peer address storage, discovery mechanisms, and network topology maintenance. Document the peer_database.hpp implementation for persistent peer address storage, connection history tracking, and peer reputation management. Explain peer discovery algorithms, bootstrap node configuration, and network seeding procedures. Cover peer address validation, geographic distribution optimization, and connection diversity strategies. Detail database schema for peer records, connection statistics, and peer scoring mechanisms. Document peer pruning policies, stale peer removal, and database maintenance procedures. Include examples of peer database initialization, peer lookup operations, and network discovery workflows. Address peer selection strategies, load balancing across peers, and network partition recovery. Provide guidance on peer database backup, migration procedures, and performance optimization techniques.","parent_id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","order":4,"progress_status":"completed","dependent_files":"libraries/network/include/graphene/network/peer_database.hpp,libraries/network/peer_database.cpp","gmt_create":"2026-03-03T07:30:03+04:00","gmt_modified":"2026-03-03T08:27:29+04:00","raw_data":"WikiEncrypted:XiRbxJCvY27UULqlncgSjGeAt+SntVKp6XLlW8ZptMe3cQN5ElOvYsLW2S/yrn5Pm/gdCGXs1y2Piedj9v33wLVOwOus1E+E5H9jI71bXJ8uMEB/sz5NkYwU8/6WNzkQEHsACzMBDHuIu68ikPcAtR/8PnomAHUeME5ZfrZrVhoViH3TDu6y2YrDMdFxjmqinq0fSJUCDY+ReIEVe0DvsdamrkwIGLGY5bVT2dG4wA72SkOilgWxqZTHkxb6lHymUVytk9eYkF++9M1xy+eMmJxQD+TE2u5KZxVCvqgn2YADlbSX3hWCGnZjEjZFVlyDxQaAO1QnQ8yUy2iYYhwwWm7CeMqOc9byb+cFu+/OcEVm+e8BFvLtlLhxtP3eh+6O2Vs973N6W5ysyb0JygjHnJ8nudjMyaHNw8RyMvqSOSLT9U6UwXVTEaUotwIWIKzszrlF5uOiVOgjVs4Vuhd/uYnYqPY7yg1U9Gupcuxvia0BPTymFFSR0GDBDuozAVK3y45LRyXz9WHPutVVQWh88qMX+jfAGvGLPWgoIINUN7qxj7vx/kvAhe+zqVIba7395/OXZF6206+vXtoOr52yCARo1CLxoOxdGiOKHHIbYfGb5rQTXcMLT47TM1pJW77qF2ZR5g5GHIJIMydfYlnCTELuUPbwEQv+04i9jOdcmqTvtikO6WoduzLSRan9imvV39bTHESYJcjmUlckudSYPQtozz7k9e+CM8MImvuLr9XjkYGT1eUYbvc+w1RPzIdkX0510bTwxzf+aDCpoCvs8EQsEWVi7mp9dM2qBWQEdpkW8TIno+0mFwoo9mNRZDjG3uDxVroN5n9AgEtgWwXkrXHOFMpY2E1AIKhxOYjZ1Vy5KzxBMdh2cinDqfAb6ll0vpu9cElmA+zv7ttinHxgQjFyClOod38iDnt5ZR+0FGhcIcs4P74nKN67g708KKvGVd4lwx6dtmZrc24PynmKHwA2TBmrLBNM5ayRIe9uGx7fwf2GBSg2dPNCXEUtOTsDs7IGGa0B9w4wa5CKCIuoB9SoV70Lq1n/P6BwSKUmhNygSrebiD43uHUQ5cOIYPv9jDBgaTNBoQM4TnTC7fjNg5xBcDw0vlGHTq9FwedyYAG47EgYdNoSbNf8YT/GbFLjGaspoWg/aJJfrOiArUoo6Wg4ojQP3O0OGKlX4X0H/+9dL+4J9PwFjIvx/ESPb/xBDznza0ed4IZr+4fZ7TaSScM5euZl2jk16NwcujBriKnp6ABz12CC3fd5IXOG8S/P/iIbQseHgBo7JfDWjLYX20Cap8snp6zDAuJPznfy5geMKJ/JacoOzCglJsV+R03yLHv9QFHCjeSziCtcx+9azEC8MvUzgqr6CzcAI4nkh5GhDwnkmJ7JfJU22HTpajb16qZcHJBnGZWHiG3KZdD8jKV5qSo2fwd+92rHO4mrCEXisYVNImPxfi8jA1nSAp6Y2NXk6bFa02t0jO15651DfABmgqeJxXvGGgN5MrRLKGu6rb3deqKo+dcjh1F7OffKbsMAZH+mQOCdYVTsnEyCJupKzMvhxEqC/LIXyStFyD8xXNLXXMILU+BGDP5Ot99lNtc1tavX26Wadj+ngWdtm1fw3m6GQ9+HUEY2O8NQNTNdGyhn7l58zZA6wDYY3LgzZzzq3DBddqX0/Hlrr2wcjnqsfapDRrVhDfTM5Y5WjHfvmtO2n0v4Wv6ZgGL4pTCzDtXzl0is4FdsexfPlZVbHL2kFxVm7iXsRfmCY7F74GkQUrSNaKjisSho8S7eR3XxH26Kbkww49FudqO3YTCQO2q969KjbtwNxa2MS3UjOh4=","layer_level":3},{"id":"30d0e8b4-4240-455b-9316-bfc07cf4a703","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"GitHub Actions CI/CD Pipeline","description":"github-actions-ci","prompt":"Create detailed documentation for the GitHub Actions CI/CD pipeline configuration that automates Docker image builds and testing for VIZ CPP Node. Explain the workflow triggers for main branch pushes and pull requests, including build matrix configurations for different Docker variants. Document the automated testing processes, code quality checks, and security scanning integrated into the pipeline. Cover the artifact management, Docker image publishing to registries, and deployment automation workflows. Include practical examples of modifying workflow configurations, adding new build stages, and troubleshooting pipeline failures. Address best practices for CI/CD in blockchain development, including reproducible builds, security considerations, and performance optimization of automated workflows.","parent_id":"457e128b-594d-400d-86b6-6e9de70687ec","order":4,"progress_status":"completed","dependent_files":".github/workflows/docker-main.yml,.github/workflows/docker-pr-build.yml","gmt_create":"2026-03-03T07:30:16+04:00","gmt_modified":"2026-03-03T08:27:16+04:00","raw_data":"WikiEncrypted:xtifkbs/d6wNgYxQA0eu1rJ2oLOxPwih+xivji5z+tk4TDdFMY/p/WvAfD0LFZfeJ+Eax8x67PbVPoq2NW8j2tIHrBfX9wrvkZxoA9QdrNVjiLVdVfe6Y1r0ibktm0Avg6vXYAS0SaYo67e5rpbS5THtPtI5Epz3s9cYAf9VR4Ht6UclEB5iAnTvfl+NiNqfwqwXiOspjLPQiRG8p3RfJBmILD7fF74upqMQMTZNR3dX1RyKYAlf52Fl8pvi8nswFcV11CJbcJFMlHuyqv8r1x7sF93nPiITCDAY4YEDZWPtv0HPZbO5ySbZHW9xbssULeAkFufQZ/thD6DxJCi7VRJYes9hYACZbo0sGXne5XDS5Yx/46CVqDbse/jkgCrx32z0z79xufyr+ot9vUQkNIk0/AR44Xp8Jcrmr/X8f1lhsB62/1x3o1O1KJjW9HRPHhR9E8qwNbu3fJzjGJ2T5YyRodDBh1WIsRecGD2oc/aHfbYTLleUIkaF4ywe9XotnNdXE+2AIDZUIu6n4c/5FEPwDpUueJ4Tp9k8+0OWRmWMKDI4nBMsQl78/UW5ztdVu/cLE9zt7D3HhyQEhqD9i5hVXxOIkTI0U//nf+BZWPBGkwxAujRCgHUo83KHF2/rtvvaHVaeLCtDI3KHBfgR3IYbBZfOSKN9t7Pt/SyFiuO+OXYDMzpDJxjLHxbBHQDtDt2r5p3Gm8nG3WssxSuRpEBus11wtbcjXlF2mXLsAl1wCMvARg12hIujsTyX93eiDPM9fBMzi/vFbFUOpWiA1wr9v/dDH7eMYbYiSIg4yl/RGFtCLvn6HbxwUkiYKS3TCv/o3gjbNRpr6fx9S+slOi3AgEtxdTTwarmmGxIW3MIC1ttWgDOIDKCR5UKIW49MPA9YXncu1oMKGb8O5oegsXc/GYpBkBlJQcoCzYKXZweonUUybw20/ubLULaB7u4MKBsN2b+StKx+79GvhVXFstIGp5avC1FRLQzt0TnQq9mYErtlpdZptJP8ICL6VD9ixgiWv9h7xNkCODRVkl3iMLjqfEW2qAZEvHHFMqRPP0ahgx7pp+hgFZPwKU0mjPKeUXl8krbNPXMeEIIKU4IHI0x3mpIfJqIYGm8frGZkdEgeHdiebGnPkRSMwQS5nPieC6CCoi0njCZkSNzttDzq606Hg+uAeO6k8sdlYJMnnVChv1lV5PjJPeHCPiWzQ5OjVeB2Eev+ZRsYt9H3ki7ze7YVwsVr0uI9Oq4T2F71RffnMEi85KedLxjLysvnZX2sUg1vhKCdBfIGsAD2WknQG+UifpDs+lBI4+lxP+BreYfl0r/B83QtGC43dNsT6U/tlrhi6AlVMRXn4PtnpTty596UHw/q7nIST+ypHUfADM1CFQJTqpQG5UbAOH9Nx+mz32w0nG+e/owYNzindwUlSLihC1265vOzGpP3xZFwPKHT15sdqcruYTTkrbWxzpsoOrjyZb4iobm6VNhIB2RPlTwGjUMtx1uUnum0VzuS7x7xpo8CjYM6HuyYfu/jacSvKPqPn1A2TrS2CmIxl4Nb59/V9OjhS75lWzk5rUXo7SLHSmTnwBMg77E4cxSlfVHeRvxSDXS4KdCgvq3owWlaIw==","layer_level":3},{"id":"18a6873e-7b81-4842-916d-cb88095dd09a","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Build Helper Scripts","description":"build-helpers","parent_id":"adb37512-8234-4100-b362-3eef9ab640b5","order":4,"progress_status":"completed","dependent_files":"build-linux.sh,build-mac.sh,build-mingw.bat,build-msvc.bat","gmt_create":"2026-04-19T22:01:25+04:00","gmt_modified":"2026-04-19T22:03:11+04:00","raw_data":"WikiEncrypted:zhwwHcEGfkuzROuyPGwGZD/0WI/CTybfsgnvf0a+/fBPmrYtLd5NuaTqipWJR9I45kt0KlRWyKnQXBlUGFuKVXIWHd8zpK1bD/dws3Y+0y5bmVLWHKp6dzQZhaCQ8PqdbqH6Ef6BOExueeAKMrg3VG4nGQ4qnkwQuwN3IYhGJSf0t1yOpT1aqpbR+u9hEgg+mf/t+np2afE7VAT75QUC3xAJ/6WmRABeDId8fKJ8AJi2YCHWLM/x6M/vbZTtQNbB3k8sTMjZxrWdv7Jdh1CgCg==","layer_level":2},{"id":"179f69d5-0757-4fd0-a754-5c579448f8f3","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"API Reference","description":"api-reference","prompt":"Create comprehensive API documentation for the VIZ CPP Node JSON-RPC API system. Document all public API endpoints organized by functional categories including database API for blockchain state queries, social network APIs for content and user interactions, governance APIs for committee and proposal management, and custom protocol APIs for specialized business logic. For each API group, document HTTP methods, URL patterns, request/response schemas, authentication requirements, and error handling. Include practical examples showing common API usage patterns, parameter specifications, and response interpretations. Document WebSocket endpoints for real-time data streaming and subscription management. Address rate limiting, security considerations, and performance optimization. Provide client implementation guidelines and common integration patterns. Include migration guides for API changes and backwards compatibility notes where applicable.","order":5,"progress_status":"completed","dependent_files":"plugins/database_api/,plugins/social_network/,plugins/committee_api/,plugins/custom_protocol_api/,libraries/api/","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T11:26:06+04:00","raw_data":"WikiEncrypted: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"},{"id":"4f33c67f-a478-4941-ade2-c69a35b57cd2","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Block Log Reader Module","description":"block-log-reader-module","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","order":5,"progress_status":"completed","dependent_files":"libraries/chain/include/graphene/chain/block_log.hpp,libraries/chain/include/graphene/chain/dlt_block_log.hpp,libraries/chain/block_log.cpp,libraries/chain/dlt_block_log.cpp","gmt_create":"2026-04-14T14:39:36+04:00","gmt_modified":"2026-04-14T14:41:40+04:00","raw_data":"WikiEncrypted:R9i/29qd1Uv5xEgS1tKQyI1I0rpdsO9IumbhMrSZOSV7pWU+H3/REFsGh6aDTot4hNxJPS2VAN0rfbzcg4VekaBmG/Alt/nqGifIFlLhScM8FHHmLRuS2zB0uFzQkJdXUBV23GOZdcOPSusr1YBSe5C1pBy92GXe11lEhG++DJeD7uDwx/BwFgme27p7RN3ShHGpOKO6KZLVq4NtrBbRqXBgj+BPN896vHdpQsGPy1Z9xdzm3DDw7+wmkNL+5lwLXW+0miCGz0DCrZ8PWFoJJhE3W1JhA/46ieUfQOPY78J4877vX/mqkUnYqvTQFp7WP5nOGjPH/csixyLK1BUw6K2TEcBagf+in3k6twTXnVUyf1ZZPU/VpryPBLYtnWHcOZgglvMtupZVMfciEg1Ziasrbccx96hkUHVxE6c59taZWMVDyPuepIVEIVVoBJZJ","layer_level":3},{"id":"a3fb1343-15dc-4495-a972-0870c4a88b85","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Configuration Management","description":"configuration-management","prompt":"Create comprehensive configuration management documentation for VIZ CPP Node. Document the complete configuration system including configuration file structure, runtime parameters, and environment variable overrides. Explain different node types (full node, witness node, low-memory node) and their specific configuration requirements. Cover network configuration including seed nodes, listen addresses, and peer connectivity settings. Document plugin activation and configuration, performance tuning parameters, and logging configuration. Include practical examples of common configuration scenarios such as production deployments, testnet setups, and development environments. Address Docker-specific configuration, container environment variables, and volume mounting for persistent data. Document build-time configuration options, compiler flags, and feature toggles. Provide troubleshooting guidance for common configuration issues and validation techniques.","order":6,"progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,plugins/snapshot/plugin.cpp,plugins/witness/witness.cpp,share/vizd/config/,CMakeLists.txt,share/vizd/docker/,documentation/building.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-04-23T11:18:10+04:00","raw_data":"WikiEncrypted:E+/2Dc0W2bMlTnmM4hOnqF5aA1yRlhIvKqQyLTPZBxDNZZlZl1oCDWz3+tIkhRClBmVjmK4fg7RIaSm4OzlSHTlzgSADFbUMEPaOgxYjJFLcvsKQcuPiz6TDzqyWo9qpda1xdYhd5B+FiQS1HDhCcDESXBfIuRyWjJBaiWhkrmpKcErDNpPaBt7x3hT63AeUuzU3sHZA8qrFGTPo6gvwIaOelpKvOvIQMyjRSAd5y08bYOoGpQm6a8OAcrXQdkFra+mqgMy6ni/7REZgSwCUvg8LvoYWOpOi4Jqp8b+/Szbk7iNrYrQQ2CX7rHQfWdiPYcDbMisDc4WvhAF9ndbA/8CbX+/Fq4ktQa3I3WWL8spUggX2RfyOUOgjt7VZVf+x32iHS4SE6K6TuwZPqo4bhFhk/WAZhWVH/wdvhfGMnjr7V2de/w46HKKgwJ9uBp48NJMmOg1MGWeHAqhTXpxoI39SDyP7JRkk2BhPGqH8coFR3igkBHmtge/vFrwpUIPmcjyVhDl+28XBYB+pLNWyMgRb9ISprFPfmBA+JbmooY4XvJnsRnV6dkQAHXmY4CucB7rKNv/Lmshz9Rq+ALq85hY/sG21EtIxsOKKyp50BS6Qumste9PLHbugT0ysTyMshCEbSSBl7MyvV0IuR78WX5Qauk3Fcu7ikcNXKwEimXM8IinkOvKdY4OftsDIP+ufCF9aDoa7tGT9Dg2AF9grYtwI+ECnrf68bAH1ARepfA3/cBdgL5N5GRuksQDdyqmG10Pnf1vO/8MAMYIIKff4ve25BwvqCzJ/GkSNK/8fXLqQ5+WhTRjyHz2oEuV0CVTq1Umzc4Kn6WcbDvv7HWPDU2zmVERihA+QHY5zLyd8jcPryxJFbrMxZwr9t8gUDRd/gn7LxIbWjnBMs9CzjBQhy7hCaghL7xdLxZTWignxjKpIpE7qMslH4IiW+JTLVkDjU2qTc+ViX2ZuwOcmWtJEkMv+FR+zBbX7onnPshJIQZdCXJNheL0BO5f+1uP1aZRRaqs/zNL0X7FEEJH5KFfJRSBFU+D8tA7vBYZx/OV3HhyLesqkgappsShmprynJWG9Yl1ebXm+24cpubPtsSbxli70dKvm+BsLlBDeat55kW5cK6mDZqlIofe5l+A8C1ySsKoQ8viVn7wuT4uD7Dw6OSB9JFWCUIWd8ULQDNZ2clHOv2CrY/xrTPV5jTf0M+6crR2AYUv1nbaS/Z+0PeBstxq49oxX9+7qxUfCV6BnNjYI7/f6bU+oFCeNACQYFxiDTruPP+2PnNfTpn4b00NH7UNlXsh4G8U4ic3aB26nmDZyGRhbUKMGl10czuq3dVmoxFeTOOQmqMzg9jUKv4A1wjonCQJDtcaEEZ5fZmBX3zcOQDn5fs/lsLQ8R+q/3Zp9ivGIc4aIpC/pKP6L0bWuVrzez6fgEj7cEE/Kx8cpfnyLlc5D/3F2K2i6Ui0xx69z03skwWphmcOHRKncJTtDslbA5QaEHHNx/0sxNBtP3XYJtpgJRuYbJiyYnqd7oVj16qkedfF5rhVLIixeke3whbHpwdkn+txRRYSs9px/L+jvifGPLwtAh1P5RJ8LKsGDKL0716naPlfkEdgZUWP7CKy4a2Wohc6jhdaH+Q2EQfm/TlTCKdLp5PxN7jhF2Cu1C7GmS1qZBsYmNRsyzOefA8gzMHKYVYICgI9SFzpo6iLU3K9PzmXjd1TfAg+zAHZO+ay67fR3X6ZxtAhqPx9RlyoFEjroPLzmX5SuR9G8OtdQ1epo7dk/XqtlWJyYh8xFaylws5WFe3+ASbil1rVNPtYpR7aT9J0/tpAfbN04QL9eeXNI0U7rgevPzENC/UbscTsv9aCAxZFteA/doaf9sqOaY6V7gQqzOXaAFAu5Fc7UQNRr4zCrpD/7PIAVfiqt3HZ3FBbKpGrYouykV8JAhsJIccW7fmQTGGWYh48bynM3Vkm7Xss142LRkI5uYz88SQvTjHlO3UrPYguFcylgm0SkHSkxJhYxZkf86Jq6hQdULUHj/+BlNn2f/gwWPUGCnuWa2xBhjenc0L8RfcjEJKrHCAfZaTO6Qz9JzU6Z//DW6ipxRMoxYTOk9+s4JVL6mcAUC2WklVavQ0PiyPqxMq0/LDgqdjoa1QKtj6ltldcuGWjs6zuCyM+DQFyY8DLC9RNI88Q0GXz13Up0NKe099e68irudnYdBNBotZtSaPv6tT/ATonL7/cUNGLHV9VVFw7IyhqUwi4EahcLNvsu3N+MmdDdd0yCEw1tkIY/qQRu+EwsK49c5ylnxIhkoq10tepVh9mLBTpMBJZNK17VuXTwrOC0PtdtJtvVmughMdBzxRtOYVutsUM+N3X+bu3G5P/a+Xz/GsUxtlQRiCJEHjV6gpPGQLZ/Erw7oqYhB1XbKloJYpOW05Lyjt5cRRl2r9lWYq+DznbzZLOEE2Q84r9AO6QOERMMjW5jXH1XEgGOXW2KfTXU9Ah9Xfnm6rMvjRK1EkNeSTehmhPLC1iuX6MW3+zQJRne0bBxrTgzKTZm2xnAuyhhyv4VBoLkz0RQ"},{"id":"900b71ef-e37b-4ced-9ce3-e7bcbd4f964d","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Memory Management System","description":"memory-management-system","parent_id":"20d0240b-1238-45fc-a385-f596bebc8a21","order":6,"progress_status":"completed","dependent_files":"libraries/chain/database.cpp,libraries/network/node.cpp,libraries/chain/include/graphene/chain/database_exceptions.hpp,libraries/network/include/graphene/network/exceptions.hpp","gmt_create":"2026-04-23T07:21:32+04:00","gmt_modified":"2026-04-25T14:06:18.7484575+04:00","raw_data":"WikiEncrypted:4UGnUWsfWDZbqjKXeP7l3nIFoUg1QR8mX7Mg3xz3Yqw2RQAhFYQlnJrNzDWK62g0p28n0x68xCnCqGl889LahGm2SmDbdbatAKMUU6rWXYCa0OVLuOdGke8rYlfqEy7jqg9n6G5tgmPenrLnxYIV3sNiXn3qSd2vliI9gyL7+Nnnvh4wG+yt/57yJB6Alf9j8+Vs14dAv4Jqb1RjzwbcYyfw0XFVsg4xHOhBwJQw0dCApL6hAyQ7v6+hVzoKQe14dtn8Eg3J7ESvXVm01lpOzNYenxKbdJgKdUe+P26n9bbzODvgBbRBFYiYSmR//Vl27IUpjNtsUiFgG1aKtX6r1k+dtQayk4L8rEzInpYj7gpthyG82a4iWGPX9wPRMCUNwmT6eBLhgFwY3UuWMHEHOXEQtSwPP6JrDjjxNwMWROGtuYbGiQ5Cx0T2ulznu96E","layer_level":3},{"id":"423ed32e-852d-4f0a-a4e8-aaebd7c97483","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Development Tools","description":"development-tools","prompt":"Create comprehensive development tools documentation for VIZ CPP Node. Document the complete development toolkit including the CMake build system, cross-platform compilation instructions, and Docker-based development environments. Cover the testing framework with unit tests, integration tests, and performance benchmarks. Document debugging tools including the debug node plugin, transaction serialization utilities, and network debugging capabilities. Explain the development workflow including code style guidelines, pull request processes, and continuous integration. Include practical examples of common development tasks such as building custom plugins, running tests, and profiling performance. Address code generation tools, schema validation utilities, and development environment setup. Document the relationship between development tools and the overall project structure, making it accessible to contributors while providing sufficient technical depth for advanced development tasks.","order":7,"progress_status":"completed","dependent_files":"programs/,documentation/testing.md,programs/util/,.github/workflows/","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:35:27+04:00","raw_data":"WikiEncrypted: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"},{"id":"45075f91-f7a8-4457-9ce7-afd81aa84742","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Deployment and Operations","description":"deployment-operations","prompt":"Create comprehensive deployment and operations documentation for VIZ CPP Node. Document production deployment strategies including hardware requirements, security hardening, and performance optimization. Cover Docker containerization with different image types (production, testnet, low-memory) and orchestration options. Explain cloud deployment options, load balancing considerations, and high availability configurations. Document node types including full nodes, witness nodes, and seed nodes with their specific requirements and operational procedures. Include monitoring and maintenance procedures such as log management, health checks, database maintenance, and performance optimization. Address security considerations including firewall configuration, SSL/TLS setup, and access control. Provide troubleshooting guidance for common operational issues, performance bottlenecks, and recovery procedures. Document backup and disaster recovery strategies.","order":8,"progress_status":"completed","dependent_files":"share/vizd/docker/,share/vizd/vizd.sh,share/vizd/config/config.ini,documentation/testnet.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:36:27+04:00","raw_data":"WikiEncrypted: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"},{"id":"c7f3fbd6-170d-4ddb-b57f-0bb2cc86fbdb","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Advanced Topics","description":"advanced-topics","prompt":"Create comprehensive advanced topics documentation for VIZ CPP Node. Cover complex subjects including hardfork implementation and management, database schema design and optimization, security considerations and vulnerability assessment, and advanced plugin development patterns. Document the hardfork system including version management, migration procedures, and backward compatibility handling. Explain database design patterns including object persistence strategies, index optimization, and fork database implementation. Address security topics including cryptographic implementation, API authentication, network security, and vulnerability mitigation. Cover advanced plugin development including custom evaluators, database object extensions, and inter-plugin communication patterns. Include performance optimization techniques, memory management, and scalability considerations. Provide expert-level guidance on extending the core functionality and integrating with external systems.","order":9,"progress_status":"completed","dependent_files":"libraries/chain/hardfork.d/,libraries/chain/include/graphene/chain/chain_object_types.hpp,plugins/test_api/,documentation/plugin.md","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:37:26+04:00","raw_data":"WikiEncrypted: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"},{"id":"025897fd-58e6-4a45-b86c-71eef3909e1b","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Troubleshooting and FAQ","description":"troubleshooting-faq","prompt":"Create comprehensive troubleshooting and FAQ documentation for VIZ CPP Node. Document common build issues and their solutions including dependency problems, compilation errors, and platform-specific issues. Cover network connectivity problems such as peer discovery failures, sync issues, and firewall configuration. Address performance optimization including memory usage, CPU utilization, and disk I/O optimization. Document error message interpretation and diagnostic procedures for various failure scenarios. Include frequently asked questions about node operation, API usage, plugin development, and integration challenges. Provide systematic debugging approaches using the debug node plugin, log analysis techniques, and diagnostic tools. Address recovery procedures for common failure scenarios including database corruption, sync desynchronization, and configuration errors. Include community resources, support channels, and escalation procedures for complex issues.","order":10,"progress_status":"completed","dependent_files":"documentation/building.md,documentation/debug_node_plugin.md,documentation/testnet.md,share/vizd/config/config.ini","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:37:39+04:00","raw_data":"WikiEncrypted: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"},{"id":"06fa95dd-ff92-4879-8eda-9d1ede1223ff","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Contributing and Development","description":"contributing-development","prompt":"Create comprehensive contributing and development documentation for VIZ CPP Node. Document the development workflow including code style guidelines, commit message conventions, and review processes. Explain the contribution process from issue identification through pull request submission and merge. Cover code quality standards including testing requirements, documentation expectations, and performance criteria. Document the plugin development contribution process including template usage, testing requirements, and integration guidelines. Address community contribution opportunities including bug reporting, feature requests, and documentation improvements. Include practical examples of common contribution scenarios such as fixing bugs, adding features, and improving documentation. Document the relationship between contributions and the overall project governance, licensing requirements, and intellectual property considerations. Provide guidance for new contributors on getting started with development and finding suitable projects to contribute to.","order":11,"progress_status":"completed","dependent_files":"documentation/git_guildelines.md,documentation/plugin.md,documentation/api_notes.md,programs/util/newplugin.py","gmt_create":"2026-03-03T07:27:58+04:00","gmt_modified":"2026-03-03T07:37:44+04:00","raw_data":"WikiEncrypted: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"},{"id":"459ee7b9-8bbd-4ed7-93c0-432b222b13bc","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Witness","description":"witness","order":12,"progress_status":"completed","dependent_files":"plugins/witness/witness.cpp,libraries/chain/database.cpp,plugins/witness/include/graphene/plugins/witness/witness.hpp","gmt_create":"2026-04-13T21:23:28+04:00","gmt_modified":"2026-04-25T14:04:31.86968+04:00","raw_data":"WikiEncrypted:JeTXIs+pfWQp8HpBYqSHUt9pgs+Z3ta6nCRipvtinj2ZibPEEeHHjj4s1YQflAL5kw0thomwlF/m298PbgVpHVqaF0cRDAyx8wPkXeNYa0/ap3AzLpNan4HQ9sgOr/JYQBEhBoka13WzeArIhWwmwYOOKAV3jX0NttuahZW//iA66woNKxlKC600jdsdh+k5p1vrL7kVvNp820pn9mbiZthWYZuT0I+uwJpCqivBl7wIwKFJ4vT7PDvCDaOq+1hXPC15LCdmVEdOcA9GT107tWkpB8J0NZ2OpUNPaDBKp+u1vtCyq/zIglfK0w/PIXMQ"},{"id":"712eaf76-b13f-47c5-8acb-10b550ac3925","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Webserver Plugin","description":"webserver-plugin","order":13,"progress_status":"completed","dependent_files":"plugins/json_rpc/plugin.cpp,plugins/webserver/webserver_plugin.cpp,documentation/webserver-plugin.md","gmt_create":"2026-04-14T09:27:36+04:00","gmt_modified":"2026-04-23T15:42:30+04:00","raw_data":"WikiEncrypted:DVkoReQyyhdwnmC6pD+XJl1726hWlyrdb/kexi9P3mlDxrXesxG0TGa6cLaC0YXste3eGQsJLCuBJsmN7jS41YrtOzDmXjZ20dpluGZh7TF8d5Ih/dkUyBAv83zgG5dT5X/GX2Xf8jjsJPRMiH5sknmR3OG8wocD5A9ncHBEVFRyBp0HihXukxhHlpTsrCQUq/zYGQhCvSGL3yzBUH/lFvEHVNY6wumep+VY9J36gqSbAsRpvnsVgmmROXkXabCmVhKGXF5QLsRelkbIqbSqDh/TeX+yd1kbbAhQ4VkC2JqtmnY6UJeSCFsR3Ul9lwh/"},{"id":"20648e3c-d5d3-4777-87b1-c660c31c8723","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"Chain Plugin","description":"chain-plugin","order":14,"progress_status":"completed","dependent_files":"plugins/chain/plugin.cpp,libraries/chain/include/graphene/chain/database.hpp,libraries/chain/database.cpp,share/vizd/config/config.ini,share/vizd/config/config_witness.ini,plugins/chain/include/graphene/plugins/chain/plugin.hpp","gmt_create":"2026-04-20T08:54:36+04:00","gmt_modified":"2026-04-23T15:43:07+04:00","raw_data":"WikiEncrypted:2nxDQCjwbtJzhDuGjsVF7mHsV7DvjvnRRbUVGKq7sKBjc03f9mwX6sCrl1O98+zpUP3CrZGNY7+od97OqysKwp6V8pyGSudE2hJ3DdykrmghdZyNyMiMYgtOBsvdZTRIdJlAFnHDmRzYMmCTOMWeNdqv8w6ngBgg0YD/pPSFYBoeeG6rwvPRTH3dBiMXec10EbYRWPjoBm8Fw540XGuVFAn9ikZJ8lOuUTgy/Ni56EckUEyzWhLH6toB4l0nSOZaChSQO32a91Irt41f9Uaq2Vtd2HxPRZN49vjVPRIlEmDsdgtmGUFhVxl3qKWc0dNMCJeooAWHmQOl4Xo/2kSMjiZEvNQT8/xxwhx1E2yWeJ4zcNxLkop+gHbfZ5fdKS91Q0HyTuDg0dhbOX44YrTEehDa4KE8ZOFgWEBoQkq/6wX11xfm3s59BJX7gWLEqJUDqXtxA58ggWDvGV0tERqjcenPJWF6n6FyWpp5SHupLaY="},{"id":"d09cc528-abca-42c1-832d-73ef65bba26c","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"P2p Plugin","description":"p2p-plugin","order":15,"progress_status":"completed","dependent_files":"plugins/p2p/p2p_plugin.cpp","gmt_create":"2026-04-23T11:49:52+04:00","gmt_modified":"2026-04-23T15:44:02+04:00","raw_data":"WikiEncrypted:LjUwH/yUcbWfnBumtHMxuKISe72JbF8T+AYe9w/08E+XtSR36PLbVQBinOspVDlWetMPFkhRiTMoRAUUG8lGn0m5x7RHi+E+u8xLwer77SBWrdcqs1K/me8oPR4L3xyhfoZEEa6nmpxWsgYHnKOyO8hkIJiMDRdjCjtSNsDLptAHdnDGwzoQK16yapTzm+rN"}],"wiki_items":[{"catalog_id":"ae456061-b64b-4654-ba1c-a7e71cfa4bbf","title":"Getting Started","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"024fead2-beed-4baf-9db1-1d38ac63e764","gmt_create":"2026-03-03T07:31:32+04:00","gmt_modified":"2026-03-03T07:31:32+04:00"},{"catalog_id":"0114764d-2c87-45bc-adac-575b234c8df6","title":"Project Overview","description":"overview","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"acd41667-5db6-4f91-9424-da12acaec972","gmt_create":"2026-03-03T07:31:56+04:00","gmt_modified":"2026-03-03T07:31:56+04:00"},{"catalog_id":"75556906-e1ce-4720-984a-3094f741c8aa","title":"Architecture Overview","description":"architecture","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"14fc9cac-5b93-4b5e-be04-a39fe4921d65","gmt_create":"2026-03-03T07:32:30+04:00","gmt_modified":"2026-03-03T07:32:30+04:00"},{"catalog_id":"179f69d5-0757-4fd0-a754-5c579448f8f3","title":"API Reference","description":"api-reference","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"ae3938e7-81f0-4b99-9839-5ab9109150c0","gmt_create":"2026-03-03T07:33:49+04:00","gmt_modified":"2026-03-03T11:26:06+04:00"},{"catalog_id":"94310041-e18f-4061-af9b-f8df7dca0154","title":"Plugin System","description":"plugin-system","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"3ab75d9c-6dfc-4bd0-884c-43e9626baab9","gmt_create":"2026-03-03T07:33:58+04:00","gmt_modified":"2026-04-23T09:46:06+04:00"},{"catalog_id":"dc4fc4b1-8f74-40b7-9ff9-9e3baa576461","title":"Core Libraries","description":"core-libraries","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f206cbf1-5aae-425a-a4ed-aa16aff8e94d","gmt_create":"2026-03-03T07:34:30+04:00","gmt_modified":"2026-04-19T22:31:11+04:00"},{"catalog_id":"423ed32e-852d-4f0a-a4e8-aaebd7c97483","title":"Development Tools","description":"development-tools","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"7710a627-ac9b-4f70-9684-0bf6455a3a99","gmt_create":"2026-03-03T07:35:27+04:00","gmt_modified":"2026-03-03T07:35:27+04:00"},{"catalog_id":"a3fb1343-15dc-4495-a972-0870c4a88b85","title":"Configuration Management","description":"configuration-management","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"b32047b5-2580-4476-9c9f-5e181cd8b824","gmt_create":"2026-03-03T07:35:41+04:00","gmt_modified":"2026-04-23T11:18:10+04:00"},{"catalog_id":"45075f91-f7a8-4457-9ce7-afd81aa84742","title":"Deployment and Operations","description":"deployment-operations","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"bf276ed6-cc65-4d1d-90de-6f1aff0b8266","gmt_create":"2026-03-03T07:36:27+04:00","gmt_modified":"2026-03-03T07:36:27+04:00"},{"catalog_id":"c7f3fbd6-170d-4ddb-b57f-0bb2cc86fbdb","title":"Advanced Topics","description":"advanced-topics","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"8e2be000-67af-43c0-873f-83ca630a1511","gmt_create":"2026-03-03T07:37:26+04:00","gmt_modified":"2026-03-03T07:37:26+04:00"},{"catalog_id":"025897fd-58e6-4a45-b86c-71eef3909e1b","title":"Troubleshooting and FAQ","description":"troubleshooting-faq","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f08e20e3-6a50-4e05-a930-bec3e7ecfc96","gmt_create":"2026-03-03T07:37:39+04:00","gmt_modified":"2026-03-03T07:37:39+04:00"},{"catalog_id":"06fa95dd-ff92-4879-8eda-9d1ede1223ff","title":"Contributing and Development","description":"contributing-development","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"c246f342-8876-4939-a27e-a5700b111640","gmt_create":"2026-03-03T07:37:44+04:00","gmt_modified":"2026-03-03T07:37:44+04:00"},{"catalog_id":"3bbe0662-99a3-4020-b6a2-a55460236e09","title":"System Overview","description":"system-overview","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"7dcd76b3-1147-4bd0-b2f8-8fa838859143","gmt_create":"2026-03-03T07:39:03+04:00","gmt_modified":"2026-03-03T07:39:03+04:00"},{"catalog_id":"adb37512-8234-4100-b362-3eef9ab640b5","title":"Build System","description":"build-system","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"6deaeb67-35ff-4805-a04f-053fba4a4ab8","gmt_create":"2026-03-03T07:39:35+04:00","gmt_modified":"2026-04-21T16:26:53+04:00"},{"catalog_id":"663a33c7-3329-490a-86b9-bcdf15178fba","title":"Node Deployment","description":"node-deployment","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"2f88efa6-3484-4670-82a8-9fcc8b681372","gmt_create":"2026-03-03T07:40:48+04:00","gmt_modified":"2026-03-03T07:40:48+04:00"},{"catalog_id":"535fca00-c31a-40bb-8daf-6d8477df073d","title":"Node Configuration","description":"node-configuration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"a5ebd55b-88db-46f8-9884-2d39ffe8d52f","gmt_create":"2026-03-03T07:40:51+04:00","gmt_modified":"2026-03-03T07:40:51+04:00"},{"catalog_id":"42ccdc59-7a1d-423f-b3ce-771b880e1451","title":"Hardfork Management","description":"hardfork-management","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"057e0dd5-f52d-41b3-9d67-3fae379ac2bf","gmt_create":"2026-03-03T07:41:25+04:00","gmt_modified":"2026-04-20T11:24:22+04:00"},{"catalog_id":"abc7d4fa-93e3-4e27-bad4-dccebc67d4a5","title":"Testing Framework","description":"testing-framework","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"cbc73a86-b6bf-4a4b-a3e7-f4c6eb9fb7fe","gmt_create":"2026-03-03T07:41:49+04:00","gmt_modified":"2026-03-03T07:41:49+04:00"},{"catalog_id":"28fd73c2-0338-4c4b-aae9-8bd6616ca37c","title":"Build Configuration","description":"build-configuration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"d0ba0bc2-7fa4-4751-a043-e89b4db90b77","gmt_create":"2026-03-03T07:42:49+04:00","gmt_modified":"2026-04-23T06:46:47+04:00"},{"catalog_id":"a3cf6748-e854-4f94-bdf3-8f4d9fc44a42","title":"Containerization and Docker","description":"containerization-docker","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"ba624715-f41c-4aa3-b268-c2df3091df6c","gmt_create":"2026-03-03T07:43:26+04:00","gmt_modified":"2026-03-03T07:43:26+04:00"},{"catalog_id":"d05f2002-2293-4fc3-abb8-2d31fb7c6bf4","title":"Plugin Architecture","description":"plugin-architecture","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"0ca20526-783d-4cdc-b61b-786546e12adb","gmt_create":"2026-03-03T07:43:34+04:00","gmt_modified":"2026-04-15T13:00:48+04:00"},{"catalog_id":"9ec3517a-5342-4ea9-9fe4-8422f1eaeb35","title":"Database Schema Design","description":"database-schema-design","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"ce1cbbe5-d11c-420f-9037-8939456544d3","gmt_create":"2026-03-03T07:45:31+04:00","gmt_modified":"2026-03-03T07:45:31+04:00"},{"catalog_id":"2328ccf2-46d2-4cd5-b887-81c71ab7e579","title":"Debugging Tools","description":"debugging-tools","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"40bfc8b2-fe7b-4718-ae1a-9bd50fc1d788","gmt_create":"2026-03-03T07:45:42+04:00","gmt_modified":"2026-03-03T07:45:42+04:00"},{"catalog_id":"2e9dab7f-8a98-493b-9d28-5efc04641da7","title":"Core Libraries","description":"core-libraries","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"0c429d8b-ef57-4aff-8e3e-e646a87dd905","gmt_create":"2026-03-03T07:46:01+04:00","gmt_modified":"2026-03-03T07:46:01+04:00"},{"catalog_id":"fc50b8d3-21de-4be4-9588-b55ac8b0a143","title":"Cloud and Infrastructure","description":"cloud-infrastructure","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"3820c8f2-4aa7-42e4-bd02-1426d28295e0","gmt_create":"2026-03-03T07:46:55+04:00","gmt_modified":"2026-03-03T07:46:55+04:00"},{"catalog_id":"9aecb517-2693-4400-8a4b-c6b89426c243","title":"Security Implementation","description":"security-implementation","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"df4c6467-74c3-4778-8425-5a390b8573a5","gmt_create":"2026-03-03T07:47:20+04:00","gmt_modified":"2026-03-03T07:47:20+04:00"},{"catalog_id":"613abe94-bae3-4839-b224-1b7c5a93bd9b","title":"Docker Configuration","description":"docker-configuration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"1a8bf886-a95d-4e0c-aebf-4cc91985b1dc","gmt_create":"2026-03-03T07:48:32+04:00","gmt_modified":"2026-04-17T17:31:31+04:00"},{"catalog_id":"8379074d-4738-406d-92f8-af5f55a0cd3f","title":"Development Workflow","description":"development-workflow","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e8a06e2a-7b12-472c-ad47-e3e87b8d7fd2","gmt_create":"2026-03-03T07:48:38+04:00","gmt_modified":"2026-03-03T07:48:38+04:00"},{"catalog_id":"a276ebcb-3239-4375-acd4-369aef9806ce","title":"Data Flow and Processing","description":"data-flow","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"0e1ca92b-025a-4f58-9fee-4159c5ef1725","gmt_create":"2026-03-03T07:48:50+04:00","gmt_modified":"2026-03-03T07:48:50+04:00"},{"catalog_id":"bff9ec7a-13ca-4971-8720-2ef0e904b907","title":"Advanced Plugin Development","description":"advanced-plugin-development","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"23d8f439-c51d-4eb0-b3a2-5b11001dbb26","gmt_create":"2026-03-03T07:50:18+04:00","gmt_modified":"2026-03-03T07:50:18+04:00"},{"catalog_id":"fd888d6e-faf4-402a-b04c-d6d81ea48c5a","title":"Network Configuration","description":"network-configuration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"6c48a7c0-43fc-46ed-8af1-cb481ad48cd9","gmt_create":"2026-03-03T07:50:58+04:00","gmt_modified":"2026-04-23T12:16:49+04:00"},{"catalog_id":"06b2d03b-9b0a-4557-8460-4d26c9add4cb","title":"Design Patterns and Architectural Decisions","description":"design-patterns","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"c5bba880-5c17-4baa-b010-4d3f9f755718","gmt_create":"2026-03-03T07:52:04+04:00","gmt_modified":"2026-03-03T07:52:04+04:00"},{"catalog_id":"a6ef080d-9495-476f-8c15-110e53037d64","title":"Plugin Lifecycle and Registration","description":"plugin-lifecycle-registration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"894ef639-3175-42b9-9d5d-106c8d1b7c8b","gmt_create":"2026-03-03T07:52:10+04:00","gmt_modified":"2026-04-20T10:26:06+04:00"},{"catalog_id":"2445b4ad-4fb2-41a5-854a-e0daef1887a6","title":"Monitoring and Maintenance","description":"monitoring-maintenance","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"dca06895-8015-4887-b68a-1481e4b954e1","gmt_create":"2026-03-03T07:52:29+04:00","gmt_modified":"2026-04-21T15:57:29+04:00"},{"catalog_id":"13ca21e2-bc83-4de1-be5f-6204258b4c3b","title":"Transaction Processing Pipeline","description":"transaction-processing","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"121dc337-a951-4314-9d51-1ef5996f6430","gmt_create":"2026-03-03T07:53:30+04:00","gmt_modified":"2026-03-03T07:53:30+04:00"},{"catalog_id":"c6c73cf8-a371-43e8-88b5-96478658761c","title":"CMake Configuration","description":"cmake-configuration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"c7ea60a4-9845-44fb-b325-c1057aded33b","gmt_create":"2026-03-03T07:53:46+04:00","gmt_modified":"2026-03-03T07:53:46+04:00"},{"catalog_id":"8b85e3a5-32d2-4890-9fe1-18c4d4d9049f","title":"Unit Testing Infrastructure","description":"unit-testing-infrastructure","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f394ef4d-0d59-4dba-9651-16016769f887","gmt_create":"2026-03-03T07:54:54+04:00","gmt_modified":"2026-03-03T07:54:54+04:00"},{"catalog_id":"0f9844d5-345d-4ccb-b908-faddb7af8dd9","title":"Debug Node Plugin","description":"debug-node-plugin","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"7feaa538-2f0b-40ec-ab7b-54b3514e1a5c","gmt_create":"2026-03-03T07:55:19+04:00","gmt_modified":"2026-03-03T07:55:19+04:00"},{"catalog_id":"20d0240b-1238-45fc-a385-f596bebc8a21","title":"Chain Library","description":"chain-library","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"9d5d7c6b-67eb-4e6b-af0e-ae69e1b8254d","gmt_create":"2026-03-03T07:55:53+04:00","gmt_modified":"2026-04-23T11:18:36+04:00"},{"catalog_id":"0122ca3a-4e81-4c40-86f6-4105a7965637","title":"Installation and Setup","description":"installation-setup","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f180ae7b-576b-46dc-abce-6a8a67842bd5","gmt_create":"2026-03-03T07:56:01+04:00","gmt_modified":"2026-03-03T07:56:01+04:00"},{"catalog_id":"e7106f96-90d3-4c63-8d7b-0a6e699f26bd","title":"Inter-Plugin Communication","description":"inter-plugin-communication","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"fc047b8d-3e20-4559-b53a-6f8b3e0425f6","gmt_create":"2026-03-03T07:57:09+04:00","gmt_modified":"2026-03-03T11:26:31+04:00"},{"catalog_id":"ebab61c2-03e1-4072-b4b1-17d15d9eab60","title":"Protocol Library","description":"protocol-library","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"996d2018-0dbb-4684-bc25-52d52ebc5de0","gmt_create":"2026-03-03T07:57:42+04:00","gmt_modified":"2026-03-03T07:57:42+04:00"},{"catalog_id":"3a3b92dc-cf2b-4494-ab72-da2201dd7413","title":"Block Processing and Validation","description":"block-processing","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"9f4a5616-6cba-4ce7-a8ce-4d21a7275f53","gmt_create":"2026-03-03T07:57:58+04:00","gmt_modified":"2026-03-05T10:59:59+04:00"},{"catalog_id":"6eb6a0f7-ecaf-4db8-8e96-b6fbb9adc46e","title":"Code Coverage Analysis","description":"code-coverage-analysis","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"fde741b0-3737-4c7c-b347-c02bd1e1c59a","gmt_create":"2026-03-03T07:58:43+04:00","gmt_modified":"2026-03-03T07:58:43+04:00"},{"catalog_id":"942792af-b86c-46d9-9f7a-22e783f2d6cb","title":"Build Helper Tools","description":"build-helpers","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"b9ee2728-cd4e-4181-b1ee-37bdbfde5b60","gmt_create":"2026-03-03T07:58:47+04:00","gmt_modified":"2026-04-21T16:26:14+04:00"},{"catalog_id":"41500c19-82c2-4c0f-b9ed-e70bfdbfc5e6","title":"Transaction Debugging Tools","description":"transaction-debugging-tools","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"3ffa5713-7b24-4aa3-b04f-aec212dfb4d4","gmt_create":"2026-03-03T07:59:59+04:00","gmt_modified":"2026-03-03T07:59:59+04:00"},{"catalog_id":"d507272e-6f57-4dcc-aada-4023c1a341ca","title":"Node Types and Configurations","description":"node-types-configurations","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"b29a3c94-97af-469e-8fc9-a31f8b4c259d","gmt_create":"2026-03-03T08:00:19+04:00","gmt_modified":"2026-04-21T15:32:31+04:00"},{"catalog_id":"3af1ac69-c370-40d9-81f8-75e77fba98a1","title":"Custom Plugin Development","description":"custom-plugin-development","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e2dd940e-7b1d-46df-9f73-b7385093da04","gmt_create":"2026-03-03T08:00:20+04:00","gmt_modified":"2026-03-03T08:00:21+04:00"},{"catalog_id":"80798d0c-b974-47ae-a4af-44f35643a127","title":"API Request Processing","description":"api-request-handling","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"87617dd4-e63d-4aa0-b89d-320bd64d980f","gmt_create":"2026-03-03T08:01:46+04:00","gmt_modified":"2026-03-03T08:01:46+04:00"},{"catalog_id":"457e128b-594d-400d-86b6-6e9de70687ec","title":"Docker Integration","description":"docker-integration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"b93456c3-8861-44ef-88ee-e193ff1fc21b","gmt_create":"2026-03-03T08:02:06+04:00","gmt_modified":"2026-04-17T10:15:28+04:00"},{"catalog_id":"5dcfa7b9-aa15-4eaf-a23f-3facf27503f0","title":"Service Integration","description":"service-integration","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"2346df6d-bc8c-4c0a-9f4c-3a71b5408ad1","gmt_create":"2026-03-03T08:03:49+04:00","gmt_modified":"2026-03-03T08:03:49+04:00"},{"catalog_id":"8e0f048f-8d9e-48ad-942c-4106c462a54c","title":"Network Library","description":"network-library","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"b5d32b4b-9c44-4430-8a26-1acb580195f2","gmt_create":"2026-03-03T08:03:52+04:00","gmt_modified":"2026-04-23T15:44:06+04:00"},{"catalog_id":"2011501c-a1d7-437d-8756-169e629070a3","title":"Network Debugging Capabilities","description":"network-debugging-capabilities","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"25deaf50-1ff0-47af-b2c9-2345d8aaefde","gmt_create":"2026-03-03T08:04:07+04:00","gmt_modified":"2026-03-03T08:04:07+04:00"},{"catalog_id":"a6579a44-17b0-4718-83d8-34f4677508a6","title":"Event-Driven Communication Patterns","description":"event-driven-architecture","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"a982d327-f748-48b6-9544-0f3533c4fd29","gmt_create":"2026-03-03T08:05:24+04:00","gmt_modified":"2026-03-03T08:05:24+04:00"},{"catalog_id":"4188b9cc-4a36-4679-a5cf-916dc4435dee","title":"Plugin API Design Patterns","description":"plugin-api-patterns","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"90242adf-4ea5-4fa2-b54f-98819f5ba9e6","gmt_create":"2026-03-03T08:05:51+04:00","gmt_modified":"2026-03-03T08:05:51+04:00"},{"catalog_id":"1e3ac252-49fb-4a06-a86f-e45a8bf20c12","title":"Cross-Platform Compilation","description":"cross-platform-compilation","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"a99f548d-fa46-481d-b2c7-c0b8e7e0ef24","gmt_create":"2026-03-03T08:06:47+04:00","gmt_modified":"2026-03-03T08:06:47+04:00"},{"catalog_id":"7a6f0709-a99b-4113-b106-2887016f8f14","title":"Wallet Library","description":"wallet-library","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"ab105d6f-038c-45e8-86c3-5fed9d10c58c","gmt_create":"2026-03-03T08:07:16+04:00","gmt_modified":"2026-03-07T21:45:11+04:00"},{"catalog_id":"dc06632d-6887-498d-b879-232d73eb4141","title":"Performance Profiling Utilities","description":"performance-profiling-utilities","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"33399f0d-4990-4e2d-978c-2dbc7791825d","gmt_create":"2026-03-03T08:08:06+04:00","gmt_modified":"2026-03-03T08:08:06+04:00"},{"catalog_id":"4a9e43d9-5745-4fa2-924a-ffa37e906ab5","title":"Security Hardening","description":"security-hardening","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"0e734628-495f-4d55-9d69-18a42b889a8d","gmt_create":"2026-03-03T08:08:09+04:00","gmt_modified":"2026-03-03T08:08:09+04:00"},{"catalog_id":"2d4a074e-44e3-4a74-9055-5da20cb7d537","title":"Core Build Options","description":"core-build-options","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"fe6e03bc-c326-4838-bb8d-72e002683a8e","gmt_create":"2026-03-03T08:11:41+04:00","gmt_modified":"2026-03-03T08:11:41+04:00"},{"catalog_id":"eda6f654-a385-4f97-a230-2b3d2c63817b","title":"Node Management","description":"node-management","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"53c7bdc7-50df-44fd-8ebf-982ec4ae6ee3","gmt_create":"2026-03-03T08:11:43+04:00","gmt_modified":"2026-04-23T08:46:18+04:00"},{"catalog_id":"9431a609-d1cc-4c97-aa40-e1b832bbdada","title":"Database Management","description":"database-management","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"7982fa68-7c35-4927-bb87-7e69bd22a370","gmt_create":"2026-03-03T08:12:40+04:00","gmt_modified":"2026-04-23T09:42:13+04:00"},{"catalog_id":"09da5186-2e74-4ef0-a615-5ac3556fe992","title":"Code Assembly Tools","description":"code-assembly-tools","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e3bc97df-f52d-438e-adf4-e73bdcde9b51","gmt_create":"2026-03-03T08:13:01+04:00","gmt_modified":"2026-03-03T08:13:01+04:00"},{"catalog_id":"b56b650b-ed86-4f47-ba5f-ad7c4d0dcd65","title":"Production Dockerfile","description":"production-dockerfile","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"c60eb041-d6d1-4927-bea0-3b069570a489","gmt_create":"2026-03-03T08:13:22+04:00","gmt_modified":"2026-03-03T08:13:22+04:00"},{"catalog_id":"dc863b2f-2934-4ffb-9287-430768a8c26d","title":"Transaction Processing","description":"transaction-processing","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"11caab94-5133-49a7-8e19-42fa7ac4fee0","gmt_create":"2026-03-03T08:14:41+04:00","gmt_modified":"2026-03-03T08:14:41+04:00"},{"catalog_id":"3cbc1a05-29f2-476a-8cba-56f20a1c95dc","title":"Object Model and Persistence","description":"object-model","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"dd61e4cf-3045-46a9-990e-8d6bfef728d7","gmt_create":"2026-03-03T08:15:23+04:00","gmt_modified":"2026-03-03T08:15:23+04:00"},{"catalog_id":"62d0c2f2-7b42-424a-b43a-f16714a09136","title":"Peer Connection Management","description":"peer-connection","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"2deffa19-44be-4603-b6ca-57169300ae40","gmt_create":"2026-03-03T08:16:05+04:00","gmt_modified":"2026-04-25T14:08:40.3684806+04:00"},{"catalog_id":"c4057b99-0cde-48c7-8527-bdc20b7ed3b8","title":"Platform Configurations","description":"platform-configurations","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"dffbad88-8fb0-4606-97ea-a780e955b98d","gmt_create":"2026-03-03T08:16:10+04:00","gmt_modified":"2026-04-17T10:42:56+04:00"},{"catalog_id":"994221f3-1488-420c-91cf-8465afe1cc5e","title":"Testnet Dockerfile","description":"testnet-dockerfile","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"b5cde6f6-b7ed-4821-8bfc-d772b473cfc4","gmt_create":"2026-03-03T08:17:07+04:00","gmt_modified":"2026-03-03T08:17:07+04:00"},{"catalog_id":"e532fae9-5ee9-42b4-88ac-6d3acc997889","title":"Reflection Validation Tools","description":"reflection-validation","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"defd730f-0883-4cfb-bfea-44905725aaa0","gmt_create":"2026-03-03T08:17:31+04:00","gmt_modified":"2026-03-03T08:17:31+04:00"},{"catalog_id":"ba0987e3-a356-474d-87a3-d8388e4f91a8","title":"Authority Management","description":"authority-management","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f3b53f06-6fe4-4bf8-a694-217ed019cebd","gmt_create":"2026-03-03T08:17:58+04:00","gmt_modified":"2026-03-03T08:17:58+04:00"},{"catalog_id":"08a6f11f-beab-4e72-abb1-7a6a6add1f03","title":"Dependency Management","description":"dependency-management","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"206ddf0f-4d9f-4728-a5ea-acd30f64a982","gmt_create":"2026-03-03T08:19:13+04:00","gmt_modified":"2026-04-19T22:00:10+04:00"},{"catalog_id":"ce9237f3-858a-4a38-84c7-92fe275239c9","title":"Fork Resolution and Consensus","description":"fork-resolution","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e10f3fcf-758a-4656-87ad-42105272ceba","gmt_create":"2026-03-03T08:19:55+04:00","gmt_modified":"2026-04-25T14:03:59.3047928+04:00"},{"catalog_id":"4ef3f925-96bb-43d8-bba2-58f3ef56f3c3","title":"Message Handling and Protocol","description":"message-handling","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"0d8f57cb-4d40-47b4-b3b8-d22acbb624a3","gmt_create":"2026-03-03T08:20:04+04:00","gmt_modified":"2026-03-03T08:20:04+04:00"},{"catalog_id":"82ae9fa0-e6fd-42af-ab21-aa8e93d2c2e2","title":"Low-Memory Dockerfile","description":"low-memory-dockerfile","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"862ef4b1-7457-437a-b82d-e220c6d38e69","gmt_create":"2026-03-03T08:20:43+04:00","gmt_modified":"2026-03-03T08:20:43+04:00"},{"catalog_id":"2edfb9f0-ac89-4c5b-abc6-05a43daacce7","title":"Plugin Development Tools","description":"plugin-development-tools","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e089b7ca-941e-4dba-85d7-319196ca8942","gmt_create":"2026-03-03T08:21:29+04:00","gmt_modified":"2026-03-03T08:21:29+04:00"},{"catalog_id":"3409a0f3-2436-4d70-bcb2-529bc26107e2","title":"Block Structures","description":"block-structures","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"5292978e-71f3-4891-9ddd-0fe9d2f7b677","gmt_create":"2026-03-03T08:21:50+04:00","gmt_modified":"2026-03-03T08:21:50+04:00"},{"catalog_id":"0006b5cc-bf5d-40ab-97b0-59011f722ebc","title":"Block Processing and Validation","description":"block-processing","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"4f703692-fec3-49c8-9adc-dcf735acb5d9","gmt_create":"2026-03-03T08:22:26+04:00","gmt_modified":"2026-04-20T08:23:26+04:00"},{"catalog_id":"27a9648a-15e6-4722-8043-eb722ca68c60","title":"Build Targets","description":"build-targets","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f4bafab1-1dbb-4445-926e-6c0dacd017a4","gmt_create":"2026-03-03T08:23:32+04:00","gmt_modified":"2026-03-03T08:23:32+04:00"},{"catalog_id":"b1a4b487-b492-444e-bd70-42aa91701455","title":"Transport Layer and Sockets","description":"transport-layer","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"f34fa712-c880-4892-85d8-00ae3373c21c","gmt_create":"2026-03-03T08:24:00+04:00","gmt_modified":"2026-03-03T08:24:00+04:00"},{"catalog_id":"f67eeecc-2d9c-4f0b-be67-6888a35f1b49","title":"MongoDB Integration Dockerfile","description":"mongo-dockerfile","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"94ed475e-3385-49db-9ddf-9f9572b77e19","gmt_create":"2026-03-03T08:24:06+04:00","gmt_modified":"2026-03-03T08:24:06+04:00"},{"catalog_id":"ef5183e4-4709-444c-9f32-bb0efaf17e1e","title":"Schema Generation Tools","description":"schema-generation-tools","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"6f603f88-ce60-471f-814e-9bf61e725845","gmt_create":"2026-03-03T08:24:57+04:00","gmt_modified":"2026-03-03T08:24:57+04:00"},{"catalog_id":"1c90ed3a-75bf-4ee8-b83e-ee74ec1d78c2","title":"Data Types and Serialization","description":"data-types-serialization","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"89967357-aa15-4c13-8cc0-8dbd248e2646","gmt_create":"2026-03-03T08:25:53+04:00","gmt_modified":"2026-03-03T08:25:53+04:00"},{"catalog_id":"3129e54a-678c-4e31-ba0f-26c5be02c20c","title":"Transaction Processing","description":"transaction-processing","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"57a8f8d4-bb87-422f-92dd-ed31519c3b71","gmt_create":"2026-03-03T08:26:05+04:00","gmt_modified":"2026-03-03T08:26:05+04:00"},{"catalog_id":"30d0e8b4-4240-455b-9316-bfc07cf4a703","title":"GitHub Actions CI/CD Pipeline","description":"github-actions-ci","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"818b3d34-904d-43b6-b7ea-57e6af4aeb6e","gmt_create":"2026-03-03T08:27:16+04:00","gmt_modified":"2026-03-03T08:27:16+04:00"},{"catalog_id":"66bc9d6c-2ad0-4f68-a37d-3f94f217ecf3","title":"Peer Database and Discovery","description":"peer-database","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"000b7dcf-8451-4fdf-8013-5a6956a49702","gmt_create":"2026-03-03T08:27:29+04:00","gmt_modified":"2026-03-03T08:27:29+04:00"},{"catalog_id":"8d39fbcb-1b07-44b8-ab5e-f33e6492069d","title":"Operations Definition","description":"operations-definition","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"d83b23a0-c059-4600-a442-5c5ae5be7df2","gmt_create":"2026-03-03T08:29:14+04:00","gmt_modified":"2026-03-03T08:29:14+04:00"},{"catalog_id":"bae46ace-641d-4b70-a7d6-836ec7abd500","title":"Snapshot Plugin System","description":"snapshot-plugin","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"12b30985-aed7-41d3-89de-639a5948e0b8","gmt_create":"2026-04-13T16:01:32+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00"},{"catalog_id":"a8402db0-6fb3-400b-bc48-8526e1f63784","title":"DLT Rolling Block Log","description":"dlt-block-log","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"04396a79-7975-4223-b7a0-0d7af57b4a90","gmt_create":"2026-04-13T16:03:19+04:00","gmt_modified":"2026-04-20T10:26:23+04:00"},{"catalog_id":"459ee7b9-8bbd-4ed7-93c0-432b222b13bc","title":"Witness","description":"witness","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e57beb6d-e848-4301-afca-f2eb81aa0103","gmt_create":"2026-04-13T21:25:30+04:00","gmt_modified":"2026-04-25T14:04:31.8702727+04:00"},{"catalog_id":"712eaf76-b13f-47c5-8acb-10b550ac3925","title":"Webserver Plugin","description":"webserver-plugin","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"6c2e9160-1b03-4cef-a4e9-cad4d3ea3462","gmt_create":"2026-04-14T09:29:12+04:00","gmt_modified":"2026-04-23T15:42:30+04:00"},{"catalog_id":"4f33c67f-a478-4941-ade2-c69a35b57cd2","title":"Block Log Reader Module","description":"block-log-reader-module","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e21a91e9-1e50-4ce8-a872-3994748819e8","gmt_create":"2026-04-14T14:41:40+04:00","gmt_modified":"2026-04-14T14:41:40+04:00"},{"catalog_id":"bae46ace-641d-4b70-a7d6-836ec7abd500","title":"Snapshot Plugin System","description":"snapshot-plugin","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"67eea108-ae13-4fab-a04b-5d8bbd9ae380","gmt_create":"2026-04-16T12:35:54+04:00","gmt_modified":"2026-04-25T14:04:19.4364992+04:00"},{"catalog_id":"18a6873e-7b81-4842-916d-cb88095dd09a","title":"Build Helper Scripts","description":"build-helpers","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"c75d9c44-4540-4713-ba2c-d70b5fbbb48d","gmt_create":"2026-04-19T22:03:11+04:00","gmt_modified":"2026-04-19T22:03:11+04:00"},{"catalog_id":"b7fe4b4f-02e3-44cc-8aee-b49b528e6f84","title":"Emergency Consensus System","description":"emergency-consensus-system","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"237a4712-d1d6-40f2-a824-6632071a782a","gmt_create":"2026-04-20T06:59:08+04:00","gmt_modified":"2026-04-21T14:58:41+04:00"},{"catalog_id":"20648e3c-d5d3-4777-87b1-c660c31c8723","title":"Chain Plugin","description":"chain-plugin","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"e8455fff-1b7b-44af-943a-24ed9a24f587","gmt_create":"2026-04-20T08:56:19+04:00","gmt_modified":"2026-04-23T15:43:07+04:00"},{"catalog_id":"9d53f484-8b23-4670-a159-6c7dfe30bade","title":"NTP Synchronization System","description":"ntp-synchronization-system","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"15c04d43-e9c0-4464-a5f0-eb57be7b9dee","gmt_create":"2026-04-21T15:59:39+04:00","gmt_modified":"2026-04-21T16:27:59+04:00"},{"catalog_id":"900b71ef-e37b-4ced-9ce3-e7bcbd4f964d","title":"Memory Management System","description":"memory-management-system","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"0d59d4d3-17cd-4a2b-8226-677e278202ed","gmt_create":"2026-04-23T07:24:03+04:00","gmt_modified":"2026-04-25T14:06:18.7484575+04:00"},{"catalog_id":"d09cc528-abca-42c1-832d-73ef65bba26c","title":"P2p Plugin","description":"p2p-plugin","extend":"{}","progress_status":"completed","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb","id":"01937f01-d3c3-4172-8b3b-7f3b5b0546d2","gmt_create":"2026-04-23T11:53:01+04:00","gmt_modified":"2026-04-23T15:44:02+04:00"}],"wiki_overview":{"content":"\u003cblog\u003e\n\n# VIZ CPP Node - Comprehensive Project Analysis\n\n## 1. Project Introduction\n\n### Purpose Statement\nVIZ is a C++ implementation of a decentralized blockchain node designed for the VIZ World platform. It serves as a full consensus node that validates transactions, maintains the blockchain state, and provides APIs for interacting with the distributed ledger system.\n\n### Core Goals and Objectives\n- **Consensus Validation**: Maintain blockchain integrity through cryptographic verification and consensus mechanisms\n- **Network Participation**: Act as a peer-to-peer node in the VIZ network infrastructure\n- **API Provision**: Expose comprehensive JSON-RPC APIs for external applications and wallets\n- **Extensibility**: Support modular plugin architecture for specialized functionality\n- **Performance**: Optimize for both full node operations and lightweight consensus-only modes\n\n### Target Audience\n- Blockchain developers building applications on VIZ\n- Node operators running full nodes or witness nodes\n- Wallet developers integrating with VIZ blockchain\n- Researchers studying blockchain consensus mechanisms\n\n## 2. Technical Architecture\n\n### Component Breakdown\n\nThe VIZ project follows a modular architecture built on the appbase framework:\n\n```mermaid\ngraph TD\n A[VIZ Node] --\u003e B[Core Libraries]\n A --\u003e C[Plugins]\n A --\u003e D[Programs]\n \n B --\u003e E[Chain Library]\n B --\u003e F[Protocol Library]\n B --\u003e G[Network Library]\n B --\u003e H[Wallet Library]\n \n C --\u003e I[Chain Plugin]\n C --\u003e J[P2P Plugin]\n C --\u003e K[Webserver Plugin]\n C --\u003e L[Database API Plugin]\n C --\u003e M[JSON-RPC Plugin]\n \n D --\u003e N[vizd - Full Node]\n D --\u003e O[cli_wallet - CLI Wallet]\n D --\u003e P[js_operation_serializer - Tools]\n```\n\n### Design Patterns\n\n**Plugin Architecture**: The project extensively uses the appbase plugin system, allowing modular functionality through independent plugins that can be enabled/disabled at runtime.\n\n**Database Pattern**: Chainbase provides an object-oriented database abstraction layer, enabling efficient blockchain state management.\n\n**Observer Pattern**: Event-driven architecture through Boost.Signals2 for handling blockchain events and state changes.\n\n### System Relationships\n\n```mermaid\nsequenceDiagram\n participant Client\n participant Webserver\n participant JSON_RPC\n participant Chain\n participant Database\n \n Client-\u003e\u003e+Webserver: HTTP Request\n Webserver-\u003e\u003e+JSON_RPC: Parse JSON-RPC\n JSON_RPC-\u003e\u003e+Chain: Validate Operation\n Chain-\u003e\u003e+Database: Query State\n Database--\u003e\u003e-Chain: Return Data\n Chain--\u003e\u003e-JSON_RPC: Process Result\n JSON_RPC--\u003e\u003e-Webserver: JSON Response\n Webserver--\u003e\u003e-Client: HTTP Response\n```\n\n### Data Flow Diagrams\n\n```mermaid\nflowchart TD\n A[Transaction Input] --\u003e B[JSON-RPC Parser]\n B --\u003e C[Operation Validation]\n C --\u003e D[Authority Verification]\n D --\u003e E[State Application]\n E --\u003e F[Block Production]\n F --\u003e G[P2P Broadcasting]\n \n H[Block Input] --\u003e I[Block Validation]\n I --\u003e J[Fork Resolution]\n J --\u003e K[State Commit]\n K --\u003e L[Peer Sync]\n```\n\n## 3. Key Implementation\n\n### Main Entry Points\n\n**Primary Node Entry Point**: `programs/vizd/main.cpp`\n- Initializes the application with core plugins\n- Configures logging and command-line options\n- Manages plugin lifecycle and startup sequence\n\n**Configuration Management**: `share/vizd/config/config.ini`\n- Network settings (P2P endpoints, webserver ports)\n- Plugin activation and configuration\n- Performance tuning parameters\n- Logging configuration sections\n\n### Core Modules\n\n**Database Layer**: `libraries/chain/include/graphene/chain/database.hpp`\n- Blockchain state management\n- Object persistence and retrieval\n- Fork database handling\n- Transaction validation pipeline\n\n**Protocol Definitions**: `libraries/protocol/include/graphene/protocol/operations.hpp`\n- Complete operation type definitions\n- Transaction structure validation\n- Authority requirement calculation\n- Virtual operation handling\n\n**Plugin System**: `plugins/chain/include/graphene/plugins/chain/plugin.hpp`\n- Core blockchain functionality\n- Block acceptance and validation\n- Transaction processing\n- Index management\n\n### Configuration Approach\n\n**Build Configuration**: `CMakeLists.txt`\n- Cross-platform compilation support\n- Compiler-specific optimizations\n- Feature toggles (testnet, low-memory)\n- Dependency management\n\n**Runtime Configuration**: `share/vizd/config/config.ini`\n- Plugin enable/disable directives\n- Network connectivity settings\n- Performance tuning parameters\n- Logging configuration sections\n\n### External Dependencies\n\n**Third-party Libraries**: `thirdparty/CMakeLists.txt`\n- appbase: Application framework foundation\n- fc: Fast Crypto library for networking and cryptography\n- chainbase: High-performance object database\n\n**Build Dependencies**:\n- Boost 1.57+: Core C++ utilities\n- OpenSSL: Cryptographic operations\n- CMake: Build system\n- Platform-specific toolchains\n\n### Integration Points\n\n**P2P Network**: `plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp`\n- Peer discovery and connection management\n- Block and transaction propagation\n- Network protocol compliance\n\n**Web API**: `plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp`\n- HTTP/HTTPS server implementation\n- WebSocket support for real-time updates\n- JSON-RPC 2.0 compliance\n\n**Database API**: `plugins/database_api/include/graphene/plugins/database_api/plugin.hpp`\n- Comprehensive blockchain state queries\n- Account and transaction history\n- Market data and governance information\n\n### Component Relationship Diagrams\n\n```mermaid\ngraph LR\n A[Chain Plugin] --\u003e B[Database Layer]\n A --\u003e C[P2P Plugin]\n D[Webserver Plugin] --\u003e E[JSON-RPC Plugin]\n E --\u003e A\n F[Database API Plugin] --\u003e A\n G[Account History Plugin] --\u003e A\n H[Tags Plugin] --\u003e A\n I[Follow Plugin] --\u003e A\n```\n\n## 4. Key Features\n\n### Functionality Overview\n\n**Blockchain Consensus**: Full validation of blocks and transactions according to VIZ protocol rules\n**Network Participation**: Active participation in the peer-to-peer network with configurable connectivity\n**API Exposure**: Comprehensive JSON-RPC APIs covering all blockchain functionality\n**Plugin Extensibility**: Modular architecture supporting specialized functionality through plugins\n**Performance Optimization**: Configurable memory usage and processing modes for different node types\n\n### Implementation Highlights\n\n**Modular Plugin System**: `plugins/*/include/graphene/plugins/*/plugin.hpp`\n- Independent plugin development and deployment\n- Runtime plugin loading/unloading\n- Inter-plugin communication through appbase framework\n\n**High-performance Database**: `libraries/chain/database.cpp`\n- Optimized object storage and retrieval\n- Efficient fork resolution algorithms\n- Memory-mapped file support for large datasets\n\n**Comprehensive API Coverage**: `plugins/database_api/api.cpp`\n- Complete blockchain state queries\n- Historical data access\n- Real-time event streaming\n\n### Feature Architecture Diagrams\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e Initializing\n Initializing --\u003e Syncing: Start Node\n Syncing --\u003e Live: Catch Up Complete\n Live --\u003e Producing: Witness Enabled\n Live --\u003e Listening: Normal Mode\n Producing --\u003e Live: Block Production\n Listening --\u003e Live: New Blocks\n Live --\u003e [*]: Shutdown\n \n Syncing --\u003e [*]: Error\n Live --\u003e [*]: Error\n```\n\n**Development Workflow**: `documentation/building.md`\n- Cross-platform build system\n- Docker containerization support\n- Automated testing and CI/CD integration\n- Release packaging and distribution\n\n**Testing Infrastructure**: `documentation/testing.md`\n- Unit test framework integration\n- Integration testing capabilities\n- Performance benchmarking tools\n- Continuous integration workflows\n\n## 5. Conclusion and Recommendations\n\n### Project Architecture Summary\n\nThe VIZ CPP Node demonstrates a well-architected blockchain implementation with several key strengths:\n\n- **Modular Design**: Clean separation of concerns through the plugin architecture enables easy maintenance and feature development\n- **Performance Focus**: Multiple optimization modes (full node vs. low-memory) accommodate diverse deployment scenarios\n- **Comprehensive API**: Broad coverage of blockchain functionality through standardized JSON-RPC interfaces\n- **Cross-platform Compatibility**: Robust build system supporting multiple operating systems and compilers\n\n### Architectural Strengths\n\n1. **Scalability**: Plugin-based architecture allows selective feature activation based on node requirements\n2. **Maintainability**: Clear module boundaries facilitate independent development and testing\n3. **Interoperability**: Standardized JSON-RPC interface enables seamless integration with external applications\n4. **Reliability**: Comprehensive error handling and logging throughout the system\n\n### Potential Improvement Areas\n\n1. **Documentation**: Enhanced inline documentation would improve code maintainability\n2. **Testing Coverage**: Expanded unit and integration test suites would increase confidence in changes\n3. **Monitoring**: Additional metrics and health check endpoints would improve operational visibility\n4. **Security**: Regular security audits and vulnerability assessments should be integrated into the development process\n\n### Actionable Recommendations\n\n1. **Implement Comprehensive Logging**: Add structured logging with correlation IDs for better debugging\n2. **Enhance Test Coverage**: Target 80%+ code coverage across all modules\n3. **Performance Monitoring**: Integrate metrics collection for key performance indicators\n4. **Security Hardening**: Implement regular security assessments and dependency updates\n5. **Developer Experience**: Create comprehensive developer guides and example applications\n\n### Next Steps for Project Evolution\n\n1. **Microservices Migration**: Consider breaking down monolithic components into microservices for better scalability\n2. **Cloud-native Deployment**: Enhance Kubernetes support and cloud-native features\n3. **Advanced Analytics**: Implement real-time analytics and reporting capabilities\n4. **Mobile Integration**: Develop mobile SDKs for broader ecosystem adoption\n5. **Community Development**: Establish contributor guidelines and development workflows\n\n---\n\n**Sources:**\n- [CMakeLists.txt](CMakeLists.txt)\n- [main.cpp](programs/vizd/main.cpp)\n- [database.hpp](libraries/chain/include/graphene/chain/database.hpp)\n- [operations.hpp](libraries/protocol/include/graphene/protocol/operations.hpp)\n- [plugin.hpp](plugins/chain/include/graphene/plugins/chain/plugin.hpp)\n- [config.ini](share/vizd/config/config.ini)\n- [building.md](documentation/building.md)\n- [plugin.hpp](plugins/database_api/include/graphene/plugins/database_api/plugin.hpp)\n- [p2p_plugin.hpp](plugins/p2p/include/graphene/plugins/p2p/p2p_plugin.hpp)\n- [webserver_plugin.hpp](plugins/webserver/include/graphene/plugins/webserver/webserver_plugin.hpp)\n- [CMakeLists.txt](thirdparty/CMakeLists.txt)\n\n\u003c/blog\u003e","gmt_create":"2026-03-03T07:24:05+04:00","gmt_modified":"2026-03-03T07:24:05+04:00","id":"847846a1-6a0d-4da8-a529-d7882404e203","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb"},"wiki_readme":{"content":"No readme file","gmt_create":"2026-03-03T07:22:14+04:00","gmt_modified":"2026-03-03T07:22:14+04:00","id":"5efb61df-47da-4d4c-94c8-745098f5e716","repo_id":"b04cd939-22b1-4978-88f3-92f2639dafbb"},"wiki_repo":{"id":"b04cd939-22b1-4978-88f3-92f2639dafbb","name":"viz-cpp-node","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── .github\\\\workflows\\\\\\n│ ├── docker-main.yml\\n│ └── docker-pr-build.yml\\n├── .qoder\\\\\\n│ ├── agents\\\\\\n│ └── skills\\\\\\n├── documentation\\\\\\n│ ├── doxygen\\\\\\n│ │ ├── images\\\\\\n│ │ │ └── viz.png\\n│ │ ├── DoxygenLayout.xml\\n│ │ ├── customdoxygen.css\\n│ │ ├── footer.html\\n│ │ └── header.html\\n│ ├── api_notes.md\\n│ ├── building.md\\n│ ├── debug_node_plugin.md\\n│ ├── git_guildelines.md\\n│ ├── plugin.md\\n│ ├── testing.md\\n│ └── testnet.md\\n├── libraries\\\\\\n│ ├── api\\\\\\n│ │ ├── include\\\\graphene\\\\api\\\\\\n│ │ │ ├── account_api_object.hpp\\n│ │ │ ├── account_vote.hpp\\n│ │ │ ├── chain_api_properties.hpp\\n│ │ │ ├── committee_api_object.hpp\\n│ │ │ ├── content_api_object.hpp\\n│ │ │ ├── discussion.hpp\\n│ │ │ ├── discussion_helper.hpp\\n│ │ │ ├── invite_api_object.hpp\\n│ │ │ ├── paid_subscription_api_object.hpp\\n│ │ │ ├── vote_state.hpp\\n│ │ │ └── witness_api_object.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── account_api_object.cpp\\n│ │ ├── chain_api_properties.cpp\\n│ │ ├── committee_api_object.cpp\\n│ │ ├── content_api_object.cpp\\n│ │ ├── discussion_helper.cpp\\n│ │ ├── invite_api_object.cpp\\n│ │ ├── paid_subscription_api_object.cpp\\n│ │ └── witness_api_object.cpp\\n│ ├── chain\\\\\\n│ │ ├── hardfork.d\\\\\\n│ │ │ ├── 0-preamble.hf\\n│ │ │ ├── 1.hf\\n│ │ │ ├── 10.hf\\n│ │ │ ├── 11.hf\\n│ │ │ ├── 2.hf\\n│ │ │ ├── 3.hf\\n│ │ │ ├── 4.hf\\n│ │ │ ├── 5.hf\\n│ │ │ ├── 6.hf\\n│ │ │ ├── 7.hf\\n│ │ │ ├── 8.hf\\n│ │ │ └── 9.hf\\n│ │ ├── include\\\\graphene\\\\chain\\\\\\n│ │ │ ├── account_object.hpp\\n│ │ │ ├── block_log.hpp\\n│ │ │ ├── block_summary_object.hpp\\n│ │ │ ├── chain_evaluator.hpp\\n│ │ │ ├── chain_object_types.hpp\\n│ │ │ ├── chain_objects.hpp\\n│ │ │ ├── committee_objects.hpp\\n│ │ │ ├── compound.hpp\\n│ │ │ ├── content_object.hpp\\n│ │ │ ├── custom_operation_interpreter.hpp\\n│ │ │ ├── database.hpp\\n│ │ │ ├── database_exceptions.hpp\\n│ │ │ ├── db_with.hpp\\n│ │ │ ├── evaluator.hpp\\n│ │ │ ├── evaluator_registry.hpp\\n│ │ │ ├── fork_database.hpp\\n│ │ │ ├── generic_custom_operation_interpreter.hpp\\n│ │ │ ├── global_property_object.hpp\\n│ │ │ ├── immutable_chain_parameters.hpp\\n│ │ │ ├── index.hpp\\n│ │ │ ├── invite_objects.hpp\\n│ │ │ ├── node_property_object.hpp\\n│ │ │ ├── operation_notification.hpp\\n│ │ │ ├── paid_subscription_objects.hpp\\n│ │ │ ├── proposal_object.hpp\\n│ │ │ ├── shared_authority.hpp\\n│ │ │ ├── shared_db_merkle.hpp\\n│ │ │ ├── transaction_object.hpp\\n│ │ │ └── witness_objects.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── block_log.cpp\\n│ │ ├── chain_evaluator.cpp\\n│ │ ├── chain_objects.cpp\\n│ │ ├── chain_properties_evaluators.cpp\\n│ │ ├── committee_evaluator.cpp\\n│ │ ├── database.cpp\\n│ │ ├── database_proposal_object.cpp\\n│ │ ├── fork_database.cpp\\n│ │ ├── invite_evaluator.cpp\\n│ │ ├── paid_subscription_evaluator.cpp\\n│ │ ├── proposal_evaluator.cpp\\n│ │ ├── proposal_object.cpp\\n│ │ ├── shared_authority.cpp\\n│ │ └── transaction_object.cpp\\n│ ├── network\\\\\\n│ │ ├── include\\\\graphene\\\\network\\\\\\n│ │ │ ├── config.hpp\\n│ │ │ ├── core_messages.hpp\\n│ │ │ ├── exceptions.hpp\\n│ │ │ ├── message.hpp\\n│ │ │ ├── message_oriented_connection.hpp\\n│ │ │ ├── node.hpp\\n│ │ │ ├── peer_connection.hpp\\n│ │ │ ├── peer_database.hpp\\n│ │ │ └── stcp_socket.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── core_messages.cpp\\n│ │ ├── message_oriented_connection.cpp\\n│ │ ├── node.cpp\\n│ │ ├── peer_connection.cpp\\n│ │ ├── peer_database.cpp\\n│ │ └── stcp_socket.cpp\\n│ ├── protocol\\\\\\n│ │ ├── include\\\\graphene\\\\protocol\\\\\\n│ │ │ ├── README.md\\n│ │ │ ├── asset.hpp\\n│ │ │ ├── authority.hpp\\n│ │ │ ├── base.hpp\\n│ │ │ ├── block.hpp\\n│ │ │ ├── block_header.hpp\\n│ │ │ ├── chain_operations.hpp\\n│ │ │ ├── chain_virtual_operations.hpp\\n│ │ │ ├── config.hpp\\n│ │ │ ├── config_testnet.hpp\\n│ │ │ ├── exceptions.hpp\\n│ │ │ ├── get_config.hpp\\n│ │ │ ├── operation_util.hpp\\n│ │ │ ├── operation_util_impl.hpp\\n│ │ │ ├── operations.hpp\\n│ │ │ ├── proposal_operations.hpp\\n│ │ │ ├── protocol.hpp\\n│ │ │ ├── sign_state.hpp\\n│ │ │ ├── transaction.hpp\\n│ │ │ ├── types.hpp\\n│ │ │ └── version.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── asset.cpp\\n│ │ ├── authority.cpp\\n│ │ ├── block.cpp\\n│ │ ├── chain_operations.cpp\\n│ │ ├── get_config.cpp\\n│ │ ├── operation_util_impl.cpp\\n│ │ ├── operations.cpp\\n│ │ ├── proposal_operations.cpp\\n│ │ ├── sign_state.cpp\\n│ │ ├── transaction.cpp\\n│ │ ├── types.cpp\\n│ │ └── version.cpp\\n│ ├── time\\\\\\n│ │ ├── include\\\\graphene\\\\time\\\\\\n│ │ │ └── time.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── time.cpp\\n│ ├── utilities\\\\\\n│ │ ├── include\\\\graphene\\\\utilities\\\\\\n│ │ │ ├── git_revision.hpp\\n│ │ │ ├── key_conversion.hpp\\n│ │ │ ├── padding_ostream.hpp\\n│ │ │ ├── string_escape.hpp\\n│ │ │ ├── tempdir.hpp\\n│ │ │ └── words.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── git_revision.cpp.in\\n│ │ ├── key_conversion.cpp\\n│ │ ├── string_escape.cpp\\n│ │ ├── tempdir.cpp\\n│ │ └── words.cpp\\n│ ├── wallet\\\\\\n│ │ ├── include\\\\graphene\\\\wallet\\\\\\n│ │ │ ├── api_documentation.hpp\\n│ │ │ ├── reflect_util.hpp\\n│ │ │ ├── remote_node_api.hpp\\n│ │ │ └── wallet.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── Doxyfile.in\\n│ │ ├── api_documentation_standin.cpp\\n│ │ ├── generate_api_documentation.pl\\n│ │ └── wallet.cpp\\n│ └── CMakeLists.txt\\n├── plugins\\\\\\n│ ├── account_by_key\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\account_by_key\\\\\\n│ │ │ ├── account_by_key_objects.hpp\\n│ │ │ └── account_by_key_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── account_by_key_plugin.cpp\\n│ ├── account_history\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\account_history\\\\\\n│ │ │ ├── history_object.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── auth_util\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\auth_util\\\\\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── block_info\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\block_info\\\\\\n│ │ │ ├── block_info.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── chain\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\chain\\\\\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── committee_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\committee_api\\\\\\n│ │ │ └── committee_api.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── committee_api.cpp\\n│ ├── custom_protocol_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\custom_protocol_api\\\\\\n│ │ │ ├── custom_protocol_api.hpp\\n│ │ │ ├── custom_protocol_api_object.hpp\\n│ │ │ └── custom_protocol_api_visitor.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── custom_protocol_api.cpp\\n│ │ └── custom_protocol_api_visitor.cpp\\n│ ├── database_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\database_api\\\\\\n│ │ │ ├── api_objects\\\\\\n│ │ │ │ ├── account_recovery_request_api_object.hpp\\n│ │ │ │ ├── master_authority_history_api_object.hpp\\n│ │ │ │ └── proposal_api_object.hpp\\n│ │ │ ├── forward.hpp\\n│ │ │ ├── plugin.hpp\\n│ │ │ └── state.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── api.cpp\\n│ │ └── proposal_api_object.cpp\\n│ ├── debug_node\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\debug_node\\\\\\n│ │ │ ├── api_helper.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── follow\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\follow\\\\\\n│ │ │ ├── follow_api_object.hpp\\n│ │ │ ├── follow_evaluators.hpp\\n│ │ │ ├── follow_forward.hpp\\n│ │ │ ├── follow_objects.hpp\\n│ │ │ ├── follow_operations.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── follow_evaluators.cpp\\n│ │ ├── follow_operations.cpp\\n│ │ └── plugin.cpp\\n│ ├── invite_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\invite_api\\\\\\n│ │ │ └── invite_api.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── invite_api.cpp\\n│ ├── json_rpc\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\json_rpc\\\\\\n│ │ │ ├── plugin.hpp\\n│ │ │ └── utility.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── mongo_db\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\mongo_db\\\\\\n│ │ │ ├── mongo_db_operations.hpp\\n│ │ │ ├── mongo_db_plugin.hpp\\n│ │ │ ├── mongo_db_state.hpp\\n│ │ │ ├── mongo_db_types.hpp\\n│ │ │ └── mongo_db_writer.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── mongo_db_operations.cpp\\n│ │ ├── mongo_db_plugin.cpp\\n│ │ ├── mongo_db_state.cpp\\n│ │ ├── mongo_db_types.cpp\\n│ │ └── mongo_db_writer.cpp\\n│ ├── network_broadcast_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\network_broadcast_api\\\\\\n│ │ │ └── network_broadcast_api_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── network_broadcast_api.cpp\\n│ ├── operation_history\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\operation_history\\\\\\n│ │ │ ├── applied_operation.hpp\\n│ │ │ ├── history_object.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── applied_operation.cpp\\n│ │ └── plugin.cpp\\n│ ├── p2p\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\p2p\\\\\\n│ │ │ └── p2p_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── p2p_plugin.cpp\\n│ ├── paid_subscription_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\paid_subscription_api\\\\\\n│ │ │ └── paid_subscription_api.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── paid_subscription_api.cpp\\n│ ├── private_message\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\private_message\\\\\\n│ │ │ ├── private_message_evaluators.hpp\\n│ │ │ ├── private_message_objects.hpp\\n│ │ │ └── private_message_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── private_message_objects.cpp\\n│ │ └── private_message_plugin.cpp\\n│ ├── raw_block\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\raw_block\\\\\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ ├── social_network\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\social_network\\\\\\n│ │ │ └── social_network.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── social_network.cpp\\n│ ├── tags\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\tags\\\\\\n│ │ │ ├── discussion_query.hpp\\n│ │ │ ├── plugin.hpp\\n│ │ │ ├── tag_api_object.hpp\\n│ │ │ ├── tag_visitor.hpp\\n│ │ │ ├── tags_object.hpp\\n│ │ │ └── tags_sort.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ ├── discussion_query.cpp\\n│ │ ├── plugin.cpp\\n│ │ └── tag_visitor.cpp\\n│ ├── test_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\test_api\\\\\\n│ │ │ └── test_api_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── test_api_plugin.cpp\\n│ ├── webserver\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\webserver\\\\\\n│ │ │ └── webserver_plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── webserver_plugin.cpp\\n│ ├── witness\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\witness\\\\\\n│ │ │ └── witness.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── witness.cpp\\n│ ├── witness_api\\\\\\n│ │ ├── include\\\\graphene\\\\plugins\\\\witness_api\\\\\\n│ │ │ ├── api_objects\\\\\\n│ │ │ │ ├── feed_history_api_object.hpp\\n│ │ │ │ └── witness_api_object.hpp\\n│ │ │ └── plugin.hpp\\n│ │ ├── CMakeLists.txt\\n│ │ └── plugin.cpp\\n│ └── CMakeLists.txt\\n├── programs\\\\\\n│ ├── build_helpers\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ ├── cat-parts.cpp\\n│ │ ├── cat_parts.py\\n│ │ ├── check_reflect.py\\n│ │ └── configure_build.py\\n│ ├── cli_wallet\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ ├── js_operation_serializer\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ ├── size_checker\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ ├── util\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ ├── get_dev_key.cpp\\n│ │ ├── inflation_plot.py\\n│ │ ├── newplugin.py\\n│ │ ├── pretty_schema.py\\n│ │ ├── saltpass.py\\n│ │ ├── schema_test.cpp\\n│ │ ├── sign_digest.cpp\\n│ │ ├── sign_transaction.cpp\\n│ │ ├── test_block_log.cpp\\n│ │ └── test_shared_mem.cpp\\n│ ├── vizd\\\\\\n│ │ ├── CMakeLists.txt\\n│ │ └── main.cpp\\n│ └── CMakeLists.txt\\n├── share\\\\vizd\\\\\\n│ ├── config\\\\\\n│ │ ├── config.ini\\n│ │ ├── config_debug.ini\\n│ │ ├── config_debug_mongo.ini\\n│ │ ├── config_mongo.ini\\n│ │ ├── config_stock_exchange.ini\\n│ │ ├── config_testnet.ini\\n│ │ └── config_witness.ini\\n│ ├── docker\\\\\\n│ │ ├── Dockerfile-lowmem\\n│ │ ├── Dockerfile-mongo\\n│ │ ├── Dockerfile-production\\n│ │ └── Dockerfile-testnet\\n│ ├── seednodes\\n│ ├── seednodes_empty\\n│ ├── snapshot-testnet.json\\n│ ├── snapshot.json\\n│ └── vizd.sh\\n├── thirdparty\\\\\\n│ ├── appbase\\\\\\n│ ├── chainbase\\\\\\n│ ├── fc\\\\\\n│ └── CMakeLists.txt\\n├── .gitignore\\n├── .gitmodules\\n├── .travis.yml\\n├── CMakeLists.txt\\n├── Doxyfile\\n├── LICENSE.md\\n└── README.md\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted: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","recovery_checkpoint":"incremental_processing","last_commit_id":"0d3202213837e1f22b46d70c798ba0a44d4e2de8","last_commit_update":"2026-04-25T14:08:41.1366398+04:00","gmt_create":"2026-03-03T06:42:09+04:00","gmt_modified":"2026-04-25T14:08:41.1366398+04:00","extend_info":"{\"language\":\"en\",\"active\":true,\"branch\":\"fork-resolution\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"0.8.2\"}"}} \ No newline at end of file diff --git a/libraries/chain/database.cpp b/libraries/chain/database.cpp index 83f825c6be..a092c08958 100644 --- a/libraries/chain/database.cpp +++ b/libraries/chain/database.cpp @@ -572,8 +572,8 @@ namespace graphene { namespace chain { if (!immediate) { // Deferred mode: just set the flag. The actual resize will be - // performed by apply_pending_resize() at a safe point where - // no other threads hold read locks or lockless references. + // performed by apply_pending_resize() using the resize barrier, + // which pauses all operations (including lockless reads). ilog( "\033[33mShared memory resize deferred on block ${block}: actual data ${used_before}M / current ${max_before}M -> will grow to ${mem}M\033[0m", ("block", current_block_num)("mem", new_max / (1024 * 1024)) @@ -585,6 +585,10 @@ namespace graphene { namespace chain { // Immediate mode: used during reindex when we already hold an // exclusive write lock and no API threads are running. + // NOTE: This path intentionally does NOT use begin_resize_barrier() + // because during reindex there are no concurrent readers or lockless + // operations. Using the barrier here would deadlock since the caller + // already holds a write lock (which itself holds an operation guard). ilog( "\033[33mShared memory growing on block ${block}: actual data ${used_before}M / current ${max_before}M -> new ${mem}M\033[0m", ("block", current_block_num)("mem", new_max / (1024 * 1024)) @@ -611,38 +615,41 @@ namespace graphene { namespace chain { return; } - // Acquire our own write lock. This waits for ALL read locks to be - // released, so by the time we enter the lambda no other thread has - // any reference into the shared memory segment. - with_strong_write_lock([&]() { - if (!_pending_resize) { - return; // another thread beat us - } + // Use the resize barrier to pause ALL database operations. + // This is stronger than with_strong_write_lock: it also blocks + // lockless reads (e.g. get_slot_at_time, get_scheduled_witness, + // find_account in _generate_block and witness plugin) that do not + // acquire any chainbase lock. After begin_resize_barrier() + // returns, no thread holds any reference into shared memory. + ilog("Resize barrier: pausing all database operations..."); + begin_resize_barrier(); - size_t target = _pending_resize_target; - _pending_resize = false; - _pending_resize_target = 0; + size_t target = _pending_resize_target; + _pending_resize = false; + _pending_resize_target = 0; - uint64_t max_mem_before = max_memory(); - uint64_t free_mem_before = free_memory(); - uint64_t used_mem_before = max_mem_before - free_mem_before; + uint64_t max_mem_before = max_memory(); + uint64_t free_mem_before = free_memory(); + uint64_t used_mem_before = max_mem_before - free_mem_before; - ilog("\033[33mApplying deferred shared memory resize: actual data ${used_before}M / current ${max_before}M -> new ${mem}M\033[0m", - ("used_before", used_mem_before / (1024 * 1024))("max_before", max_mem_before / (1024 * 1024)) - ("mem", target / (1024 * 1024))); - resize(target); + ilog("\033[33mApplying deferred shared memory resize: actual data ${used_before}M / current ${max_before}M -> new ${mem}M\033[0m", + ("used_before", used_mem_before / (1024 * 1024))("max_before", max_mem_before / (1024 * 1024)) + ("mem", target / (1024 * 1024))); + resize(target); - uint64_t free_mem = free_memory(); - uint64_t reserved_mem = reserved_memory(); - uint64_t used_mem_after = target - free_mem; - if (free_mem > reserved_mem) { - free_mem -= reserved_mem; - } - uint32_t free_mb = uint32_t(free_mem / (1024 * 1024)); - ilog("\033[33mDeferred shared memory grow complete: actual data ${used_after}M / new ${max_after}M (free ${free}M)\033[0m", - ("used_after", used_mem_after / (1024 * 1024))("max_after", target / (1024 * 1024))("free", free_mb)); - _last_free_gb_printed = free_mb / 1024; - }); + uint64_t free_mem = free_memory(); + uint64_t reserved_mem = reserved_memory(); + uint64_t used_mem_after = target - free_mem; + if (free_mem > reserved_mem) { + free_mem -= reserved_mem; + } + uint32_t free_mb = uint32_t(free_mem / (1024 * 1024)); + ilog("\033[33mDeferred shared memory grow complete: actual data ${used_after}M / new ${max_after}M (free ${free}M)\033[0m", + ("used_after", used_mem_after / (1024 * 1024))("max_after", target / (1024 * 1024))("free", free_mb)); + _last_free_gb_printed = free_mb / 1024; + + end_resize_barrier(); + ilog("Resize barrier: all database operations resumed."); } void database::check_free_memory(bool skip_print, uint32_t current_block_num, bool immediate_resize) { @@ -1116,9 +1123,9 @@ namespace graphene { namespace chain { //fc::time_point begin_time = fc::time_point::now(); // Apply any deferred resize BEFORE acquiring the main write lock. - // This is the safe point: no read locks are held, no lockless reads - // are in progress. apply_pending_resize() acquires its own write lock - // internally, which waits for all readers to finish first. + // apply_pending_resize() uses the resize barrier to pause ALL operations + // (including lockless reads), ensuring no thread has any reference into + // the shared memory segment during the remap. apply_pending_resize(); bool result = false; @@ -1213,6 +1220,52 @@ namespace graphene { namespace chain { return; } + int database::compare_fork_branches(const block_id_type& branch_a_tip, const block_id_type& branch_b_tip) const { + try { + if (!_fork_db.is_known_block(branch_a_tip) || !_fork_db.is_known_block(branch_b_tip)) + return 0; // Cannot compare — one or both tips not in fork_db + + auto branches = _fork_db.fetch_branch_from(branch_a_tip, branch_b_tip); + + auto compute_branch_weight = [&](const fork_database::branch_type& branch) -> share_type { + flat_set seen_witnesses; + share_type total_weight = 0; + for (const auto& item : branch) { + const auto& wit_name = item->data.witness; + if (wit_name == CHAIN_EMERGENCY_WITNESS_ACCOUNT) continue; + if (seen_witnesses.insert(wit_name).second) { + try { + const auto& wit_obj = get_witness(wit_name); + total_weight += wit_obj.votes; + } catch (...) {} + } + } + return total_weight; + }; + + share_type weight_a = compute_branch_weight(branches.first); + share_type weight_b = compute_branch_weight(branches.second); + + // Longer chain gets +10% bonus on its vote weight. + // Each block produced is a consensus "vote" — witnesses on the longer + // chain didn't defer and kept producing by consensus rules. + // This reflects the stronger network support signal. + auto a_num = block_header::num_from_id(branch_a_tip); + auto b_num = block_header::num_from_id(branch_b_tip); + if (a_num > b_num) { + weight_a = weight_a + weight_a / 10; // +10% + } else if (b_num > a_num) { + weight_b = weight_b + weight_b / 10; // +10% + } + + if (weight_a > weight_b) return 1; // branch_a is heavier + if (weight_b > weight_a) return -1; // branch_b is heavier + return 0; // tied + } catch (...) { + return 0; // Cannot compare + } + } + bool database::_push_block(const signed_block &new_block, uint32_t skip) { try { // Early rejection: if the block is at or before our head block number @@ -1290,35 +1343,13 @@ namespace graphene { namespace chain { //Only switch forks if new_head is actually higher than head bool should_switch = false; if (has_hardfork(CHAIN_HARDFORK_12)) { - // HF12: Vote-weighted chain comparison - // Primary criterion: sum of raw votes of unique non-committee witnesses per branch - // Secondary criterion (tie): longer chain wins + // HF12: Vote-weighted chain comparison with +10% longer-chain bonus if (new_head->data.block_num() >= head_block_num() && _fork_db.is_known_block(head_block_id())) { - auto branches = _fork_db.fetch_branch_from(new_head->data.id(), head_block_id()); - - auto compute_branch_weight = [&](const fork_database::branch_type& branch) -> share_type { - flat_set seen_witnesses; - share_type total_weight = 0; - for (const auto& item : branch) { - const auto& wit_name = item->data.witness; - if (wit_name == CHAIN_EMERGENCY_WITNESS_ACCOUNT) continue; - if (seen_witnesses.insert(wit_name).second) { - try { - const auto& wit_obj = get_witness(wit_name); - total_weight += wit_obj.votes; - } catch (...) {} - } - } - return total_weight; - }; - - share_type new_weight = compute_branch_weight(branches.first); - share_type old_weight = compute_branch_weight(branches.second); - - if (new_weight > old_weight) { + int cmp = compare_fork_branches(new_head->data.id(), head_block_id()); + if (cmp > 0) { should_switch = true; - } else if (new_weight == old_weight) { + } else if (cmp == 0) { // Tie: longer chain wins should_switch = (new_head->data.block_num() > head_block_num()); } @@ -1423,6 +1454,22 @@ namespace graphene { namespace chain { throw; } + // Prune stale competing blocks from dead forks at this height. + // A competing block is only safe to remove if its parent is no longer + // in the fork_db — without a parent the fork cannot be extended, so + // the block is truly dead. Removing blocks whose parent is still known + // would break legitimate fork switches when later blocks arrive. + { + auto competing = _fork_db.fetch_block_by_number(new_block.block_num()); + for (const auto& cb : competing) { + if (cb->id != new_block.id() && !_fork_db.is_known_block(cb->data.previous)) { + wlog("Pruning stale competing block ${id} at height ${n} from fork_db (dead fork)", + ("id", cb->id)("n", new_block.block_num())); + _fork_db.remove(cb->id); + } + } + } + return false; } FC_CAPTURE_AND_RETHROW() } @@ -1499,35 +1546,50 @@ namespace graphene { namespace chain { // If resize happened on another thread, those pointers could be stale. apply_pending_resize(); - uint32_t slot_num = get_slot_at_time(when); - FC_ASSERT(slot_num > 0); - string scheduled_witness = get_scheduled_witness(slot_num); - FC_ASSERT(scheduled_witness == witness_owner); - - const auto &witness_obj = get_witness(witness_owner); - - // Pre-check: ensure the witness account exists before generating the block. - // If the account is missing from the database (shared memory corruption), - // the block will be produced but fail to apply internally (process_funds - // calls get_account which would throw "unknown key"). - const auto* witness_acct = find_account(witness_owner); - if (!witness_acct) { - auto& acc_idx = get_index().indices().get(); - elog("CRITICAL: Witness ${w} account object MISSING from database! " - "This is impossible state - shared memory may be corrupted. " - "signing_key=${k} total_missed=${m} penalty=${p} last_confirmed=${lc} " - "account_index_size=${idx_size}", - ("w", witness_owner)("k", witness_obj.signing_key) - ("m", witness_obj.total_missed)("p", witness_obj.penalty_percent) - ("lc", witness_obj.last_confirmed_block_num) - ("idx_size", acc_idx.size())); - FC_ASSERT(false, "CRITICAL: Witness ${w} account not found in database! Shared memory corruption suspected. Node must be restarted with replay.", - ("w", witness_owner)); - } + // Guard all lockless reads with the resize barrier operation guard. + // This prevents a concurrent resize from remapping shared memory + // while we hold raw pointers/references into the mapped segment. + // The guard is scoped so it is released before with_strong_write_lock + // (which acquires its own operation guard internally). + { + auto op_guard = make_operation_guard(); - if (!(skip & skip_witness_signature)) - FC_ASSERT(witness_obj.signing_key == - block_signing_private_key.get_public_key()); + uint32_t slot_num = get_slot_at_time(when); + FC_ASSERT(slot_num > 0); + string scheduled_witness = get_scheduled_witness(slot_num); + FC_ASSERT(scheduled_witness == witness_owner); + + const auto &witness_obj = get_witness(witness_owner); + + // Pre-check: ensure the witness account exists before generating the block. + // If the account is missing from the database (shared memory corruption), + // the block will be produced but fail to apply internally (process_funds + // calls get_account which would throw "unknown key"). + const auto* witness_acct = find_account(witness_owner); + if (!witness_acct) { + auto& acc_idx = get_index().indices().get(); + elog("CRITICAL: Witness ${w} account object MISSING from database! " + "This is impossible state - shared memory may be corrupted. " + "signing_key=${k} total_missed=${m} penalty=${p} last_confirmed=${lc} " + "account_index_size=${idx_size}", + ("w", witness_owner)("k", witness_obj.signing_key) + ("m", witness_obj.total_missed)("p", witness_obj.penalty_percent) + ("lc", witness_obj.last_confirmed_block_num) + ("idx_size", acc_idx.size())); + FC_ASSERT(false, "CRITICAL: Witness ${w} account not found in database! Shared memory corruption suspected. Node must be restarted with replay.", + ("w", witness_owner)); + } + + if (!(skip & skip_witness_signature)) + FC_ASSERT(witness_obj.signing_key == + block_signing_private_key.get_public_key()); + } // op_guard released here + + // Second operation guard covers all remaining lockless reads + // in this function: get_dynamic_global_properties(), head_block_id(), + // get_witness(), get_hardfork_property_object(). Released before + // push_block() which has its own guards. + auto op_guard2 = make_operation_guard(); static const size_t max_block_header_size = fc::raw::pack_size(signed_block_header()) + 4; @@ -1656,6 +1718,8 @@ namespace graphene { namespace chain { FC_ASSERT(fc::raw::pack_size(pending_block) <= CHAIN_BLOCK_SIZE); } + op_guard2.release(); // release before push_block(), which has its own guards + push_block(pending_block, skip); return pending_block; diff --git a/libraries/chain/fork_database.cpp b/libraries/chain/fork_database.cpp index 291d486713..296fbdd191 100644 --- a/libraries/chain/fork_database.cpp +++ b/libraries/chain/fork_database.cpp @@ -266,5 +266,12 @@ namespace graphene { _index.get().erase(id); } + void fork_database::remove_blocks_by_number(uint32_t num) { + auto blocks = fetch_block_by_number(num); + for (const auto& b : blocks) { + _index.get().erase(b->id); + } + } + } } // graphene::chain diff --git a/libraries/chain/include/graphene/chain/database.hpp b/libraries/chain/include/graphene/chain/database.hpp index ce4e53a8e3..d065786e7d 100644 --- a/libraries/chain/include/graphene/chain/database.hpp +++ b/libraries/chain/include/graphene/chain/database.hpp @@ -532,6 +532,17 @@ namespace graphene { namespace chain { void check_block_post_validation_chain(); + /** + * Compare two fork branches by vote weight (HF12 logic). + * Sums wit_obj.votes (on-chain stake) for all unique witnesses in each branch, + * from the tip back to the common ancestor. + * The longer chain gets a +10% bonus on its total weight (reflects that more + * witnesses kept producing on it by consensus rules without deferring). + * @return >0 if branch_a is heavier, <0 if branch_b is heavier, 0 if tied + * @return 0 if either tip is not in fork_db (cannot compare) + */ + int compare_fork_branches(const block_id_type& branch_a_tip, const block_id_type& branch_b_tip) const; + protected: //Mark pop_undo() as protected -- we do not want outside calling pop_undo(); it should call pop_block() instead //void pop_undo() { object_database::pop_undo(); } diff --git a/libraries/chain/include/graphene/chain/fork_database.hpp b/libraries/chain/include/graphene/chain/fork_database.hpp index 1cb7444e30..883ef65fe8 100644 --- a/libraries/chain/include/graphene/chain/fork_database.hpp +++ b/libraries/chain/include/graphene/chain/fork_database.hpp @@ -64,6 +64,12 @@ namespace graphene { void remove(block_id_type b); + /** + * Remove all blocks at the given height from the fork database. + * Used to clear stale competing blocks from dead forks. + */ + void remove_blocks_by_number(uint32_t num); + void set_head(shared_ptr h); bool is_known_block(const block_id_type &id) const; diff --git a/libraries/network/include/graphene/network/config.hpp b/libraries/network/include/graphene/network/config.hpp index 69d0843f10..219a9e7cdf 100644 --- a/libraries/network/include/graphene/network/config.hpp +++ b/libraries/network/include/graphene/network/config.hpp @@ -45,7 +45,7 @@ */ #define GRAPHENE_PEER_DATABASE_RETRY_DELAY 15 // seconds -#define GRAPHENE_NET_PEER_HANDSHAKE_INACTIVITY_TIMEOUT 5 +#define GRAPHENE_NET_PEER_HANDSHAKE_INACTIVITY_TIMEOUT 10 #define GRAPHENE_NET_PEER_DISCONNECT_TIMEOUT 20 diff --git a/libraries/network/include/graphene/network/peer_connection.hpp b/libraries/network/include/graphene/network/peer_connection.hpp index aeef542b88..a1472fb526 100644 --- a/libraries/network/include/graphene/network/peer_connection.hpp +++ b/libraries/network/include/graphene/network/peer_connection.hpp @@ -276,6 +276,9 @@ namespace graphene { // HF12: soft-ban peers on losing forks during emergency consensus fc::time_point fork_rejected_until; + // Reason for disconnect (set before move_peer_to_closing_list) + std::string closing_reason; + fc::future accept_or_connect_task_done; firewall_check_state_data *firewall_check_state; diff --git a/libraries/network/node.cpp b/libraries/network/node.cpp index bd66b31558..31283c9047 100644 --- a/libraries/network/node.cpp +++ b/libraries/network/node.cpp @@ -597,8 +597,13 @@ namespace graphene { std::set _trusted_peer_ips; // Soft-ban durations - static constexpr uint32_t SOFT_BAN_DURATION_SEC = 3600; // 1 hour (default) + static constexpr uint32_t SOFT_BAN_DURATION_SEC = 900; // 15 minutes (default) static constexpr uint32_t TRUSTED_SOFT_BAN_DURATION_SEC = 300; // 5 minutes (trusted peers) + static constexpr uint32_t DISCONNECT_RECONNECT_COOLDOWN_SEC = 30; // cooldown before reconnecting to a recently disconnected peer + + // Per-IP cooldown after disconnect to prevent rapid reconnect loops. + // Key: 32-bit IP address, Value: time point when cooldown expires. + std::map _disconnect_cooldown; bool _node_is_shutting_down; // set to true when we begin our destructor, used to prevent us from starting new tasks while we're shutting down @@ -998,6 +1003,15 @@ namespace graphene { bool initiated_connection_this_pass = false; _potential_peer_database_updated = false; + // Clean up expired disconnect cooldowns + { + auto now = fc::time_point::now(); + for (auto it = _disconnect_cooldown.begin(); it != _disconnect_cooldown.end(); ) { + if (it->second <= now) it = _disconnect_cooldown.erase(it); + else ++it; + } + } + for (peer_database::iterator iter = _potential_peer_db.begin(); iter != _potential_peer_db.end() && is_wanting_new_connections(); @@ -1006,6 +1020,16 @@ namespace graphene { (iter->number_of_failed_connection_attempts + 1) * _peer_connection_retry_timeout); + // Skip peers in disconnect cooldown to prevent rapid reconnect loops + uint32_t peer_ip = uint32_t(iter->endpoint.get_address()); + auto cooldown_it = _disconnect_cooldown.find(peer_ip); + if (cooldown_it != _disconnect_cooldown.end() && cooldown_it->second > fc::time_point::now()) { + dlog("Skipping peer ${ep}: disconnect cooldown (${sec}s remaining)", + ("ep", iter->endpoint) + ("sec", (cooldown_it->second - fc::time_point::now()).count() / 1000000)); + continue; + } + if (!is_connection_to_endpoint_in_progress(iter->endpoint) && ((iter->last_connection_disposition != last_connection_failed && @@ -3027,6 +3051,16 @@ namespace graphene { VERIFY_CORRECT_THREAD(); originating_peer->they_have_requested_close = true; + // Record per-IP reconnect cooldown (receiver side) + auto remote_ep = originating_peer->get_remote_endpoint(); + if (remote_ep.valid()) { + uint32_t ip = uint32_t(remote_ep->get_address()); + _disconnect_cooldown[ip] = fc::time_point::now() + fc::seconds(DISCONNECT_RECONNECT_COOLDOWN_SEC); + } + + // Store reason on peer so move_peer_to_closing_list can display it + originating_peer->closing_reason = "remote: " + closing_connection_message_received.reason_for_closing; + if (closing_connection_message_received.closing_due_to_error) { elog("Peer ${peer} is disconnecting us because of an error: ${msg}, exception: ${error}", ("peer", originating_peer->get_remote_endpoint()) @@ -3145,7 +3179,7 @@ namespace graphene { try { std::vector contained_transaction_message_ids; - fc_ilog(fc::logger::get("sync"), + fc_dlog(fc::logger::get("sync"), "p2p pushing sync block #${block_num} ${block_hash}", ("block_num", block_message_to_send.block.block_num()) ("block_hash", block_message_to_send.block_id)); @@ -3566,7 +3600,7 @@ namespace graphene { _most_recent_blocks_accepted.end()) { std::vector contained_transaction_message_ids; _message_ids_currently_being_processed.insert(message_hash); - fc_ilog(fc::logger::get("sync"), + fc_dlog(fc::logger::get("sync"), "\033[90mp2p pushing block #${block_num} ${block_hash} from ${peer} (message_id was ${id})\033[0m", ("block_num", block_message_to_process.block.block_num()) ("block_hash", block_message_to_process.block_id) @@ -4434,6 +4468,21 @@ namespace graphene { try { _tcp_server.accept(new_peer->get_socket()); + + // Check disconnect cooldown for inbound connections + { + fc::ip::endpoint remote_ep = new_peer->get_socket().remote_endpoint(); + uint32_t remote_ip = uint32_t(remote_ep.get_address()); + auto cooldown_it = _disconnect_cooldown.find(remote_ip); + if (cooldown_it != _disconnect_cooldown.end() && cooldown_it->second > fc::time_point::now()) { + auto remaining_sec = (cooldown_it->second - fc::time_point::now()).count() / 1000000; + ilog("Rejecting inbound connection from ${ep}: disconnect cooldown (${sec}s remaining)", + ("ep", remote_ep)("sec", remaining_sec)); + new_peer->get_socket().close(); + continue; + } + } + ilog("accepted inbound connection from ${remote_endpoint}", ("remote_endpoint", new_peer->get_socket().remote_endpoint())); if (_node_is_shutting_down) { return; @@ -4893,9 +4942,16 @@ namespace graphene { _handshaking_connections.erase(peer); _closing_connections.insert(peer); _terminating_connections.erase(peer); - fc_ilog(fc::logger::get("sync"), CLOG_ORANGE "Peer connection closing (${peer}), now ${count} active peers" CLOG_RESET, - ("peer", peer->get_remote_endpoint()) - ("count", _active_connections.size())); + if (peer->closing_reason.empty()) { + fc_ilog(fc::logger::get("sync"), CLOG_ORANGE "Peer connection closing (${peer}), now ${count} active peers" CLOG_RESET, + ("peer", peer->get_remote_endpoint()) + ("count", _active_connections.size())); + } else { + fc_ilog(fc::logger::get("sync"), CLOG_ORANGE "Peer connection closing (${peer}): ${reason}, now ${count} active peers" CLOG_RESET, + ("peer", peer->get_remote_endpoint()) + ("reason", peer->closing_reason) + ("count", _active_connections.size())); + } } void node_impl::move_peer_to_terminating_list(const peer_connection_ptr &peer) { @@ -4953,6 +5009,17 @@ namespace graphene { bool caused_by_error /* = false */, const fc::oexception &error /* = fc::oexception() */ ) { VERIFY_CORRECT_THREAD(); + + // Store reason on peer so move_peer_to_closing_list can display it + peer_to_disconnect->closing_reason = reason_for_disconnect; + + // Record per-IP reconnect cooldown to prevent rapid reconnect loops + auto remote_ep = peer_to_disconnect->get_remote_endpoint(); + if (remote_ep.valid()) { + uint32_t ip = uint32_t(remote_ep->get_address()); + _disconnect_cooldown[ip] = fc::time_point::now() + fc::seconds(DISCONNECT_RECONNECT_COOLDOWN_SEC); + } + move_peer_to_closing_list(peer_to_disconnect->shared_from_this()); if (peer_to_disconnect->they_have_requested_close) { @@ -4990,9 +5057,7 @@ namespace graphene { << " for reason: " << reason_for_disconnect; _delegate->error_encountered(error_message.str(), fc::oexception()); - dlog(error_message.str()); - } else - dlog("Disconnecting from ${peer} for ${reason}", ("peer", peer_to_disconnect->get_remote_endpoint())("reason", reason_for_disconnect)); + } // peer_to_disconnect->close_connection(); } diff --git a/plugins/p2p/p2p_plugin.cpp b/plugins/p2p/p2p_plugin.cpp index b3bfb6245c..17083b06b4 100644 --- a/plugins/p2p/p2p_plugin.cpp +++ b/plugins/p2p/p2p_plugin.cpp @@ -229,9 +229,11 @@ namespace graphene { //recover public key from signature fc::ecc::public_key recovered_public_key(bpvl.witness_signature, enc.result(), true); - //get signing_key from witness_account + //get signing_key from witness_account (guard against concurrent resize) + auto op_guard = chain.db().make_operation_guard(); fc::ecc::public_key w_signing_key=chain.db().get_witness_key(bpvl.witness_account); if(chain.db().get_witness_key(bpvl.witness_account) == recovered_public_key){ + op_guard.release(); //trigger db block validation //ilog("recovered_public_key EQUAL to witness ${w}", ("w", bpvl.witness_account)); chain.db().apply_block_post_validation(validate_block_id,bpvl.witness_account); @@ -567,6 +569,38 @@ namespace graphene { } } _stats_bytes_received_last = std::move(new_bytes_map); + + // Dump potential peer database: shows all known peers including + // failed, rejected, and banned ones that are no longer connected. + // This is critical for debugging post-snapshot sync failures. + auto potential_peers = node->get_potential_peers(); + uint32_t failed_count = 0; + for (const auto &pp : potential_peers) { + if (pp.last_connection_disposition != graphene::network::last_connection_succeeded && + pp.last_connection_disposition != graphene::network::never_attempted_to_connect) { + ++failed_count; + std::string disposition; + switch (pp.last_connection_disposition) { + case graphene::network::last_connection_failed: disposition = "failed"; break; + case graphene::network::last_connection_rejected: disposition = "rejected"; break; + case graphene::network::last_connection_handshaking_failed: disposition = "handshake_failed"; break; + default: disposition = "unknown"; break; + } + std::string error_str; + if (pp.last_error) { + error_str = pp.last_error->to_string(); + } + dlog(CLOG_CYAN "P2P peer_db | ${ep} | status: ${disp} | last_attempt: ${time} | fails: ${f} | error: ${err}" CLOG_RESET, + ("ep", pp.endpoint)("disp", disposition) + ("time", pp.last_connection_attempt_time.to_iso_string()) + ("f", pp.number_of_failed_connection_attempts) + ("err", error_str)); + } + } + if (failed_count > 0) { + dlog(CLOG_CYAN "P2P peer_db: ${n} peers with failed/rejected status (of ${total} total)" CLOG_RESET, + ("n", failed_count)("total", potential_peers.size())); + } } catch (const fc::exception &e) { wlog("Exception in P2P stats task: ${e}", ("e", e.to_detail_string())); } catch (...) { diff --git a/plugins/snapshot/plugin.cpp b/plugins/snapshot/plugin.cpp index 27117975b2..344ef2f3d4 100644 --- a/plugins/snapshot/plugin.cpp +++ b/plugins/snapshot/plugin.cpp @@ -749,11 +749,11 @@ class snapshot_plugin::plugin_impl { std::atomic last_accept_activity{fc::time_point::now()}; // Anti-spam: active sessions per IP (max MAX_SESSIONS_PER_IP concurrent sessions per IP) - static constexpr uint32_t MAX_SESSIONS_PER_IP = 2; + static constexpr uint32_t MAX_SESSIONS_PER_IP = 3; std::map active_sessions; // IP -> concurrent session count // Anti-spam: rate limiting (max N connections per hour per IP) - static constexpr uint32_t MAX_CONNECTIONS_PER_HOUR = 6; + static constexpr uint32_t MAX_CONNECTIONS_PER_HOUR = 10; static constexpr uint64_t RATE_LIMIT_WINDOW_SEC = 3600; // 1 hour std::map> connection_history; // IP -> timestamps diff --git a/plugins/witness/witness.cpp b/plugins/witness/witness.cpp index e2cdbdd4a7..199ab86f7e 100644 --- a/plugins/witness/witness.cpp +++ b/plugins/witness/witness.cpp @@ -116,6 +116,10 @@ namespace graphene { std::set _witnesses; fc::time_point last_block_post_validation_time; + + // Fork collision resolution state + uint32_t fork_collision_defer_count_ = 0; + uint32_t _fork_collision_timeout_blocks = 21; // one full witness round (21 blocks = 63s) }; void witness_plugin::set_program_options( @@ -149,6 +153,9 @@ namespace graphene { "Rejection threshold as a percentage of the absolute moving average; deltas deviating more are rejected (default: 50).") ("ntp-rejection-min-threshold", bpo::value()->default_value(5), "Minimum rejection threshold in milliseconds, applied regardless of the percentage rule (default: 5).") + ("fork-collision-timeout-blocks", bpo::value()->default_value(21), + "Number of consecutive fork-collision deferrals (block slots) before forcing production. " + "One full witness schedule round is 21 blocks (63 seconds). Default: 21.") ; config_file_options.add(command_line_options); @@ -212,6 +219,10 @@ namespace graphene { graphene::time::configure_ntp(ntp_cfg); } + if (options.count("fork-collision-timeout-blocks")) { + pimpl->_fork_collision_timeout_blocks = options["fork-collision-timeout-blocks"].as(); + } + ilog("witness plugin: plugin_initialize() end"); } FC_LOG_AND_RETHROW() } @@ -258,6 +269,7 @@ namespace graphene { } auto& db = pimpl->database(); + auto op_guard = db.make_operation_guard(); fc::time_point now_fine = graphene::time::now(); fc::time_point_sec now = now_fine + fc::microseconds(250000); @@ -285,6 +297,7 @@ namespace graphene { } if (pimpl->_private_keys.find(scheduled_key) != pimpl->_private_keys.end()) { + op_guard.release(); return true; // We have the private key and are scheduled soon } } @@ -334,14 +347,17 @@ namespace graphene { switch (result) { case block_production_condition::produced: ilog("\033[92mGenerated block #${n} with timestamp ${t} at time ${c} by ${w}\033[0m", (capture)); + fork_collision_defer_count_ = 0; break; case block_production_condition::not_synced: // This log-record is commented, because it outputs very often // ilog("Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)"); + fork_collision_defer_count_ = 0; break; case block_production_condition::not_my_turn: // This log-record is commented, because it outputs very often // ilog("Not producing block because it isn't my turn"); + fork_collision_defer_count_ = 0; break; case block_production_condition::not_time_yet: // This log-record is commented, because it outputs very often @@ -484,6 +500,12 @@ namespace graphene { } } + // Guard lockless reads into shared memory with the resize barrier. + // This prevents a concurrent shared memory resize from invalidating + // pointers while we read witness schedule, slot time, etc. + // The guard is released before generate_block() which has its own. + auto op_guard = db.make_operation_guard(); + // is anyone scheduled to produce now or one second in the future? uint32_t slot = db.get_slot_at_time(now); if (slot == 0) { @@ -543,40 +565,106 @@ namespace graphene { } // Check if a competing block already exists in the fork database for this block height. - // If another block at the same height already exists, it means we are on a fork - // and producing would create a collision. Skip production to let fork resolution proceed. + // Two-level fork collision resolution: + // Level 1: Vote-weighted comparison when both forks are in fork_db + // Level 2: Stuck-head timeout after one full witness round (21 blocks = 63s) { auto existing_blocks = db.get_fork_db().fetch_block_by_number(db.head_block_num() + 1); if (existing_blocks.size() > 0) { bool has_competing_block = false; + graphene::chain::item_ptr competing_block; if (dgp.emergency_consensus_active) { // During emergency mode: ANY block at this height is competing. // Multiple nodes with the emergency key may have produced. // Defer to the deterministic hash-based resolution in fork_db. has_competing_block = true; + competing_block = existing_blocks[0]; } else { // Normal mode: only count blocks from different witnesses - // on a different parent as competing (existing logic) + // on a different parent as competing for (const auto &eb : existing_blocks) { if (eb->data.witness != scheduled_witness && eb->data.previous != db.head_block_id()) { has_competing_block = true; + competing_block = eb; break; } } } - if (has_competing_block) { - capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); - wlog("Skipping block production at height ${h} due to existing competing block " - "in fork database (witness ${w} deferring to allow fork resolution)", - ("h", db.head_block_num() + 1)("w", scheduled_witness)); - return block_production_condition::fork_collision; + if (has_competing_block && competing_block) { + fork_collision_defer_count_++; + + // LEVEL 2: Stuck-head timeout + // If we've been deferring and the head hasn't advanced, the competing + // block is from a dead fork. The network has moved on without it. + // After 21 consecutive deferrals (one full witness round = 63s), + // we can be sure the longer chain had all scheduled witnesses + // produce on it — confirming it's the canonical chain. + // This applies regardless of hardfork version — even pre-HF12 + // nodes must not defer forever. + if (fork_collision_defer_count_ > _fork_collision_timeout_blocks) { + wlog("Fork collision timeout exceeded (${n} deferrals, head stuck at ${h}). " + "Removing dead-fork competing block and producing on our chain.", + ("n", fork_collision_defer_count_)("h", db.head_block_num())); + db.get_fork_db().remove_blocks_by_number(db.head_block_num() + 1); + fork_collision_defer_count_ = 0; + // Fall through to produce block + } + // LEVEL 1: Vote-weighted comparison (when both forks are in fork_db) + else if (db.has_hardfork(CHAIN_HARDFORK_12)) { + int weight_cmp = db.compare_fork_branches( + competing_block->id, db.head_block_id()); + + if (weight_cmp < 0) { + // Our fork has MORE vote weight -> produce on our fork + wlog("Our fork has more vote weight at height ${h}. " + "Producing despite competing block from weaker fork.", + ("h", db.head_block_num() + 1)); + // Remove the losing competing block + db.get_fork_db().remove(competing_block->id); + fork_collision_defer_count_ = 0; + // Fall through to produce block + } else if (weight_cmp > 0) { + // Competing fork has MORE vote weight + // Defer to let the fork switch happen naturally via _push_block. + capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); + wlog("Competing fork at height ${h} has more vote weight. " + "Deferring to allow fork switch to stronger chain.", + ("h", db.head_block_num() + 1)); + return block_production_condition::fork_collision; + } else { + // Tied or comparison impossible (one tip not in fork_db) + // Defer briefly, timeout will kick in + capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); + wlog("Fork collision at height ${h} with tied/unknown vote weight. " + "Deferring (attempt ${n}/${max}).", + ("h", db.head_block_num() + 1) + ("n", fork_collision_defer_count_) + ("max", _fork_collision_timeout_blocks)); + return block_production_condition::fork_collision; + } + } + // Pre-HF12: defer, but timeout still applies on next iteration + else { + capture("height", db.head_block_num() + 1)("scheduled_witness", scheduled_witness); + wlog("Fork collision at height ${h} (pre-HF12). " + "Deferring (attempt ${n}/${max}).", + ("h", db.head_block_num() + 1) + ("n", fork_collision_defer_count_) + ("max", _fork_collision_timeout_blocks)); + return block_production_condition::fork_collision; + } } } } + // Release the operation guard before generate_block(), which + // acquires its own guard internally via apply_pending_resize() + // and with_strong_write_lock(). + op_guard.release(); + int retry = 0; do { try { diff --git a/thirdparty/chainbase b/thirdparty/chainbase index 51246d7b26..8a9097080b 160000 --- a/thirdparty/chainbase +++ b/thirdparty/chainbase @@ -1 +1 @@ -Subproject commit 51246d7b26b4e35e8e492e15de9d451e8394a3cf +Subproject commit 8a9097080b8ff48984572934d6765ad9ed6860ca