Skip to content

Commit 55bf484

Browse files
Add ForkDigest Filter (#206)
* Init peerFilter argument for aggregateByHardforkSchedule and getHeatmapData * Add license info * Add peerFilter to remaining graph APIs * Ran gofmt * Add back removed license * Init AddPeerFilterToQueryPipeline
1 parent 3f407e6 commit 55bf484

File tree

9 files changed

+647
-156
lines changed

9 files changed

+647
-156
lines changed

crawler/crawl/crawl.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"eth2-crawler/crawler/p2p"
1010
reqresp "eth2-crawler/crawler/rpc/request"
1111
"eth2-crawler/crawler/util"
12+
"eth2-crawler/graph/model"
1213
"eth2-crawler/models"
1314
ipResolver "eth2-crawler/resolver"
1415
"eth2-crawler/store/peerstore"
@@ -248,7 +249,7 @@ func (c *crawler) updateGeolocation(ctx context.Context, peer *models.Peer) {
248249
func (c *crawler) insertToHistory() {
249250
ctx := context.Background()
250251
// get count
251-
aggregateData, err := c.peerStore.AggregateBySyncStatus(ctx)
252+
aggregateData, err := c.peerStore.AggregateBySyncStatus(ctx, &model.PeerFilter{})
252253
if err != nil {
253254
log.Error("error getting sync status", log.Ctx{"err": err})
254255
}

graph/generated/generated.go

Lines changed: 417 additions & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/model/models_gen.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/schema.graphqls

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,20 @@ type HeatmapData {
4444
country: String!
4545
}
4646

47+
input PeerFilter {
48+
forkDigest: String
49+
}
50+
4751
type Query {
48-
aggregateByAgentName: [AggregateData!]!
49-
aggregateByCountry: [AggregateData!]!
50-
aggregateByOperatingSystem: [AggregateData!]!
51-
aggregateByNetwork: [AggregateData!]!
52-
aggregateByHardforkSchedule: [NextHardforkAggregation!]!
53-
aggregateByClientVersion: [ClientVersionAggregation!]!
54-
getHeatmapData: [HeatmapData!]!
55-
getNodeStats: NodeStats!
56-
getNodeStatsOverTime(start: Float!, end: Float!): [NodeStatsOverTime!]!
57-
getRegionalStats: RegionalStats!
58-
getAltairUpgradePercentage: Float!
52+
aggregateByAgentName(peerFilter: PeerFilter): [AggregateData!]!
53+
aggregateByCountry(peerFilter: PeerFilter): [AggregateData!]!
54+
aggregateByOperatingSystem(peerFilter: PeerFilter): [AggregateData!]!
55+
aggregateByNetwork(peerFilter: PeerFilter): [AggregateData!]!
56+
aggregateByHardforkSchedule(peerFilter: PeerFilter): [NextHardforkAggregation!]!
57+
aggregateByClientVersion(peerFilter: PeerFilter): [ClientVersionAggregation!]!
58+
getHeatmapData(peerFilter: PeerFilter): [HeatmapData!]!
59+
getNodeStats(peerFilter: PeerFilter): NodeStats!
60+
getNodeStatsOverTime(start: Float!, end: Float!, peerFilter: PeerFilter): [NodeStatsOverTime!]!
61+
getRegionalStats(peerFilter: PeerFilter): RegionalStats!
62+
getAltairUpgradePercentage(peerFilter: PeerFilter): Float!
5963
}

graph/schema.resolvers.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import (
1414
)
1515

1616
// AggregateByAgentName is the resolver for the aggregateByAgentName field.
17-
func (r *queryResolver) AggregateByAgentName(ctx context.Context) ([]*model.AggregateData, error) {
18-
aggregateData, err := r.peerStore.AggregateByAgentName(ctx)
17+
func (r *queryResolver) AggregateByAgentName(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.AggregateData, error) {
18+
aggregateData, err := r.peerStore.AggregateByAgentName(ctx, peerFilter)
1919
if err != nil {
2020
return nil, err
2121
}
@@ -31,8 +31,8 @@ func (r *queryResolver) AggregateByAgentName(ctx context.Context) ([]*model.Aggr
3131
}
3232

3333
// AggregateByCountry is the resolver for the aggregateByCountry field.
34-
func (r *queryResolver) AggregateByCountry(ctx context.Context) ([]*model.AggregateData, error) {
35-
aggregateData, err := r.peerStore.AggregateByCountry(ctx)
34+
func (r *queryResolver) AggregateByCountry(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.AggregateData, error) {
35+
aggregateData, err := r.peerStore.AggregateByCountry(ctx, peerFilter)
3636
if err != nil {
3737
return nil, err
3838
}
@@ -48,8 +48,8 @@ func (r *queryResolver) AggregateByCountry(ctx context.Context) ([]*model.Aggreg
4848
}
4949

5050
// AggregateByOperatingSystem is the resolver for the aggregateByOperatingSystem field.
51-
func (r *queryResolver) AggregateByOperatingSystem(ctx context.Context) ([]*model.AggregateData, error) {
52-
aggregateData, err := r.peerStore.AggregateByOperatingSystem(ctx)
51+
func (r *queryResolver) AggregateByOperatingSystem(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.AggregateData, error) {
52+
aggregateData, err := r.peerStore.AggregateByOperatingSystem(ctx, peerFilter)
5353
if err != nil {
5454
return nil, err
5555
}
@@ -65,8 +65,8 @@ func (r *queryResolver) AggregateByOperatingSystem(ctx context.Context) ([]*mode
6565
}
6666

6767
// AggregateByNetwork is the resolver for the aggregateByNetwork field.
68-
func (r *queryResolver) AggregateByNetwork(ctx context.Context) ([]*model.AggregateData, error) {
69-
aggregateData, err := r.peerStore.AggregateByNetworkType(ctx)
68+
func (r *queryResolver) AggregateByNetwork(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.AggregateData, error) {
69+
aggregateData, err := r.peerStore.AggregateByNetworkType(ctx, peerFilter)
7070
if err != nil {
7171
return nil, err
7272
}
@@ -81,8 +81,8 @@ func (r *queryResolver) AggregateByNetwork(ctx context.Context) ([]*model.Aggreg
8181
}
8282

8383
// AggregateByHardforkSchedule is the resolver for the aggregateByHardforkSchedule field.
84-
func (r *queryResolver) AggregateByHardforkSchedule(ctx context.Context) ([]*model.NextHardforkAggregation, error) {
85-
allPeers, err := r.peerStore.ViewAll(ctx)
84+
func (r *queryResolver) AggregateByHardforkSchedule(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.NextHardforkAggregation, error) {
85+
allPeers, err := r.peerStore.ViewAll(ctx, peerFilter)
8686
if err != nil {
8787
return nil, err
8888
}
@@ -100,8 +100,8 @@ func (r *queryResolver) AggregateByHardforkSchedule(ctx context.Context) ([]*mod
100100
}
101101

102102
// AggregateByClientVersion is the resolver for the aggregateByClientVersion field.
103-
func (r *queryResolver) AggregateByClientVersion(ctx context.Context) ([]*model.ClientVersionAggregation, error) {
104-
aggregateData, err := r.peerStore.AggregateByClientVersion(ctx)
103+
func (r *queryResolver) AggregateByClientVersion(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.ClientVersionAggregation, error) {
104+
aggregateData, err := r.peerStore.AggregateByClientVersion(ctx, peerFilter)
105105
if err != nil {
106106
return nil, err
107107
}
@@ -125,8 +125,8 @@ func (r *queryResolver) AggregateByClientVersion(ctx context.Context) ([]*model.
125125
}
126126

127127
// GetHeatmapData is the resolver for the getHeatmapData field.
128-
func (r *queryResolver) GetHeatmapData(ctx context.Context) ([]*model.HeatmapData, error) {
129-
peers, err := r.peerStore.ViewAll(ctx)
128+
func (r *queryResolver) GetHeatmapData(ctx context.Context, peerFilter *model.PeerFilter) ([]*model.HeatmapData, error) {
129+
peers, err := r.peerStore.ViewAll(ctx, peerFilter)
130130
if err != nil {
131131
return nil, err
132132
}
@@ -155,8 +155,8 @@ func (r *queryResolver) GetHeatmapData(ctx context.Context) ([]*model.HeatmapDat
155155
}
156156

157157
// GetNodeStats is the resolver for the getNodeStats field.
158-
func (r *queryResolver) GetNodeStats(ctx context.Context) (*model.NodeStats, error) {
159-
aggregateData, err := r.peerStore.AggregateBySyncStatus(ctx)
158+
func (r *queryResolver) GetNodeStats(ctx context.Context, peerFilter *model.PeerFilter) (*model.NodeStats, error) {
159+
aggregateData, err := r.peerStore.AggregateBySyncStatus(ctx, peerFilter)
160160
if err != nil {
161161
return nil, err
162162
}
@@ -168,8 +168,8 @@ func (r *queryResolver) GetNodeStats(ctx context.Context) (*model.NodeStats, err
168168
}
169169

170170
// GetNodeStatsOverTime is the resolver for the getNodeStatsOverTime field.
171-
func (r *queryResolver) GetNodeStatsOverTime(ctx context.Context, start float64, end float64) ([]*model.NodeStatsOverTime, error) {
172-
data, err := r.historyStore.GetHistory(ctx, int64(start), int64(end))
171+
func (r *queryResolver) GetNodeStatsOverTime(ctx context.Context, start float64, end float64, peerFilter *model.PeerFilter) ([]*model.NodeStatsOverTime, error) {
172+
data, err := r.historyStore.GetHistory(ctx, int64(start), int64(end), peerFilter)
173173
if err != nil {
174174
return nil, err
175175
}
@@ -186,13 +186,13 @@ func (r *queryResolver) GetNodeStatsOverTime(ctx context.Context, start float64,
186186
}
187187

188188
// GetRegionalStats is the resolver for the getRegionalStats field.
189-
func (r *queryResolver) GetRegionalStats(ctx context.Context) (*model.RegionalStats, error) {
190-
countryAggrData, err := r.peerStore.AggregateByCountry(ctx)
189+
func (r *queryResolver) GetRegionalStats(ctx context.Context, peerFilter *model.PeerFilter) (*model.RegionalStats, error) {
190+
countryAggrData, err := r.peerStore.AggregateByCountry(ctx, peerFilter)
191191
if err != nil {
192192
return nil, err
193193
}
194194

195-
networkAggrData, err := r.peerStore.AggregateByNetworkType(ctx)
195+
networkAggrData, err := r.peerStore.AggregateByNetworkType(ctx, peerFilter)
196196
if err != nil {
197197
return nil, err
198198
}
@@ -216,8 +216,8 @@ func (r *queryResolver) GetRegionalStats(ctx context.Context) (*model.RegionalSt
216216
}
217217

218218
// GetAltairUpgradePercentage is the resolver for the getAltairUpgradePercentage field.
219-
func (r *queryResolver) GetAltairUpgradePercentage(ctx context.Context) (float64, error) {
220-
aggregateData, err := r.peerStore.AggregateByClientVersion(ctx)
219+
func (r *queryResolver) GetAltairUpgradePercentage(ctx context.Context, peerFilter *model.PeerFilter) (float64, error) {
220+
aggregateData, err := r.peerStore.AggregateByClientVersion(ctx, peerFilter)
221221
if err != nil {
222222
return 0, err
223223
}

0 commit comments

Comments
 (0)