Skip to content

Commit 670fd23

Browse files
authored
Merge pull request #77 from powerloom/feat/dsv-bds-agentic-workflows
Feat/dsv bds agentic workflows
2 parents 9808f2e + a3952cf commit 670fd23

129 files changed

Lines changed: 6374 additions & 4959 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# Production
55
/build
6-
6+
/typesense/
77
# Generated files
88
.docusaurus
99
.cache-loader

docs/Protocol/Protocol_v2/overview.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ sidebar_position: 0
44

55
# Overview
66

7+
:::info
8+
This page documents the Protocol v2 upgrade path and its historical architecture framing. For the live decentralized sequencer-validator network, see [`DSV Mainnet`](/category/dsv-mainnet), especially [`Why DSV Exists`](/dsv-mainnet/why-dsv-exists) and [`Protocol Workflow`](/dsv-mainnet/protocol-workflow).
9+
:::
10+
711

812
## Necessity of an upgrade
913

@@ -30,7 +34,7 @@ The above approach required the snapshotter peers to send out their submissions
3034

3135
### Composed snapshots finality
3236

33-
A combination of the above couple of issues also affects the [composability principle](/Protocol/data-composition.md) of building higher order snapshots. Dropped transactions and increased delays in confirmation times of snapshot submissions ultimately affect the aggregate data points that power complex use cases like the [Uniswap V2 dashboard](/build-with-powerloom/use-cases/existing-implementations/uniswap-dashboard/) and [Aave V3 dashboard](/build-with-powerloom/use-cases/existing-implementations/aavev3-dashboard/).
37+
A combination of the above issues also affects the [composability principle](/Protocol/data-composition.md) of building higher order snapshots. Dropped transactions and increased delays in confirmation times of snapshot submissions ultimately affect aggregate data products and downstream consumers.
3438

3539

3640
## Upgraded workflow

docs/Protocol/Protocol_v2/sequencer.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ sidebar_position: 1
55

66
# Sequencer
77

8+
:::info
9+
This page describes the Protocol v2 sequencer model. For the live DSV mainnet flow, including two-level validator aggregation and VPA-based submission, see [`Protocol Workflow`](/dsv-mainnet/protocol-workflow) and [`Roles and Topology`](/dsv-mainnet/roles-and-topology).
10+
:::
11+
812
:::warning
913
The sequencer listening interfaces for specific data markets are listed in the following trusted sequencer JSON file hosted on the Powerloom Github repository:
1014

docs/Protocol/Protocol_v2/validator.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ sidebar_position: 3
44

55
# Validator
66

7+
:::info
8+
This page describes the Protocol v2 validator flow. For the live DSV mainnet consensus path, see [`Protocol Workflow`](/dsv-mainnet/protocol-workflow), [`On-Chain Submission and Verification`](/dsv-mainnet/onchain-submission-and-verification), and [`Stability and Scale`](/dsv-mainnet/stability-and-scale).
9+
:::
10+
711
## Overview
812

913
![Protocol V2 validator worklow](/images/validator-workflow.png)

docs/Protocol/Specifications/Snapshotter/components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,4 @@ In the end,
113113

114114
Its API endpoints are used by a decoupled frontend adapter logic that ultimately support building of rich data products for smart contracts and other web3 based applications.
115115

116-
In our [`All about Data` section of docs](/build-with-powerloom/snapshotter-node/data), find out more about the way this API is used by a frontend adapter to serve the Uniswap V2, Uniswap V3, and Aave V3 dashboards.
116+
In the [`All about Data` section](/build-with-powerloom/snapshotter-node/data), learn how resolver APIs serve finalized data while preserving verification metadata for applications and agents.

docs/Protocol/Specifications/Snapshotter/snapshot-build.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar_position: 2
77
## Snapshot Computation Modules
88
---
99

10-
As briefly introduced in the section on Snapshotter implementations that [leverage Git Submodules for specific computation logic](/build-with-powerloom/snapshotter-node/architecture), the modules are specified in the configuration for project types under the key `processor`.
10+
As briefly introduced in the section on [Snapshotter architecture](/build-with-powerloom/snapshotter-node/architecture), compute modules are pulled into the node runtime by setup scripts and are specified in the configuration for project types under the key `processor`.
1111

