Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GAP-14] Network Insights API #37

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

johny-b
Copy link

@johny-b johny-b commented Dec 23, 2021

No description provided.

@johny-b johny-b self-assigned this Dec 23, 2021
@johny-b johny-b force-pushed the johny-b/GAP/node-indices-api branch 2 times, most recently from aa5b4c9 to 03d65a7 Compare December 23, 2021 17:04
@johny-b johny-b force-pushed the johny-b/GAP/node-indices-api branch from 03d65a7 to dbf253e Compare December 23, 2021 17:51
@stranger80
Copy link
Contributor

OK, I see the purpose of this design.

Immediate thoughts:

  1. "Index" may not be the best term to describe what we are trying to design here. We are defining some "degree of excellence" in some aspect/dimension. A few potentially less confusing alternatives:
  • Rate/rating ("Rating API")
  • Grade ("Grading API")
  1. Please define the "use cases" of the API, ie. "get available rates", "get current node rating", "get historic node ratings", "save node rating", etc.

@johny-b
Copy link
Author

johny-b commented Dec 27, 2021

1. "Index" may not be the best term to describe what we are trying to design here. We are defining some "degree of excellence" in some aspect/dimension. A few potentially less confusing alternatives:
* Rate/rating ("Rating API")
* Grade ("Grading API")

I'm not saying "indices" is the prettiest and smoothest name, but I still prefer "index" to "rate"/"rating"/"grade".
From my POV, this could be just any value - like e.g. "average offer prices of the node" - this is not rating and not grading (and not the general "degree of excellence").

IOW, "Rating API"/"Grading API" are for me a special case of "node indices API", but there are also cases that are not rating/grading.

(I don't have a very strong opinion here, I'd be glad to discuss this)

Most of the content is already there - there are few gaps to be filled
and also some careful rereading & editing is required.
TODOs filled. Rereading still needed.
@johny-b
Copy link
Author

johny-b commented Dec 29, 2021

2. Please define the "use cases" of the API, ie. "get available rates", "get current node rating", "get historic node ratings", "save node rating", etc.

Few examples: https://github.com/golemfactory/golem-architecture/blob/johny-b/GAP/node-indices-api/gaps/gap-14_node_indices_api/gap-14_node_indices_api.md#examples

Also: this GAP is only about read-only access to some data, there's nothing like "save node rating" here.

@johny-b johny-b force-pushed the johny-b/GAP/node-indices-api branch from 5af3a18 to 36ca76a Compare December 29, 2021 14:34
@nieznanysprawiciel
Copy link
Contributor

1. "Index" may not be the best term to describe what we are trying to design here. We are defining some "degree of excellence" in some aspect/dimension. A few potentially less confusing alternatives:
* Rate/rating ("Rating API")
* Grade ("Grading API")

I'm not saying "indices" is the prettiest and smoothest name, but I still prefer "index" to "rate"/"rating"/"grade". From my POV, this could be just any value - like e.g. "average offer prices of the node" - this is not rating and not grading (and not the general "degree of excellence").

IOW, "Rating API"/"Grading API" are for me a special case of "node indices API", but there are also cases that are not rating/grading.

(I don't have a very strong opinion here, I'd be glad to discuss this)

Maybe could be Metrics API?

@stranger80
Copy link
Contributor

TC Session 27/01/2022:

  1. can we try to find an accurate name? as "measure"/"metric" is not generic enough, "index" may be confused with eg. "database index", etc?
  2. Discuss the concept in subgroup:
  • Janek, MB, Radek, Witek

@johny-b
Copy link
Author

johny-b commented Jan 31, 2022

1. can we try to find an accurate name? as "measure"/"metric" is not generic enough, "index" may be confused with eg. "database index", etc?

Node Data API?
Node Information API?

@johny-b johny-b force-pushed the johny-b/GAP/node-indices-api branch from abbae05 to eafa543 Compare February 1, 2022 17:52
There are already few examples of node indices APIs that are in progress or planned:

* [Benchmark-based provider reputation (GAP-10)](https://github.com/golemfactory/golem-architecture/pull/33)
* [Golem Stats](https://stats.golem.network). This API is currently used e.g. by the [community-created provider agent](https://gist.github.com/sv3t0sl4v/28f896752edc9e20347ffc6d8cefe74c)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think golem stats is a bad example of this GAP because it uses metric data private to golem factory, making is heavily centralised.

@stranger80
Copy link
Contributor

stranger80 commented Feb 10, 2022

TC 10.02.2022:

  • Idea: how do we discover the existing implementations of this API? We can imagine such API service to be advertised on Golem Market via Offers.
  • Indicate in the GAP - this is not another "yagna API", this is a generic API which should be exposed by entities who want to make these stats/metrics available to members of golem network (eg. for the purpose of executing market strategy)
  • ACTION FOR ROAD-AHEAD SQUAD:
    • Schedule the work on reference implementation - and choose the right topic for it (see below)
    • Is GAP-10 a good idea for a reference implementation? Gathering data in Golem Stats owing to the mechanisms in yagna and offering this data on the marked from a central repo - is actually a case of centralization.
    • Maybe there is a better, "decentralized" case which is a better reference implementation of GAP-14? Eg. implementation of "invoice-based reputation"?
    • eg. write an implementation which is a module or plugin in yagna suite or even distributed separately, which anyone can run to gather data and then offer them on the market?
  • ...we can also imagine meta-indexing service - aggregator of stats gathered from various sources
  • What flexibility is this API providing:
    • each metric has a unique name
    • the metric values are expressed as sequence of timestamped values of a specific datatype

@johny-b johny-b force-pushed the johny-b/GAP/node-indices-api branch from 5233f68 to fefdb09 Compare February 10, 2022 16:38
@johny-b
Copy link
Author

johny-b commented Feb 10, 2022

In commit fefdb09 I've mentioned following discussion points:

Idea: how do we discover the existing implementations of this API? We can imagine such API service to be advertised on Golem Market via Offers.
(...)
Indicate in the GAP - **this is not another "yagna API", this is a generic API which should be exposed by entities who want to make these stats/metrics available to members of golem network (eg. for the purpose of executing market strat
(...)
...we can also imagine meta-indexing service - aggregator of stats gathered from various sources

(I'm not sure though if I've done it the way you intended).

@stranger80
Copy link
Contributor

Change the name of the API to "Network Insights API".

@johny-b johny-b changed the title [GAP-14] Node indices API [GAP-14] Network Insights API Mar 1, 2022
@stranger80 stranger80 added GAP: Meta GAP type: Meta GAP: Standards GAP Type: Standards labels Mar 2, 2022
@tworec
Copy link
Contributor

tworec commented Mar 3, 2022

To be approved @ TC 2022-03-10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GAP: Meta GAP type: Meta GAP: Standards GAP Type: Standards
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants