banlist.dat
was introduced in #6310, storing nodes that were automatically banned (due to exceeding the misbehavior threshold) and manually banned (through the setban
RPC).
Automatic bans were removed in #19219 and replaced with a discouragement filter. That filter is not saved to disk/persisted over shutdown/startup. The banlist.dat
therefore now only contains addresses that have been banned through the setban
rpc.
Since #15935, we have a specific file for configuration that is updated through the RPC and persisted over shutdown/startup, namely settings.json
. We should therefore move the manual ban configuration from banlist.dat
to settings.json
. Doing so has a couple of benefits:
settings.json
is human readable and easily analyzable by any json parser.- we wouldn’t need to maintain custom [de]serialization code for the
banlist.dat
file.
banlist.dat
is expected to be fairly small and infrequently updated, so disk space/performance are not huge concerns.