Expel ContactInfo::new() (#8245)

automerge
This commit is contained in:
Michael Vines 2020-02-12 13:58:51 -07:00 committed by GitHub
parent dfa6fbaa0c
commit ecb055a252
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 149 additions and 191 deletions

View File

@ -1420,23 +1420,13 @@ impl ClusterInfo {
.unwrap() .unwrap()
} }
fn gossip_contact_info(id: &Pubkey, gossip_addr: SocketAddr) -> ContactInfo { fn gossip_contact_info(id: &Pubkey, gossip: SocketAddr) -> ContactInfo {
let dummy_addr = socketaddr_any!(); ContactInfo {
id: *id,
ContactInfo::new( gossip,
id, wallclock: timestamp(),
gossip_addr, ..ContactInfo::default()
dummy_addr, }
dummy_addr,
dummy_addr,
dummy_addr,
dummy_addr,
dummy_addr,
dummy_addr,
dummy_addr,
dummy_addr,
timestamp(),
)
} }
pub fn spy_contact_info(id: &Pubkey) -> ContactInfo { pub fn spy_contact_info(id: &Pubkey) -> ContactInfo {
@ -1540,20 +1530,21 @@ impl Node {
let retransmit = UdpSocket::bind("0.0.0.0:0").unwrap(); let retransmit = UdpSocket::bind("0.0.0.0:0").unwrap();
let serve_repair = UdpSocket::bind("127.0.0.1:0").unwrap(); let serve_repair = UdpSocket::bind("127.0.0.1:0").unwrap();
let info = ContactInfo::new( let info = ContactInfo {
pubkey, id: *pubkey,
gossip.local_addr().unwrap(), gossip: gossip.local_addr().unwrap(),
tvu.local_addr().unwrap(), tvu: tvu.local_addr().unwrap(),
tvu_forwards.local_addr().unwrap(), tvu_forwards: tvu_forwards.local_addr().unwrap(),
repair.local_addr().unwrap(), repair: repair.local_addr().unwrap(),
empty, tpu: empty,
empty, tpu_forwards: empty,
storage.local_addr().unwrap(), storage_addr: storage.local_addr().unwrap(),
empty, rpc: empty,
empty, rpc_pubsub: empty,
serve_repair.local_addr().unwrap(), serve_repair: serve_repair.local_addr().unwrap(),
timestamp(), wallclock: timestamp(),
); shred_version: 0,
};
Node { Node {
info, info,
@ -1590,20 +1581,21 @@ impl Node {
let retransmit_socket = UdpSocket::bind("0.0.0.0:0").unwrap(); let retransmit_socket = UdpSocket::bind("0.0.0.0:0").unwrap();
let storage = UdpSocket::bind("0.0.0.0:0").unwrap(); let storage = UdpSocket::bind("0.0.0.0:0").unwrap();
let serve_repair = UdpSocket::bind("127.0.0.1:0").unwrap(); let serve_repair = UdpSocket::bind("127.0.0.1:0").unwrap();
let info = ContactInfo::new( let info = ContactInfo {
pubkey, id: *pubkey,
gossip_addr, gossip: gossip_addr,
tvu.local_addr().unwrap(), tvu: tvu.local_addr().unwrap(),
tvu_forwards.local_addr().unwrap(), tvu_forwards: tvu_forwards.local_addr().unwrap(),
repair.local_addr().unwrap(), repair: repair.local_addr().unwrap(),
tpu.local_addr().unwrap(), tpu: tpu.local_addr().unwrap(),
tpu_forwards.local_addr().unwrap(), tpu_forwards: tpu_forwards.local_addr().unwrap(),
storage.local_addr().unwrap(), storage_addr: storage.local_addr().unwrap(),
rpc_addr, rpc: rpc_addr,
rpc_pubsub_addr, rpc_pubsub: rpc_pubsub_addr,
serve_repair.local_addr().unwrap(), serve_repair: serve_repair.local_addr().unwrap(),
timestamp(), wallclock: timestamp(),
); shred_version: 0,
};
Node { Node {
info, info,
sockets: Sockets { sockets: Sockets {
@ -1664,20 +1656,21 @@ impl Node {
let (_, broadcast) = multi_bind_in_range(port_range, 4).expect("broadcast multi_bind"); let (_, broadcast) = multi_bind_in_range(port_range, 4).expect("broadcast multi_bind");
let info = ContactInfo::new( let info = ContactInfo {
pubkey, id: *pubkey,
SocketAddr::new(gossip_addr.ip(), gossip_port), gossip: SocketAddr::new(gossip_addr.ip(), gossip_port),
SocketAddr::new(gossip_addr.ip(), tvu_port), tvu: SocketAddr::new(gossip_addr.ip(), tvu_port),
SocketAddr::new(gossip_addr.ip(), tvu_forwards_port), tvu_forwards: SocketAddr::new(gossip_addr.ip(), tvu_forwards_port),
SocketAddr::new(gossip_addr.ip(), repair_port), repair: SocketAddr::new(gossip_addr.ip(), repair_port),
SocketAddr::new(gossip_addr.ip(), tpu_port), tpu: SocketAddr::new(gossip_addr.ip(), tpu_port),
SocketAddr::new(gossip_addr.ip(), tpu_forwards_port), tpu_forwards: SocketAddr::new(gossip_addr.ip(), tpu_forwards_port),
socketaddr_any!(), storage_addr: socketaddr_any!(),
socketaddr_any!(), rpc: socketaddr_any!(),
socketaddr_any!(), rpc_pubsub: socketaddr_any!(),
SocketAddr::new(gossip_addr.ip(), serve_repair_port), serve_repair: SocketAddr::new(gossip_addr.ip(), serve_repair_port),
0, wallclock: 0,
); shred_version: 0,
};
trace!("new ContactInfo: {:?}", info); trace!("new ContactInfo: {:?}", info);
Node { Node {

View File

@ -95,74 +95,44 @@ impl Default for ContactInfo {
} }
impl ContactInfo { impl ContactInfo {
#[allow(clippy::too_many_arguments)] pub fn new_localhost(id: &Pubkey, now: u64) -> Self {
pub fn new(
id: &Pubkey,
gossip: SocketAddr,
tvu: SocketAddr,
tvu_forwards: SocketAddr,
repair: SocketAddr,
tpu: SocketAddr,
tpu_forwards: SocketAddr,
storage_addr: SocketAddr,
rpc: SocketAddr,
rpc_pubsub: SocketAddr,
serve_repair: SocketAddr,
now: u64,
) -> Self {
Self { Self {
id: *id, id: *id,
gossip, gossip: socketaddr!("127.0.0.1:1234"),
tvu, tvu: socketaddr!("127.0.0.1:1235"),
tvu_forwards, tvu_forwards: socketaddr!("127.0.0.1:1236"),
repair, repair: socketaddr!("127.0.0.1:1237"),
tpu, tpu: socketaddr!("127.0.0.1:1238"),
tpu_forwards, tpu_forwards: socketaddr!("127.0.0.1:1239"),
storage_addr, storage_addr: socketaddr!("127.0.0.1:1240"),
rpc, rpc: socketaddr!("127.0.0.1:1241"),
rpc_pubsub, rpc_pubsub: socketaddr!("127.0.0.1:1242"),
serve_repair, serve_repair: socketaddr!("127.0.0.1:1243"),
wallclock: now, wallclock: now,
shred_version: 0, shred_version: 0,
} }
} }
pub fn new_localhost(id: &Pubkey, now: u64) -> Self {
Self::new(
id,
socketaddr!("127.0.0.1:1234"),
socketaddr!("127.0.0.1:1235"),
socketaddr!("127.0.0.1:1236"),
socketaddr!("127.0.0.1:1237"),
socketaddr!("127.0.0.1:1238"),
socketaddr!("127.0.0.1:1239"),
socketaddr!("127.0.0.1:1240"),
socketaddr!("127.0.0.1:1241"),
socketaddr!("127.0.0.1:1242"),
socketaddr!("127.0.0.1:1243"),
now,
)
}
#[cfg(test)] #[cfg(test)]
/// ContactInfo with multicast addresses for adversarial testing. /// ContactInfo with multicast addresses for adversarial testing.
pub fn new_multicast() -> Self { pub fn new_multicast() -> Self {
let addr = socketaddr!("224.0.1.255:1000"); let addr = socketaddr!("224.0.1.255:1000");
assert!(addr.ip().is_multicast()); assert!(addr.ip().is_multicast());
Self::new( Self {
&Pubkey::new_rand(), id: Pubkey::new_rand(),
addr, gossip: addr,
addr, tvu: addr,
addr, tvu_forwards: addr,
addr, repair: addr,
addr, tpu: addr,
addr, tpu_forwards: addr,
addr, storage_addr: addr,
addr, rpc: addr,
addr, rpc_pubsub: addr,
addr, serve_repair: addr,
0, wallclock: 0,
) shred_version: 0,
}
} }
#[cfg(test)] #[cfg(test)]
@ -173,29 +143,30 @@ impl ContactInfo {
nxt_addr nxt_addr
} }
let tpu_addr = *bind_addr; let tpu = *bind_addr;
let gossip_addr = next_port(&bind_addr, 1); let gossip = next_port(&bind_addr, 1);
let tvu_addr = next_port(&bind_addr, 2); let tvu = next_port(&bind_addr, 2);
let tpu_forwards_addr = next_port(&bind_addr, 3); let tpu_forwards = next_port(&bind_addr, 3);
let tvu_forwards_addr = next_port(&bind_addr, 4); let tvu_forwards = next_port(&bind_addr, 4);
let repair = next_port(&bind_addr, 5); let repair = next_port(&bind_addr, 5);
let rpc_addr = SocketAddr::new(bind_addr.ip(), rpc_port::DEFAULT_RPC_PORT); let rpc = SocketAddr::new(bind_addr.ip(), rpc_port::DEFAULT_RPC_PORT);
let rpc_pubsub_addr = SocketAddr::new(bind_addr.ip(), rpc_port::DEFAULT_RPC_PUBSUB_PORT); let rpc_pubsub = SocketAddr::new(bind_addr.ip(), rpc_port::DEFAULT_RPC_PUBSUB_PORT);
let serve_repair = next_port(&bind_addr, 6); let serve_repair = next_port(&bind_addr, 6);
Self::new( Self {
pubkey, id: *pubkey,
gossip_addr, gossip,
tvu_addr, tvu,
tvu_forwards_addr, tvu_forwards,
repair, repair,
tpu_addr, tpu,
tpu_forwards_addr, tpu_forwards,
"0.0.0.0:0".parse().unwrap(), storage_addr: "0.0.0.0:0".parse().unwrap(),
rpc_addr, rpc,
rpc_pubsub_addr, rpc_pubsub,
serve_repair, serve_repair,
timestamp(), wallclock: timestamp(),
) shred_version: 0,
}
} }
#[cfg(test)] #[cfg(test)]
@ -206,21 +177,12 @@ impl ContactInfo {
// Construct a ContactInfo that's only usable for gossip // Construct a ContactInfo that's only usable for gossip
pub fn new_gossip_entry_point(gossip_addr: &SocketAddr) -> Self { pub fn new_gossip_entry_point(gossip_addr: &SocketAddr) -> Self {
let daddr: SocketAddr = socketaddr!("0.0.0.0:0"); Self {
Self::new( id: Pubkey::default(),
&Pubkey::default(), gossip: *gossip_addr,
*gossip_addr, wallclock: timestamp(),
daddr, ..ContactInfo::default()
daddr, }
daddr,
daddr,
daddr,
daddr,
daddr,
daddr,
daddr,
timestamp(),
)
} }
fn is_valid_ip(addr: IpAddr) -> bool { fn is_valid_ip(addr: IpAddr) -> bool {

View File

@ -498,20 +498,21 @@ mod tests {
let ledger_path = get_tmp_ledger_path!(); let ledger_path = get_tmp_ledger_path!();
{ {
let blockstore = Arc::new(Blockstore::open(&ledger_path).unwrap()); let blockstore = Arc::new(Blockstore::open(&ledger_path).unwrap());
let me = ContactInfo::new( let me = ContactInfo {
&Pubkey::new_rand(), id: Pubkey::new_rand(),
socketaddr!("127.0.0.1:1234"), gossip: socketaddr!("127.0.0.1:1234"),
socketaddr!("127.0.0.1:1235"), tvu: socketaddr!("127.0.0.1:1235"),
socketaddr!("127.0.0.1:1236"), tvu_forwards: socketaddr!("127.0.0.1:1236"),
socketaddr!("127.0.0.1:1237"), repair: socketaddr!("127.0.0.1:1237"),
socketaddr!("127.0.0.1:1238"), tpu: socketaddr!("127.0.0.1:1238"),
socketaddr!("127.0.0.1:1239"), tpu_forwards: socketaddr!("127.0.0.1:1239"),
socketaddr!("127.0.0.1:1240"), storage_addr: socketaddr!("127.0.0.1:1240"),
socketaddr!("127.0.0.1:1241"), rpc: socketaddr!("127.0.0.1:1241"),
socketaddr!("127.0.0.1:1242"), rpc_pubsub: socketaddr!("127.0.0.1:1242"),
socketaddr!("127.0.0.1:1243"), serve_repair: socketaddr!("127.0.0.1:1243"),
0, wallclock: 0,
); shred_version: 0,
};
let rv = ServeRepair::run_window_request( let rv = ServeRepair::run_window_request(
&recycler, &recycler,
&me, &me,
@ -569,20 +570,21 @@ mod tests {
assert_matches!(rv, Err(Error::ClusterInfoError(ClusterInfoError::NoPeers))); assert_matches!(rv, Err(Error::ClusterInfoError(ClusterInfoError::NoPeers)));
let serve_repair_addr = socketaddr!([127, 0, 0, 1], 1243); let serve_repair_addr = socketaddr!([127, 0, 0, 1], 1243);
let nxt = ContactInfo::new( let nxt = ContactInfo {
&Pubkey::new_rand(), id: Pubkey::new_rand(),
socketaddr!([127, 0, 0, 1], 1234), gossip: socketaddr!([127, 0, 0, 1], 1234),
socketaddr!([127, 0, 0, 1], 1235), tvu: socketaddr!([127, 0, 0, 1], 1235),
socketaddr!([127, 0, 0, 1], 1236), tvu_forwards: socketaddr!([127, 0, 0, 1], 1236),
socketaddr!([127, 0, 0, 1], 1237), repair: socketaddr!([127, 0, 0, 1], 1237),
socketaddr!([127, 0, 0, 1], 1238), tpu: socketaddr!([127, 0, 0, 1], 1238),
socketaddr!([127, 0, 0, 1], 1239), tpu_forwards: socketaddr!([127, 0, 0, 1], 1239),
socketaddr!([127, 0, 0, 1], 1240), storage_addr: socketaddr!([127, 0, 0, 1], 1240),
socketaddr!([127, 0, 0, 1], 1241), rpc: socketaddr!([127, 0, 0, 1], 1241),
socketaddr!([127, 0, 0, 1], 1242), rpc_pubsub: socketaddr!([127, 0, 0, 1], 1242),
serve_repair_addr, serve_repair: serve_repair_addr,
0, wallclock: 0,
); shred_version: 0,
};
cluster_info.write().unwrap().insert_info(nxt.clone()); cluster_info.write().unwrap().insert_info(nxt.clone());
let rv = serve_repair let rv = serve_repair
.repair_request(&RepairType::Shred(0, 0)) .repair_request(&RepairType::Shred(0, 0))
@ -591,20 +593,21 @@ mod tests {
assert_eq!(rv.0, nxt.serve_repair); assert_eq!(rv.0, nxt.serve_repair);
let serve_repair_addr2 = socketaddr!([127, 0, 0, 2], 1243); let serve_repair_addr2 = socketaddr!([127, 0, 0, 2], 1243);
let nxt = ContactInfo::new( let nxt = ContactInfo {
&Pubkey::new_rand(), id: Pubkey::new_rand(),
socketaddr!([127, 0, 0, 1], 1234), gossip: socketaddr!([127, 0, 0, 1], 1234),
socketaddr!([127, 0, 0, 1], 1235), tvu: socketaddr!([127, 0, 0, 1], 1235),
socketaddr!([127, 0, 0, 1], 1236), tvu_forwards: socketaddr!([127, 0, 0, 1], 1236),
socketaddr!([127, 0, 0, 1], 1237), repair: socketaddr!([127, 0, 0, 1], 1237),
socketaddr!([127, 0, 0, 1], 1238), tpu: socketaddr!([127, 0, 0, 1], 1238),
socketaddr!([127, 0, 0, 1], 1239), tpu_forwards: socketaddr!([127, 0, 0, 1], 1239),
socketaddr!([127, 0, 0, 1], 1240), storage_addr: socketaddr!([127, 0, 0, 1], 1240),
socketaddr!([127, 0, 0, 1], 1241), rpc: socketaddr!([127, 0, 0, 1], 1241),
socketaddr!([127, 0, 0, 1], 1242), rpc_pubsub: socketaddr!([127, 0, 0, 1], 1242),
serve_repair_addr2, serve_repair: serve_repair_addr2,
0, wallclock: 0,
); shred_version: 0,
};
cluster_info.write().unwrap().insert_info(nxt); cluster_info.write().unwrap().insert_info(nxt);
let mut one = false; let mut one = false;
let mut two = false; let mut two = false;