比特币源码学习笔记

比特币源码阅读(区块-CBlockHeader)

2018-07-26  本文已影响0人  坠叶飘香
Block Headers

源码:
src/primitives/block.h

class CBlockHeader
{
public:
    // header
    int32_t nVersion;
    uint256 hashPrevBlock; //前一个区块的hash
    uint256 hashMerkleRoot;
    uint32_t nTime;
    uint32_t nBits; //难度值
    uint32_t nNonce; //随机数

    CBlockHeader()
    {
        SetNull();
    }

    ADD_SERIALIZE_METHODS;

    template <typename Stream, typename Operation>
    inline void SerializationOp(Stream& s, Operation ser_action) {
        READWRITE(this->nVersion);
        READWRITE(hashPrevBlock);
        READWRITE(hashMerkleRoot);
        READWRITE(nTime);
        READWRITE(nBits);
        READWRITE(nNonce);
    }

    void SetNull()
    {
        nVersion = 0;
        hashPrevBlock.SetNull();
        hashMerkleRoot.SetNull();
        nTime = 0;
        nBits = 0;
        nNonce = 0;
    }

    bool IsNull() const
    {
        return (nBits == 0);
    }

    uint256 GetHash() const;

    int64_t GetBlockTime() const
    {
        return (int64_t)nTime;
    }
};
上一篇下一篇

猜你喜欢

热点阅读