Skip to content

Commit 820eeb5

Browse files
committed
Revert "Breaking change to remove RRID from CORES packages (#740)"
This reverts commit a151e96.
1 parent a151e96 commit 820eeb5

37 files changed

+2292
-3043
lines changed

.gitignore

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

98
### Node
109
node_modules

multinode_integration_tests/tests/connection_termination_test.rs

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
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;
54
use masq_lib::test_utils::utils::TEST_DEFAULT_MULTINODE_CHAIN;
65
use masq_lib::utils::find_free_port;
76
use multinode_integration_tests_lib::masq_mock_node::MASQMockNode;
@@ -87,12 +86,13 @@ fn reported_server_drop() {
8786
let (_, _, lcp) = mock_node
8887
.wait_for_package(&masquerader, Duration::from_secs(2))
8988
.unwrap();
90-
let stream_key = stream_key_from_request_lcp(lcp, &exit_cryptde);
89+
let (stream_key, return_route_id) =
90+
context_from_request_lcp(lcp, real_node.main_cryptde_null().unwrap(), &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),
95+
create_server_drop_report(&mock_node, &real_node, stream_key, return_route_id),
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 = arbitrary_stream_key();
118+
let (stream_key, return_route_id) = arbitrary_context();
119119
let index: u64 = 0;
120120
request_server_payload(
121121
index,
@@ -125,6 +125,7 @@ fn actual_server_drop() {
125125
&mut server,
126126
&masquerader,
127127
stream_key,
128+
return_route_id,
128129
);
129130
let index: u64 = 1;
130131
request_server_payload(
@@ -135,6 +136,7 @@ fn actual_server_drop() {
135136
&mut server,
136137
&masquerader,
137138
stream_key,
139+
return_route_id,
138140
);
139141

140142
server.shutdown();
@@ -172,6 +174,7 @@ fn request_server_payload(
172174
server: &mut MASQNodeServer,
173175
masquerader: &JsonMasquerader,
174176
stream_key: StreamKey,
177+
return_route_id: u32,
175178
) {
176179
mock_node
177180
.transmit_package(
@@ -181,6 +184,7 @@ fn request_server_payload(
181184
&mock_node,
182185
&real_node,
183186
stream_key,
187+
return_route_id,
184188
&server,
185189
cluster.chain,
186190
),
@@ -208,7 +212,7 @@ fn reported_client_drop() {
208212
let server_port = find_free_port();
209213
let mut server = real_node.make_server(server_port);
210214
let masquerader = JsonMasquerader::new();
211-
let stream_key = arbitrary_stream_key();
215+
let (stream_key, return_route_id) = arbitrary_context();
212216
let index: u64 = 0;
213217
mock_node
214218
.transmit_package(
@@ -218,6 +222,7 @@ fn reported_client_drop() {
218222
&mock_node,
219223
&real_node,
220224
stream_key,
225+
return_route_id,
221226
&server,
222227
cluster.chain,
223228
),
@@ -235,7 +240,7 @@ fn reported_client_drop() {
235240
mock_node
236241
.transmit_package(
237242
mock_node.port_list()[0],
238-
create_client_drop_report(&mock_node, &real_node, stream_key),
243+
create_client_drop_report(&mock_node, &real_node, stream_key, return_route_id),
239244
&masquerader,
240245
real_node.main_public_key(),
241246
real_node.socket_addr(PortSelector::First),
@@ -317,32 +322,40 @@ fn full_neighbor(one: &mut NodeRecord, another: &mut NodeRecord) {
317322
.unwrap();
318323
}
319324

320-
fn stream_key_from_request_lcp(lcp: LiveCoresPackage, exit_cryptde: &dyn CryptDE) -> StreamKey {
325+
fn context_from_request_lcp(
326+
lcp: LiveCoresPackage,
327+
originating_cryptde: &dyn CryptDE,
328+
exit_cryptde: &dyn CryptDE,
329+
) -> (StreamKey, u32) {
321330
let payload = match decodex::<MessageType>(exit_cryptde, &lcp.payload).unwrap() {
322331
MessageType::ClientRequest(vd) => vd
323332
.extract(&node_lib::sub_lib::migrations::client_request_payload::MIGRATIONS)
324333
.unwrap(),
325334
mt => panic!("Unexpected: {:?}", mt),
326335
};
327336
let stream_key = payload.stream_key;
328-
stream_key
337+
let return_route_id = decodex::<u32>(originating_cryptde, &lcp.route.hops[6]).unwrap();
338+
(stream_key, return_route_id)
329339
}
330340

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

335348
fn create_request_icp(
336349
index: u64,
337350
originating_node: &MASQMockNode,
338351
exit_node: &MASQRealNode,
339352
stream_key: StreamKey,
353+
return_route_id: u32,
340354
server: &MASQNodeServer,
341355
chain: Chain,
342356
) -> IncipientCoresPackage {
343-
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
344357
IncipientCoresPackage::new(
345-
originating_main_cryptde,
358+
originating_node.main_cryptde_null().unwrap(),
346359
Route::round_trip(
347360
RouteSegment::new(
348361
vec![
@@ -358,8 +371,9 @@ fn create_request_icp(
358371
],
359372
Component::ProxyServer,
360373
),
361-
originating_main_cryptde,
374+
originating_node.main_cryptde_null().unwrap(),
362375
originating_node.consuming_wallet(),
376+
return_route_id,
363377
Some(chain.rec().contract),
364378
)
365379
.unwrap(),
@@ -368,7 +382,7 @@ fn create_request_icp(
368382
&ClientRequestPayload_0v1 {
369383
stream_key,
370384
sequenced_packet: SequencedPacket::new(Vec::from(HTTP_REQUEST), index, false),
371-
target_hostname: format!("{}", server.local_addr().ip()),
385+
target_hostname: Some(format!("{}", server.local_addr().ip())),
372386
target_port: server.local_addr().port(),
373387
protocol: ProxyProtocol::HTTP,
374388
originator_public_key: originating_node.main_public_key().clone(),
@@ -386,9 +400,8 @@ fn create_meaningless_icp(
386400
let socket_addr = SocketAddr::from_str("3.2.1.0:7654").unwrap();
387401
let stream_key =
388402
StreamKey::make_meaningful_stream_key("Chancellor on brink of second bailout for banks");
389-
let main_cryptde = originating_node.main_cryptde_null().unwrap();
390403
IncipientCoresPackage::new(
391-
main_cryptde,
404+
originating_node.main_cryptde_null().unwrap(),
392405
Route::round_trip(
393406
RouteSegment::new(
394407
vec![
@@ -404,8 +417,9 @@ fn create_meaningless_icp(
404417
],
405418
Component::ProxyServer,
406419
),
407-
main_cryptde,
420+
originating_node.main_cryptde_null().unwrap(),
408421
originating_node.consuming_wallet(),
422+
1357,
409423
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
410424
)
411425
.unwrap(),
@@ -414,7 +428,7 @@ fn create_meaningless_icp(
414428
&ClientRequestPayload_0v1 {
415429
stream_key,
416430
sequenced_packet: SequencedPacket::new(Vec::from(HTTP_REQUEST), 0, false),
417-
target_hostname: "nowhere.com".to_string(),
431+
target_hostname: Some(format!("nowhere.com")),
418432
target_port: socket_addr.port(),
419433
protocol: ProxyProtocol::HTTP,
420434
originator_public_key: originating_node.main_public_key().clone(),
@@ -429,9 +443,8 @@ fn create_server_drop_report(
429443
exit_node: &MASQMockNode,
430444
originating_node: &MASQRealNode,
431445
stream_key: StreamKey,
446+
return_route_id: u32,
432447
) -> IncipientCoresPackage {
433-
let exit_main_cryptde = exit_node.main_cryptde_null().unwrap();
434-
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
435448
let mut route = Route::round_trip(
436449
RouteSegment::new(
437450
vec![
@@ -447,12 +460,15 @@ fn create_server_drop_report(
447460
],
448461
Component::ProxyServer,
449462
),
450-
originating_main_cryptde,
463+
originating_node.main_cryptde_null().unwrap(),
451464
originating_node.consuming_wallet(),
465+
return_route_id,
452466
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
453467
)
454468
.unwrap();
455-
route.shift(originating_main_cryptde).unwrap();
469+
route
470+
.shift(originating_node.main_cryptde_null().unwrap())
471+
.unwrap();
456472
let payload = MessageType::ClientResponse(VersionedData::new(
457473
&node_lib::sub_lib::migrations::client_response_payload::MIGRATIONS,
458474
&ClientResponsePayload_0v1 {
@@ -462,7 +478,7 @@ fn create_server_drop_report(
462478
));
463479

464480
IncipientCoresPackage::new(
465-
exit_main_cryptde,
481+
exit_node.main_cryptde_null().unwrap(),
466482
route,
467483
payload,
468484
originating_node.alias_public_key(),
@@ -474,8 +490,8 @@ fn create_client_drop_report(
474490
originating_node: &MASQMockNode,
475491
exit_node: &MASQRealNode,
476492
stream_key: StreamKey,
493+
return_route_id: u32,
477494
) -> IncipientCoresPackage {
478-
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
479495
let route = Route::round_trip(
480496
RouteSegment::new(
481497
vec![
@@ -491,8 +507,9 @@ fn create_client_drop_report(
491507
],
492508
Component::ProxyServer,
493509
),
494-
originating_main_cryptde,
510+
originating_node.main_cryptde_null().unwrap(),
495511
originating_node.consuming_wallet(),
512+
return_route_id,
496513
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
497514
)
498515
.unwrap();
@@ -501,15 +518,15 @@ fn create_client_drop_report(
501518
&ClientRequestPayload_0v1 {
502519
stream_key,
503520
sequenced_packet: SequencedPacket::new(vec![], 1, true),
504-
target_hostname: String::from("doesnt.matter.com"),
505-
target_port: HTTP_PORT,
521+
target_hostname: Some(String::from("doesnt.matter.com")),
522+
target_port: 80,
506523
protocol: ProxyProtocol::HTTP,
507524
originator_public_key: originating_node.main_public_key().clone(),
508525
},
509526
));
510527

511528
IncipientCoresPackage::new(
512-
originating_main_cryptde,
529+
originating_node.main_cryptde_null().unwrap(),
513530
route,
514531
payload,
515532
exit_node.main_public_key(),

multinode_integration_tests/tests/self_test.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ 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;
2019
use node_lib::test_utils::{make_meaningless_message_type, make_paying_wallet};
2120
use std::collections::HashSet;
2221
use std::io::ErrorKind;
@@ -69,7 +68,6 @@ fn server_relays_cores_package() {
6968
let masquerader = JsonMasquerader::new();
7069
let server = MASQCoresServer::new(cluster.chain);
7170
let cryptde = server.main_cryptde();
72-
let stream_key = StreamKey::make_meaningless_stream_key();
7371
let mut client = MASQCoresClient::new(server.local_addr(), cryptde);
7472
let mut route = Route::one_way(
7573
RouteSegment::new(
@@ -84,7 +82,7 @@ fn server_relays_cores_package() {
8482
let incipient = IncipientCoresPackage::new(
8583
cryptde,
8684
route.clone(),
87-
make_meaningless_message_type(stream_key),
85+
make_meaningless_message_type(),
8886
&cryptde.public_key(),
8987
)
9088
.unwrap();
@@ -101,7 +99,7 @@ fn server_relays_cores_package() {
10199

102100
route.shift(cryptde).unwrap();
103101
assert_eq!(expired.remaining_route, route);
104-
assert_eq!(expired.payload, make_meaningless_message_type(stream_key));
102+
assert_eq!(expired.payload, make_meaningless_message_type());
105103
}
106104

107105
#[test]
@@ -113,7 +111,6 @@ fn one_mock_node_talks_to_another() {
113111
let mock_node_1 = cluster.get_mock_node_by_name("mock_node_1").unwrap();
114112
let mock_node_2 = cluster.get_mock_node_by_name("mock_node_2").unwrap();
115113
let cryptde = CryptDENull::new(TEST_DEFAULT_CHAIN);
116-
let stream_key = StreamKey::make_meaningless_stream_key();
117114
let route = Route::one_way(
118115
RouteSegment::new(
119116
vec![
@@ -130,7 +127,7 @@ fn one_mock_node_talks_to_another() {
130127
let incipient_cores_package = IncipientCoresPackage::new(
131128
&cryptde,
132129
route,
133-
make_meaningless_message_type(stream_key),
130+
make_meaningless_message_type(),
134131
&mock_node_2.main_public_key(),
135132
)
136133
.unwrap();
@@ -159,7 +156,7 @@ fn one_mock_node_talks_to_another() {
159156
assert_eq!(package_to, mock_node_2.socket_addr(PortSelector::First));
160157
assert_eq!(
161158
expired_cores_package.payload,
162-
make_meaningless_message_type(stream_key)
159+
make_meaningless_message_type()
163160
);
164161
}
165162

0 commit comments

Comments
 (0)