All - Raid Guild proposal

:gem: Diamond DAO <> Raid Guild Proposal :crossed_swords:



Deliverables

Phase 1

Feature: Elasticsearch Mappings

  Scenario: The client can index DAO data
    * This includes votes, members, and metadata
    * DAO data used to calculate the below metrics:
        * DAO Name
        * Network (Mainnet or xDAI)
        * Tokens used, (PiT, point in time)
        * Number of members (PiT)
        * Number of active members (voted in last 30 days), PiT
        * % of members who vote (voted in last 30 days), PiT
        * Median number of votes cast per member, PiT
        * Current treasury fund balance
Feature: Job to Index Daohaus Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the DaoHaus subgraph
    * It will index data into Elasticsearch to calculate the above metrics
        * Given the data exists in the subgraph
    * It will have two modes:
        1. A full re-index mode to re-index all the data
        2. An incremental mode that will fetch data since it's last run

Phase 2

Feature: Job to Index Daostack Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the Daostack subgraph
    * It will index it into Elasticsearch to calculate the above metrics
        * Given that the data exists in the subgraph 
Feature: Job to Index Aragon Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the Aragon subgraph
    * It will index it into Elasticsearch to calculate the above metrics
        * Given that the data exists in the subgraph
Feature: Queries for Desired Metrics

  Scenario: The client will have Elasticsearch queries
    * The queries can be used to calculate the below metrics.
    * For any metrics marked PiT, queries can be calculated for a time range per day, month, and year.
        * DAO Name
        * Network (Mainnet or xDAI)
        * Tokens used, PiT
        * Number of members, PiT
        * Number of active members (voted in last 30 days), PiT
        * % of members who vote (voted in last 30 days), PiT
        * Median number of votes cast per member, PiT
        * Current treasury fund balance

Team

  • Tae - Account Manager
  • Brandon - Account Manager
  • Will - Account Manager
  • Keating - Developer

RaidGuild LLC is a registered Delaware LLC with a mailing address at 8 The Green Ste A, Dover, DE 19901

Proposal

Phases Cost Time estimate
Phase 1 8,250 DAI 2.5 weeks
Phase 2 8,250 DAI 2.5 weeks
Total Estimate 16,500 DAI 5 weeks

Note: the above figures include administration and project management. Time estimate is from RaidGuild project kickoff.

Escrow Payment

Note that payment is in wxDAI on the xDAI network.

Please reach out if you have any questions about this process.

Verified payment of 16,500 wxDAI into Raid Guild Escrow will initiate project.

https://xdai.escrow.raidguild.org/
Raid ID: TBD after escrow is set up

Please connect with your EOA (0x…TBD) to submit payment into escrow.

Upon successful completion of each milestone, we will ask you to release Escrow payments.

In case of dispute

If you lose confidence in the Raid Party at any time, you may Lock the remaining funds in escrow.

If you do not release funds upon completion of deliverables, the Raid Party may Lock the remaining funds in escrow.

In both cases, the Lock triggers the arbitration provider (i.e., LexDAO) to review the dispute. Based on their review, the arbitration provider will decide which party should receive what amount of funds, and will send a transaction to the escrow contract that will transfer the appropriate amounts to each party.

We sincerely hope this won’t be the case, but all parties are protected nevertheless.

We look forward to Raiding, please reach out with any questions or concerns!



1 Like

Some questions I have…

  • They expanded scope for a “SQL option”. This added $1,500 in cost. I don’t see anything about SQL?

On closer review of the SQL option, it will take about a day more time to build so will add $1,500 to the cost for $16,500 total. We think it will be a better product for you to build on top of in the future. However you’ve already expressed that you’d like the lower cost option so we will leave it up to you.

Kind of seems like they considered expanding scope, increased the cost, decided to not increase scope, and kept the additional cost.

  • How will the data be stored before being ingested into ES? Raw JSON? Want to make sure we have the flexibility to ingest into other datastores (i.e. RDS) if we want to.

  • Would like more details on documentation / dev walk-throughs.

I’m commenting on this proposal in context of the three items we communicated to Raid Guild as highest value to Diamond DAO/Chainverse from this work:

  • Extract query logic from each of the subgraphs
  • Logic applied to perform aggregations
  • Daily historical dataset of each metric for us to build our product from

Extract query logic from each of the subgraphs

This will be covered by the following scope…

Phase 1

Feature: Job to Index Daohaus Data
  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the DaoHaus subgraph
