Nodes follow different policy rules with various options, allowing them to limit network connections, prioritize transactions they accept in their memory pool, define the storage of the blockchain, and more.
POLICY RULES ESSENTIALS
- Policy rules are configuration options that specify the operation of nodes.
- Each node can use different policy rules and change them freely.
- Nodes can limit their connections with other peers, set the minimum fee rate for transactions they wish to include in the memory pool and propagate across the network, set the memory pool size limit, and more.
Policy vs consensus rules
In a decentralized peer-to-peer network, peers, or nodes, need to follow the same set of validation rules to agree on the same version of a blockchain. This is achieved by enforcing a set of consensus rules that everyone has to follow. Consensus rules, however, do not dictate how peers must communicate within the network.
Consensus rules are determined by the community and need to be followed by every participant on the blockchain network. Policy rules, on the other hand, are a different set of rules that can be changed without requiring a consensus with the community. Each node has the freedom to set its policy rules depending on its preferences, with no consensus among peers necessary, meaning that peers are not obliged to follow the same set of rules.
Additionally, changing policy rules is also up to each individual and can be done whenever someone wishes. Unlike consensus rules, a change in policy rules brings about no risk of illegitimate transactions, corrupt or orphaned blocks, loss of mining rewards or forking of the blockchain.
Even if a transaction is found to be in accordance with every consensus rule, this is still no guarantee that it will be accepted by all nodes. Some nodes may have adjusted their policy rules to accept only transactions of a sufficient size, or with a high-enough fee attached to them, for instance. If a transaction does not meet their criteria, it will be rejected by these nodes.
Some configuration options
Bitcoin Core, the most-used Bitcoin client software, features more than 100 configuration options. Other clients and other cryptocurrencies have their own, largely similar, sets of options for configuring policy rules. On Bitcoin Core, it is possible to specify the maximum number of connections with other participants in the network. Bitcoin full nodes can accept a total of 125 connections. This prevents any one node from being overwhelmed by traffic.
Nodes can also limit the size of their memory pool to avoid being overflowed with new unconfirmed transactions. Once the size limit is reached, low priority transactions are dropped from the pool and a new minimum fee rate is set. Only transactions with fees that meet the new standard are included in the pool.
Another configuration option allows nodes to set a minimum transaction fee rate for unconfirmed transactions. Transactions with fees below the set value are rejected and are not included in the memory pool. Consequently, nodes do not propagate them to the other peers with which they connect.
Running a full node
As with consensus rules, full nodes are also very important when it comes to policy rules. A large number of wallets depend on them to propagate their transactions, so their policy settings are highly relevant.
Full nodes keep a memory pool of unconfirmed transactions, validate them and relay them to mining nodes. All lightweight nodes (this includes most wallets) depend on full nodes to transmit their transactions to miners. Only when a miner includes it in a block and mines that block is the transaction completed.
Exchanges usually run full nodes to validate and propagate their users’ transactions. This is what Bitstamp, the world’s longest-standing exchange, does. Bitstamp is one of the few exchanges that allows you to trade traditional money for cryptocurrencies. Creating a free account at Bitstamp is just a click away.