dao-analyzer

DAO visualization tool

https://github.com/grasia/dao-analyzer

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 13 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

DAO visualization tool

Basic Info
  • Host: GitHub
  • Owner: Grasia
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 10.6 MB
Statistics
  • Stars: 41
  • Watchers: 4
  • Forks: 8
  • Open Issues: 20
  • Releases: 15
Created about 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation

README.md

PyPI DOI 10.5281/zenodo.7669689.svg License

DAO-Analyzer

It is a tool to visualize DAO metrics. Currently, it shows DAO from DAOstack, DAOhaus, and Aragon. Web site: http://dao-analyzer.science/

Table of contents <!-- omit from toc -->

Set-up & Running (Download app)

You can either install it on your local machine, or if you prefer it, you can use the official docker image.

If you only want to retrieve the data used by our application, go to grasia/dao-scripts instead

The easiest method by far to download and run the application is to use pip to install it

pip install dao-analyzer

Then, you can run the app using the commands daoa-cache-scripts and daoa-server

How to run it?

Before launching the app, you have to run the following script in order to enable the cache stored in datawarehouse:

dao-scripts

After a few minutes, you can now run the app with:

daoa-server

Now, visit http://127.0.0.1:8050 or the address given in the program output with your web browser.

Environment variables

To be able to access all the features of dao-analyzer, you can specify the following environment variables:

```

The CrytptoCompare API key to be used to get token prices

DAOACCAPIKEY = "yourapi_key"

The path of the datawarehouse

DAOADWPATH = './datawarehouse' # <-- Default value ```

Build application

Enter in your terminal (git must be installed) and write down:

git clone https://github.com/Grasia/dao-analyzer

After that, move to repository root directory with:

cd dao-analyzer

Build the dao_analyzer_components (not necessary if you only want to get the data, but not to display it)

cd dao_analyzer_components && npm ci && npm build

Then, go back to the root folder of the project, and install the package

pip install -e .

If you don't want to share Python dependencies among other projects, you should use a virtual environment, such as virtualenv.

Using Docker

If you use Docker, you can just use the images at ghcri.io/grasia/dao-analyzer. The tags with the -cached suffix have a pre-populated data warehouse (this means the image uses more space, but takes less time to load). To use it, just run the command:

docker run --name dao-analyzer -it -p80:80 ghcr.io/grasia/dao-analyzer:latest

or

docker run --name dao-analyzer -it -p80:80 ghcr.io/grasia/dao-analyzer:latest-cached

dao-analyzer is the container name, you can put whatever you want, but remember to change it also on the following command

Now, you can update the datawarehouse using:

docker exec -it dao-analyzer dao-scripts

You can even add it to your system as a cron job to update it daily, weekly, etc...

Technical details

Architecture

There is available a class diagram of the DAOstack app, the DAOhaus app, and the Aragon app.

Debugging

This app uses flask, so you can use the FLASK_ENV variable, which also enables debug mode (among other things) when set to development.

export FLASK_ENV=development

How to test it?

Run all tests with:

tox

or

python3 -m pytest test/

Flags for hypothesis testing

Use this flag --hypothesis-show-statistics to show statistics.

Use the flag --hypothesis-seed=<int> to set a fixed seed, it's useful to reproduce a failure.

Deploy

In order to fully deploy the app, use the deploy.sh script, which installs all the Python dependencies, updates the datawarehouse, and runs the web-app with gunicorn, using the gunicorn_config.py file.

Matomo integration

To enable Matomo integration, you just have to pass the following environment variables like this: bash DAOA_MATOMO_URL = "https://matomo.example.com" DAOA_MATOMO_SITE_ID = 1

You can check if the integration is working visiting the page and then your dashboard. The integration uses Javascript, so if there are any errors, you should be able to see them using "Inspect view" in your browser.

Data

The data is updated daily and published in Kaggle and Zenodo