...

Phase 2

Feature: Job to Index Daostack Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the Daostack subgraph
...
Feature: Job to Index Aragon Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the Aragon subgraph

SQL Option

In the scoping emails with Raid, I stated “SQL/relational database is not required if document storage database is more efficient for development/cost”, and included this diagram to confirm our understanding of the (acceptable) solution:

Keating’s solution uses Elasticsearch to index and aggregate data (instead of having all of the transformation from raw to processed data happen in memory between the subgraph and final landing area).

I think the product owner is using the term “SQL option” loosely, and means some intermediary, persistent data storage - which this proposal includes.

Details to understand

  • AWS recently changed their Elasticsearch hosting option to OpenSearch - an open source fork of the project. If we’re using AWS we need to confirm that we can deploy the solution we receive on AWS.
  • If AWS, then we’ll need to estimate our monthly bill for keeping the data indexed (and adding as we go)

Logic applied to perform aggregations

This feature is included in Phase 2 after each of the DAOHaus, DAOstack, and Aragon subgraphs have been indexed

Feature: Queries for Desired Metrics

  Scenario: The client will have Elasticsearch queries
    * The queries can be used to calculate the below metrics.
    * For any metrics marked PiT, queries can be calculated for a time range per day, month, and year.
        * DAO Name
        * Network (Mainnet or xDAI)
        * Tokens used, PiT
        * Number of members, PiT
        * Number of active members (voted in last 30 days), PiT
        * % of members who vote (voted in last 30 days), PiT
        * Median number of votes cast per member, PiT
        * Current treasury fund balance

If possible it would be great if we can get these delivered in Phase 1 for DAOhaus only. That would give us time to start getting users for an MVP that includes the DAOhaus/Moloch universe only, which would be valuable.

However, the entire scope is estimated ~4-5 weeks, so we might have plenty on our plate to work on (community building, launch plan, etc) in those two weeks if the plan stays as currently proposed by Raid Guild.

Daily historical dataset of each metric for us to build our product from

In Phase 1 this requirement is explicitly stated

Feature: Job to Index Daohaus Data

  Scenario: The client will have a job that can be run on a cron schedule
...
    * It will have two modes:
        1. A full re-index mode to re-index all the data
        2. An incremental mode that will fetch data since it's last run

but Phase 2 features do not include this scope explicitly. We must include this scope specifically to proceed.

Feature: Job to Index Daostack Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the Daostack subgraph
    * It will index it into Elasticsearch to calculate the above metrics
        * Given that the data exists in the subgraph 
Feature: Job to Index Aragon Data

  Scenario: The client will have a job that can be run on a cron schedule
    * It will take data from the Aragon subgraph
    * It will index it into Elasticsearch to calculate the above metrics
        * Given that the data exists in the subgraph

Project management

All work by Raid Guild will be committed in our Diamond DAO Github under the Chainverse project repo. I set up the following admin/role structure:

Quality/acceptance of the work by Raid Guild will be managed through pull requests that Diamond DAO members will need to review and accept in order for the feature to be integrated into our main branch.

Summary
Overall, I like the proposal and timeline. Items to confirm:

  • Deployment options/estimated costs
  • Indexing history for Phase 2 features

The questions will buy us some time to come up with another 1.19 ETH :slight_smile:

Excited about this proposal but also excited about…

  • @ro4438’s completed Snapshot pipeline and the work he is doing to conduct treasury analysis via Etherscan API
  • Our (almost) finalized plan for crowdsourcing collection of attributes that require manual research (i.e. Treasury wallet addresses for entities that operate off of Snapshot, DAO sector, Legal Entity status, proposal requirements, and much more). @steffbrowne will share over the coming week.
  • On-chain metrics beyond the scope of Raid Guild proposal that @ro4438, Raid Guild apprentices, (eventually) Christian, and members who have yet to join will contribute to (i.e. average token holding time, minimum winning coalition size, etc, etc).

I really do believe that we will be able to go to market with an MVP && make a significant contribution to DXdao’s governance as a service product by the end of the year if we keep plodding forward.

I will follow up with Raid Guild on these two items this weekend. Beforehand, I want @adilmajid.eth @amphiboly.eth to add any other items to discuss.

As for funding, I would be willing to contribute at least 1000 WXDAI more to our treasury in exchange for shares to help get the funds for this engagement. Thoughts on that? And would anyone else be willing to do the same?

I will be adding at least 1,000

1 Like