Changeset View
Changeset View
Standalone View
Standalone View
src/protocol.h
Show First 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | |||||
const std::vector<std::string> &getAllNetMessageTypes(); | const std::vector<std::string> &getAllNetMessageTypes(); | ||||
/** | /** | ||||
* nServices flags. | * nServices flags. | ||||
*/ | */ | ||||
enum ServiceFlags : uint64_t { | enum ServiceFlags : uint64_t { | ||||
// Nothing | // Nothing | ||||
NODE_NONE = 0, | NODE_NONE = 0, | ||||
// NODE_NETWORK means that the node is capable of serving the block chain. | // NODE_NETWORK means that the node is capable of serving the complete block | ||||
// It is currently set by all Bitcoin ABC nodes, and is unset by SPV clients | // chain. It is currently set by all Bitcoin ABC non pruned nodes, and is | ||||
// or other peers that just want network services but don't provide them. | // unset by SPV clients or other light clients. | ||||
NODE_NETWORK = (1 << 0), | NODE_NETWORK = (1 << 0), | ||||
// NODE_GETUTXO means the node is capable of responding to the getutxo | // NODE_GETUTXO means the node is capable of responding to the getutxo | ||||
// protocol request. Bitcoin ABC does not support this but a patch set | // protocol request. Bitcoin ABC does not support this but a patch set | ||||
// called Bitcoin XT does. See BIP 64 for details on how this is | // called Bitcoin XT does. See BIP 64 for details on how this is | ||||
// implemented. | // implemented. | ||||
NODE_GETUTXO = (1 << 1), | NODE_GETUTXO = (1 << 1), | ||||
// NODE_BLOOM means the node is capable and willing to handle bloom-filtered | // NODE_BLOOM means the node is capable and willing to handle bloom-filtered | ||||
// connections. Bitcoin ABC nodes used to support this by default, without | // connections. Bitcoin ABC nodes used to support this by default, without | ||||
// advertising this bit, but no longer do as of protocol version 70011 (= | // advertising this bit, but no longer do as of protocol version 70011 (= | ||||
// NO_BLOOM_VERSION) | // NO_BLOOM_VERSION) | ||||
NODE_BLOOM = (1 << 2), | NODE_BLOOM = (1 << 2), | ||||
// NODE_XTHIN means the node supports Xtreme Thinblocks. If this is turned | // NODE_XTHIN means the node supports Xtreme Thinblocks. If this is turned | ||||
// off then the node will not service nor make xthin requests. | // off then the node will not service nor make xthin requests. | ||||
NODE_XTHIN = (1 << 4), | NODE_XTHIN = (1 << 4), | ||||
// NODE_BITCOIN_CASH means the node supports Bitcoin Cash and the | // NODE_BITCOIN_CASH means the node supports Bitcoin Cash and the | ||||
// associated consensus rule changes. | // associated consensus rule changes. | ||||
// This service bit is intended to be used prior until some time after the | // This service bit is intended to be used prior until some time after the | ||||
// UAHF activation when the Bitcoin Cash network has adequately separated. | // UAHF activation when the Bitcoin Cash network has adequately separated. | ||||
// TODO: remove (free up) the NODE_BITCOIN_CASH service bit once no longer | // TODO: remove (free up) the NODE_BITCOIN_CASH service bit once no longer | ||||
// needed. | // needed. | ||||
NODE_BITCOIN_CASH = (1 << 5), | NODE_BITCOIN_CASH = (1 << 5), | ||||
// NODE_NETWORK_LIMITED means the same as NODE_NETWORK with the limitation | |||||
// of only serving the last 288 (2 day) blocks | |||||
// See BIP159 for details on how this is implemented. | |||||
NODE_NETWORK_LIMITED = (1 << 10), | |||||
// Bits 24-31 are reserved for temporary experiments. Just pick a bit that | // Bits 24-31 are reserved for temporary experiments. Just pick a bit that | ||||
// isn't getting used, or one not being used much, and notify the | // isn't getting used, or one not being used much, and notify the | ||||
// bitcoin-development mailing list. Remember that service bits are just | // bitcoin-development mailing list. Remember that service bits are just | ||||
// unauthenticated advertisements, so your code must be robust against | // unauthenticated advertisements, so your code must be robust against | ||||
// collisions and other cases where nodes may be advertising a service they | // collisions and other cases where nodes may be advertising a service they | ||||
// do not actually support. Other service bits should be allocated via the | // do not actually support. Other service bits should be allocated via the | ||||
// BIP process. | // BIP process. | ||||
▲ Show 20 Lines • Show All 148 Lines • Show Last 20 Lines |