• Pieter Wuille's avatar
    Introduce whitelisted peers. · dc942e6f
    Pieter Wuille authored
    This adds a -whitelist option to specify subnet ranges from which peers
    that connect are whitelisted. In addition, there is a -whitebind option
    which works like -bind, except peers connecting to it are also
    whitelisted (allowing a separate listen port for trusted connections).
    
    Being whitelisted has two effects (for now):
    * They are immune to DoS disconnection/banning.
    * Transactions they broadcast (which are valid) are always relayed,
      even if they were already in the mempool. This means that a node
      can function as a gateway for a local network, and that rebroadcasts
      from the local network will work as expected.
    
    Whitelisting replaces the magic exemption localhost had for DoS
    disconnection (local addresses are still never banned, though), which
    implied hidden service connects (from a localhost Tor node) were
    incorrectly immune to DoS disconnection as well. This old
    behaviour is removed for that reason, but can be restored using
    -whitelist=127.0.0.1 or -whitelist=::1 can be specified. -whitebind
    is safer to use in case non-trusted localhost connections are expected
    (like hidden services).
    dc942e6f
init.cpp 55 KB