1212
```json reference
1313
https://github.com/powerloom/snapshotter-configs/blob/39e4713cdd96fff99d100f1dea7fb7332df9e491/projects.example.json#L15-L28
@@ -102,7 +102,7 @@ https://github.com/powerloom/pooler/blob/634610801a7fcbd8d863f2e72a04aa8204d27d0
102102

103103
### Example of snapshot computation
104104

105-
#### Base snapshot of trade events for the [Uniswap V2 and V3 dashboard data markets](/category/uniswap-dashboard):
105+
#### Base snapshot of trade events:
106106
```python reference
107107
https://github.com/powerloom/snapshotter-computes/blob/6fb98b1bbc22be8b5aba8bdc860004d35786f4df/trade_volume.py#L14-L44
108108
```
@@ -111,13 +111,13 @@ https://github.com/powerloom/snapshotter-computes/blob/6fb98b1bbc22be8b5aba8bdc8
111111
## Aggregate Snapshots
112112
---
113113

114-
Aggregate and higher-order snapshots that build on base snapshots are configured in their specific repositories, such as the following in our [Uniswap Dashboard use case](/category/uniswap-dashboard). This is where you can observe the [dependency graph of snapshot composition](/Protocol/data-composition#dependency-graph) in action.
114+
Aggregate and higher-order snapshots that build on base snapshots are configured in market-specific repositories. This is where you can observe the [dependency graph of snapshot composition](/Protocol/data-composition#dependency-graph) in action.
115115

116116
:::info
117117

118118
- [Single Project Composition](/Protocol/data-composition#single-project-composition)
119119
- [Multi-Project Composition](/Protocol/data-composition#multiple-projects-composition)
120-
- [Walkthrough of the Snapshotter Implementation for the Uniswap V2 and V3 Dashboards](/build-with-powerloom/use-cases/existing-implementations/uniswap-dashboard/)
120+
- [BDS Data Market](/category/bds-data-market)
121121
:::
122122

123123
The order and dependencies of these compositions are specified according to the `aggregate_on` key.
@@ -133,7 +133,7 @@ https://github.com/powerloom/snapshotter-configs/blob/fcf9b852bac9694258d7afcd8b
133133
* For example, a base snapshot built on a project ID like `pairContract_trade_volume:0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc:UNISWAPV2` triggers the worker `AggregateTradeVolumeProcessor` as defined in the `processor` config, against the pair contract `0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc`.
134134
* The span of epochs on which corresponding base snapshots will be aggregated is determined by the logic contained in the module specified in the `processor` key.
135135

136-
The following implementation aggregates [trade volume snapshots](/build-with-powerloom/use-cases/existing-implementations/uniswap-dashboard/closer-look-at-snapshots.md) across a span of 24 hours worth of epochs, if available. Otherwise, it aggregates the entire span of epochs available on the protocol against the data market and reports it back.
136+
The following implementation aggregates trade volume snapshots across a span of 24 hours worth of epochs, if available. Otherwise, it aggregates the entire span of epochs available on the protocol against the data market and reports it back.
137137

138138

139139
```python reference

docs/Protocol/Specifications/state-v1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,4 @@ event SnapshotFinalized(uint256 indexed epochId, uint256 epochEnd, string projec
130130
## See Also
131131
---
132132

133-
* [Build with Powerloom – All about data](/build-with-powerloom/snapshotter-node/data.md#verifying-data)
133+
* [Build with Powerloom – All about data](/build-with-powerloom/snapshotter-node/data.md)

docs/Protocol/Specifications/state-v2.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ sidebar_position: 1
44

55
# Protocol State: V2
66

7+
:::info
8+
This page documents the Protocol v2 state model. For the live DSV mainnet submission and verification path, see [`On-Chain Submission and Verification`](/dsv-mainnet/onchain-submission-and-verification) and [`Why DSV Exists`](/dsv-mainnet/why-dsv-exists).
9+
:::
10+
711
## Overview: Smart Contract Architecture
812

913
The smart contracts that maintain the state of the protocol V2 interact are arranged as depicted in the diagram that follows.

docs/Protocol/data-composition.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ As defined by the data sources configuration, the protocol state collects snapsh
2424

2525
## Higher-Order Aggregations
2626

27-
An example of this can be found in the [Uniswap V2 and V3 dashboard implementation](/build-with-powerloom/use-cases/existing-implementations/uniswap-dashboard/), where a trade activity aggregation dataset is generated by:
27+
A market can generate higher-order aggregation datasets by:
2828

2929
- Combining individual snapshots of trade volume and fees across multiple pair contracts.
3030
- Spanning a specific set of epochs that satisfy a time duration (e.g., 24 hours).

docs/Protocol/data-sources.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,15 @@ The data sources defined by a market can be static or dynamic, depending on the
1111

1212
## Static Data Sources
1313

14-
Our implementation of a data market serves datasets to render live Uniswap V2, Uniswap V3, and Aave V3 dashboards. Further details about the data source configurations and snapshot schemas can be found in the following sections of our documentation:
14+
Static data sources are useful when a market tracks a known set of contracts. In the current BDS market, snapshotter nodes track active Uniswap V3 pools on Ethereum mainnet and submit market-specific snapshots for DSV finalization.
1515

16-
* [Building with Powerloom -- Uniswap V2 and V3 Dashboards](/build-with-powerloom/use-cases/existing-implementations/uniswap-dashboard/)
17-
* [Building with Powerloom -- Aave V3 Dashboard](/build-with-powerloom/use-cases/existing-implementations/aavev3-dashboard/)
18-
19-
Continuing with the Uniswap V2 example, you can explore the data sources list defined as part of the Uniswap v2 specific configuration in the [`snapshotter-configs`](https://github.com/powerloom/snapshotter-configs/blob/fcf9b852bac9694258d7afcd8beeaa4cf961c65f/projects.example.json#L1-L11) repository.
16+
You can explore an older static configuration example in the [`snapshotter-configs`](https://github.com/powerloom/snapshotter-configs/blob/fcf9b852bac9694258d7afcd8beeaa4cf961c65f/projects.example.json#L1-L11) repository.
2017

2118
```json reference
2219
https://github.com/powerloom/snapshotter-configs/blob/fcf9b852bac9694258d7afcd8beeaa4cf961c65f/projects.example.json#L1-L11
2320
```
2421

25-
The `projects` field in the above configuration snippet represents the Uniswap v2 pair contract addresses that are tracked, and snapshots are generated for these contracts. To further understand how snapshots on these contracts are tracked, refer to the section on [Project Types and IDs](#project-types-and-ids).
22+
The `projects` field in the above configuration snippet represents contract addresses that are tracked, and snapshots are generated for those contracts. To further understand how snapshots on these contracts are tracked, refer to the section on [Project Types and IDs](#project-types-and-ids).
2623

2724
## Dynamic Data Sources
2825

0 commit comments

Comments
 (0)