From 2785b2a38460b7154dc8f2efeac4c63aace574f0 Mon Sep 17 00:00:00 2001 From: Dadepo Aderemi Date: Wed, 16 Mar 2022 17:15:25 +0100 Subject: [PATCH 1/4] Return peer count --- packages/lodestar/src/api/impl/node/index.ts | 31 +++++++++++--- .../test/unit/api/impl/node/node.test.ts | 41 +++++++++++++++++++ 2 files changed, 67 insertions(+), 5 deletions(-) diff --git a/packages/lodestar/src/api/impl/node/index.ts b/packages/lodestar/src/api/impl/node/index.ts index effa9753550f..2f92cd0fa914 100644 --- a/packages/lodestar/src/api/impl/node/index.ts +++ b/packages/lodestar/src/api/impl/node/index.ts @@ -51,13 +51,34 @@ export function getNodeApi(opts: IApiOptions, {network, sync}: Pick([ + [peer1.toB58String(), [libp2pConnection(peer1, "open", "outbound")]], + [ + peer2.toB58String(), + [libp2pConnection(peer2, "closing", "inbound"), libp2pConnection(peer2, "closing", "inbound")], + ], + [ + peer3.toB58String(), + [ + libp2pConnection(peer3, "closed", "inbound"), + libp2pConnection(peer3, "closed", "inbound"), + libp2pConnection(peer3, "closed", "inbound"), + ], + ], + ]); + + networkStub.getConnectionsByPeer.returns(connectionsByPeer); + + const {data: count} = await api.getPeerCount(); + expect(count).to.be.deep.equal( + { + connected: 1, + disconnecting: 2, + disconnected: 3, + connecting: 0, + }, + "getPeerCount incorrect" + ); + }); + }); + describe("getPeers", function () { let peer1: PeerId, peer2: PeerId; From 25a9c922bf233bcb6f1a913518a84acec76c6763 Mon Sep 17 00:00:00 2001 From: Dadepo Aderemi Date: Mon, 21 Mar 2022 15:14:05 +0100 Subject: [PATCH 2/4] for given connections for a peerID only pick the relevant connection and used that in returning the peer count --- packages/lodestar/src/api/impl/node/index.ts | 30 ++++++++++---------- packages/lodestar/src/api/impl/node/utils.ts | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/lodestar/src/api/impl/node/index.ts b/packages/lodestar/src/api/impl/node/index.ts index 2f92cd0fa914..842f6100a4ec 100644 --- a/packages/lodestar/src/api/impl/node/index.ts +++ b/packages/lodestar/src/api/impl/node/index.ts @@ -1,6 +1,6 @@ import {routes} from "@chainsafe/lodestar-api"; import {createKeypairFromPeerId} from "@chainsafe/discv5"; -import {formatNodePeer} from "./utils"; +import {formatNodePeer, getRevelantConnection} from "./utils"; import {ApiError} from "../errors"; import {ApiModules} from "../types"; import {IApiOptions} from "../../options"; @@ -57,22 +57,22 @@ export function getNodeApi(opts: IApiOptions, {network, sync}: Pick(); for (const conn of connections) { if (conn.stat.status === "open") return conn; From 1c9787dfedce605168f26676ff270ee2a4843619 Mon Sep 17 00:00:00 2001 From: Dadepo Aderemi Date: Tue, 22 Mar 2022 10:22:42 +0100 Subject: [PATCH 3/4] Fix test --- packages/lodestar/test/unit/api/impl/node/node.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/lodestar/test/unit/api/impl/node/node.test.ts b/packages/lodestar/test/unit/api/impl/node/node.test.ts index 0228031106ba..e64eade155f3 100644 --- a/packages/lodestar/test/unit/api/impl/node/node.test.ts +++ b/packages/lodestar/test/unit/api/impl/node/node.test.ts @@ -113,8 +113,8 @@ describe("node api implementation", function () { expect(count).to.be.deep.equal( { connected: 1, - disconnecting: 2, - disconnected: 3, + disconnecting: 1, // picks most relevant connection to count + disconnected: 1, // picks most relevant connection to count connecting: 0, }, "getPeerCount incorrect" From 42aeb9fa2daee9fd9caaf2a54c879609d4e629e4 Mon Sep 17 00:00:00 2001 From: Dadepo Aderemi Date: Wed, 23 Mar 2022 12:57:33 +0100 Subject: [PATCH 4/4] Added to todo --- packages/lodestar/src/api/impl/node/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/lodestar/src/api/impl/node/index.ts b/packages/lodestar/src/api/impl/node/index.ts index 842f6100a4ec..36bb6662b126 100644 --- a/packages/lodestar/src/api/impl/node/index.ts +++ b/packages/lodestar/src/api/impl/node/index.ts @@ -51,6 +51,7 @@ export function getNodeApi(opts: IApiOptions, {network, sync}: Pick