Skip to content

Commit

Permalink
docs: rf contribution pathways (#2554)
Browse files Browse the repository at this point in the history
* chore: update superchain data soruce

* feat(docs): add retro funding contributing page

* fix: broken link
  • Loading branch information
ccerv1 authored Dec 2, 2024
1 parent 6bb56be commit 2d8f0a1
Show file tree
Hide file tree
Showing 18 changed files with 125 additions and 66 deletions.
2 changes: 1 addition & 1 deletion apps/docs/blog/2024-02-28-arbitrum-impact-pools/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ First, our data platform is still in active development. We just recently connec

Second, we are continuously iterating on our impact metrics. We hope the metrics included here illustrate what's possible to quickly identify trends among projects and relative performance levels. However, the metrics we chose should not be viewed as applicable to all projects or battle-tested against gamification. Similarly, the coefficients used to weight metrics in our impact pools are only intended to serve as starting points for further analysis.

If you have ideas for how to test and iterate on these types of impact metrics and pools, check out [our docs](https://docs.opensource.observer/docs/contribute/impact-models) and send us a note.
If you have ideas for how to test and iterate on these types of impact metrics and pools, check out [our docs](https://docs.opensource.observer/docs/contribute/data-models) and send us a note.

## How pools are constructed

Expand Down
2 changes: 1 addition & 1 deletion apps/docs/blog/2024-07-16-oso-data-portal/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ where passport_address = '0xd8da6bf26964af9d7eed9e03e53415d37aa96045'

When you’ve developed a novel impact metrics or data model,
we encourage you to
[contribute back to the OSO data pipeline](https://docs.opensource.observer/docs/contribute/impact-models),
[contribute back to the OSO data pipeline](https://docs.opensource.observer/docs/contribute/data-models),
which is continuously deployed from our
[open source repository](https://github.com/opensource-observer/oso/).

Expand Down
2 changes: 1 addition & 1 deletion apps/docs/docs/contribute/connect-data/dagster-config.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,4 @@ from {{ source("ethereum", "transactions") }}

- [**SQL Query Guide**](../../integrate/query-data.mdx): run queries against the data you just loaded
- [**Connect OSO to 3rd Party tools**](../../integrate/3rd-party.mdx): explore your data using tools like Hex.tech, Tableau, and Metabase
- [**Write a dbt model**](../impact-models.md): contribute new impact and data models to our data pipeline
- [**Write a dbt model**](../data-models.md): contribute new impact and data models to our data pipeline
File renamed without changes.
14 changes: 13 additions & 1 deletion apps/docs/docs/contribute/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,26 @@ There are a variety of ways you can contribute to OSO. This doc features some of
</tr>
<tr>
<td>
<a href="./impact-models">Propose an Impact Data Model</a>
<a href="./data-models">Propose an Impact Data Model</a>
</td>
<td>
<a href="https://github.com/opensource-observer/oso">oso</a>
</td>
<td>Submit a dbt data model for tracking open source impact metrics.</td>
<td>Data Scientists, Analysts</td>
</tr>
<tr>
<td>
<a href="./retrofunding">Create Metrics for Retro Funding</a>
</td>
<td>
<a href="https://github.com/opensource-observer/oso">oso</a>
</td>
<td>
Help develop impact metrics for allocating retroactive funding to open source projects.
</td>
<td>Data Scientists, Analysts</td>
</tr>
<tr>
<td>
<a href="./share-insights">Share Insights</a>
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/docs/contribute/join-team.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Join the team
sidebar_position: 10
title: Join the Team
sidebar_position: 8
---

<iframe
Expand Down
71 changes: 71 additions & 0 deletions apps/docs/docs/contribute/retrofunding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
title: Create Metrics for Retro Funding
sidebar_position: 5
---

:::info
Open Source Observer is helping Optimism Retro Funding allocate millions in rewards and scale to thousands of open source projects. Contribute impact metrics to help allocate these funds more effectively!
:::

## Why This Matters

The [Optimism Collective](https://optimism.io/vision) is pioneering a new economy where impact equals profit. With 850 million OP tokens dedicated to [Retroactive Public Goods Funding ("Retro Funding")](https://app.optimism.io/retropgf), Optimism aims to realign incentives to reward those who create meaningful impact within their ecosystem.

### The Challenge of Measuring Impact

Measuring and defining impact is inherently complex. This [post from Optimism](https://optimism.mirror.xyz/zWlA9LROAzRee5BFqbquYHawmruKzLmXbONp_hcCwE4) outlines the challenges they faced in 2024:

- Alignment: Retro Funding has lacked a structured framework to ensure that rewards reflect the value of impactful contributions.
- Accuracy and Fairness: Builders have expressed concerns about the accuracy of impact measurements and proportionality of rewards.
- Consistency and Predictability: The lack of a reliable, continuous reward mechanism has made it difficult for contributors to depend on Retro Funding.

### The Shift Towards Metrics-Driven Evaluations

To address these challenges, the Optimism Collective is evolving its Retro Funding mechanism to be metrics-driven and human-guided. This approach combines quantitative data with qualitative expertise to more accurately evaluate and reward impact.

- Continuous Rewards: Transitioning from annual rounds to ongoing impact evaluation provides consistent and predictable rewards.
- Metrics Development: Robust, reproducible, and adaptable metrics are essential for accurately capturing the multifaceted nature of impact.
- Correcting Market Failures: By providing reliable rewards to impactful builders in underfunded areas, Retro Funding aims to stimulate growth and innovation.

### The Search for Better Metrics

We are familiar with Goodhart's Law: "When a measure becomes a target, it ceases to be a good measure." Rather than shy away from this, we need to continually search for better metrics to measure impact.

Research and data science are critical to this search. By contributing your expertise to the development of sophisticated impact metrics, you help:

- Improve Accuracy: Ensure that rewards are fairly and proportionally distributed based on measurable impact.
- Enhance Transparency: Provide clear insights into how impact is measured, increasing trust among builders and contributors.
- Catalyze Growth: Identify and support new markets and innovations to accelerate the growth of the ecosystem.

### Focus Areas for Impact Metrics in 2025

There are currently two focus areas for impact metrics in 2025:

- Onchain Builders: Projects that expand the onchain economy by increasing users, transactions, or total value locked.
- Developer Tooling: Tools that empower developers to build more efficiently on the OP Stack and contribute to the Superchain's growth.

## How You Can Help

There are several ways to contribute impact metrics:

1. **Propose New Metrics**: Design and implement novel ways to measure project health, contributor reputation, ecosystem impact, and more.

2. **Improve Existing Metrics**: Help refine our current metrics by suggesting improvements to calculation methods or adding new dimensions of analysis. All our models are open source and available on [GitHub](https://github.com/opensource-observer/oso).

3. **Domain-Specific Analysis**: Apply metrics to specific domains (like DeFi or npm packages) to surface insights relevant to those types of builders.

## Getting Started

1. Review our [blog](https://docs.opensource.observer/blog/tags/optimism) to learn more about metrics we've tried and the lessons learned from past rounds

2. Fork one of the notebooks in our [Insights Repo](https://github.com/opensource-observer/insights) to start exploring the data.

3. Check out our [GitHub Project Board](https://github.com/orgs/opensource-observer/projects/3/views/14) for the latest issues we need help with.

## Support & Community

We're building a network of Impact Data Scientists and want to support your contributions:

- Join our [Discord](https://www.opensource.observer/discord) to connect with other contributors
- Post questions in our [GitHub Discussions](https://github.com/opensource-observer/oso/discussions)
- Apply to [join the Data Collective](https://www.kariba.network/) for deeper involvement
2 changes: 1 addition & 1 deletion apps/docs/docs/get-started/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ Now that you're set up, there are many ways to contribute to OSO and integrate t

- [SQL Query Guide](../integrate/query-data.mdx) for more details on running effective queries
- [Write Python notebooks](../integrate/python-notebooks.md) for advanced analysis and visualizations
- [Propose an impact model](../contribute/impact-models.md) to run in the OSO data pipeline
- [Propose an impact model](../contribute/data-models.md) to run in the OSO data pipeline
- [Query the OSO API](../integrate/api.md) for impact metrics and project info to integrate into your application

If you think you'll be an ongoing contributor to OSO,
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/docs/how-oso-works/impact-metrics/code.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ The latest version of our code metrics model can be viewed [here](https://models

---

To contribute new metrics, please see our guide [here](../../contribute/impact-models).
To contribute new metrics, please see our guide [here](../../contribute/data-models).
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,4 @@ Total sequencer fees of all dependent projects in the same collection.

---

To contribute new metrics, please see our guide [here](../../contribute/impact-models)
To contribute new metrics, please see our guide [here](../../contribute/data-models)
2 changes: 1 addition & 1 deletion apps/docs/docs/how-oso-works/impact-metrics/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -198,4 +198,4 @@ Here's a more complex impact metric that uses several CTEs to calculate the numb

---

To contribute new metrics, please see our guide [here](../../contribute/impact-models).
To contribute new metrics, please see our guide [here](../../contribute/data-models).
2 changes: 1 addition & 1 deletion apps/docs/docs/how-oso-works/impact-metrics/onchain.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,4 @@ The latest version of our code metrics model can be viewed [here](https://models

---

To contribute new metrics, please see our guide [here](../../contribute/impact-models).
To contribute new metrics, please see our guide [here](../../contribute/data-models).
2 changes: 1 addition & 1 deletion apps/docs/docs/how-oso-works/impact-metrics/package.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ Number of times a package has been downloaded over a given time period.

---

To contribute new metrics, please see our guide [here](../../contribute/impact-models).
To contribute new metrics, please see our guide [here](../../contribute/data-models).
2 changes: 1 addition & 1 deletion apps/docs/docs/integrate/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ You can navigate to our [public GraphQL explorer](https://www.opensource.observe
As shown in the video, you must "Inline Variables" in order for queries to run in the explorer.
:::

The GraphQL schema is automatically generated from [`oso/dbt/models/marts`](https://github.com/opensource-observer/oso/tree/main/dbt/models/marts). Any dbt model defined there will automatically be exported to our GraphQL API. See the guide on [adding DBT models](../contribute/impact-models.md) for more information on contributing to our marts models.
The GraphQL schema is automatically generated from [`oso/dbt/models/marts`](https://github.com/opensource-observer/oso/tree/main/dbt/models/marts). Any dbt model defined there will automatically be exported to our GraphQL API. See the guide on [adding DBT models](../contribute/data-models.md) for more information on contributing to our marts models.

:::warning
Our data pipeline is under heavy development and all table schemas are subject to change until we introduce versioning to marts models.
Expand Down
78 changes: 27 additions & 51 deletions apps/docs/docs/integrate/overview/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Button from "../../../src/components/plasmic/Button";
import OsoLogo from "./oso-primary.png";
import GithubLogo from "./github.png";
import OpenSourceInsights from "./open-source-insights.png";
import OptimismLogo from "./op.png";
import EthereumLogo from "./ethereum.png";
import FilecoinLogo from "./filecoin.png";
import FarcasterLogo from "./farcaster.jpg";
Expand Down Expand Up @@ -253,70 +254,45 @@ limit 10

### Optimism Data

<img src={OptimismLogo} width="100" />

<Button
size={"compact"}
color={"blue"}
target={"_blank"}
link={
"https://console.cloud.google.com/bigquery/analytics-hub/exchanges/projects/87806073973/locations/us/dataExchanges/open_source_observer_190181416ae/listings/superchain_data_19018918042"
"https://bit.ly/superchain-public-data"
}
children={"Subscribe on BigQuery"}
/>{" "}

- Code License: [Apache-2.0](https://github.com/opensource-observer/oso/blob/main/LICENSE)
- Data governed by the OSO
[terms of service](https://www.opensource.observer/terms)

OSO is proud to provide public datasets for the Superchain,
backed by our partners at
[Goldsky](https://goldsky.com/).

We currently provide blocks, transactions, and traces for the following networks:

- [Optimism mainnet](https://www.optimism.io/)
([Reference docs](https://models.opensource.observer/#!/source_list/superchain)
, [Updated daily](https://dagster.opensource.observer/assets/optimism))
- [Base](https://www.base.org/)
([Reference docs](https://models.opensource.observer/#!/source_list/base)
, [Updated daily](https://dagster.opensource.observer/assets/base))
- [Frax](https://www.frax.com/)
([Reference docs](https://models.opensource.observer/#!/source_list/frax)
, [Updated daily](https://dagster.opensource.observer/assets/frax))
- [Metal](https://metall2.com/)
([Reference docs](https://models.opensource.observer/#!/source_list/metal)
, [Updated daily](https://dagster.opensource.observer/assets/metal))
- [Mode](https://www.mode.network/)
([Reference docs](https://models.opensource.observer/#!/source_list/mode)
, [Updated daily](https://dagster.opensource.observer/assets/mode))
- [PGN](https://publicgoods.network/)
([Reference docs](https://models.opensource.observer/#!/source_list/pgn)
, [Updated daily](https://dagster.opensource.observer/assets/pgn))
- [Zora](https://zora.co/)
([Reference docs](https://models.opensource.observer/#!/source_list/zora)
, [Updated daily](https://dagster.opensource.observer/assets/zora))


For example, to get deployed contracts from a particular address on the Base network:
- Data on every OP Stack chain, maintained by [OP Labs PBC](https://www.oplabs.co/)
[code of conduct](https://github.com/ethereum-optimism/op-analytics?tab=coc-ov-file#readme)
- For more details on the ETL process please visit the [op-analytics](https://static.optimism.io/op-analytics) documentation site.
- Visit the Optimism docs to learn more about the [Superchain](https://docs.optimism.io/stack/explainer).

All tables are partitioned by date (`dt`) and clustered by chain name (`chain`). Data is updated daily with an approximate latency of 24 hrs.
Data is sourced from [Goldsky](https://docs.goldsky.com/introduction) using the [Mirror platform](https://docs.goldsky.com/mirror/introduction), which fetches and delivers onchain data from RPC nodes to ClickHouse.
From there, the OP Labs team runs an incremental ingestion process based on block number.

For example, to get all transactions to the 4337 EntryPoint contracts for all OP Stack chains:

```sql
select
traces.block_timestamp,
traces.transaction_hash,
txs.from_address as originating_address,
txs.to_address as originating_contract,
traces.from_address as factory_address,
traces.to_address as contract_address
from `YOUR_PROJECT_NAME.superchain.base_traces` as traces
inner join transactions as txs
on txs.hash = traces.transaction_hash
where
LOWER(traces.from_address) != "0x3fab184622dc19b6109349b94811493bf2a45362"
and LOWER(trace_type) in ("create", "create2")
select
dt,
chain,
count(*) as txns
from `optimism_superchain_raw_onchain_data.transactions`
where
dt >= '2024-10-01'
and to_address in (
"0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
"0x0000000071727de22e5e9d8baf0edac6f37da032"
)
group by dt, chain
order by dt, chain
```

**Remember to replace 'YOUR_PROJECT_NAME' with the name of your project in the query.**

### Arbitrum Data

<img src={ArbitrumLogo} width="100" />
Expand All @@ -335,7 +311,7 @@ where
- [Source documentation](https://docs.goldsky.com/introduction)
- [Updated weekly](https://github.com/opensource-observer/oso/blob/main/warehouse/oso_dagster/assets/arbitrum.py)

[Arbitrum](https://arbitrum.foundation/) is a Layer 2 scaling solution for Ethereum. We currently provide blocks, transactions, and traces for Arbitrum's flagship network, Arbitrum One.
[Arbitrum](https://arbitrum.foundation/) is a Layer 2 scaling solution for Ethereum. We currently provide blocks, transactions, and traces for Arbitrum's flagship network, Arbitrum One. This public dataset is maintained by our partners at [Goldsky](https://goldsky.com/).

For example, to get the average gas per transaction for each block on Arbitrum One on September 1st, 2024:

Expand Down
Binary file added apps/docs/docs/integrate/overview/op.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion apps/docs/docs/integrate/python-notebooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ The complete specification for an impact metric is available [here](../how-oso-w

#### 2. Define the Metric and Selection Criteria

- **Metric**: Get inspiration from some of our [impact metrics](../how-oso-works/impact-metrics/index.mdx) or [propose a new metric](../contribute/impact-models.md). Examples: "Number of Full-Time Developer Months", "Number of Dependent Onchain Apps", "Layer 2 Gas Fees", "Number of New Contributors".
- **Metric**: Get inspiration from some of our [impact metrics](../how-oso-works/impact-metrics/index.mdx) or [propose a new metric](../contribute/data-models.md). Examples: "Number of Full-Time Developer Months", "Number of Dependent Onchain Apps", "Layer 2 Gas Fees", "Number of New Contributors".
- **Time Period**: Specify a time interval for applying the metric. Examples: "Last 6 months", "Since the project's inception".
- **Selection Filter**: Make explicit the criteria to identify which projects are eligible (or ineligible) to be included in the analysis. Examples: "Projects with developer activity in the last 90 days", "Projects with NPM packages used by at least 5 onchain projects", "Projects with a permissive open source license (e.g., MIT, Apache 2.0) and a codebase that is at least 6 months old".

Expand Down
2 changes: 1 addition & 1 deletion apps/docs/docs/integrate/query-data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@ If there is an intermediate model addition
(such as a new event type or aggregation)
that you think could help save costs for others in the future,
please consider contributing to our
[data models](../contribute/impact-models.md).
[data models](../contribute/data-models.md).

0 comments on commit 2d8f0a1

Please sign in to comment.