diff --git a/src/avalanche/test/processor_tests.cpp b/src/avalanche/test/processor_tests.cpp --- a/src/avalanche/test/processor_tests.cpp +++ b/src/avalanche/test/processor_tests.cpp @@ -138,10 +138,6 @@ *m_node.addrman); m_connman = connman.get(); m_node.connman = std::move(connman); - m_node.peerman = ::PeerManager::make( - *m_connman, *m_node.addrman, m_node.banman.get(), *m_node.chainman, - *m_node.mempool, false); - m_node.chain = interfaces::MakeChain(m_node, config.GetChainParams()); // Get the processor ready. setArg("-avaminquorumstake", "0"); @@ -154,6 +150,11 @@ *Assert(m_node.chainman), m_node.mempool.get(), *m_node.scheduler, error); BOOST_CHECK(m_processor); + + m_node.peerman = ::PeerManager::make( + *m_connman, *m_node.addrman, m_node.banman.get(), *m_node.chainman, + *m_node.mempool, false); + m_node.chain = interfaces::MakeChain(m_node, config.GetChainParams()); } ~AvalancheTestingSetup() { diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -2520,17 +2520,7 @@ ChainstateManager &chainman = *Assert(node.chainman); - assert(!node.peerman); - node.peerman = PeerManager::make( - *node.connman, *node.addrman, node.banman.get(), chainman, - *node.mempool, args.GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY)); - RegisterValidationInterface(node.peerman.get()); - - // Encoded addresses using cashaddr instead of base58. - // We do this by default to avoid confusion with BTC addresses. - config.SetCashAddrEncoding(args.GetBoolArg("-usecashaddr", true)); - - // Step 7.5 (I guess ?): Initialize Avalanche. + // Initialize Avalanche. bilingual_str avalancheError; g_avalanche = avalanche::Processor::MakeProcessor( args, *node.chain, node.connman.get(), chainman, node.mempool.get(), @@ -2545,6 +2535,16 @@ nLocalServices = ServiceFlags(nLocalServices | NODE_AVALANCHE); } + assert(!node.peerman); + node.peerman = PeerManager::make( + *node.connman, *node.addrman, node.banman.get(), chainman, + *node.mempool, args.GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY)); + RegisterValidationInterface(node.peerman.get()); + + // Encoded addresses using cashaddr instead of base58. + // We do this by default to avoid confusion with BTC addresses. + config.SetCashAddrEncoding(args.GetBoolArg("-usecashaddr", true)); + // Step 8: load indexers if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX)) { auto result{ @@ -2905,13 +2905,13 @@ }, DUMP_BANS_INTERVAL); + // Start Avalanche's event loop. + g_avalanche->startEventLoop(*node.scheduler); + if (node.peerman) { node.peerman->StartScheduledTasks(*node.scheduler); } - // Start Avalanche's event loop. - g_avalanche->startEventLoop(*node.scheduler); - #if HAVE_SYSTEM StartupNotify(args); #endif