Skip to content

sgns::TransactionConsensusHandler

Validates and finalizes transactions on behalf of consensus. More...

#include <TransactionConsensusHandler.hpp>

Public Classes

Name
struct Metrics
Snapshot of the consensus counters, for the manager's shutdown log.
struct ReplayProtectionResult
Result of replay-protection evaluation for a consensus subject.

Public Types

Name
enum class uint8_t WitnessValidationResult

Public Functions

Name
TransactionConsensusHandler(TransactionManager & owner, base::Logger logger)
outcome::result< ConsensusManager::Check > OnConsensusCertificate(const std::string & tx_hash, const ConsensusCertificate & certificate)
Finalizes a transaction once consensus produced a certificate for it, reconstructing the transaction from the certificate when it is not tracked locally.
outcome::result< ConsensusManager::ValidationResult > HandleNonceConsensusSubject(const ConsensusManager::Subject & subject)
Validates a nonce consensus subject: well-formedness, authorization, timestamp, replay protection, type rules and the UTXO witness.
void OnProposalTimeoutCleanup(const std::string & tx_hash)
Handles proposal timeout cleanup for VERIFYING tracking entries. Local outgoing entries become UNCONFIRMED; remote temporary entries are removed. CONFIRMED entries and missing entries are left untouched.
std::optional< UTXOTransitionCommitment > BuildUTXOTransitionCommitment(const GeniusTransaction & tx) const
Builds the consumed/produced Merkle commitment a nonce subject carries.
ReplayProtectionResult EvaluateTransactionReplayProtection(const GeniusTransaction & tx) const
Evaluates previous-hash/nonce replay protection for a transaction.
WitnessValidationResult ValidateWitnessForConsensus(const ConsensusSubject & subject, const GeniusTransaction & tx) const
Validates the UTXO witness carried by a nonce consensus subject.
std::optional< UTXOWitness > BuildUTXOWitness(const GeniusTransaction & tx) const
Builds the Merkle inclusion proofs backing a transition commitment.
Metrics SnapshotMetrics() const

Detailed Description

class sgns::TransactionConsensusHandler;

Validates and finalizes transactions on behalf of consensus.

Owned by the TransactionManager that constructs it, whose lifetime strictly contains this object's. Tracking state stays in the manager and is reached through its accessors, so this class holds no transaction map and takes no lock of its own.

Public Types Documentation

enum WitnessValidationResult

Enumerator Value Description
VALID
DRIFT
PENDING A producer dependency (transaction or certificate) has not CRDT-synced yet: retryable, not evidence of invalidity.
INVALID

Public Functions Documentation

function TransactionConsensusHandler

inline TransactionConsensusHandler(
    TransactionManager & owner,
    base::Logger logger
)

Parameters:

  • owner Manager owning this handler; must outlive it.
  • logger Shared with the owner so log lines stay attributed to the node.

function OnConsensusCertificate

outcome::result< ConsensusManager::Check > OnConsensusCertificate(
    const std::string & tx_hash,
    const ConsensusCertificate & certificate
)

Finalizes a transaction once consensus produced a certificate for it, reconstructing the transaction from the certificate when it is not tracked locally.

function HandleNonceConsensusSubject

outcome::result< ConsensusManager::ValidationResult > HandleNonceConsensusSubject(
    const ConsensusManager::Subject & subject
)

Validates a nonce consensus subject: well-formedness, authorization, timestamp, replay protection, type rules and the UTXO witness.

function OnProposalTimeoutCleanup

void OnProposalTimeoutCleanup(
    const std::string & tx_hash
)

Handles proposal timeout cleanup for VERIFYING tracking entries. Local outgoing entries become UNCONFIRMED; remote temporary entries are removed. CONFIRMED entries and missing entries are left untouched.

function BuildUTXOTransitionCommitment

std::optional< UTXOTransitionCommitment > BuildUTXOTransitionCommitment(
    const GeniusTransaction & tx
) const

Builds the consumed/produced Merkle commitment a nonce subject carries.

function EvaluateTransactionReplayProtection

ReplayProtectionResult EvaluateTransactionReplayProtection(
    const GeniusTransaction & tx
) const

Evaluates previous-hash/nonce replay protection for a transaction.

function ValidateWitnessForConsensus

WitnessValidationResult ValidateWitnessForConsensus(
    const ConsensusSubject & subject,
    const GeniusTransaction & tx
) const

Validates the UTXO witness carried by a nonce consensus subject.

function BuildUTXOWitness

std::optional< UTXOWitness > BuildUTXOWitness(
    const GeniusTransaction & tx
) const

Builds the Merkle inclusion proofs backing a transition commitment.

function SnapshotMetrics

inline Metrics SnapshotMetrics() const

Updated on 2026-09-29 at 16:45:08 +0000