Skip to content

Commit

Permalink
Linting
Browse files Browse the repository at this point in the history
  • Loading branch information
islathehut committed Mar 19, 2024
1 parent f89ce95 commit 7079682
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -397,17 +397,20 @@ export class ConnectionsManagerService extends EventEmitter implements OnModuleI
await this.libp2pService.createInstance(params)

// Libp2p event listeners
this.libp2pService.on(Libp2pEvents.PEER_CONNECTED, async (payload: PeersNetworkDataPayload) => {
const peerStats: { [peerId: string]: NetworkStats } = await payload.peers.reduce(async (updateObj, peer) => {
return {
...(await updateObj),
[peer.peer]: {
peerId: peer.peer,
lastSeen: peer.lastSeen,
connectionTime: peer.connectionDuration
} as NetworkStats
}
}, Promise.resolve({} as { [peerId: string]: NetworkStats }))
this.libp2pService.on(Libp2pEvents.PEER_CONNECTED, async (payload: PeersNetworkDataPayload) => {
const peerStats: { [peerId: string]: NetworkStats } = await payload.peers.reduce(
async (updateObj, peer) => {
return {
...(await updateObj),
[peer.peer]: {
peerId: peer.peer,
lastSeen: peer.lastSeen,
connectionTime: peer.connectionDuration,
} as NetworkStats,
}
},
Promise.resolve({} as { [peerId: string]: NetworkStats })
)
await this.localDbService.update(LocalDBKeys.PEERS, peerStats)
this.serverIoProvider.io.emit(SocketActionTypes.PEER_CONNECTED, payload)
})
Expand Down
22 changes: 15 additions & 7 deletions packages/backend/src/nest/libp2p/libp2p.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ import { mplex } from '@libp2p/mplex'
import { multiaddr } from '@multiformats/multiaddr'
import { Inject, Injectable } from '@nestjs/common'
import { createLibp2pAddress, createLibp2pListenAddress } from '@quiet/common'
import { ConnectionProcessInfo, type NetworkDataPayload, PeerId, SocketActionTypes, PeersNetworkDataPayload } from '@quiet/types'
import {
ConnectionProcessInfo,
type NetworkDataPayload,
PeerId,
SocketActionTypes,
PeersNetworkDataPayload,
} from '@quiet/types'
import crypto from 'crypto'
import { EventEmitter } from 'events'
import { Agent } from 'https'
Expand Down Expand Up @@ -164,12 +170,14 @@ export class Libp2pService extends EventEmitter {
this.logger(`${localPeerId} has ${this.libp2pInstance?.getConnections().length} open connections`)

const payload: PeersNetworkDataPayload = {
peers: [{
peer: remotePeerId,
lastSeen: now.toSeconds(),
connectionDuration: 0
}],
};
peers: [
{
peer: remotePeerId,
lastSeen: now.toSeconds(),
connectionDuration: 0,
},
],
}

this.logger(`Emitting ${Libp2pEvents.PEER_CONNECTED} event with payload ${JSON.stringify(payload)}`)
this.emit(Libp2pEvents.PEER_CONNECTED, payload)
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/nest/tor/tor-control.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export class TorControl {
constructor(
@Inject(TOR_CONTROL_PARAMS) public torControlParams: TorControlParams,
@Inject(CONFIG_OPTIONS) public configOptions: ConfigOptions,
@Inject(SERVER_IO_PROVIDER) public readonly serverIoProvider: ServerIoProviderTypes,
@Inject(SERVER_IO_PROVIDER) public readonly serverIoProvider: ServerIoProviderTypes
) {
this.isSending = false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,11 @@ export const BasicMessageComponent: React.FC<BasicMessageProps & FileActionsProp
const peersDisconnectedRecently = allPeersDisconnectedTime != null && allPeersDisconnectedTime < messages[0].createdAt
const noPeersThisSession = allPeersDisconnectedTime == null && !isConnectedToOtherPeers
const isUnsent =
!infoMessage && communityHasPeers && isRecent && !isConnectedToOtherPeers && (noPeersThisSession || peersDisconnectedRecently)
!infoMessage &&
communityHasPeers &&
isRecent &&
!isConnectedToOtherPeers &&
(noPeersThisSession || peersDisconnectedRecently)

return (
<StyledListItem
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,38 +34,46 @@ describe('communitiesSelectors', () => {

// This peer should be first in the list as it is the most recently seen one.
store.dispatch(
connectionActions.updateNetworkData([{
peer: 'Qmd35TsAvtskei8zWY3A65ifNWcY4x4SdqkQDHMkH5xPF9',
connectionDuration: 50,
lastSeen: 1000,
}])
connectionActions.updateNetworkData([
{
peer: 'Qmd35TsAvtskei8zWY3A65ifNWcY4x4SdqkQDHMkH5xPF9',
connectionDuration: 50,
lastSeen: 1000,
},
])
)

// This peer should be second as it has the most shared uptime
store.dispatch(
connectionActions.updateNetworkData([{
peer: 'QmQEk68gnPTRhfBvRAPWXjjXjPydV1MvvZGGJF7W7w2Sv5',
connectionDuration: 500,
lastSeen: 900,
}])
connectionActions.updateNetworkData([
{
peer: 'QmQEk68gnPTRhfBvRAPWXjjXjPydV1MvvZGGJF7W7w2Sv5',
connectionDuration: 500,
lastSeen: 900,
},
])
)

// This is actually the third one on the list of last seen peers and it goes next, note that the upper peer which should go before that is already in the list.
store.dispatch(
connectionActions.updateNetworkData([{
peer: 'QmbrDuN2oCb8G2e1ajRzpfnALGbeFDYFSoVCBhUYGLSeRD',
connectionDuration: 200,
lastSeen: 500,
}])
connectionActions.updateNetworkData([
{
peer: 'QmbrDuN2oCb8G2e1ajRzpfnALGbeFDYFSoVCBhUYGLSeRD',
connectionDuration: 200,
lastSeen: 500,
},
])
)

// This is the least valuable peer so it goes last. Rmaining peers, without any network data will be concated to the end of the list.
store.dispatch(
connectionActions.updateNetworkData([{
peer: 'QmTjQLMxJq74yXWBabh1VM8hZsRNhci4wfbVz6vFhLH5am',
connectionDuration: 100,
lastSeen: 100,
}])
connectionActions.updateNetworkData([
{
peer: 'QmTjQLMxJq74yXWBabh1VM8hZsRNhci4wfbVz6vFhLH5am',
connectionDuration: 100,
lastSeen: 100,
},
])
)

const expectedArray = [
Expand Down
4 changes: 2 additions & 2 deletions packages/types/src/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ export interface NetworkDataPayload {
lastSeen: number
}

export interface PeersNetworkDataPayload {
peers: NetworkDataPayload[]
export interface PeersNetworkDataPayload {
peers: NetworkDataPayload[]
}

export interface NetworkStats {
Expand Down

0 comments on commit 7079682

Please sign in to comment.