RealPath:
WebPath:
2017/02/12 02:24 (JST) 更新
トランザクション >>

トランザクションの構造

Contents

クラス

/** The basic transaction that is broadcasted on the network and contained in
 * blocks.  A transaction can contain multiple inputs and outputs.
 */
class CTransaction
{
public:
    // 固有データ
    const int32_t             nVersion;  // バージョン番号
    const std::vector<CTxIn>  vin;       // トランザクションインプット
    const std::vector<CTxOut> vout;      // トランザクションアウトプット
    const uint32_t            nLockTime; // トランザクション発生時のブロック高 (日時ではないことに注意)

private:
    // 動的計算
    const uint256             hash;      // トランザクションのハッシュ
};

ローカルで発生したトランザクションの場合、nVersion は必ず CTransaction::CURRENT_VERSION (現在は 2) になる。

定数

class CTransaction
{
public:
    // Default transaction version.
    static const int32_t CURRENT_VERSION=2;

    // Changing the default transaction version requires a two step process: first
    // adapting relay policy by bumping MAX_STANDARD_VERSION, and then later date
    // bumping the default CURRENT_VERSION at which point both CURRENT_VERSION and
    // MAX_STANDARD_VERSION will be equal.
    static const int32_t MAX_STANDARD_VERSION=2;
};

状態変更可能なトランザクション (途中計算用)

struct CMutableTransaction
{
    int32_t             nVersion;
    std::vector<CTxIn>  vin;
    std::vector<CTxOut> vout;
    uint32_t            nLockTime;
};

未検証トランザクションプール

※グローバル変数

validation.cpp, validation.h
CTxMemPool mempool(::minRelayTxFee);