Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
node
txreconciliation.h
Go to the documentation of this file.
1
// Copyright (c) 2022-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_NODE_TXRECONCILIATION_H
6
#define BITCOIN_NODE_TXRECONCILIATION_H
7
8
#include <net.h>
9
#include <
sync.h
>
10
11
#include <memory>
12
#include <tuple>
13
15
static
constexpr
uint32_t
TXRECONCILIATION_VERSION
{1};
16
17
enum class
ReconciliationRegisterResult
{
18
NOT_FOUND
,
19
SUCCESS
,
20
ALREADY_REGISTERED
,
21
PROTOCOL_VIOLATION
,
22
};
23
51
class
TxReconciliationTracker
52
{
53
private
:
54
class
Impl
;
55
const
std::unique_ptr<Impl>
m_impl
;
56
57
public
:
58
explicit
TxReconciliationTracker
(uint32_t recon_version);
59
~TxReconciliationTracker
();
60
68
uint64_t
PreRegisterPeer
(
NodeId
peer_id);
69
74
ReconciliationRegisterResult
RegisterPeer
(
NodeId
peer_id,
bool
is_peer_inbound,
75
uint32_t peer_recon_version, uint64_t remote_salt);
76
81
void
ForgetPeer
(
NodeId
peer_id);
82
86
bool
IsPeerRegistered
(
NodeId
peer_id)
const
;
87
};
88
89
#endif
// BITCOIN_NODE_TXRECONCILIATION_H
TxReconciliationTracker::Impl
Actual implementation for TxReconciliationTracker's data structure.
Definition
txreconciliation.cpp:64
TxReconciliationTracker::~TxReconciliationTracker
~TxReconciliationTracker()
TxReconciliationTracker::IsPeerRegistered
bool IsPeerRegistered(NodeId peer_id) const
Check if a peer is registered to reconcile transactions with us.
Definition
txreconciliation.cpp:167
TxReconciliationTracker::RegisterPeer
ReconciliationRegisterResult RegisterPeer(NodeId peer_id, bool is_peer_inbound, uint32_t peer_recon_version, uint64_t remote_salt)
Step 0.
Definition
txreconciliation.cpp:156
TxReconciliationTracker::m_impl
const std::unique_ptr< Impl > m_impl
Definition
txreconciliation.h:55
TxReconciliationTracker::TxReconciliationTracker
TxReconciliationTracker(uint32_t recon_version)
Definition
txreconciliation.cpp:147
TxReconciliationTracker::PreRegisterPeer
uint64_t PreRegisterPeer(NodeId peer_id)
Step 0.
Definition
txreconciliation.cpp:151
TxReconciliationTracker::ForgetPeer
void ForgetPeer(NodeId peer_id)
Attempts to forget txreconciliation-related state of the peer (if we previously stored any).
Definition
txreconciliation.cpp:162
NodeId
int64_t NodeId
Definition
net.h:103
sync.h
ReconciliationRegisterResult
ReconciliationRegisterResult
Definition
txreconciliation.h:17
ReconciliationRegisterResult::ALREADY_REGISTERED
@ ALREADY_REGISTERED
Definition
txreconciliation.h:20
ReconciliationRegisterResult::NOT_FOUND
@ NOT_FOUND
Definition
txreconciliation.h:18
ReconciliationRegisterResult::PROTOCOL_VIOLATION
@ PROTOCOL_VIOLATION
Definition
txreconciliation.h:21
ReconciliationRegisterResult::SUCCESS
@ SUCCESS
Definition
txreconciliation.h:19
TXRECONCILIATION_VERSION
static constexpr uint32_t TXRECONCILIATION_VERSION
Supported transaction reconciliation protocol version.
Definition
txreconciliation.h:15
Generated on
for Bitcoin Core by
1.17.0