mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
BIP144: Serialization, hashes, relay (sender side)
Contains refactorings by Eric Lombrozo. Contains fixup by Nicolas Dorier. Contains cleanup of CInv::GetCommand by Alex Morcos
This commit is contained in:
@@ -309,13 +309,29 @@ public:
|
||||
unsigned int nTime;
|
||||
};
|
||||
|
||||
/** getdata message types */
|
||||
const uint32_t MSG_WITNESS_FLAG = 1 << 30;
|
||||
const uint32_t MSG_TYPE_MASK = 0xffffffff >> 2;
|
||||
enum GetDataMsg
|
||||
{
|
||||
UNDEFINED = 0,
|
||||
MSG_TX,
|
||||
MSG_BLOCK,
|
||||
MSG_TYPE_MAX = MSG_BLOCK,
|
||||
// The following can only occur in getdata. Invs always use TX or BLOCK.
|
||||
MSG_FILTERED_BLOCK,
|
||||
MSG_CMPCT_BLOCK,
|
||||
MSG_WITNESS_BLOCK = MSG_BLOCK | MSG_WITNESS_FLAG,
|
||||
MSG_WITNESS_TX = MSG_TX | MSG_WITNESS_FLAG,
|
||||
MSG_FILTERED_WITNESS_BLOCK = MSG_FILTERED_BLOCK | MSG_WITNESS_FLAG,
|
||||
};
|
||||
|
||||
/** inv message data */
|
||||
class CInv
|
||||
{
|
||||
public:
|
||||
CInv();
|
||||
CInv(int typeIn, const uint256& hashIn);
|
||||
CInv(const std::string& strType, const uint256& hashIn);
|
||||
|
||||
ADD_SERIALIZE_METHODS;
|
||||
|
||||
@@ -328,8 +344,7 @@ public:
|
||||
|
||||
friend bool operator<(const CInv& a, const CInv& b);
|
||||
|
||||
bool IsKnownType() const;
|
||||
const char* GetCommand() const;
|
||||
std::string GetCommand() const;
|
||||
std::string ToString() const;
|
||||
|
||||
// TODO: make private (improves encapsulation)
|
||||
@@ -338,13 +353,4 @@ public:
|
||||
uint256 hash;
|
||||
};
|
||||
|
||||
enum {
|
||||
MSG_TX = 1,
|
||||
MSG_BLOCK,
|
||||
// Nodes may always request a MSG_FILTERED_BLOCK/MSG_CMPCT_BLOCK in a getdata, however,
|
||||
// MSG_FILTERED_BLOCK/MSG_CMPCT_BLOCK should not appear in any invs except as a part of getdata.
|
||||
MSG_FILTERED_BLOCK,
|
||||
MSG_CMPCT_BLOCK,
|
||||
};
|
||||
|
||||
#endif // BITCOIN_PROTOCOL_H
|
||||
|
||||
Reference in New Issue
Block a user