|
|
@ -180,11 +180,11 @@ void RegisterNodeSignals(CNodeSignals& nodeSignals); |
|
|
|
/** Unregister a network node */ |
|
|
|
void UnregisterNodeSignals(CNodeSignals& nodeSignals); |
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Process an incoming block. This only returns after the best known valid |
|
|
|
* block is made active. Note that it does not, however, guarantee that the |
|
|
|
* specific block passed to it has been checked for validity! |
|
|
|
* |
|
|
|
* |
|
|
|
* @param[out] state This may be set to an Error state if any error occurred processing it, including during validation/connection/etc of otherwise unrelated blocks during reorganisation; or it may be set to an Invalid state if pblock is itself invalid (but this is not guaranteed even when the block is checked). If you want to *possibly* get feedback on whether pblock is valid, you must also install a CValidationInterface (see validationinterface.h) - this will have its BlockChecked method called whenever *any* block completes validation. |
|
|
|
* @param[in] pfrom The node which we are receiving the block from; it is added to mapBlockSource and may be penalised if the block is invalid. |
|
|
|
* @param[in] pblock The block we want to process. |
|
|
@ -269,6 +269,7 @@ void PruneAndFlush(); |
|
|
|
bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransaction &tx, bool fLimitFree, |
|
|
|
bool* pfMissingInputs, bool fRejectAbsurdFee=false); |
|
|
|
|
|
|
|
int32_t pubkey2address(char *destaddr,uint8_t *pubkey33); |
|
|
|
|
|
|
|
struct CNodeStateStats { |
|
|
|
int nMisbehavior; |
|
|
@ -640,7 +641,7 @@ CAmount GetMinRelayFee(const CTransaction& tx, unsigned int nBytes, bool fAllowF |
|
|
|
/**
|
|
|
|
* Check transaction inputs, and make sure any |
|
|
|
* pay-to-script-hash transactions are evaluating IsStandard scripts |
|
|
|
* |
|
|
|
* |
|
|
|
* Why bother? To avoid denial-of-service attacks; an attacker |
|
|
|
* can submit a standard HASH... OP_EQUAL transaction, |
|
|
|
* which will get accepted into blocks. The redemption |
|
|
@ -649,14 +650,14 @@ CAmount GetMinRelayFee(const CTransaction& tx, unsigned int nBytes, bool fAllowF |
|
|
|
* DUP CHECKSIG DROP ... repeated 100 times... OP_1 |
|
|
|
*/ |
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Check for standard transaction types |
|
|
|
* @param[in] mapInputs Map of previous transactions that have outputs we're spending |
|
|
|
* @return True if all inputs (scriptSigs) use only standard transaction forms |
|
|
|
*/ |
|
|
|
bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs, uint32_t consensusBranchId); |
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Count ECDSA signature operations the old-fashioned (pre-0.6) way |
|
|
|
* @return number of sigops this transaction's outputs will produce when spent |
|
|
|
* @see CTransaction::FetchInputs |
|
|
@ -665,7 +666,7 @@ unsigned int GetLegacySigOpCount(const CTransaction& tx); |
|
|
|
|
|
|
|
/**
|
|
|
|
* Count ECDSA signature operations in pay-to-script-hash inputs. |
|
|
|
* |
|
|
|
* |
|
|
|
* @param[in] mapInputs Map of previous transactions that have outputs we're spending |
|
|
|
* @return maximum number of sigops required to validate this transaction's inputs |
|
|
|
* @see CTransaction::FetchInputs |
|
|
@ -732,9 +733,9 @@ bool IsExpiredTx(const CTransaction &tx, int nBlockHeight); |
|
|
|
*/ |
|
|
|
bool CheckFinalTx(const CTransaction &tx, int flags = -1); |
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Closure representing one script verification |
|
|
|
* Note that this stores references to the spending transaction |
|
|
|
* Note that this stores references to the spending transaction |
|
|
|
*/ |
|
|
|
class CScriptCheck |
|
|
|
{ |
|
|
|