[#ServiceFlags]
= ServiceFlags
:mrdocs:

nServices flags

== Synopsis

Declared in `&lt;protocol&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
enum ServiceFlags : uint64&lowbar;t;
----

== Members

[cols="1,4"]
|===
| Name| Description
| `NODE&lowbar;NONE` 
| No services advertised&period;
| `NODE&lowbar;NETWORK` 
| Node can serve the complete block chain&period;
| `NODE&lowbar;BLOOM` 
| Node can handle bloom&hyphen;filtered connections&period;
| `NODE&lowbar;WITNESS` 
| Node can serve blocks and transactions including witness data&period;
| `NODE&lowbar;COMPACT&lowbar;FILTERS` 
| Node services basic block filter requests (BIP157&sol;BIP158)&period;
| `NODE&lowbar;NETWORK&lowbar;LIMITED` 
| Node serves only the most recent 288 blocks (BIP159)&period;
| `NODE&lowbar;P2P&lowbar;V2` 
| Node supports the BIP324 v2 transport&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:SeedsAssumedServiceFlags.adoc[`SeedsAssumedServiceFlags`]
| Service flags we assume for addresses obtained from the DNS seeds and the fixed seeds, which don&apos;t come with service flags attached&period; BIP324 support can be safely assumed because the vast majority of listening nodes signals NODE&lowbar;P2P&lowbar;V2, and if the assumption is wrong for a given peer we simply reconnect using v1 transport&period;
| xref:SeedsServiceFlags.adoc[`SeedsServiceFlags`]
| State independent service flags&period; If the return value is changed, contrib&sol;seeds&sol;makeseeds&period;py should be updated appropriately to filter for nodes with desired service flags (compatible with our new flags)&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
