Skip to content

Commit a151e96

Browse files
dnwiebeczarte
andauthored
Breaking change to remove RRID from CORES packages (#740)
* Fixed the AddRouteResultMessage panic problem too * Preemptive review issues * Formatting * example.com -> www.example.com * Formatting * Added some debug logging to track RRI * Formatting * Clippy * Made RRI logs more consistent and increased straggler timeout to 30s * Typo corrections * Interim commit * Tests pass * Unit tests pass * Interim commit: a real mess * Proxy Server tests passing; some cleanup yet to do * Unit tests are all passing * Unit and multinode tests pass * All the tests pass now * Tests passing except one in proxy_client * RRIDs are completely gone; hostnames are mandatory. * MOre review issues * Review issues * Test is passing now, and code is cleaner * Cleaned up some code * More review issues * Formatting * Added packet describers * Error message change. * log messages enhanced of StreamKey --------- Co-authored-by: czarte <[email protected]>
1 parent fb9718e commit a151e96

37 files changed

+3053
-2302
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
**/*.rs.bk
55
.idea/azure/
66
.idea/inspectionProfiles/Project_Default.xml
7+
.idea/copilot.data.migration.*
78

89
### Node
910
node_modules

multinode_integration_tests/tests/connection_termination_test.rs

Lines changed: 28 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) 2019, MASQ (https://masq.ai) and/or its affiliates. All rights reserved.
22

33
use masq_lib::blockchains::chains::Chain;
4+
use masq_lib::constants::HTTP_PORT;
45
use masq_lib::test_utils::utils::TEST_DEFAULT_MULTINODE_CHAIN;
56
use masq_lib::utils::find_free_port;
67
use multinode_integration_tests_lib::masq_mock_node::MASQMockNode;
@@ -86,13 +87,12 @@ fn reported_server_drop() {
8687
let (_, _, lcp) = mock_node
8788
.wait_for_package(&masquerader, Duration::from_secs(2))
8889
.unwrap();
89-
let (stream_key, return_route_id) =
90-
context_from_request_lcp(lcp, real_node.main_cryptde_null().unwrap(), &exit_cryptde);
90+
let stream_key = stream_key_from_request_lcp(lcp, &exit_cryptde);
9191

9292
mock_node
9393
.transmit_package(
9494
mock_node.port_list()[0],
95-
create_server_drop_report(&mock_node, &real_node, stream_key, return_route_id),
95+
create_server_drop_report(&mock_node, &real_node, stream_key),
9696
&masquerader,
9797
real_node.main_public_key(),
9898
real_node.socket_addr(PortSelector::First),
@@ -115,7 +115,7 @@ fn actual_server_drop() {
115115
let server_port = find_free_port();
116116
let mut server = real_node.make_server(server_port);
117117
let masquerader = JsonMasquerader::new();
118-
let (stream_key, return_route_id) = arbitrary_context();
118+
let stream_key = arbitrary_stream_key();
119119
let index: u64 = 0;
120120
request_server_payload(
121121
index,
@@ -125,7 +125,6 @@ fn actual_server_drop() {
125125
&mut server,
126126
&masquerader,
127127
stream_key,
128-
return_route_id,
129128
);
130129
let index: u64 = 1;
131130
request_server_payload(
@@ -136,7 +135,6 @@ fn actual_server_drop() {
136135
&mut server,
137136
&masquerader,
138137
stream_key,
139-
return_route_id,
140138
);
141139

142140
server.shutdown();
@@ -174,7 +172,6 @@ fn request_server_payload(
174172
server: &mut MASQNodeServer,
175173
masquerader: &JsonMasquerader,
176174
stream_key: StreamKey,
177-
return_route_id: u32,
178175
) {
179176
mock_node
180177
.transmit_package(
@@ -184,7 +181,6 @@ fn request_server_payload(
184181
&mock_node,
185182
&real_node,
186183
stream_key,
187-
return_route_id,
188184
&server,
189185
cluster.chain,
190186
),
@@ -212,7 +208,7 @@ fn reported_client_drop() {
212208
let server_port = find_free_port();
213209
let mut server = real_node.make_server(server_port);
214210
let masquerader = JsonMasquerader::new();
215-
let (stream_key, return_route_id) = arbitrary_context();
211+
let stream_key = arbitrary_stream_key();
216212
let index: u64 = 0;
217213
mock_node
218214
.transmit_package(
@@ -222,7 +218,6 @@ fn reported_client_drop() {
222218
&mock_node,
223219
&real_node,
224220
stream_key,
225-
return_route_id,
226221
&server,
227222
cluster.chain,
228223
),
@@ -240,7 +235,7 @@ fn reported_client_drop() {
240235
mock_node
241236
.transmit_package(
242237
mock_node.port_list()[0],
243-
create_client_drop_report(&mock_node, &real_node, stream_key, return_route_id),
238+
create_client_drop_report(&mock_node, &real_node, stream_key),
244239
&masquerader,
245240
real_node.main_public_key(),
246241
real_node.socket_addr(PortSelector::First),
@@ -322,40 +317,32 @@ fn full_neighbor(one: &mut NodeRecord, another: &mut NodeRecord) {
322317
.unwrap();
323318
}
324319

325-
fn context_from_request_lcp(
326-
lcp: LiveCoresPackage,
327-
originating_cryptde: &dyn CryptDE,
328-
exit_cryptde: &dyn CryptDE,
329-
) -> (StreamKey, u32) {
320+
fn stream_key_from_request_lcp(lcp: LiveCoresPackage, exit_cryptde: &dyn CryptDE) -> StreamKey {
330321
let payload = match decodex::<MessageType>(exit_cryptde, &lcp.payload).unwrap() {
331322
MessageType::ClientRequest(vd) => vd
332323
.extract(&node_lib::sub_lib::migrations::client_request_payload::MIGRATIONS)
333324
.unwrap(),
334325
mt => panic!("Unexpected: {:?}", mt),
335326
};
336327
let stream_key = payload.stream_key;
337-
let return_route_id = decodex::<u32>(originating_cryptde, &lcp.route.hops[6]).unwrap();
338-
(stream_key, return_route_id)
328+
stream_key
339329
}
340330

341-
fn arbitrary_context() -> (StreamKey, u32) {
342-
(
343-
StreamKey::make_meaningful_stream_key("arbitrary_context"),
344-
12345678,
345-
)
331+
fn arbitrary_stream_key() -> StreamKey {
332+
StreamKey::make_meaningful_stream_key("arbitrary_context")
346333
}
347334

348335
fn create_request_icp(
349336
index: u64,
350337
originating_node: &MASQMockNode,
351338
exit_node: &MASQRealNode,
352339
stream_key: StreamKey,
353-
return_route_id: u32,
354340
server: &MASQNodeServer,
355341
chain: Chain,
356342
) -> IncipientCoresPackage {
343+
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
357344
IncipientCoresPackage::new(
358-
originating_node.main_cryptde_null().unwrap(),
345+
originating_main_cryptde,
359346
Route::round_trip(
360347
RouteSegment::new(
361348
vec![
@@ -371,9 +358,8 @@ fn create_request_icp(
371358
],
372359
Component::ProxyServer,
373360
),
374-
originating_node.main_cryptde_null().unwrap(),
361+
originating_main_cryptde,
375362
originating_node.consuming_wallet(),
376-
return_route_id,
377363
Some(chain.rec().contract),
378364
)
379365
.unwrap(),
@@ -382,7 +368,7 @@ fn create_request_icp(
382368
&ClientRequestPayload_0v1 {
383369
stream_key,
384370
sequenced_packet: SequencedPacket::new(Vec::from(HTTP_REQUEST), index, false),
385-
target_hostname: Some(format!("{}", server.local_addr().ip())),
371+
target_hostname: format!("{}", server.local_addr().ip()),
386372
target_port: server.local_addr().port(),
387373
protocol: ProxyProtocol::HTTP,
388374
originator_public_key: originating_node.main_public_key().clone(),
@@ -400,8 +386,9 @@ fn create_meaningless_icp(
400386
let socket_addr = SocketAddr::from_str("3.2.1.0:7654").unwrap();
401387
let stream_key =
402388
StreamKey::make_meaningful_stream_key("Chancellor on brink of second bailout for banks");
389+
let main_cryptde = originating_node.main_cryptde_null().unwrap();
403390
IncipientCoresPackage::new(
404-
originating_node.main_cryptde_null().unwrap(),
391+
main_cryptde,
405392
Route::round_trip(
406393
RouteSegment::new(
407394
vec![
@@ -417,9 +404,8 @@ fn create_meaningless_icp(
417404
],
418405
Component::ProxyServer,
419406
),
420-
originating_node.main_cryptde_null().unwrap(),
407+
main_cryptde,
421408
originating_node.consuming_wallet(),
422-
1357,
423409
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
424410
)
425411
.unwrap(),
@@ -428,7 +414,7 @@ fn create_meaningless_icp(
428414
&ClientRequestPayload_0v1 {
429415
stream_key,
430416
sequenced_packet: SequencedPacket::new(Vec::from(HTTP_REQUEST), 0, false),
431-
target_hostname: Some(format!("nowhere.com")),
417+
target_hostname: "nowhere.com".to_string(),
432418
target_port: socket_addr.port(),
433419
protocol: ProxyProtocol::HTTP,
434420
originator_public_key: originating_node.main_public_key().clone(),
@@ -443,8 +429,9 @@ fn create_server_drop_report(
443429
exit_node: &MASQMockNode,
444430
originating_node: &MASQRealNode,
445431
stream_key: StreamKey,
446-
return_route_id: u32,
447432
) -> IncipientCoresPackage {
433+
let exit_main_cryptde = exit_node.main_cryptde_null().unwrap();
434+
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
448435
let mut route = Route::round_trip(
449436
RouteSegment::new(
450437
vec![
@@ -460,15 +447,12 @@ fn create_server_drop_report(
460447
],
461448
Component::ProxyServer,
462449
),
463-
originating_node.main_cryptde_null().unwrap(),
450+
originating_main_cryptde,
464451
originating_node.consuming_wallet(),
465-
return_route_id,
466452
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
467453
)
468454
.unwrap();
469-
route
470-
.shift(originating_node.main_cryptde_null().unwrap())
471-
.unwrap();
455+
route.shift(originating_main_cryptde).unwrap();
472456
let payload = MessageType::ClientResponse(VersionedData::new(
473457
&node_lib::sub_lib::migrations::client_response_payload::MIGRATIONS,
474458
&ClientResponsePayload_0v1 {
@@ -478,7 +462,7 @@ fn create_server_drop_report(
478462
));
479463

480464
IncipientCoresPackage::new(
481-
exit_node.main_cryptde_null().unwrap(),
465+
exit_main_cryptde,
482466
route,
483467
payload,
484468
originating_node.alias_public_key(),
@@ -490,8 +474,8 @@ fn create_client_drop_report(
490474
originating_node: &MASQMockNode,
491475
exit_node: &MASQRealNode,
492476
stream_key: StreamKey,
493-
return_route_id: u32,
494477
) -> IncipientCoresPackage {
478+
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
495479
let route = Route::round_trip(
496480
RouteSegment::new(
497481
vec![
@@ -507,9 +491,8 @@ fn create_client_drop_report(
507491
],
508492
Component::ProxyServer,
509493
),
510-
originating_node.main_cryptde_null().unwrap(),
494+
originating_main_cryptde,
511495
originating_node.consuming_wallet(),
512-
return_route_id,
513496
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
514497
)
515498
.unwrap();
@@ -518,15 +501,15 @@ fn create_client_drop_report(
518501
&ClientRequestPayload_0v1 {
519502
stream_key,
520503
sequenced_packet: SequencedPacket::new(vec![], 1, true),
521-
target_hostname: Some(String::from("doesnt.matter.com")),
522-
target_port: 80,
504+
target_hostname: String::from("doesnt.matter.com"),
505+
target_port: HTTP_PORT,
523506
protocol: ProxyProtocol::HTTP,
524507
originator_public_key: originating_node.main_public_key().clone(),
525508
},
526509
));
527510

528511
IncipientCoresPackage::new(
529-
originating_node.main_cryptde_null().unwrap(),
512+
originating_main_cryptde,
530513
route,
531514
payload,
532515
exit_node.main_public_key(),

multinode_integration_tests/tests/self_test.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use node_lib::sub_lib::dispatcher::Component;
1616
use node_lib::sub_lib::hopper::IncipientCoresPackage;
1717
use node_lib::sub_lib::route::Route;
1818
use node_lib::sub_lib::route::RouteSegment;
19+
use node_lib::sub_lib::stream_key::StreamKey;
1920
use node_lib::test_utils::{make_meaningless_message_type, make_paying_wallet};
2021
use std::collections::HashSet;
2122
use std::io::ErrorKind;
@@ -68,6 +69,7 @@ fn server_relays_cores_package() {
6869
let masquerader = JsonMasquerader::new();
6970
let server = MASQCoresServer::new(cluster.chain);
7071
let cryptde = server.main_cryptde();
72+
let stream_key = StreamKey::make_meaningless_stream_key();
7173
let mut client = MASQCoresClient::new(server.local_addr(), cryptde);
7274
let mut route = Route::one_way(
7375
RouteSegment::new(
@@ -82,7 +84,7 @@ fn server_relays_cores_package() {
8284
let incipient = IncipientCoresPackage::new(
8385
cryptde,
8486
route.clone(),
85-
make_meaningless_message_type(),
87+
make_meaningless_message_type(stream_key),
8688
&cryptde.public_key(),
8789
)
8890
.unwrap();
@@ -99,7 +101,7 @@ fn server_relays_cores_package() {
99101

100102
route.shift(cryptde).unwrap();
101103
assert_eq!(expired.remaining_route, route);
102-
assert_eq!(expired.payload, make_meaningless_message_type());
104+
assert_eq!(expired.payload, make_meaningless_message_type(stream_key));
103105
}
104106

105107
#[test]
@@ -111,6 +113,7 @@ fn one_mock_node_talks_to_another() {
111113
let mock_node_1 = cluster.get_mock_node_by_name("mock_node_1").unwrap();
112114
let mock_node_2 = cluster.get_mock_node_by_name("mock_node_2").unwrap();
113115
let cryptde = CryptDENull::new(TEST_DEFAULT_CHAIN);
116+
let stream_key = StreamKey::make_meaningless_stream_key();
114117
let route = Route::one_way(
115118
RouteSegment::new(
116119
vec![
@@ -127,7 +130,7 @@ fn one_mock_node_talks_to_another() {
127130
let incipient_cores_package = IncipientCoresPackage::new(
128131
&cryptde,
129132
route,
130-
make_meaningless_message_type(),
133+
make_meaningless_message_type(stream_key),
131134
&mock_node_2.main_public_key(),
132135
)
133136
.unwrap();
@@ -156,7 +159,7 @@ fn one_mock_node_talks_to_another() {
156159
assert_eq!(package_to, mock_node_2.socket_addr(PortSelector::First));
157160
assert_eq!(
158161
expired_cores_package.payload,
159-
make_meaningless_message_type()
162+
make_meaningless_message_type(stream_key)
160163
);
161164
}
162165

0 commit comments

Comments
 (0)