message: test: check anchors.dat when node starts for the first time
diff: # Copyright (c) 2020 The Bitcoin Core developers
  # Distributed under the MIT software license, see the accompanying
  # file COPYING or http://www.opensource.org/licenses/mit-license.php.
  -"""Test Anchors functionality"""
  +"""Test block-relay-only anchors functionality"""
  import os
  @@ -10,6 +10,9 @@ from test_framework.p2p import P2PInterface
  from test_framework.test_framework import BitcoinTestFramework
  from test_framework.util import assert_equal
  +INBOUND_CONNECTIONS = 5
  +BLOCK_RELAY_CONNECTIONS = 2
  +
  def check_node_connections(*, node, num_in, num_out):
  info = node.getnetworkinfo()
  @@ -25,19 +28,26 @@ class AnchorsTest(BitcoinTestFramework):
  self.setup_nodes()
  def run_test(self):
  - self.log.info("Add 2 block-relay-only connections to node 0")
  - for i in range(2):
  + node_anchors_path = os.path.join(
  + self.nodes[0].datadir, "regtest", "anchors.dat"
  + )
  +
  + self.log.info("When node starts, check if anchors.dat doesn't exist")
  + assert not os.path.exists(node_anchors_path)
  +
  + self.log.info(f"Add {BLOCK_RELAY_CONNECTIONS} block-relay-only connections to node")
  + for i in range(BLOCK_RELAY_CONNECTIONS):
  self.log.debug(f"block-relay-only: {i}")
  self.nodes[0].add_outbound_p2p_connection(
  P2PInterface(), p2p_idx=i, connection_type="block-relay-only"
  )
  - self.log.info("Add 5 inbound connections to node 0")
  - for i in range(5):
  + self.log.info(f"Add {INBOUND_CONNECTIONS} inbound connections to node")
  + for i in range(INBOUND_CONNECTIONS):
  self.log.debug(f"inbound: {i}")
  self.nodes[0].add_p2p_connection(P2PInterface())
  - self.log.info("Check node 0 connections")
  + self.log.info("Check node connections")
  check_node_connections(node=self.nodes[0], num_in=5, num_out=2)
  # 127.0.0.1
  @@ -57,14 +67,10 @@ class AnchorsTest(BitcoinTestFramework):
  self.log.info("Stop node 0")
  self.stop_node(0)
  - node0_anchors_path = os.path.join(
  - self.nodes[0].datadir, "regtest", "anchors.dat"
  - )
  -
  # It should contain only the block-relay-only addresses
  self.log.info("Check the addresses in anchors.dat")
  - with open(node0_anchors_path, "rb") as file_handler:
  + with open(node_anchors_path, "rb") as file_handler:
  anchors = file_handler.read().hex()
  for port in block_relay_nodes_port:
  @@ -74,11 +80,11 @@ class AnchorsTest(BitcoinTestFramework):
  ip_port = ip + port
  assert ip_port not in anchors
  - self.log.info("Start node 0")
  + self.log.info("Start node")
  self.start_node(0)
  self.log.info("When node starts, check if anchors.dat doesn't exist anymore")
  - assert not os.path.exists(node0_anchors_path)
  + assert not os.path.exists(node_anchors_path)
  if __name__ == "__main__":
  