@@ -592,66 +592,27 @@ download_serialized_region(URL) ->
592592 Data .
593593
594594
595- -spec find_connected_node_pair ({node (), binary ()}) ->
596- [ node ()] | disjoint_network .
597- find_connected_node_pair (NodeAddrList ) ->
598- AddrMap =
595+ -spec find_connected_node_pair ([ {node (), libp2p_crypto : pubkey_bin ()}] ) ->
596+ { node (), node ()} .
597+ find_connected_node_pair ([{ FirstNode , _ } | NodeAddrList ] ) ->
598+ AddrToNodeMap =
599599 lists :foldl (
600600 fun ({Node , Addr }, Acc ) ->
601601 AddrStr = libp2p_crypto :pubkey_bin_to_p2p (Addr ),
602602 Acc #{AddrStr => Node }
603603 end , #{}, NodeAddrList ),
604- ct :pal (" Node map: ~p " , [AddrMap ]),
605- find_connected_node_pair (maps :next (maps :iterator (AddrMap )), AddrMap , #{}).
606-
607-
608- % NetworkMap - #{ConnectedToNode => [ConnectedFromNode]}
609- -spec find_connected_node_pair (
610- maps :iterator (string (), node ()), #{string () => node ()},
611- #{node () => [node ()]}) -> [node ()] | disjoint_network .
612- find_connected_node_pair (none , _ , NetworkMap ) ->
613- ct :pal (" Final Network Map~n~p " , [NetworkMap ]),
614- disjoint_network ;
615- find_connected_node_pair ({_ , Node , Iter }, AddrToNodeMap , NetworkMap ) ->
616- GossipPeerNodes =
604+ [ConnectedNode | _ ] =
617605 addr_to_node (
618- lists :usort (
619- ct_rpc :call (Node , blockchain_swarm , gossip_peers , [], 500 )),
606+ ct_rpc :call (FirstNode , blockchain_swarm , gossip_peers , [], 500 ),
620607 AddrToNodeMap ),
621- ct :pal (" Node ~p connected to:~n~p " , [Node , GossipPeerNodes ]),
622-
623- % Is Node connected to a node in NetworkMap?
624- case maps :get (Node , NetworkMap , []) of
625- [] ->
626- % Nope, try checking the next node
627- find_connected_node_pair (
628- maps :next (Iter ),
629- AddrToNodeMap ,
630- add_to_network_map (Node , GossipPeerNodes , NetworkMap ));
631- [ConnectedNode | _ ] ->
632- ct :pal (" Found connected pair ~p <-> ~p " , [Node , ConnectedNode ]),
633- [Node , ConnectedNode ]
634- end .
608+ {FirstNode , ConnectedNode }.
635609
636610
637611-spec addr_to_node ([string ()], #{string () => node ()}) -> [node ()].
638612addr_to_node (Addrs , AddrToNodeMap ) ->
639613 [maps :get (Addr , AddrToNodeMap , undefined ) || Addr <- Addrs ].
640614
641615
642- % Remember which nodes a peer node is connected to
643- -spec add_to_network_map (node (), [string ()], #{node () => [node ()]}) ->
644- #{node () => [node ()]}.
645- add_to_network_map (Node , GossipPeerNodes , NetworkMap ) ->
646- lists :foldl (
647- fun (PeerNode , Acc ) ->
648- maps :update_with (PeerNode ,
649- fun (NodeList ) ->
650- [Node | NodeList ]
651- end , [Node ], Acc )
652- end , NetworkMap , GossipPeerNodes ).
653-
654-
655616-spec application_load (node (), [atom ()]) -> ok .
656617application_load (Node , Applications ) ->
657618 lists :foreach (
0 commit comments