@streamr/dht 100.0.0-testnet-two.4 → 100.0.0-testnet-three.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +8 -9
- package/dist/src/connection/Connection.d.ts +1 -0
- package/dist/src/connection/Connection.js +10 -3
- package/dist/src/connection/Connection.js.map +1 -1
- package/dist/src/connection/ConnectionLockHandler.d.ts +3 -3
- package/dist/src/connection/ConnectionLockHandler.js +8 -10
- package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcLocal.js +5 -4
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.js +4 -4
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
- package/dist/src/connection/ConnectionManager.d.ts +8 -8
- package/dist/src/connection/ConnectionManager.js +54 -55
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ConnectorFacade.d.ts +3 -2
- package/dist/src/connection/ConnectorFacade.js +7 -0
- package/dist/src/connection/ConnectorFacade.js.map +1 -1
- package/dist/src/connection/Handshaker.js +3 -1
- package/dist/src/connection/Handshaker.js.map +1 -1
- package/dist/src/connection/IConnection.d.ts +2 -7
- package/dist/src/connection/IConnection.js +1 -8
- package/dist/src/connection/IConnection.js.map +1 -1
- package/dist/src/connection/ManagedConnection.js +23 -15
- package/dist/src/connection/ManagedConnection.js.map +1 -1
- package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -1
- package/dist/src/connection/connectivityChecker.d.ts +1 -1
- package/dist/src/connection/connectivityChecker.js +9 -2
- package/dist/src/connection/connectivityChecker.js.map +1 -1
- package/dist/src/connection/connectivityRequestHandler.js +8 -2
- package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
- package/dist/src/connection/simulator/Simulator.js +32 -20
- package/dist/src/connection/simulator/Simulator.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnection.js +13 -10
- package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnector.js +9 -6
- package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/simulator/pings.js.map +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +26 -14
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -1
- package/dist/src/connection/webrtc/WebrtcConnector.js +18 -17
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +10 -9
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +3 -0
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
- package/dist/src/connection/websocket/ClientWebsocket.js +7 -4
- package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
- package/dist/src/connection/websocket/ServerWebsocket.d.ts +1 -0
- package/dist/src/connection/websocket/ServerWebsocket.js +22 -3
- package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnector.d.ts +2 -1
- package/dist/src/connection/websocket/WebsocketConnector.js +27 -16
- package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +2 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +3 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +2 -2
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketServer.js +6 -3
- package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
- package/dist/src/dht/DhtNode.d.ts +18 -19
- package/dist/src/dht/DhtNode.js +56 -65
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.js +5 -4
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcRemote.d.ts +2 -1
- package/dist/src/dht/DhtNodeRpcRemote.js +5 -3
- package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.js +4 -3
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/PeerManager.d.ts +5 -5
- package/dist/src/dht/PeerManager.js +31 -24
- package/dist/src/dht/PeerManager.js.map +1 -1
- package/dist/src/dht/contact/Contact.js +3 -2
- package/dist/src/dht/contact/Contact.js.map +1 -1
- package/dist/src/dht/contact/ContactList.js +9 -5
- package/dist/src/dht/contact/ContactList.js.map +1 -1
- package/dist/src/dht/contact/RandomContactList.js +1 -0
- package/dist/src/dht/contact/RandomContactList.js.map +1 -1
- package/dist/src/dht/contact/RpcRemote.d.ts +2 -1
- package/dist/src/dht/contact/RpcRemote.js +4 -0
- package/dist/src/dht/contact/RpcRemote.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.js +3 -2
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.js +8 -8
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +8 -2
- package/dist/src/dht/discovery/PeerDiscovery.js +26 -17
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +9 -9
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +3 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +6 -5
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +2 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +26 -20
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/DuplicateDetector.d.ts +2 -4
- package/dist/src/dht/routing/DuplicateDetector.js +10 -15
- package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
- package/dist/src/dht/routing/Router.d.ts +1 -1
- package/dist/src/dht/routing/Router.js +20 -15
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.js +4 -4
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcRemote.js +11 -9
- package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +2 -0
- package/dist/src/dht/routing/RoutingSession.js +27 -9
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/store/LocalDataStore.js +5 -4
- package/dist/src/dht/store/LocalDataStore.js.map +1 -1
- package/dist/src/dht/store/StoreManager.js +8 -8
- package/dist/src/dht/store/StoreManager.js.map +1 -1
- package/dist/src/dht/store/StoreRpcLocal.js +1 -0
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/dht/store/StoreRpcRemote.js +3 -3
- package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
- package/dist/src/exports.d.ts +1 -4
- package/dist/src/exports.js +4 -7
- package/dist/src/exports.js.map +1 -1
- package/dist/src/helpers/AddressTools.js.map +1 -1
- package/dist/src/helpers/Connectivity.js.map +1 -1
- package/dist/src/helpers/MapWithTtl.js +2 -1
- package/dist/src/helpers/MapWithTtl.js.map +1 -1
- package/dist/src/helpers/createPeerDescriptor.d.ts +3 -0
- package/dist/src/helpers/createPeerDescriptor.js +56 -0
- package/dist/src/helpers/createPeerDescriptor.js.map +1 -0
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +2 -0
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +30 -0
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +1 -0
- package/dist/src/helpers/debugHelpers.js.map +1 -1
- package/dist/src/helpers/errors.js +2 -0
- package/dist/src/helpers/errors.js.map +1 -1
- package/dist/src/helpers/offering.d.ts +4 -0
- package/dist/src/helpers/offering.js +18 -0
- package/dist/src/helpers/offering.js.map +1 -0
- package/dist/src/helpers/protoToString.js.map +1 -1
- package/dist/src/identifiers.d.ts +3 -0
- package/dist/src/identifiers.js +9 -1
- package/dist/src/identifiers.js.map +1 -1
- package/dist/src/proto/google/protobuf/any.js +8 -8
- package/dist/src/proto/google/protobuf/any.js.map +1 -1
- package/dist/src/proto/google/protobuf/empty.js +2 -4
- package/dist/src/proto/google/protobuf/empty.js.map +1 -1
- package/dist/src/proto/google/protobuf/timestamp.js +10 -10
- package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +26 -12
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +12 -16
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
- package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
- package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -1
- package/dist/src/rpc-protocol/DhtCallContext.js +8 -0
- package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
- package/dist/src/transport/ITransport.d.ts +1 -1
- package/dist/src/transport/ListeningRpcCommunicator.js +2 -0
- package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
- package/dist/src/transport/RoutingRpcCommunicator.js +2 -0
- package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
- package/package.json +8 -9
- package/protos/DhtRpc.proto +8 -4
- package/src/connection/Connection.ts +6 -1
- package/src/connection/ConnectionLockHandler.ts +3 -3
- package/src/connection/ConnectionLockRpcLocal.ts +1 -5
- package/src/connection/ConnectionLockRpcRemote.ts +1 -1
- package/src/connection/ConnectionManager.ts +24 -38
- package/src/connection/ConnectorFacade.ts +3 -2
- package/src/connection/Handshaker.ts +4 -4
- package/src/connection/IConnection.ts +2 -8
- package/src/connection/ManagedConnection.ts +3 -3
- package/src/connection/connectivityChecker.ts +9 -2
- package/src/connection/connectivityRequestHandler.ts +10 -3
- package/src/connection/simulator/Simulator.ts +1 -2
- package/src/connection/simulator/SimulatorConnection.ts +1 -1
- package/src/connection/simulator/SimulatorConnector.ts +1 -2
- package/src/connection/webrtc/BrowserWebrtcConnection.ts +4 -3
- package/src/connection/webrtc/NodeWebrtcConnection.ts +5 -4
- package/src/connection/webrtc/WebrtcConnector.ts +9 -17
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +9 -9
- package/src/connection/websocket/ClientWebsocket.ts +3 -2
- package/src/connection/websocket/ServerWebsocket.ts +17 -1
- package/src/connection/websocket/WebsocketConnector.ts +16 -13
- package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +4 -2
- package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +1 -1
- package/src/connection/websocket/WebsocketServer.ts +2 -2
- package/src/dht/DhtNode.ts +63 -86
- package/src/dht/DhtNodeRpcLocal.ts +5 -5
- package/src/dht/DhtNodeRpcRemote.ts +3 -3
- package/src/dht/ExternalApiRpcLocal.ts +3 -4
- package/src/dht/PeerManager.ts +14 -20
- package/src/dht/contact/Contact.ts +1 -2
- package/src/dht/contact/RpcRemote.ts +2 -1
- package/src/dht/discovery/DiscoverySession.ts +2 -3
- package/src/dht/discovery/PeerDiscovery.ts +16 -9
- package/src/dht/recursive-operation/RecursiveOperationManager.ts +12 -6
- package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +1 -1
- package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +3 -2
- package/src/dht/recursive-operation/RecursiveOperationSession.ts +19 -9
- package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +13 -3
- package/src/dht/routing/DuplicateDetector.ts +9 -21
- package/src/dht/routing/Router.ts +12 -11
- package/src/dht/routing/RouterRpcLocal.ts +1 -2
- package/src/dht/routing/RouterRpcRemote.ts +5 -5
- package/src/dht/routing/RoutingSession.ts +22 -2
- package/src/dht/store/StoreManager.ts +1 -2
- package/src/dht/store/StoreRpcRemote.ts +1 -1
- package/src/exports.ts +9 -4
- package/src/helpers/createPeerDescriptor.ts +56 -0
- package/src/helpers/createPeerDescriptorSignaturePayload.ts +28 -0
- package/src/helpers/offering.ts +15 -0
- package/src/identifiers.ts +10 -1
- package/src/proto/google/protobuf/any.ts +4 -4
- package/src/proto/google/protobuf/empty.ts +2 -4
- package/src/proto/google/protobuf/timestamp.ts +4 -4
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
- package/src/proto/packages/dht/protos/DhtRpc.ts +37 -20
- package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
- package/src/rpc-protocol/DhtCallContext.ts +0 -1
- package/src/transport/ITransport.ts +1 -1
- package/src/transport/RoutingRpcCommunicator.ts +1 -1
- package/test/benchmark/Find.test.ts +6 -8
- package/test/benchmark/KademliaCorrectness.test.ts +2 -3
- package/test/benchmark/SortedContactListBenchmark.test.ts +16 -16
- package/test/benchmark/WebsocketServerMemoryLeak.test.ts +1 -1
- package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +8 -8
- package/test/benchmark/kademlia-simulation/SimulationNode.ts +8 -8
- package/test/end-to-end/Layer0-Layer1.test.ts +1 -1
- package/test/end-to-end/Layer0.test.ts +4 -4
- package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +12 -12
- package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +18 -18
- package/test/end-to-end/Layer0Webrtc.test.ts +13 -10
- package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +2 -2
- package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +2 -2
- package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
- package/test/end-to-end/WebsocketConnectionRequest.test.ts +3 -3
- package/test/end-to-end/memory-leak.test.ts +2 -2
- package/test/integration/ConnectionLocking.test.ts +60 -47
- package/test/integration/ConnectionManager.test.ts +8 -7
- package/test/integration/ConnectivityChecking.test.ts +64 -0
- package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
- package/test/integration/DhtNodeExternalAPI.test.ts +1 -2
- package/test/integration/DhtNodeRpcRemote.test.ts +4 -3
- package/test/integration/DhtRpc.test.ts +4 -3
- package/test/integration/Find.test.ts +4 -6
- package/test/integration/Layer1-scale.test.ts +7 -7
- package/test/integration/Mock-Layer1-Layer0.test.ts +21 -24
- package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
- package/test/integration/ReplicateData.test.ts +52 -161
- package/test/integration/RouteMessage.test.ts +24 -47
- package/test/integration/RouterRpcRemote.test.ts +7 -4
- package/test/integration/ScaleDownDht.test.ts +2 -3
- package/test/integration/SimultaneousConnections.test.ts +9 -8
- package/test/integration/Store.test.ts +1 -2
- package/test/integration/StoreAndDelete.test.ts +5 -0
- package/test/integration/StoreOnDhtWithThreeNodes.test.ts +59 -0
- package/test/integration/StoreOnDhtWithTwoNodes.test.ts +1 -1
- package/test/integration/StoreRpcRemote.test.ts +4 -4
- package/test/integration/WebrtcConnectionManagement.test.ts +6 -5
- package/test/integration/WebrtcConnectorRpc.test.ts +3 -2
- package/test/integration/WebsocketConnectionManagement.test.ts +27 -15
- package/test/integration/WebsocketConnectorRpc.test.ts +3 -2
- package/test/integration/{RpcErrors.test.ts → rpc-connections-over-webrpc.test.ts} +6 -3
- package/test/unit/DuplicateDetector.test.ts +2 -2
- package/test/unit/LocalDataStore.test.ts +1 -4
- package/test/unit/RandomContactList.test.ts +2 -4
- package/test/unit/RecursiveOperationManager.test.ts +5 -6
- package/test/unit/RecursiveOperationSession.test.ts +5 -4
- package/test/unit/Router.test.ts +25 -8
- package/test/unit/RoutingSession.test.ts +3 -3
- package/test/unit/SortedContactList.test.ts +2 -4
- package/test/unit/connectivityRequestHandler.test.ts +7 -3
- package/test/unit/createPeerDescriptor.test.ts +63 -0
- package/test/utils/FakeTransport.ts +7 -4
- package/test/utils/mock/Transport.ts +1 -1
- package/test/utils/utils.ts +6 -6
- package/dist/src/helpers/PeerID.d.ts +0 -27
- package/dist/src/helpers/PeerID.js +0 -87
- package/dist/src/helpers/PeerID.js.map +0 -1
- package/dist/src/helpers/UUID.d.ts +0 -8
- package/dist/src/helpers/UUID.js +0 -36
- package/dist/src/helpers/UUID.js.map +0 -1
- package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +0 -7
- package/dist/src/helpers/peerIdFromPeerDescriptor.js +0 -23
- package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +0 -1
- package/src/helpers/PeerID.ts +0 -97
- package/src/helpers/UUID.ts +0 -35
- package/src/helpers/peerIdFromPeerDescriptor.ts +0 -20
- package/test/unit/PeerID.test.ts +0 -22
- package/test/unit/UUID.test.ts +0 -55
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/dht",
|
|
3
|
-
"version": "100.0.0-testnet-
|
|
3
|
+
"version": "100.0.0-testnet-three.1",
|
|
4
4
|
"description": "Streamr Network DHT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"check": "tsc -p ./tsconfig.jest.json --noEmit",
|
|
19
19
|
"clean": "jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true",
|
|
20
20
|
"eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
|
|
21
|
-
"prepublishOnly": "npm run clean && NODE_ENV=production tsc -b tsconfig.node.json",
|
|
22
21
|
"test": "npm run test-unit && npm run test-integration && npm run test-end-to-end",
|
|
23
22
|
"test-browser": "karma start karma.config.js",
|
|
24
23
|
"test-unit": "jest test/unit",
|
|
@@ -31,9 +30,9 @@
|
|
|
31
30
|
"dependencies": {
|
|
32
31
|
"@protobuf-ts/runtime": "^2.8.2",
|
|
33
32
|
"@protobuf-ts/runtime-rpc": "^2.8.2",
|
|
34
|
-
"@streamr/autocertifier-client": "100.0.0-testnet-
|
|
35
|
-
"@streamr/proto-rpc": "100.0.0-testnet-
|
|
36
|
-
"@streamr/utils": "100.0.0-testnet-
|
|
33
|
+
"@streamr/autocertifier-client": "100.0.0-testnet-three.1",
|
|
34
|
+
"@streamr/proto-rpc": "100.0.0-testnet-three.1",
|
|
35
|
+
"@streamr/utils": "100.0.0-testnet-three.1",
|
|
37
36
|
"eventemitter3": "^5.0.0",
|
|
38
37
|
"heap": "^0.2.6",
|
|
39
38
|
"ipaddr.js": "^2.0.1",
|
|
@@ -45,19 +44,19 @@
|
|
|
45
44
|
},
|
|
46
45
|
"devDependencies": {
|
|
47
46
|
"@streamr/browser-test-runner": "^0.0.1",
|
|
48
|
-
"@streamr/test-utils": "100.0.0-testnet-
|
|
47
|
+
"@streamr/test-utils": "100.0.0-testnet-three.1",
|
|
49
48
|
"@types/express": "^4.17.21",
|
|
50
49
|
"@types/heap": "^0.2.34",
|
|
51
50
|
"@types/k-bucket": "^5.0.1",
|
|
52
51
|
"@types/lodash": "^4.14.202",
|
|
53
|
-
"@types/sinon": "^
|
|
52
|
+
"@types/sinon": "^17.0.3",
|
|
54
53
|
"@types/uuid": "^9.0.7",
|
|
55
|
-
"@types/websocket": "^1.0.
|
|
54
|
+
"@types/websocket": "^1.0.10",
|
|
56
55
|
"express": "^4.17.1",
|
|
57
56
|
"jest-leak-detector": "^27.3.1",
|
|
58
57
|
"patch-package": "^8.0.0",
|
|
59
58
|
"ts-essentials": "^9.4.1",
|
|
60
|
-
"ts-node": "^10.9.
|
|
59
|
+
"ts-node": "^10.9.2"
|
|
61
60
|
},
|
|
62
61
|
"optionalDependencies": {
|
|
63
62
|
"bufferutil": "^4.0.8",
|
|
@@ -3,13 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Connection = void 0;
|
|
6
|
+
exports.createRandomConnectionId = exports.Connection = void 0;
|
|
7
7
|
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
8
|
-
const
|
|
8
|
+
const uuid_1 = require("uuid");
|
|
9
9
|
class Connection extends eventemitter3_1.default {
|
|
10
|
+
connectionId;
|
|
11
|
+
connectionType;
|
|
12
|
+
peerDescriptor;
|
|
10
13
|
constructor(connectionType) {
|
|
11
14
|
super();
|
|
12
|
-
this.connectionId =
|
|
15
|
+
this.connectionId = (0, exports.createRandomConnectionId)();
|
|
13
16
|
this.connectionType = connectionType;
|
|
14
17
|
}
|
|
15
18
|
setPeerDescriptor(peerDescriptor) {
|
|
@@ -20,4 +23,8 @@ class Connection extends eventemitter3_1.default {
|
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
25
|
exports.Connection = Connection;
|
|
26
|
+
const createRandomConnectionId = () => {
|
|
27
|
+
return (0, uuid_1.v4)();
|
|
28
|
+
};
|
|
29
|
+
exports.createRandomConnectionId = createRandomConnectionId;
|
|
23
30
|
//# sourceMappingURL=Connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/connection/Connection.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;
|
|
1
|
+
{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/connection/Connection.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAGxC,+BAAiC;AAEjC,MAAa,UAAW,SAAQ,uBAA8B;IACnD,YAAY,CAAc;IAC1B,cAAc,CAAgB;IAC7B,cAAc,CAAiB;IAEvC,YAAY,cAA8B;QACtC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAA,gCAAwB,GAAE,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;CACJ;AAlBD,gCAkBC;AAEM,MAAM,wBAAwB,GAAG,GAAiB,EAAE;IACvD,OAAO,IAAA,SAAI,GAAkB,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC"}
|
|
@@ -4,9 +4,9 @@ export declare class ConnectionLockHandler {
|
|
|
4
4
|
private localLocks;
|
|
5
5
|
private remoteLocks;
|
|
6
6
|
private weakLocks;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
getLocalLockedConnectionCount(): number;
|
|
8
|
+
getRemoteLockedConnectionCount(): number;
|
|
9
|
+
getWeakLockedConnectionCount(): number;
|
|
10
10
|
isLocalLocked(id: DhtAddress, lockId?: LockID): boolean;
|
|
11
11
|
isRemoteLocked(id: DhtAddress, lockId?: LockID): boolean;
|
|
12
12
|
private isWeakLocked;
|
|
@@ -4,20 +4,18 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.ConnectionLockHandler = void 0;
|
|
6
6
|
class ConnectionLockHandler {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
getNumberOfLocalLockedConnections() {
|
|
7
|
+
localLocks = new Map();
|
|
8
|
+
remoteLocks = new Map();
|
|
9
|
+
// TODO: remove weakLocks use localLocks instead. When opening weakLocks from the ConnectioManager,
|
|
10
|
+
// simply do not send lock requests.
|
|
11
|
+
weakLocks = new Set();
|
|
12
|
+
getLocalLockedConnectionCount() {
|
|
15
13
|
return this.localLocks.size;
|
|
16
14
|
}
|
|
17
|
-
|
|
15
|
+
getRemoteLockedConnectionCount() {
|
|
18
16
|
return this.remoteLocks.size;
|
|
19
17
|
}
|
|
20
|
-
|
|
18
|
+
getWeakLockedConnectionCount() {
|
|
21
19
|
return this.weakLocks.size;
|
|
22
20
|
}
|
|
23
21
|
isLocalLocked(id, lockId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionLockHandler.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockHandler.ts"],"names":[],"mappings":";AAAA,mEAAmE;AACnE,mCAAmC;;;AAMnC,MAAa,qBAAqB;
|
|
1
|
+
{"version":3,"file":"ConnectionLockHandler.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,23 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConnectionLockRpcLocal = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
|
|
6
5
|
const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
|
|
7
6
|
const ConnectionManager_1 = require("./ConnectionManager");
|
|
7
|
+
const identifiers_1 = require("../identifiers");
|
|
8
8
|
const logger = new utils_1.Logger(module);
|
|
9
9
|
class ConnectionLockRpcLocal {
|
|
10
|
+
config;
|
|
10
11
|
constructor(config) {
|
|
11
12
|
this.config = config;
|
|
12
13
|
}
|
|
13
14
|
async lockRequest(lockRequest, context) {
|
|
14
15
|
const senderPeerDescriptor = context.incomingSourceDescriptor;
|
|
15
|
-
if ((0,
|
|
16
|
+
if ((0, identifiers_1.areEqualPeerDescriptors)(senderPeerDescriptor, this.config.getLocalPeerDescriptor())) {
|
|
16
17
|
const response = {
|
|
17
18
|
accepted: false
|
|
18
19
|
};
|
|
19
20
|
return response;
|
|
20
21
|
}
|
|
21
|
-
const remoteNodeId = (0,
|
|
22
|
+
const remoteNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
|
|
22
23
|
this.config.addRemoteLocked(remoteNodeId, lockRequest.lockId);
|
|
23
24
|
const response = {
|
|
24
25
|
accepted: true
|
|
@@ -27,7 +28,7 @@ class ConnectionLockRpcLocal {
|
|
|
27
28
|
}
|
|
28
29
|
async unlockRequest(unlockRequest, context) {
|
|
29
30
|
const senderPeerDescriptor = context.incomingSourceDescriptor;
|
|
30
|
-
const nodeId = (0,
|
|
31
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
|
|
31
32
|
this.config.removeRemoteLocked(nodeId, unlockRequest.lockId);
|
|
32
33
|
return {};
|
|
33
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionLockRpcLocal.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;
|
|
1
|
+
{"version":3,"file":"ConnectionLockRpcLocal.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,gEAO4C;AAG5C,2DAA0E;AAE1E,gDAAiG;AASjG,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,sBAAsB;IAEd,MAAM,CAA8B;IAErD,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAwB,EAAE,OAA0B;QAClE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,IAAA,qCAAuB,EAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC;YACtF,MAAM,QAAQ,GAAiB;gBAC3B,QAAQ,EAAE,KAAK;aAClB,CAAA;YACD,OAAO,QAAQ,CAAA;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;QACtE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAiB;YAC3B,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAA4B,EAAE,OAA0B;QACxE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5D,OAAO,EAAE,CAAA;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,OAA0B;QACnF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,CAAC,KAAK,CAAC,IAAA,wDAAoC,EAAC,oBAAoB,CAAC,GAAG,qCAAqC,CAAC,CAAA;QAEhH,IAAI,gBAAgB,CAAC,cAAc,KAAK,uBAAc,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA1CD,wDA0CC"}
|
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConnectionLockRpcRemote = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
5
|
const RpcRemote_1 = require("../dht/contact/RpcRemote");
|
|
6
|
-
const
|
|
6
|
+
const identifiers_1 = require("../identifiers");
|
|
7
7
|
const logger = new utils_1.Logger(module);
|
|
8
8
|
class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
|
|
9
9
|
async lockRequest(lockId) {
|
|
10
|
-
logger.trace(`Requesting locked connection to ${(0,
|
|
10
|
+
logger.trace(`Requesting locked connection to ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
|
|
11
11
|
const request = {
|
|
12
12
|
lockId
|
|
13
13
|
};
|
|
@@ -22,7 +22,7 @@ class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
unlockRequest(lockId) {
|
|
25
|
-
logger.trace(`Requesting connection to be unlocked from ${(0,
|
|
25
|
+
logger.trace(`Requesting connection to be unlocked from ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
|
|
26
26
|
const request = {
|
|
27
27
|
lockId
|
|
28
28
|
};
|
|
@@ -34,7 +34,7 @@ class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
async gracefulDisconnect(disconnectMode) {
|
|
37
|
-
logger.trace(`Notifying a graceful disconnect to ${(0,
|
|
37
|
+
logger.trace(`Notifying a graceful disconnect to ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
|
|
38
38
|
const request = {
|
|
39
39
|
disconnectMode
|
|
40
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionLockRpcRemote.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,wDAAoD;
|
|
1
|
+
{"version":3,"file":"ConnectionLockRpcRemote.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,wDAAoD;AAIpD,gDAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,uBAAwB,SAAQ,qBAAkC;IAEpE,KAAK,CAAC,WAAW,CAAC,MAAc;QACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QACxG,MAAM,OAAO,GAAgB;YACzB,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAA;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACxD,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,MAAc;QAC/B,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAkB;YAC3B,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,cAA8B;QAC1D,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3G,MAAM,OAAO,GAAqB;YAC9B,cAAc;SACjB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI,CAAE,4CAA4C;SAC9D,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AA1CD,0DA0CC"}
|
|
@@ -45,17 +45,17 @@ export declare class ConnectionManager extends EventEmitter<TransportEvents> imp
|
|
|
45
45
|
garbageCollectConnections(maxConnections: number, lastUsedLimit: number): void;
|
|
46
46
|
start(): Promise<void>;
|
|
47
47
|
stop(): Promise<void>;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
getLocalLockedConnectionCount(): number;
|
|
49
|
+
getRemoteLockedConnectionCount(): number;
|
|
50
|
+
getWeakLockedConnectionCount(): number;
|
|
51
51
|
send(message: Message, opts?: SendOptions): Promise<void>;
|
|
52
52
|
private isConnectionToSelf;
|
|
53
53
|
private isOwnWebsocketServer;
|
|
54
|
-
getConnection(
|
|
54
|
+
getConnection(nodeId: DhtAddress): ManagedConnection | undefined;
|
|
55
55
|
getLocalPeerDescriptor(): PeerDescriptor;
|
|
56
|
-
hasConnection(
|
|
57
|
-
hasLocalLockedConnection(
|
|
58
|
-
hasRemoteLockedConnection(
|
|
56
|
+
hasConnection(nodeId: DhtAddress): boolean;
|
|
57
|
+
hasLocalLockedConnection(nodeId: DhtAddress): boolean;
|
|
58
|
+
hasRemoteLockedConnection(nodeId: DhtAddress): boolean;
|
|
59
59
|
handleMessage(message: Message): void;
|
|
60
60
|
private onData;
|
|
61
61
|
private onConnected;
|
|
@@ -69,6 +69,6 @@ export declare class ConnectionManager extends EventEmitter<TransportEvents> imp
|
|
|
69
69
|
weakUnlockConnection(nodeId: DhtAddress): void;
|
|
70
70
|
private gracefullyDisconnectAsync;
|
|
71
71
|
private doGracefullyDisconnectAsync;
|
|
72
|
-
|
|
72
|
+
getConnections(): PeerDescriptor[];
|
|
73
73
|
private onConnectionCountChange;
|
|
74
74
|
}
|
|
@@ -29,7 +29,6 @@ const eventemitter3_1 = require("eventemitter3");
|
|
|
29
29
|
const SortedContactList_1 = require("../dht/contact/SortedContactList");
|
|
30
30
|
const DuplicateDetector_1 = require("../dht/routing/DuplicateDetector");
|
|
31
31
|
const Err = __importStar(require("../helpers/errors"));
|
|
32
|
-
const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
|
|
33
32
|
const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
|
|
34
33
|
const DhtRpc_client_1 = require("../proto/packages/dht/protos/DhtRpc.client");
|
|
35
34
|
const ITransport_1 = require("../transport/ITransport");
|
|
@@ -38,6 +37,8 @@ const ConnectionLockHandler_1 = require("./ConnectionLockHandler");
|
|
|
38
37
|
const ConnectionLockRpcRemote_1 = require("./ConnectionLockRpcRemote");
|
|
39
38
|
const NodeWebrtcConnection_1 = require("./webrtc/NodeWebrtcConnection");
|
|
40
39
|
const ConnectionLockRpcLocal_1 = require("./ConnectionLockRpcLocal");
|
|
40
|
+
const identifiers_1 = require("../identifiers");
|
|
41
|
+
const offering_1 = require("../helpers/offering");
|
|
41
42
|
var NatType;
|
|
42
43
|
(function (NatType) {
|
|
43
44
|
NatType["OPEN_INTERNET"] = "open_internet";
|
|
@@ -63,7 +64,7 @@ const INTERNAL_SERVICE_ID = 'system/connection-manager';
|
|
|
63
64
|
// - if ManagedConnection#peerDescriptor is never undefined
|
|
64
65
|
const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
|
|
65
66
|
if (peerDescriptor !== undefined) {
|
|
66
|
-
return (0,
|
|
67
|
+
return (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
70
|
return 'unknown';
|
|
@@ -71,13 +72,19 @@ const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
|
|
|
71
72
|
};
|
|
72
73
|
exports.getNodeIdOrUnknownFromPeerDescriptor = getNodeIdOrUnknownFromPeerDescriptor;
|
|
73
74
|
class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
75
|
+
config;
|
|
76
|
+
metricsContext;
|
|
77
|
+
// TODO use config option or named constant?
|
|
78
|
+
duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000);
|
|
79
|
+
metrics;
|
|
80
|
+
locks = new ConnectionLockHandler_1.ConnectionLockHandler();
|
|
81
|
+
connections = new Map();
|
|
82
|
+
connectorFacade;
|
|
83
|
+
rpcCommunicator;
|
|
84
|
+
disconnectorIntervalRef;
|
|
85
|
+
state = ConnectionManagerState.IDLE;
|
|
74
86
|
constructor(config) {
|
|
75
87
|
super();
|
|
76
|
-
// TODO use config option or named constant?
|
|
77
|
-
this.duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000, 100);
|
|
78
|
-
this.locks = new ConnectionLockHandler_1.ConnectionLockHandler();
|
|
79
|
-
this.connections = new Map();
|
|
80
|
-
this.state = ConnectionManagerState.IDLE;
|
|
81
88
|
this.config = config;
|
|
82
89
|
this.onData = this.onData.bind(this);
|
|
83
90
|
this.send = this.send.bind(this);
|
|
@@ -108,15 +115,15 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
108
115
|
});
|
|
109
116
|
this.rpcCommunicator.registerRpcMethod(DhtRpc_1.LockRequest, DhtRpc_1.LockResponse, 'lockRequest', (req, context) => lockRpcLocal.lockRequest(req, context));
|
|
110
117
|
this.rpcCommunicator.registerRpcNotification(DhtRpc_1.UnlockRequest, 'unlockRequest', (req, context) => lockRpcLocal.unlockRequest(req, context));
|
|
111
|
-
this.rpcCommunicator.
|
|
118
|
+
this.rpcCommunicator.registerRpcNotification(DhtRpc_1.DisconnectNotice, 'gracefulDisconnect', (req, context) => lockRpcLocal.gracefulDisconnect(req, context));
|
|
112
119
|
}
|
|
113
120
|
garbageCollectConnections(maxConnections, lastUsedLimit) {
|
|
114
121
|
if (this.connections.size <= maxConnections) {
|
|
115
122
|
return;
|
|
116
123
|
}
|
|
117
124
|
const disconnectionCandidates = new SortedContactList_1.SortedContactList({
|
|
118
|
-
referenceId: (0,
|
|
119
|
-
maxSize: 100000,
|
|
125
|
+
referenceId: (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()),
|
|
126
|
+
maxSize: 100000, // TODO use config option or named constant?
|
|
120
127
|
allowToContainReferenceId: false,
|
|
121
128
|
emitEvents: false
|
|
122
129
|
});
|
|
@@ -130,7 +137,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
130
137
|
const targetNum = this.connections.size - maxConnections;
|
|
131
138
|
for (let i = 0; i < sortedCandidates.length && i < targetNum; i++) {
|
|
132
139
|
const peerDescriptor = sortedCandidates[sortedCandidates.length - 1 - i].getPeerDescriptor();
|
|
133
|
-
logger.trace('garbageCollecting ' + (0,
|
|
140
|
+
logger.trace('garbageCollecting ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
|
|
134
141
|
this.gracefullyDisconnectAsync(peerDescriptor, DhtRpc_1.DisconnectMode.NORMAL).catch((_e) => { });
|
|
135
142
|
}
|
|
136
143
|
}
|
|
@@ -140,7 +147,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
140
147
|
}
|
|
141
148
|
this.state = ConnectionManagerState.RUNNING;
|
|
142
149
|
logger.trace(`Starting ConnectionManager...`);
|
|
143
|
-
await this.connectorFacade.start((connection) => this.onNewConnection(connection), (
|
|
150
|
+
await this.connectorFacade.start((connection) => this.onNewConnection(connection), (nodeId) => this.hasConnection(nodeId), this);
|
|
144
151
|
// Garbage collection of connections
|
|
145
152
|
this.disconnectorIntervalRef = setInterval(() => {
|
|
146
153
|
logger.trace('disconnectorInterval');
|
|
@@ -192,24 +199,24 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
192
199
|
// (i.e the this.gracefullyDisconnectAsync() calls above)
|
|
193
200
|
NodeWebrtcConnection_1.WEBRTC_CLEANUP.cleanUp();
|
|
194
201
|
}
|
|
195
|
-
|
|
196
|
-
return this.locks.
|
|
202
|
+
getLocalLockedConnectionCount() {
|
|
203
|
+
return this.locks.getLocalLockedConnectionCount();
|
|
197
204
|
}
|
|
198
|
-
|
|
199
|
-
return this.locks.
|
|
205
|
+
getRemoteLockedConnectionCount() {
|
|
206
|
+
return this.locks.getRemoteLockedConnectionCount();
|
|
200
207
|
}
|
|
201
|
-
|
|
202
|
-
return this.locks.
|
|
208
|
+
getWeakLockedConnectionCount() {
|
|
209
|
+
return this.locks.getWeakLockedConnectionCount();
|
|
203
210
|
}
|
|
204
211
|
async send(message, opts = ITransport_1.DEFAULT_SEND_OPTIONS) {
|
|
205
|
-
if (this.state === ConnectionManagerState.STOPPED && !opts.sendIfStopped) {
|
|
212
|
+
if ((this.state === ConnectionManagerState.STOPPED || this.state === ConnectionManagerState.STOPPING) && !opts.sendIfStopped) {
|
|
206
213
|
return;
|
|
207
214
|
}
|
|
208
215
|
const peerDescriptor = message.targetDescriptor;
|
|
209
216
|
if (this.isConnectionToSelf(peerDescriptor)) {
|
|
210
217
|
throw new Err.CannotConnectToSelf('Cannot send to self');
|
|
211
218
|
}
|
|
212
|
-
const nodeId = (0,
|
|
219
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
213
220
|
logger.trace(`Sending message to: ${nodeId}`);
|
|
214
221
|
message = {
|
|
215
222
|
...message,
|
|
@@ -229,7 +236,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
229
236
|
return connection.send(binary, opts.connect);
|
|
230
237
|
}
|
|
231
238
|
isConnectionToSelf(peerDescriptor) {
|
|
232
|
-
return (0,
|
|
239
|
+
return (0, identifiers_1.areEqualPeerDescriptors)(peerDescriptor, this.getLocalPeerDescriptor()) || this.isOwnWebsocketServer(peerDescriptor);
|
|
233
240
|
}
|
|
234
241
|
isOwnWebsocketServer(peerDescriptor) {
|
|
235
242
|
const localPeerDescriptor = this.getLocalPeerDescriptor();
|
|
@@ -241,23 +248,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
241
248
|
return false;
|
|
242
249
|
}
|
|
243
250
|
}
|
|
244
|
-
getConnection(
|
|
245
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
251
|
+
getConnection(nodeId) {
|
|
246
252
|
return this.connections.get(nodeId);
|
|
247
253
|
}
|
|
248
254
|
getLocalPeerDescriptor() {
|
|
249
255
|
return this.connectorFacade.getLocalPeerDescriptor();
|
|
250
256
|
}
|
|
251
|
-
hasConnection(
|
|
252
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
257
|
+
hasConnection(nodeId) {
|
|
253
258
|
return this.connections.has(nodeId);
|
|
254
259
|
}
|
|
255
|
-
hasLocalLockedConnection(
|
|
256
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
260
|
+
hasLocalLockedConnection(nodeId) {
|
|
257
261
|
return this.locks.isLocalLocked(nodeId);
|
|
258
262
|
}
|
|
259
|
-
hasRemoteLockedConnection(
|
|
260
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
263
|
+
hasRemoteLockedConnection(nodeId) {
|
|
261
264
|
return this.locks.isRemoteLocked(nodeId);
|
|
262
265
|
}
|
|
263
266
|
handleMessage(message) {
|
|
@@ -267,7 +270,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
267
270
|
return;
|
|
268
271
|
}
|
|
269
272
|
if (this.duplicateMessageDetector.isMostLikelyDuplicate(message.messageId)) {
|
|
270
|
-
logger.trace('handleMessage filtered duplicate ' + (0,
|
|
273
|
+
logger.trace('handleMessage filtered duplicate ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
|
|
271
274
|
+ ' ' + message.serviceId + ' ' + message.messageId);
|
|
272
275
|
return;
|
|
273
276
|
}
|
|
@@ -276,7 +279,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
276
279
|
this.rpcCommunicator?.handleMessageFromPeer(message);
|
|
277
280
|
}
|
|
278
281
|
else {
|
|
279
|
-
logger.trace('emit "message" ' + (0,
|
|
282
|
+
logger.trace('emit "message" ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
|
|
280
283
|
+ ' ' + message.serviceId + ' ' + message.messageId);
|
|
281
284
|
this.emit('message', message);
|
|
282
285
|
}
|
|
@@ -306,14 +309,14 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
306
309
|
onConnected(connection) {
|
|
307
310
|
const peerDescriptor = connection.getPeerDescriptor();
|
|
308
311
|
this.emit('connected', peerDescriptor);
|
|
309
|
-
logger.trace((0,
|
|
312
|
+
logger.trace((0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor) + ' onConnected() ' + connection.connectionType);
|
|
310
313
|
this.onConnectionCountChange();
|
|
311
314
|
}
|
|
312
315
|
onDisconnected(connection, gracefulLeave) {
|
|
313
|
-
const nodeId = (0,
|
|
316
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(connection.getPeerDescriptor());
|
|
314
317
|
logger.trace(nodeId + ' onDisconnected() gracefulLeave: ' + gracefulLeave);
|
|
315
318
|
const storedConnection = this.connections.get(nodeId);
|
|
316
|
-
if (storedConnection && storedConnection.connectionId
|
|
319
|
+
if (storedConnection && (storedConnection.connectionId === connection.connectionId)) {
|
|
317
320
|
this.locks.clearAllLocks(nodeId);
|
|
318
321
|
this.connections.delete(nodeId);
|
|
319
322
|
logger.trace(nodeId + ' deleted connection in onDisconnected() gracefulLeave: ' + gracefulLeave);
|
|
@@ -323,8 +326,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
323
326
|
else {
|
|
324
327
|
logger.trace(nodeId + ' onDisconnected() did nothing, no such connection in connectionManager');
|
|
325
328
|
if (storedConnection) {
|
|
326
|
-
|
|
327
|
-
logger.trace(nodeId + ' connectionIds do not match ' + connectionId + ' ' + connection.connectionId.toString());
|
|
329
|
+
logger.trace(nodeId + ' connectionIds do not match ' + storedConnection.connectionId + ' ' + connection.connectionId.toString());
|
|
328
330
|
}
|
|
329
331
|
}
|
|
330
332
|
}
|
|
@@ -351,11 +353,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
351
353
|
return true;
|
|
352
354
|
}
|
|
353
355
|
acceptNewConnection(newConnection) {
|
|
354
|
-
const nodeId = (0,
|
|
356
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
|
|
355
357
|
logger.trace(nodeId + ' acceptIncomingConnection()');
|
|
356
358
|
if (this.connections.has(nodeId)) {
|
|
357
|
-
|
|
358
|
-
if (newPeerID.hasSmallerHashThan((0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
|
|
359
|
+
if ((0, offering_1.getOfferer)((0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()), nodeId) === 'remote') {
|
|
359
360
|
logger.trace(nodeId + ' acceptIncomingConnection() replace current connection');
|
|
360
361
|
// replace the current connection
|
|
361
362
|
const oldConnection = this.connections.get(nodeId);
|
|
@@ -376,7 +377,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
376
377
|
return true;
|
|
377
378
|
}
|
|
378
379
|
async closeConnection(peerDescriptor, gracefulLeave, reason) {
|
|
379
|
-
const nodeId = (0,
|
|
380
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
380
381
|
logger.trace(nodeId + ' ' + 'closeConnection() ' + reason);
|
|
381
382
|
this.locks.clearAllLocks(nodeId);
|
|
382
383
|
if (this.connections.has(nodeId)) {
|
|
@@ -389,10 +390,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
389
390
|
}
|
|
390
391
|
}
|
|
391
392
|
lockConnection(targetDescriptor, lockId) {
|
|
392
|
-
if (this.state === ConnectionManagerState.STOPPED || (0,
|
|
393
|
+
if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
|
|
393
394
|
return;
|
|
394
395
|
}
|
|
395
|
-
const nodeId = (0,
|
|
396
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
|
|
396
397
|
const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
|
|
397
398
|
this.locks.addLocalLocked(nodeId, lockId);
|
|
398
399
|
rpcRemote.lockRequest(lockId)
|
|
@@ -400,10 +401,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
400
401
|
.catch((err) => { logger.debug(err); });
|
|
401
402
|
}
|
|
402
403
|
unlockConnection(targetDescriptor, lockId) {
|
|
403
|
-
if (this.state === ConnectionManagerState.STOPPED || (0,
|
|
404
|
+
if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
|
|
404
405
|
return;
|
|
405
406
|
}
|
|
406
|
-
const nodeId = (0,
|
|
407
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
|
|
407
408
|
this.locks.removeLocalLocked(nodeId, lockId);
|
|
408
409
|
const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
|
|
409
410
|
if (this.connections.has(nodeId)) {
|
|
@@ -411,19 +412,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
411
412
|
}
|
|
412
413
|
}
|
|
413
414
|
weakLockConnection(nodeId) {
|
|
414
|
-
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0,
|
|
415
|
+
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
|
|
415
416
|
return;
|
|
416
417
|
}
|
|
417
418
|
this.locks.addWeakLocked(nodeId);
|
|
418
419
|
}
|
|
419
420
|
weakUnlockConnection(nodeId) {
|
|
420
|
-
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0,
|
|
421
|
+
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
|
|
421
422
|
return;
|
|
422
423
|
}
|
|
423
424
|
this.locks.removeWeakLocked(nodeId);
|
|
424
425
|
}
|
|
425
426
|
async gracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
|
|
426
|
-
const connection = this.connections.get((0,
|
|
427
|
+
const connection = this.connections.get((0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor));
|
|
427
428
|
if (!connection) {
|
|
428
429
|
logger.debug('gracefullyDisconnectedAsync() tried on a non-existing connection');
|
|
429
430
|
return;
|
|
@@ -445,15 +446,13 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
445
446
|
resolve();
|
|
446
447
|
});
|
|
447
448
|
});
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
.
|
|
451
|
-
|
|
452
|
-
});
|
|
453
|
-
await promise;
|
|
449
|
+
await Promise.all([
|
|
450
|
+
promise,
|
|
451
|
+
this.doGracefullyDisconnectAsync(targetDescriptor, disconnectMode)
|
|
452
|
+
]);
|
|
454
453
|
}
|
|
455
454
|
async doGracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
|
|
456
|
-
const nodeId = (0,
|
|
455
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
|
|
457
456
|
logger.trace(nodeId + ' gracefullyDisconnectAsync()');
|
|
458
457
|
const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
|
|
459
458
|
try {
|
|
@@ -463,7 +462,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
463
462
|
logger.trace(nodeId + ' remote.gracefulDisconnect() failed' + ex);
|
|
464
463
|
}
|
|
465
464
|
}
|
|
466
|
-
|
|
465
|
+
getConnections() {
|
|
467
466
|
return Array.from(this.connections.values())
|
|
468
467
|
.filter((managedConnection) => managedConnection.isHandshakeCompleted())
|
|
469
468
|
.map((managedConnection) => managedConnection.getPeerDescriptor());
|