Monero
Toggle main menu visibility
Loading...
Searching...
No Matches
src
cryptonote_basic
verification_context.h
Go to the documentation of this file.
1
// Copyright (c) 2014-2022, The Monero Project
2
//
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without modification, are
6
// permitted provided that the following conditions are met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice, this list of
9
// conditions and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
12
// of conditions and the following disclaimer in the documentation and/or other
13
// materials provided with the distribution.
14
//
15
// 3. Neither the name of the copyright holder nor the names of its contributors may be
16
// used to endorse or promote products derived from this software without specific
17
// prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
//
29
// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
30
31
#pragma once
32
33
#include "
cryptonote_protocol/enums.h
"
34
35
namespace
cryptonote
36
{
37
/************************************************************************/
38
/* */
39
/************************************************************************/
40
struct
tx_verification_context
41
{
42
static_assert
(unsigned(
relay_method::none
) == 0,
"default m_relay initialization is not to relay_method::none"
);
43
44
relay_method
m_relay
;
// gives indication on how tx should be relayed (if at all)
45
bool
m_verifivation_failed
;
//bad tx, tx should not enter mempool and connection should be dropped unless m_no_drop_offense
46
// Do not add to mempool, do not relay, but also do not punish the peer for sending or drop
47
// connections to them. Used for low fees, tx_extra too big, "relay-only rules". Not to be
48
// confused with breaking soft fork rules, because tx could be later added to the chain if mined
49
// because it does not violate consensus rules.
50
bool
m_no_drop_offense
;
51
bool
m_verifivation_impossible
;
//the transaction is related with an alternative blockchain
52
bool
m_added_to_pool
;
53
bool
m_low_mixin
;
54
bool
m_double_spend
;
55
bool
m_invalid_input
;
56
bool
m_invalid_output
;
57
bool
m_too_big
;
58
bool
m_overspend
;
59
bool
m_fee_too_low
;
60
bool
m_too_few_outputs
;
61
bool
m_tx_extra_too_big
;
62
bool
m_nonzero_unlock_time
;
63
};
64
65
struct
block_verification_context
66
{
67
bool
m_added_to_main_chain
;
68
bool
m_verifivation_failed
;
//bad block, should drop connection
69
bool
m_marked_as_orphaned
;
70
bool
m_already_exists
;
71
bool
m_partial_block_reward
;
72
bool
m_bad_pow
;
// if bad pow, ban peer outright for DoS protection
73
bool
m_missing_txs
;
// set if, during verif, we don't have all the necessary txs available
74
};
75
}
cryptonote
Holds cryptonote related classes and helpers.
Definition
blockchain_db.cpp:45
cryptonote::relay_method
relay_method
Methods tracking how a tx was received and relayed.
Definition
enums.h:37
cryptonote::relay_method::none
@ none
Received via RPC with do_not_relay set.
Definition
enums.h:38
enums.h
cryptonote::block_verification_context
Definition
verification_context.h:66
cryptonote::block_verification_context::m_verifivation_failed
bool m_verifivation_failed
Definition
verification_context.h:68
cryptonote::block_verification_context::m_bad_pow
bool m_bad_pow
Definition
verification_context.h:72
cryptonote::block_verification_context::m_added_to_main_chain
bool m_added_to_main_chain
Definition
verification_context.h:67
cryptonote::block_verification_context::m_already_exists
bool m_already_exists
Definition
verification_context.h:70
cryptonote::block_verification_context::m_marked_as_orphaned
bool m_marked_as_orphaned
Definition
verification_context.h:69
cryptonote::block_verification_context::m_missing_txs
bool m_missing_txs
Definition
verification_context.h:73
cryptonote::block_verification_context::m_partial_block_reward
bool m_partial_block_reward
Definition
verification_context.h:71
cryptonote::tx_verification_context
Definition
verification_context.h:41
cryptonote::tx_verification_context::m_invalid_output
bool m_invalid_output
Definition
verification_context.h:56
cryptonote::tx_verification_context::m_fee_too_low
bool m_fee_too_low
Definition
verification_context.h:59
cryptonote::tx_verification_context::m_invalid_input
bool m_invalid_input
Definition
verification_context.h:55
cryptonote::tx_verification_context::m_too_big
bool m_too_big
Definition
verification_context.h:57
cryptonote::tx_verification_context::m_too_few_outputs
bool m_too_few_outputs
Definition
verification_context.h:60
cryptonote::tx_verification_context::m_low_mixin
bool m_low_mixin
Definition
verification_context.h:53
cryptonote::tx_verification_context::m_verifivation_impossible
bool m_verifivation_impossible
Definition
verification_context.h:51
cryptonote::tx_verification_context::m_overspend
bool m_overspend
Definition
verification_context.h:58
cryptonote::tx_verification_context::m_nonzero_unlock_time
bool m_nonzero_unlock_time
Definition
verification_context.h:62
cryptonote::tx_verification_context::m_double_spend
bool m_double_spend
Definition
verification_context.h:54
cryptonote::tx_verification_context::m_relay
relay_method m_relay
Definition
verification_context.h:44
cryptonote::tx_verification_context::m_tx_extra_too_big
bool m_tx_extra_too_big
Definition
verification_context.h:61
cryptonote::tx_verification_context::m_no_drop_offense
bool m_no_drop_offense
Definition
verification_context.h:50
cryptonote::tx_verification_context::m_verifivation_failed
bool m_verifivation_failed
Definition
verification_context.h:45
cryptonote::tx_verification_context::m_added_to_pool
bool m_added_to_pool
Definition
verification_context.h:52
Generated on
for Monero by
1.17.0