@streamr/dht 100.0.0-testnet-two.3 → 100.0.0-testnet-three.0
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 -8
- 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 -57
- 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.js.map +1 -1
- package/dist/src/connection/connectivityRequestHandler.js +5 -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 +24 -15
- 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.d.ts +8 -5
- 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.d.ts +0 -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.d.ts +10 -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 +22 -12
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +11 -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 -8
- package/protos/DhtRpc.proto +7 -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 -40
- package/src/connection/ConnectorFacade.ts +3 -2
- package/src/connection/IConnection.ts +2 -8
- package/src/connection/ManagedConnection.ts +3 -3
- package/src/connection/connectivityRequestHandler.ts +7 -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 +7 -7
- package/src/connection/websocket/ClientWebsocket.ts +3 -2
- package/src/connection/websocket/ServerWebsocket.ts +17 -1
- package/src/connection/websocket/WebsocketConnector.ts +10 -9
- 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 +12 -9
- package/src/proto/google/protobuf/empty.ts +2 -5
- package/src/proto/google/protobuf/timestamp.ts +14 -5
- 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 +32 -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/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 +5 -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.0",
|
|
4
4
|
"description": "Streamr Network DHT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@protobuf-ts/runtime": "^2.8.2",
|
|
33
33
|
"@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-
|
|
34
|
+
"@streamr/autocertifier-client": "100.0.0-testnet-three.0",
|
|
35
|
+
"@streamr/proto-rpc": "100.0.0-testnet-three.0",
|
|
36
|
+
"@streamr/utils": "100.0.0-testnet-three.0",
|
|
37
37
|
"eventemitter3": "^5.0.0",
|
|
38
38
|
"heap": "^0.2.6",
|
|
39
39
|
"ipaddr.js": "^2.0.1",
|
|
@@ -45,19 +45,19 @@
|
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@streamr/browser-test-runner": "^0.0.1",
|
|
48
|
-
"@streamr/test-utils": "100.0.0-testnet-
|
|
48
|
+
"@streamr/test-utils": "100.0.0-testnet-three.0",
|
|
49
49
|
"@types/express": "^4.17.21",
|
|
50
50
|
"@types/heap": "^0.2.34",
|
|
51
51
|
"@types/k-bucket": "^5.0.1",
|
|
52
52
|
"@types/lodash": "^4.14.202",
|
|
53
|
-
"@types/sinon": "^
|
|
53
|
+
"@types/sinon": "^17.0.3",
|
|
54
54
|
"@types/uuid": "^9.0.7",
|
|
55
|
-
"@types/websocket": "^1.0.
|
|
55
|
+
"@types/websocket": "^1.0.10",
|
|
56
56
|
"express": "^4.17.1",
|
|
57
57
|
"jest-leak-detector": "^27.3.1",
|
|
58
58
|
"patch-package": "^8.0.0",
|
|
59
59
|
"ts-essentials": "^9.4.1",
|
|
60
|
-
"ts-node": "^10.9.
|
|
60
|
+
"ts-node": "^10.9.2"
|
|
61
61
|
},
|
|
62
62
|
"optionalDependencies": {
|
|
63
63
|
"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,8 +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
|
-
const protoToString_1 = require("../helpers/protoToString");
|
|
34
32
|
const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
|
|
35
33
|
const DhtRpc_client_1 = require("../proto/packages/dht/protos/DhtRpc.client");
|
|
36
34
|
const ITransport_1 = require("../transport/ITransport");
|
|
@@ -39,6 +37,8 @@ const ConnectionLockHandler_1 = require("./ConnectionLockHandler");
|
|
|
39
37
|
const ConnectionLockRpcRemote_1 = require("./ConnectionLockRpcRemote");
|
|
40
38
|
const NodeWebrtcConnection_1 = require("./webrtc/NodeWebrtcConnection");
|
|
41
39
|
const ConnectionLockRpcLocal_1 = require("./ConnectionLockRpcLocal");
|
|
40
|
+
const identifiers_1 = require("../identifiers");
|
|
41
|
+
const offering_1 = require("../helpers/offering");
|
|
42
42
|
var NatType;
|
|
43
43
|
(function (NatType) {
|
|
44
44
|
NatType["OPEN_INTERNET"] = "open_internet";
|
|
@@ -64,7 +64,7 @@ const INTERNAL_SERVICE_ID = 'system/connection-manager';
|
|
|
64
64
|
// - if ManagedConnection#peerDescriptor is never undefined
|
|
65
65
|
const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
|
|
66
66
|
if (peerDescriptor !== undefined) {
|
|
67
|
-
return (0,
|
|
67
|
+
return (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
68
68
|
}
|
|
69
69
|
else {
|
|
70
70
|
return 'unknown';
|
|
@@ -72,13 +72,19 @@ const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
|
|
|
72
72
|
};
|
|
73
73
|
exports.getNodeIdOrUnknownFromPeerDescriptor = getNodeIdOrUnknownFromPeerDescriptor;
|
|
74
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;
|
|
75
86
|
constructor(config) {
|
|
76
87
|
super();
|
|
77
|
-
// TODO use config option or named constant?
|
|
78
|
-
this.duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000, 100);
|
|
79
|
-
this.locks = new ConnectionLockHandler_1.ConnectionLockHandler();
|
|
80
|
-
this.connections = new Map();
|
|
81
|
-
this.state = ConnectionManagerState.IDLE;
|
|
82
88
|
this.config = config;
|
|
83
89
|
this.onData = this.onData.bind(this);
|
|
84
90
|
this.send = this.send.bind(this);
|
|
@@ -109,15 +115,15 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
109
115
|
});
|
|
110
116
|
this.rpcCommunicator.registerRpcMethod(DhtRpc_1.LockRequest, DhtRpc_1.LockResponse, 'lockRequest', (req, context) => lockRpcLocal.lockRequest(req, context));
|
|
111
117
|
this.rpcCommunicator.registerRpcNotification(DhtRpc_1.UnlockRequest, 'unlockRequest', (req, context) => lockRpcLocal.unlockRequest(req, context));
|
|
112
|
-
this.rpcCommunicator.
|
|
118
|
+
this.rpcCommunicator.registerRpcNotification(DhtRpc_1.DisconnectNotice, 'gracefulDisconnect', (req, context) => lockRpcLocal.gracefulDisconnect(req, context));
|
|
113
119
|
}
|
|
114
120
|
garbageCollectConnections(maxConnections, lastUsedLimit) {
|
|
115
121
|
if (this.connections.size <= maxConnections) {
|
|
116
122
|
return;
|
|
117
123
|
}
|
|
118
124
|
const disconnectionCandidates = new SortedContactList_1.SortedContactList({
|
|
119
|
-
referenceId: (0,
|
|
120
|
-
maxSize: 100000,
|
|
125
|
+
referenceId: (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()),
|
|
126
|
+
maxSize: 100000, // TODO use config option or named constant?
|
|
121
127
|
allowToContainReferenceId: false,
|
|
122
128
|
emitEvents: false
|
|
123
129
|
});
|
|
@@ -131,7 +137,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
131
137
|
const targetNum = this.connections.size - maxConnections;
|
|
132
138
|
for (let i = 0; i < sortedCandidates.length && i < targetNum; i++) {
|
|
133
139
|
const peerDescriptor = sortedCandidates[sortedCandidates.length - 1 - i].getPeerDescriptor();
|
|
134
|
-
logger.trace('garbageCollecting ' + (0,
|
|
140
|
+
logger.trace('garbageCollecting ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
|
|
135
141
|
this.gracefullyDisconnectAsync(peerDescriptor, DhtRpc_1.DisconnectMode.NORMAL).catch((_e) => { });
|
|
136
142
|
}
|
|
137
143
|
}
|
|
@@ -141,7 +147,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
141
147
|
}
|
|
142
148
|
this.state = ConnectionManagerState.RUNNING;
|
|
143
149
|
logger.trace(`Starting ConnectionManager...`);
|
|
144
|
-
await this.connectorFacade.start((connection) => this.onNewConnection(connection), (
|
|
150
|
+
await this.connectorFacade.start((connection) => this.onNewConnection(connection), (nodeId) => this.hasConnection(nodeId), this);
|
|
145
151
|
// Garbage collection of connections
|
|
146
152
|
this.disconnectorIntervalRef = setInterval(() => {
|
|
147
153
|
logger.trace('disconnectorInterval');
|
|
@@ -193,24 +199,24 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
193
199
|
// (i.e the this.gracefullyDisconnectAsync() calls above)
|
|
194
200
|
NodeWebrtcConnection_1.WEBRTC_CLEANUP.cleanUp();
|
|
195
201
|
}
|
|
196
|
-
|
|
197
|
-
return this.locks.
|
|
202
|
+
getLocalLockedConnectionCount() {
|
|
203
|
+
return this.locks.getLocalLockedConnectionCount();
|
|
198
204
|
}
|
|
199
|
-
|
|
200
|
-
return this.locks.
|
|
205
|
+
getRemoteLockedConnectionCount() {
|
|
206
|
+
return this.locks.getRemoteLockedConnectionCount();
|
|
201
207
|
}
|
|
202
|
-
|
|
203
|
-
return this.locks.
|
|
208
|
+
getWeakLockedConnectionCount() {
|
|
209
|
+
return this.locks.getWeakLockedConnectionCount();
|
|
204
210
|
}
|
|
205
211
|
async send(message, opts = ITransport_1.DEFAULT_SEND_OPTIONS) {
|
|
206
|
-
if (this.state === ConnectionManagerState.STOPPED && !opts.sendIfStopped) {
|
|
212
|
+
if ((this.state === ConnectionManagerState.STOPPED || this.state === ConnectionManagerState.STOPPING) && !opts.sendIfStopped) {
|
|
207
213
|
return;
|
|
208
214
|
}
|
|
209
215
|
const peerDescriptor = message.targetDescriptor;
|
|
210
216
|
if (this.isConnectionToSelf(peerDescriptor)) {
|
|
211
217
|
throw new Err.CannotConnectToSelf('Cannot send to self');
|
|
212
218
|
}
|
|
213
|
-
const nodeId = (0,
|
|
219
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
214
220
|
logger.trace(`Sending message to: ${nodeId}`);
|
|
215
221
|
message = {
|
|
216
222
|
...message,
|
|
@@ -230,7 +236,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
230
236
|
return connection.send(binary, opts.connect);
|
|
231
237
|
}
|
|
232
238
|
isConnectionToSelf(peerDescriptor) {
|
|
233
|
-
return (0,
|
|
239
|
+
return (0, identifiers_1.areEqualPeerDescriptors)(peerDescriptor, this.getLocalPeerDescriptor()) || this.isOwnWebsocketServer(peerDescriptor);
|
|
234
240
|
}
|
|
235
241
|
isOwnWebsocketServer(peerDescriptor) {
|
|
236
242
|
const localPeerDescriptor = this.getLocalPeerDescriptor();
|
|
@@ -242,23 +248,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
242
248
|
return false;
|
|
243
249
|
}
|
|
244
250
|
}
|
|
245
|
-
getConnection(
|
|
246
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
251
|
+
getConnection(nodeId) {
|
|
247
252
|
return this.connections.get(nodeId);
|
|
248
253
|
}
|
|
249
254
|
getLocalPeerDescriptor() {
|
|
250
255
|
return this.connectorFacade.getLocalPeerDescriptor();
|
|
251
256
|
}
|
|
252
|
-
hasConnection(
|
|
253
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
257
|
+
hasConnection(nodeId) {
|
|
254
258
|
return this.connections.has(nodeId);
|
|
255
259
|
}
|
|
256
|
-
hasLocalLockedConnection(
|
|
257
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
260
|
+
hasLocalLockedConnection(nodeId) {
|
|
258
261
|
return this.locks.isLocalLocked(nodeId);
|
|
259
262
|
}
|
|
260
|
-
hasRemoteLockedConnection(
|
|
261
|
-
const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
263
|
+
hasRemoteLockedConnection(nodeId) {
|
|
262
264
|
return this.locks.isRemoteLocked(nodeId);
|
|
263
265
|
}
|
|
264
266
|
handleMessage(message) {
|
|
@@ -268,7 +270,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
268
270
|
return;
|
|
269
271
|
}
|
|
270
272
|
if (this.duplicateMessageDetector.isMostLikelyDuplicate(message.messageId)) {
|
|
271
|
-
logger.trace('handleMessage filtered duplicate ' + (0,
|
|
273
|
+
logger.trace('handleMessage filtered duplicate ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
|
|
272
274
|
+ ' ' + message.serviceId + ' ' + message.messageId);
|
|
273
275
|
return;
|
|
274
276
|
}
|
|
@@ -277,7 +279,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
277
279
|
this.rpcCommunicator?.handleMessageFromPeer(message);
|
|
278
280
|
}
|
|
279
281
|
else {
|
|
280
|
-
logger.trace('emit "message" ' + (0,
|
|
282
|
+
logger.trace('emit "message" ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
|
|
281
283
|
+ ' ' + message.serviceId + ' ' + message.messageId);
|
|
282
284
|
this.emit('message', message);
|
|
283
285
|
}
|
|
@@ -291,7 +293,6 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
291
293
|
let message;
|
|
292
294
|
try {
|
|
293
295
|
message = DhtRpc_1.Message.fromBinary(data);
|
|
294
|
-
logger.trace(`received protojson: ${(0, protoToString_1.protoToString)(message, DhtRpc_1.Message)}`);
|
|
295
296
|
}
|
|
296
297
|
catch (e) {
|
|
297
298
|
logger.debug(`Parsing incoming data into Message failed: ${e}`);
|
|
@@ -308,14 +309,14 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
308
309
|
onConnected(connection) {
|
|
309
310
|
const peerDescriptor = connection.getPeerDescriptor();
|
|
310
311
|
this.emit('connected', peerDescriptor);
|
|
311
|
-
logger.trace((0,
|
|
312
|
+
logger.trace((0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor) + ' onConnected() ' + connection.connectionType);
|
|
312
313
|
this.onConnectionCountChange();
|
|
313
314
|
}
|
|
314
315
|
onDisconnected(connection, gracefulLeave) {
|
|
315
|
-
const nodeId = (0,
|
|
316
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(connection.getPeerDescriptor());
|
|
316
317
|
logger.trace(nodeId + ' onDisconnected() gracefulLeave: ' + gracefulLeave);
|
|
317
318
|
const storedConnection = this.connections.get(nodeId);
|
|
318
|
-
if (storedConnection && storedConnection.connectionId
|
|
319
|
+
if (storedConnection && (storedConnection.connectionId === connection.connectionId)) {
|
|
319
320
|
this.locks.clearAllLocks(nodeId);
|
|
320
321
|
this.connections.delete(nodeId);
|
|
321
322
|
logger.trace(nodeId + ' deleted connection in onDisconnected() gracefulLeave: ' + gracefulLeave);
|
|
@@ -325,8 +326,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
325
326
|
else {
|
|
326
327
|
logger.trace(nodeId + ' onDisconnected() did nothing, no such connection in connectionManager');
|
|
327
328
|
if (storedConnection) {
|
|
328
|
-
|
|
329
|
-
logger.trace(nodeId + ' connectionIds do not match ' + connectionId + ' ' + connection.connectionId.toString());
|
|
329
|
+
logger.trace(nodeId + ' connectionIds do not match ' + storedConnection.connectionId + ' ' + connection.connectionId.toString());
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
332
|
}
|
|
@@ -353,11 +353,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
353
353
|
return true;
|
|
354
354
|
}
|
|
355
355
|
acceptNewConnection(newConnection) {
|
|
356
|
-
const nodeId = (0,
|
|
356
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
|
|
357
357
|
logger.trace(nodeId + ' acceptIncomingConnection()');
|
|
358
358
|
if (this.connections.has(nodeId)) {
|
|
359
|
-
|
|
360
|
-
if (newPeerID.hasSmallerHashThan((0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
|
|
359
|
+
if ((0, offering_1.getOfferer)((0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()), nodeId) === 'remote') {
|
|
361
360
|
logger.trace(nodeId + ' acceptIncomingConnection() replace current connection');
|
|
362
361
|
// replace the current connection
|
|
363
362
|
const oldConnection = this.connections.get(nodeId);
|
|
@@ -378,7 +377,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
378
377
|
return true;
|
|
379
378
|
}
|
|
380
379
|
async closeConnection(peerDescriptor, gracefulLeave, reason) {
|
|
381
|
-
const nodeId = (0,
|
|
380
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
382
381
|
logger.trace(nodeId + ' ' + 'closeConnection() ' + reason);
|
|
383
382
|
this.locks.clearAllLocks(nodeId);
|
|
384
383
|
if (this.connections.has(nodeId)) {
|
|
@@ -391,10 +390,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
391
390
|
}
|
|
392
391
|
}
|
|
393
392
|
lockConnection(targetDescriptor, lockId) {
|
|
394
|
-
if (this.state === ConnectionManagerState.STOPPED || (0,
|
|
393
|
+
if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
|
|
395
394
|
return;
|
|
396
395
|
}
|
|
397
|
-
const nodeId = (0,
|
|
396
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
|
|
398
397
|
const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
|
|
399
398
|
this.locks.addLocalLocked(nodeId, lockId);
|
|
400
399
|
rpcRemote.lockRequest(lockId)
|
|
@@ -402,10 +401,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
402
401
|
.catch((err) => { logger.debug(err); });
|
|
403
402
|
}
|
|
404
403
|
unlockConnection(targetDescriptor, lockId) {
|
|
405
|
-
if (this.state === ConnectionManagerState.STOPPED || (0,
|
|
404
|
+
if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
|
|
406
405
|
return;
|
|
407
406
|
}
|
|
408
|
-
const nodeId = (0,
|
|
407
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
|
|
409
408
|
this.locks.removeLocalLocked(nodeId, lockId);
|
|
410
409
|
const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
|
|
411
410
|
if (this.connections.has(nodeId)) {
|
|
@@ -413,19 +412,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
413
412
|
}
|
|
414
413
|
}
|
|
415
414
|
weakLockConnection(nodeId) {
|
|
416
|
-
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0,
|
|
415
|
+
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
|
|
417
416
|
return;
|
|
418
417
|
}
|
|
419
418
|
this.locks.addWeakLocked(nodeId);
|
|
420
419
|
}
|
|
421
420
|
weakUnlockConnection(nodeId) {
|
|
422
|
-
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0,
|
|
421
|
+
if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
|
|
423
422
|
return;
|
|
424
423
|
}
|
|
425
424
|
this.locks.removeWeakLocked(nodeId);
|
|
426
425
|
}
|
|
427
426
|
async gracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
|
|
428
|
-
const connection = this.connections.get((0,
|
|
427
|
+
const connection = this.connections.get((0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor));
|
|
429
428
|
if (!connection) {
|
|
430
429
|
logger.debug('gracefullyDisconnectedAsync() tried on a non-existing connection');
|
|
431
430
|
return;
|
|
@@ -447,15 +446,13 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
447
446
|
resolve();
|
|
448
447
|
});
|
|
449
448
|
});
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
.
|
|
453
|
-
|
|
454
|
-
});
|
|
455
|
-
await promise;
|
|
449
|
+
await Promise.all([
|
|
450
|
+
promise,
|
|
451
|
+
this.doGracefullyDisconnectAsync(targetDescriptor, disconnectMode)
|
|
452
|
+
]);
|
|
456
453
|
}
|
|
457
454
|
async doGracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
|
|
458
|
-
const nodeId = (0,
|
|
455
|
+
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
|
|
459
456
|
logger.trace(nodeId + ' gracefullyDisconnectAsync()');
|
|
460
457
|
const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
|
|
461
458
|
try {
|
|
@@ -465,7 +462,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
|
465
462
|
logger.trace(nodeId + ' remote.gracefulDisconnect() failed' + ex);
|
|
466
463
|
}
|
|
467
464
|
}
|
|
468
|
-
|
|
465
|
+
getConnections() {
|
|
469
466
|
return Array.from(this.connections.values())
|
|
470
467
|
.filter((managedConnection) => managedConnection.isHandshakeCompleted())
|
|
471
468
|
.map((managedConnection) => managedConnection.getPeerDescriptor());
|