// Note that of those which support the service bits prefix, most only support a subset of // possible options. // This is fine at runtime as we'll fall back to using them as a oneshot if they don't support the // service bits we want, but we should get them updated to support all service bits wanted by any // release ASAP to avoid it where possible.
The service bits are a field in the version method which indicate what services a node supports. These services are features that a node supports and tells other nodes which connect to it what it may or may not be able to request from the node. They also indicate what that node can receive.
For example, if a node has the
NODE_SEGWIT service bit set, then when another node connects to it and they see
NODE_SEGWIT, they know that they can send segwit blocks and transactions to that node, and can expect to receive segwit blocks and transactions from that node. If they did not see
NODE_SEGWIT, then they would know to strip segwit blocks and transactions of their witnesses before sending the transaction to that node.