MCPcopy Create free account
hub / github.com/ceramicnetwork/rust-ceramic / build

Method build

p2p/tests/node.rs:24–93  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

22 }
23
24 async fn build(self) -> Result<TestRunner> {
25 let rpc_server_addr = Addr::new_mem();
26 let rpc_client_addr = rpc_server_addr.clone();
27 let mut network_config = Config::default_with_rpc(rpc_client_addr.clone());
28
29 // Bind to an open port
30 network_config.libp2p.listening_multiaddrs = vec!["/ip4/0.0.0.0/tcp/0".parse().unwrap()];
31 // Do not bootstrap
32 network_config.libp2p.ceramic_peers = vec![];
33
34 // Using an in memory DB for the tests for realistic benchmark disk DB is needed.
35 let sql_pool = SqlitePool::connect_in_memory().await.unwrap();
36 let peer_svc = Arc::new(ceramic_peer_svc::PeerService::new(sql_pool.clone()));
37 let interest_svc = Arc::new(ceramic_interest_svc::InterestService::new(sql_pool.clone()));
38 let event_svc = Arc::new(
39 ceramic_event_svc::EventService::try_new(
40 sql_pool,
41 ceramic_event_svc::UndeliveredEventReview::Skip,
42 true,
43 vec![],
44 )
45 .await?,
46 );
47
48 let mut registry = prometheus_client::registry::Registry::default();
49 let metrics = Metrics::register(&mut registry);
50 let recon_metrics = recon::Metrics::register(&mut registry);
51 let node_key = NodeKey::random();
52 let peer_id = node_key.peer_id();
53 let mut p2p = Node::new(
54 network_config,
55 rpc_server_addr,
56 node_key.clone(),
57 Arc::clone(&peer_svc),
58 Some((
59 Recon::new(peer_svc, PeerKeyInterests, recon_metrics.clone()),
60 Recon::new(
61 Arc::clone(&event_svc),
62 ReconInterestProvider::new(node_key.id(), interest_svc),
63 recon_metrics.clone(),
64 ),
65 )),
66 event_svc,
67 metrics,
68 )
69 .await?;
70 let cfg = iroh_rpc_client::Config {
71 p2p_addr: Some(rpc_client_addr),
72 channels: Some(1),
73 ..Default::default()
74 };
75
76 let client = iroh_rpc_client::Client::new(cfg).await?;
77
78 let network_events = p2p.network_events();
79 let task = tokio::task::spawn(async move { p2p.run().await.unwrap() });
80
81 let client = client.try_p2p()?;

Callers 12

build_swarmFunction · 0.45
do_tickFunction · 0.45
handle_node_eventMethod · 0.45
handle_rpc_messageMethod · 0.45
pollMethod · 0.45
newMethod · 0.45
test_local_peer_idFunction · 0.45
test_two_nodesFunction · 0.45
test_three_nodesFunction · 0.45
random_peer_keyFunction · 0.45
experimentFunction · 0.45

Calls 10

newFunction · 0.85
get_addr_loopFunction · 0.85
unwrapMethod · 0.80
network_eventsMethod · 0.80
try_p2pMethod · 0.80
cloneMethod · 0.45
peer_idMethod · 0.45
idMethod · 0.45
runMethod · 0.45
contextMethod · 0.45

Tested by

no test coverage detected