Publications and related research

  • Andrea Peña-Calvin, Javier Arroyo, Andrew Schwartz, and Samer Hassan (2024). Concentration of Power and Participation in Online Governance: the Ecosystem of Decentralized Autonomous Organizations. In Companion Proceedings of the ACM on Web Conference 2024 (WWW '24). ACM, 927–930.

  • Javier Arroyo, David Davó, Elena Martínez-Vicente, Youssef Faqir-Rhazoui, and Samer Hassan (2022). "DAO-Analyzer: Exploring Activity and Participation in Blockchain Organizations.". Companion Publication of the 2022 Conference on Computer Supported Cooperative Work and Social Computing (CSCW'22 Companion). ACM, 193–196.

  • Youssef Faqir-Rhazoui, Javier Arroyo and Samer Hassan (2021). "A comparative analysis of the platforms for decentralized autonomous organizations in the Ethereum blockchain." Journal of Internet Services and Applications volume 12, Article number: 9.

  • Youssef Faqir-Rhazoui, Miller Janny Ariza-Garzón, Javier Arroyo and Samer Hassan (2021). "Effect of the Gas Price Surges on User Activity in the DAOs of the Ethereum Blockchain." Extended Abstracts of the 2021 CHI Conference on Human Factors in Computing Systems, Article No.: 407, Pages 1–7.

  • Youssef Faqir-Rhazoui, Javier Arroyo, and Samer Hassan (2021). "A Scalable Voting System: Validation of Holographic Consensus in DAOstack." Proceedings of the 54th Hawaii International Conference on System Sciences, 5557-5566.

  • Youssef Faqir-Rhazoui, Javier Arroyo, and Samer Hassan. (2020). An overview of Decentralized Autonomous Organizations on the blockchain. Proceedings of the 16th International Symposium on Open Collaboration (Opensym 2020) 11:1-11:8. ACM.

Acknowledgements

Logo Ministerio de Ciencia e Innovación. Gobierno de EspañaLogotipo European Research CouncilLogo GRASIA UCMLogo Universidad Complutense de Madrid

DAO-Analyzer is developed under the umbrella of multiple research projects: - Chain Community, funded by the Spanish Ministry of Science and Innovation (RTI2018‐096820‐A‐I00) and led by Javier Arroyo and Samer Hassan - P2P Models, funded by the European Research Council (ERC-2017-STG 625 grant no.: 75920), led by Samer Hassan. - DAOapplications, funded by the Spanish Ministry of Science and Innovation (PID2021-127956OB-I00) and led by Javier Arroyo and Samer Hassan

Cite as

You can just cite one of our publications:

Javier Arroyo, David Davó, Elena Martínez-Vicente, Youssef Faqir-Rhazoui, and Samer Hassan (2022). "DAO-Analyzer: Exploring Activity and Participation in Blockchain Organizations.". Companion Publication of the 2022 Conference on Computer Supported Cooperative Work and Social Computing (CSCW'22 Companion). ACM, 193–196.

Or, if you want to explicitly cite the application:

Arroyo, Javier, Davó, David, Faqir-Rhazoui, Youssef, & Martínez Vicente, Elena. (2023). DAO Analyzer. Zenodo. https://doi.org/10.5281/zenodo.7669689

Owner

  • Name: Grasia
  • Login: Grasia
  • Kind: organization
  • Email: grasia@ucm.es
  • Location: Madrid (Spain)

Research group on Agent-based, Social & Interdisciplinary Applications

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: DAO Analyzer
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Javier
    family-names: Arroyo
    orcid: 'https://orcid.org/0000-0001-6127-7538'
    affiliation: Complutense University of Madrid
  - email: ddavo@ucm.es
    given-names: David
    family-names: Davó
    affiliation: Complutense University of Madrid
    orcid: 'https://orcid.org/0000-0003-1744-8314'
  - given-names: Youssef
    family-names: Faqir-Rhazoui
    affiliation: Complutense University of Madrid
    orcid: 'https://orcid.org/0000-0001-7833-1086'
  - given-names: Elena
    family-names: Martínez Vicente
    affiliation: Complutense University of Madrid
license: GPL-3.0

GitHub Events

Total
  • Watch event: 2
  • Delete event: 27
  • Issue comment event: 24
  • Push event: 19
  • Pull request event: 48
  • Fork event: 1
  • Create event: 25
Last Year
  • Watch event: 2
  • Delete event: 27
  • Issue comment event: 24
  • Push event: 19
  • Pull request event: 48
  • Fork event: 1
  • Create event: 25

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 755
  • Total Committers: 4
  • Avg Commits per committer: 188.75
  • Development Distribution Score (DDS): 0.505
Top Committers
Name Email Commits
David Davó d****d@d****e 374
FRYoussef f****f@h****m 373
dependabot[bot] 4****]@u****m 6
Javi j****g@g****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 71
  • Total pull requests: 186
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 2.13
  • Average comments per pull request: 0.85
  • Merged pull requests: 46
  • Bot issues: 0
  • Bot pull requests: 184
Past Year
  • Issues: 0
  • Pull requests: 48
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 months
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.69
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 48
Top Authors
Issue Authors
  • daviddavo (62)
  • javiag (6)
  • FRYoussef (2)
  • Vansir01 (1)
Pull Request Authors
  • dependabot[bot] (190)
  • daviddavo (2)
  • github-actions[bot] (1)
Top Labels
Issue Labels
enhancement (36) bug (13) frontend (12) :exclamation: important (7) help wanted (7) backend (5) new metric (4) documentation (4) wontfix (4) blocked (4) cache-scripts (3) good first issue (3) question (2) :bulb: idea (2) invalid (2) refactoring (1)
Pull Request Labels
dependencies (190) javascript (135) github_actions (12) blocked (2) automated (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 876 last-month
    • npm 7 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 183
  • Total maintainers: 3
pypi.org: dao-analyzer

"A tool to monitor DAO activity"

  • Versions: 163
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 876 Last month
Rankings
Dependent packages count: 10.0%
Stargazers count: 11.0%
Forks count: 11.4%
Average: 14.0%
Downloads: 15.7%
Dependent repos count: 21.7%
Maintainers (2)
Last synced: 7 months ago
npmjs.org: dao-analyzer-components

Components for dao-analyzer

  • Versions: 20
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 7 Last month
Rankings
Stargazers count: 9.9%
Forks count: 10.8%
Dependent packages count: 16.2%
Average: 16.4%
Downloads: 20.0%
Dependent repos count: 25.3%
Maintainers (1)
Last synced: 7 months ago

Dependencies

.github/workflows/check_continue.yml actions
  • actions/cache v2 composite
  • actions/checkout master composite
  • actions/setup-python v1 composite
  • actions/upload-artifact v3 composite
  • styfle/cancel-workflow-action 0.9.1 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/checkout master composite
  • actions/checkout v2 composite
  • actions/download-artifact v3 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • elgohr/Publish-Docker-Github-Action 3.04 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • styfle/cancel-workflow-action 0.9.1 composite
.github/workflows/update_aragon_names.yml actions
  • actions/checkout master composite
  • peter-evans/create-pull-request v3 composite
Dockerfile docker
  • python 3.10 build
docker-compose.yml docker
  • grasia/dao-analyzer latest
dao_analyzer_components/package-lock.json npm
  • 702 dependencies
dao_analyzer_components/package.json npm
  • @babel/core ^7.5.4 development
  • @babel/plugin-proposal-object-rest-spread ^7.5.4 development
  • @babel/preset-env ^7.5.4 development
  • @babel/preset-react ^7.0.0 development
  • @plotly/dash-component-plugins ^1.2.0 development
  • @plotly/webpack-dash-dynamic-import ^1.2.0 development
  • babel-eslint ^10.0.2 development
  • babel-loader ^8.0.6 development
  • copyfiles ^2.1.1 development
  • css-loader ^6.7.1 development
  • eslint ^8.24.0 development
  • eslint-config-prettier ^8.5.0 development
  • eslint-plugin-import ^2.18.0 development
  • eslint-plugin-react ^7.14.2 development
  • is-published ^0.2.0 development
  • npm-watch ^0.11.0 development
  • prop-types ^15.7.2 development
  • react ^18.2.0 development
  • react-docgen ^5.4.3 development
  • react-dom ^18.2.0 development
  • style-loader ^3.3.1 development
  • styled-jsx ^5.0.7 development
  • terser-webpack-plugin ^5.3.6 development
  • webpack ^5.74.0 development
  • webpack-cli ^4.10.0 development
  • webpack-dev-server ^4.11.1 development
  • ramda ^0.28.0
dao_analyzer_components/requirements.txt pypi
  • dash *