You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(REO): rename to RewardsEligibilityOracle, reduce initial requirements (#39)
* chore(SQO): lint markdown docs
* chore(REO): update ServiceQualityOracle refs to RewardsEligibilityOracle
* feat(REO): Reduce requirements for launch
Indexers are now only expected to serve queries on 1 subgraph, at launch, to be eligible for rewards.
* test(REO): update SQL snapshot for MIN_SUBGRAPHS=1
Updates the BigQuery SQL query snapshot to reflect the reduced MIN_SUBGRAPHS requirement from 10 to 1 for launch.
* Empty commit
This document defines the requirements an Indexer must meet to be eligible for indexing rewards. It includes the current active criteria, a schedule of any upcoming changes, and a log of all historical requirements. The goal is to provide a transparent and predictable set of standards for all network participants.
2
4
3
5
---
4
6
5
-
# Upcoming Eligibility Criteria
7
+
##Upcoming Eligibility Criteria
6
8
7
9
**We will announce changes to the eligibility criteria in the table below.** Once the change goes live, it will be reflected in the [Active Eligibility Criteria](https://github.com/graphprotocol/service-quality-oracle/blob/main/ELIGIBILITY_CRITERIA.md#active-eligibility-criteria) section of this document.
8
10
@@ -15,32 +17,32 @@ This document defines the requirements an Indexer must meet to be eligible for i
15
17
16
18
---
17
19
18
-
# Active Eligibility Criteria
20
+
##Active Eligibility Criteria
19
21
20
22
The following criteria are used to identify indexers that should be eligible to receive indexing rewards.
21
23
22
24
-**Days Online Requirement:** Indexers must be active for **5+ days** in a given **28 day** period for rewards eligibility.
23
-
-**Daily Query Requirement:** To be active, an indexer must serve at least **1 qualifying query** on **10 different subgraphs**.
25
+
-**Daily Query Requirement:** To be active, an indexer must serve at least **1 qualifying query**.
24
26
-**Query Quality Requirements:** A qualifying query is one that simultaneously meets **all** of the following criteria:
Eligibility for indexing rewards is typically refreshed daily via the ServiceQualityOracle contract.
31
+
Eligibility for indexing rewards is typically refreshed daily via the RewardsEligibilityOracle contract.
30
32
31
33
> **Note**:
32
-
> Once an indexer has successfully qualified for indexing rewards by satisfying the active eligibility criteria, and a corresponding transaction has been submitted on chain by an authorized Oracle into the ServiceQualityOracle contract, the now eligible indexer can continue claiming indexing rewards from the protocol for the duration of the qualification period (default is 14 days), even if the active eligibility criteria change.
34
+
> Once an indexer has successfully qualified for indexing rewards by satisfying the active eligibility criteria, and a corresponding transaction has been submitted on chain by an authorized Oracle into the RewardsEligibilityOracle contract, the now eligible indexer can continue claiming indexing rewards from the protocol for the duration of the qualification period (default is 14 days), even if the active eligibility criteria change.
33
35
34
36
---
35
37
36
-
# Eligibility Requirements Changelog
38
+
##Eligibility Requirements Changelog
37
39
38
40
This table tracks changes to the indexing rewards eligibility requirements over time.
|**Indexer Activity**| Indexers must be active for **5+ days** in a given **28 day** period for indexing rewards eligibility. | TBD | Initial | Encourages indexers to familiarize themselves with infrastructure maintenance and ongoing operations. | Planned for Service Quality Oracle launch |
43
-
|**Query Qualification**| Indexers must serve **≥1 qualifying query**on **≥10 different subgraphs**in a day for the day to count towards the **Indexer Activity** requirement. | TBD | Initial | Encourages indexers to become familiar with the process of syncing a range of subgraphs. | Planned for Service Quality Oracle launch |
44
-
|**Query Response Quality**|*•* Query Response HTTP Status: **200 OK**<br>*•* Query Response Latency: **< 5,000 ms**<br>*•* Query Freshness: **< 50,000 blocks** behind chainhead. | TBD | Initial |*•* Indexer infrastructure needs to serve successful queries to benefit data consumers.<br>*•* Fast query responses are important to data consumers.<br>*•* Encourages indexers to sync to chainhead. | Planned for Service Quality Oracle launch |
44
+
|**Indexer Activity**| Indexers must be active for **5+ days** in a given **28 day** period for indexing rewards eligibility. | TBD | Initial | Encourages indexers to familiarize themselves with infrastructure maintenance and ongoing operations. | Planned for Rewards Eligibility Oracle launch |
45
+
|**Query Qualification**| Indexers must serve **≥1 qualifying query** in a day for the day to count towards the **Indexer Activity** requirement. | TBD | Initial | Encourages indexers to become familiar with the process of syncing and serving subgraph data. | Planned for Rewards Eligibility Oracle launch |
46
+
|**Query Response Quality**|*•* Query Response HTTP Status: **200 OK**<br>*•* Query Response Latency: **< 5,000 ms**<br>*•* Query Freshness: **< 50,000 blocks** behind chainhead. | TBD | Initial |*•* Indexer infrastructure needs to serve successful queries to benefit data consumers.<br>*•* Fast query responses are important to data consumers.<br>*•* Encourages indexers to sync to chainhead. | Planned for Rewards Eligibility Oracle launch |
Copy file name to clipboardExpand all lines: README.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,14 +2,14 @@
2
2
3
3
## Overview
4
4
5
-
This repository implements a Docker container service for the Service Quality Oracle. The oracle consumes data from BigQuery, processes it to determine indexer issuance rewards eligibility, based on a defined threshold algorithm, and posts issuance eligibility data on-chain.
5
+
This repository implements a Docker container service for the Rewards Eligibility Oracle. The oracle consumes data from BigQuery, processes it to determine indexer rewards eligibility, based on a defined threshold algorithm, and posts rewards eligibility data on-chain.
6
6
7
7
### Key Features
8
8
9
9
The oracle runs with the following functionality:
10
10
-**BigQuery Integration**: Fetches indexer performance data from Google BigQuery
11
-
-**Eligibility Processing**: Applies threshold algorithm to determine issuance rewards eligibility based on service quality
12
-
-**Blockchain Integration**: Posts issuance eligibility updates to the ServiceQualityOracle contract
11
+
-**Eligibility Processing**: Applies threshold algorithm to determine rewards eligibility based on service quality
12
+
-**Blockchain Integration**: Posts rewards eligibility updates to the RewardsEligibilityOracle contract
13
13
-**Slack Notifications**: Sends success/failure notifications for monitoring
14
14
-**Docker Deployment**: Containerized and running with health checks
Please refer to the [ELIGIBILITY_CRITERIA.md](./ELIGIBILITY_CRITERIA.md) file to view the latest criteria for issuance. We are also posting upcoming criteria in that document.
46
+
Please refer to the [ELIGIBILITY_CRITERIA.md](./ELIGIBILITY_CRITERIA.md) file to view the latest criteria for rewards eligibility. We are also posting upcoming criteria in that document.
Copy file name to clipboardExpand all lines: STYLE_GUIDELINES.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,33 +5,43 @@ This document defines the coding style guidelines for Python code in this reposi
5
5
## Core Style Guidelines
6
6
7
7
### 1. Comments Before Logical Blocks
8
+
8
9
Add descriptive comments above logical blocks when the purpose needs clarification or when explaining complex operations and error handling.
9
10
10
11
### 2. Blank Lines Before Comments (Except After Docstrings)
12
+
11
13
Include a blank line before each comment that is before a logical block, except when the comment directly follows a function's docstring.
12
14
13
15
### 3. Blank Lines After Logical Sections Complete
16
+
14
17
After a logical block completes (end of loops, after appending to lists, etc.), include a blank line before the next comment/section. This helps improve readability of the code.
15
18
16
19
### 4. Comments Describe "What" Not "How"
20
+
17
21
Comments should describe what the code accomplishes rather than implementation details.
18
22
19
23
### 5. Spacing Within Control Structures
24
+
20
25
Inside try/except blocks and if/else statements, include a blank line after each branch's code block completes.
21
26
22
27
### 6. Comments for Primary and Fallback Logic
28
+
23
29
Both the main execution path and fallback/error handling should have descriptive comments when their purpose isn't immediately self-evident.
24
30
25
31
### 7. Comments for Final Actions
32
+
26
33
Simple operations at the end of functions should have descriptive comments when the purpose needs clarification.
27
34
28
35
### 8. Two Blank Lines Between Functions/Methods/Classes
36
+
29
37
Two blank lines before all function/method/class definitions, whether top-level or nested.
30
38
31
39
### 9. Compress long comments, don't truncate
40
+
32
41
When comments exceed the 115-character line limit, compress them by removing unnecessary articles and prepositions while preserving full meaning, rather than truncating important information.
33
42
34
43
### 10. Code clarity not guideline following perfection
44
+
35
45
The code is more important than the style guidelines
36
46
37
47
## Integration with Code Formatting Tools
@@ -42,6 +52,7 @@ These style guidelines work in conjunction with automated formatting tools:
42
52
-**Custom formatter**: Applies additional spacing rules via `scripts/ruff_check_format_assets.sh`
43
53
44
54
Always run the formatting script before committing:
0 commit comments