From b0f582bef9081aa2207ad66880c15506169c1afd Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:00:35 +0100 Subject: [PATCH 01/12] test --- ZelBack/src/services/fluxCommunication.js | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index 8118d7ad1..3f7c04394 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -678,26 +678,7 @@ async function initiateAndHandleConnection(connection) { myPort = myIP.split(':')[1] || 16127; } const options = { - perMessageDeflate: { - zlibDeflateOptions: { - // See zlib defaults. - chunkSize: 1024, - memLevel: 8, - level: 3, - }, - zlibInflateOptions: { - chunkSize: 10 * 1024, - }, - // Other options settable: - clientNoContextTakeover: true, // Defaults to negotiated value. - serverNoContextTakeover: true, // Defaults to negotiated value. - serverMaxWindowBits: 15, // Defaults to negotiated value. - clientMaxWindowBits: 15, // Defaults to negotiated value. - // Below options specified as default values. - concurrencyLimit: 2, // Limits zlib concurrency for perf. - threshold: 128, // Size (in bytes) below which messages - // should not be compressed if context takeover is disabled. - }, + perMessageDeflate: true, }; const wsuri = `ws://${ip}:${port}/ws/flux/${myPort}`; const websocket = new WebSocket(wsuri, options); From 37a5e91c361745662dd2bbfc3fdb90de5fb175b1 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:05:18 +0100 Subject: [PATCH 02/12] log ws --- ZelBack/src/services/fluxCommunication.js | 1 + 1 file changed, 1 insertion(+) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index 3f7c04394..ec7860f85 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -693,6 +693,7 @@ async function initiateAndHandleConnection(connection) { latency: null, }; outgoingPeers.push(peer); + log.info(JSON.stringify(websocket)); }; // every time a ping is sent a pong as received, measure latency From 75fe322ab1e03b4ce71e3eef56aad5c5cfea7717 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:19:35 +0100 Subject: [PATCH 03/12] compare with current default --- ZelBack/src/services/fluxCommunication.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index ec7860f85..ddea936f7 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -678,7 +678,26 @@ async function initiateAndHandleConnection(connection) { myPort = myIP.split(':')[1] || 16127; } const options = { - perMessageDeflate: true, + perMessageDeflate: { + zlibDeflateOptions: { + // See zlib defaults. + chunkSize: 1024, + memLevel: 8, + level: 3, + }, + zlibInflateOptions: { + chunkSize: 10 * 1024, + }, + // Other options settable: + clientNoContextTakeover: true, // Defaults to negotiated value. + serverNoContextTakeover: true, // Defaults to negotiated value. + serverMaxWindowBits: 15, // Defaults to negotiated value. + clientMaxWindowBits: 15, // Defaults to negotiated value. + // Below options specified as default values. + concurrencyLimit: 2, // Limits zlib concurrency for perf. + threshold: 128, // Size (in bytes) below which messages + // should not be compressed if context takeover is disabled. + }, }; const wsuri = `ws://${ip}:${port}/ws/flux/${myPort}`; const websocket = new WebSocket(wsuri, options); From 9196ae73634a05c81be9e94e85181bf669b7cf88 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:21:39 +0100 Subject: [PATCH 04/12] test just changing the client --- ZelBack/src/services/fluxCommunication.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index ddea936f7..5e3c5af5f 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -682,8 +682,8 @@ async function initiateAndHandleConnection(connection) { zlibDeflateOptions: { // See zlib defaults. chunkSize: 1024, - memLevel: 8, - level: 3, + memLevel: 10, + level: 9, }, zlibInflateOptions: { chunkSize: 10 * 1024, @@ -694,7 +694,7 @@ async function initiateAndHandleConnection(connection) { serverMaxWindowBits: 15, // Defaults to negotiated value. clientMaxWindowBits: 15, // Defaults to negotiated value. // Below options specified as default values. - concurrencyLimit: 2, // Limits zlib concurrency for perf. + concurrencyLimit: 3, // Limits zlib concurrency for perf. threshold: 128, // Size (in bytes) below which messages // should not be compressed if context takeover is disabled. }, From 16c59239fb45bb9142cbd3c0a76b1e55c6d8118a Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:28:58 +0100 Subject: [PATCH 05/12] test --- ZelBack/src/lib/socketServer.js | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/ZelBack/src/lib/socketServer.js b/ZelBack/src/lib/socketServer.js index 1fe838f1e..aecc38bcd 100644 --- a/ZelBack/src/lib/socketServer.js +++ b/ZelBack/src/lib/socketServer.js @@ -6,26 +6,7 @@ class FluxWebsocketServer { #socketServer = new WebSocketServer({ noServer: true, - perMessageDeflate: { - zlibDeflateOptions: { - // See zlib defaults. - chunkSize: 1024, - memLevel: 8, - level: 3, - }, - zlibInflateOptions: { - chunkSize: 10 * 1024, - }, - // Other options settable: - clientNoContextTakeover: true, // Defaults to negotiated value. - serverNoContextTakeover: true, // Defaults to negotiated value. - serverMaxWindowBits: 15, // Defaults to negotiated value. - clientMaxWindowBits: 15, // Defaults to negotiated value. - // Below options specified as default values. - concurrencyLimit: 2, // Limits zlib concurrency for perf. - threshold: 128, // Size (in bytes) below which messages - // should not be compressed if context takeover is disabled. - }, + perMessageDeflate: true, }); #routes = {}; From de54b5fe5a873ed7a9e848cdf1a5c9e29050065f Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:30:47 +0100 Subject: [PATCH 06/12] test --- ZelBack/src/services/fluxCommunication.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index 5e3c5af5f..fb980e941 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -378,6 +378,7 @@ function handleIncomingConnection(websocket, optionalPort) { } incomingConnections.push(ws); incomingPeers.push(peer); + log.info(JSON.stringify(ws)); // verify data integrity, if not signed, close connection ws.onmessage = async (msg) => { @@ -712,7 +713,6 @@ async function initiateAndHandleConnection(connection) { latency: null, }; outgoingPeers.push(peer); - log.info(JSON.stringify(websocket)); }; // every time a ping is sent a pong as received, measure latency From af617af556f5873bb9d7b4c68b65b9500097d2e3 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:36:31 +0100 Subject: [PATCH 07/12] test --- ZelBack/src/lib/socketServer.js | 2 ++ ZelBack/src/services/fluxCommunication.js | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ZelBack/src/lib/socketServer.js b/ZelBack/src/lib/socketServer.js index aecc38bcd..aa70ddc9d 100644 --- a/ZelBack/src/lib/socketServer.js +++ b/ZelBack/src/lib/socketServer.js @@ -1,4 +1,5 @@ const { match } = require('path-to-regexp'); +const log = require('./log'); const WebSocketServer = require('ws').Server; class FluxWebsocketServer { @@ -32,6 +33,7 @@ class FluxWebsocketServer { const handler = this.matchRoute(url); if (handler) handler(ws); + log.info(JSON.stringify(ws)); }); } diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index fb980e941..db53d9d3a 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -378,7 +378,6 @@ function handleIncomingConnection(websocket, optionalPort) { } incomingConnections.push(ws); incomingPeers.push(peer); - log.info(JSON.stringify(ws)); // verify data integrity, if not signed, close connection ws.onmessage = async (msg) => { From a74a1adfc409d639d2ea68f1062b60997e752a33 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:40:30 +0100 Subject: [PATCH 08/12] test --- ZelBack/src/lib/socketServer.js | 2 -- ZelBack/src/services/fluxCommunication.js | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ZelBack/src/lib/socketServer.js b/ZelBack/src/lib/socketServer.js index aa70ddc9d..aecc38bcd 100644 --- a/ZelBack/src/lib/socketServer.js +++ b/ZelBack/src/lib/socketServer.js @@ -1,5 +1,4 @@ const { match } = require('path-to-regexp'); -const log = require('./log'); const WebSocketServer = require('ws').Server; class FluxWebsocketServer { @@ -33,7 +32,6 @@ class FluxWebsocketServer { const handler = this.matchRoute(url); if (handler) handler(ws); - log.info(JSON.stringify(ws)); }); } diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index db53d9d3a..679e8cf0c 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -3,6 +3,7 @@ const config = require('config'); const { LRUCache } = require('lru-cache'); const hash = require('object-hash'); const WebSocket = require('ws'); +const inspect = require('util'); const log = require('../lib/log'); const serviceHelper = require('./serviceHelper'); const verificationHelper = require('./verificationHelper'); @@ -379,6 +380,7 @@ function handleIncomingConnection(websocket, optionalPort) { incomingConnections.push(ws); incomingPeers.push(peer); + log.info(inspect(ws)); // verify data integrity, if not signed, close connection ws.onmessage = async (msg) => { if (!msg) { From 509a899a17c588d96dd74433445b18c9f7cbae03 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:42:17 +0100 Subject: [PATCH 09/12] test --- ZelBack/src/services/fluxCommunication.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index 679e8cf0c..61c6f407e 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -3,7 +3,6 @@ const config = require('config'); const { LRUCache } = require('lru-cache'); const hash = require('object-hash'); const WebSocket = require('ws'); -const inspect = require('util'); const log = require('../lib/log'); const serviceHelper = require('./serviceHelper'); const verificationHelper = require('./verificationHelper'); @@ -380,7 +379,7 @@ function handleIncomingConnection(websocket, optionalPort) { incomingConnections.push(ws); incomingPeers.push(peer); - log.info(inspect(ws)); + log.info(JSON.stringify(ws.extensions)); // verify data integrity, if not signed, close connection ws.onmessage = async (msg) => { if (!msg) { From 45ebdc49fcbb90c0679bdd7dff0e39679f2b3902 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:43:51 +0100 Subject: [PATCH 10/12] test --- ZelBack/src/lib/socketServer.js | 21 ++++++++++++++++++++- ZelBack/src/services/fluxCommunication.js | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ZelBack/src/lib/socketServer.js b/ZelBack/src/lib/socketServer.js index aecc38bcd..40bf67fed 100644 --- a/ZelBack/src/lib/socketServer.js +++ b/ZelBack/src/lib/socketServer.js @@ -6,7 +6,26 @@ class FluxWebsocketServer { #socketServer = new WebSocketServer({ noServer: true, - perMessageDeflate: true, + perMessageDeflate: { + zlibDeflateOptions: { + // See zlib defaults. + chunkSize: 1024, + memLevel: 9, + level: 9, + }, + zlibInflateOptions: { + chunkSize: 10 * 1024, + }, + // Other options settable: + clientNoContextTakeover: true, // Defaults to negotiated value. + serverNoContextTakeover: true, // Defaults to negotiated value. + serverMaxWindowBits: 15, // Defaults to negotiated value. + clientMaxWindowBits: 15, // Defaults to negotiated value. + // Below options specified as default values. + concurrencyLimit: 3, // Limits zlib concurrency for perf. + threshold: 128, // Size (in bytes) below which messages + // should not be compressed if context takeover is disabled. + }, }); #routes = {}; diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index 61c6f407e..a89317112 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -683,7 +683,7 @@ async function initiateAndHandleConnection(connection) { zlibDeflateOptions: { // See zlib defaults. chunkSize: 1024, - memLevel: 10, + memLevel: 9, level: 9, }, zlibInflateOptions: { From 7b19a94c81709cf668c88a02895cc05ffc29b1fb Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 11:45:27 +0100 Subject: [PATCH 11/12] remove log --- ZelBack/src/services/fluxCommunication.js | 1 - 1 file changed, 1 deletion(-) diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index a89317112..16f0aa20c 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -379,7 +379,6 @@ function handleIncomingConnection(websocket, optionalPort) { incomingConnections.push(ws); incomingPeers.push(peer); - log.info(JSON.stringify(ws.extensions)); // verify data integrity, if not signed, close connection ws.onmessage = async (msg) => { if (!msg) { From dd0d467ee5b02965a8ebb5996b4cd9b1c6e3d674 Mon Sep 17 00:00:00 2001 From: Cabecinha84 Date: Thu, 3 Oct 2024 15:59:39 +0100 Subject: [PATCH 12/12] revert concurrencyLimit changes --- ZelBack/src/lib/socketServer.js | 2 +- ZelBack/src/services/fluxCommunication.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ZelBack/src/lib/socketServer.js b/ZelBack/src/lib/socketServer.js index 40bf67fed..423487a40 100644 --- a/ZelBack/src/lib/socketServer.js +++ b/ZelBack/src/lib/socketServer.js @@ -22,7 +22,7 @@ class FluxWebsocketServer { serverMaxWindowBits: 15, // Defaults to negotiated value. clientMaxWindowBits: 15, // Defaults to negotiated value. // Below options specified as default values. - concurrencyLimit: 3, // Limits zlib concurrency for perf. + concurrencyLimit: 2, // Limits zlib concurrency for perf. threshold: 128, // Size (in bytes) below which messages // should not be compressed if context takeover is disabled. }, diff --git a/ZelBack/src/services/fluxCommunication.js b/ZelBack/src/services/fluxCommunication.js index 16f0aa20c..713d11079 100644 --- a/ZelBack/src/services/fluxCommunication.js +++ b/ZelBack/src/services/fluxCommunication.js @@ -694,7 +694,7 @@ async function initiateAndHandleConnection(connection) { serverMaxWindowBits: 15, // Defaults to negotiated value. clientMaxWindowBits: 15, // Defaults to negotiated value. // Below options specified as default values. - concurrencyLimit: 3, // Limits zlib concurrency for perf. + concurrencyLimit: 2, // Limits zlib concurrency for perf. threshold: 128, // Size (in bytes) below which messages // should not be compressed if context takeover is disabled. },