Package: dao-analyzer
DAO-AnalyzerIt is a tool to visualize DAO metrics. Currently, it shows DAO fromDAOstack,DAOhaus, andAragon. Web site:http://dao-analyzer.science/Table of contentsSet-up & Running (Download app)How to run it?Environment variablesBuild applicationUsing DockerTechnical detailsArchitectureDebuggingHow to test it?Flags for hypothesis testingDeployMatomo integrationDataPublicationsAcknowledgementsCite asSet-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 tograsia/dao-scriptsinsteadThe easiest method by far to download and run the application is to use pip to install itpip install dao-analyzerThen, you can run the app using the commandsdaoa-cache-scriptsanddaoa-serverHow to run it?Before launching the app, you have to run the following script in order to enable the cache stored indatawarehouse:dao-scriptsAfter a few minutes, you can now run the app with:daoa-serverNow, visithttp://127.0.0.1:8050or the address given in the program output with your web browser.Environment variablesTo 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
DAOA_CC_API_KEY = "your_api_key"

# The path of the datawarehouse
DAOA_DW_PATH = './datawarehouse' # <-- Default valueBuild applicationEnter in your terminal (git must be installed) and write down:git clone https://github.com/Grasia/dao-analyzerAfter that, move to repository root directory with:cd dao-analyzerBuild thedao_analyzer_components(not necessary if you only want to get the data, but not to display it)cd dao_analyzer_components && npm ci && npm buildThen, go back to the root folder of the project, and install the packagepip install -e .If you don't want to share Python dependencies among other projects, you should use a virtual environment, such asvirtualenv.Using DockerIf you use Docker, you can just use the images atghcri.io/grasia/dao-analyzer. The tags with the-cachedsuffix 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:latestordocker run --name dao-analyzer -it -p80:80 ghcr.io/grasia/dao-analyzer:latest-cacheddao-analyzeris the container name, you can put whatever you want, but remember
to change it also on the following commandNow, you can update the datawarehouse using:docker exec -it dao-analyzer dao-scriptsYou can even add it to your system as a cron job to update it daily, weekly, etc...Technical detailsArchitectureThere is available a class diagram of theDAOstack app, theDAOhaus app, and theAragon app.DebuggingThis app usesflask, so you can use theFLASK_ENVvariable, which also enables debug mode (among other things) when set todevelopment.export FLASK_ENV=developmentHow to test it?Run all tests with:toxorpython3 -m pytest test/Flags for hypothesis testingUse this flag--hypothesis-show-statisticsto show statistics.Use the flag--hypothesis-seed=<int>to set a fixed seed, it's useful to reproduce a failure.DeployIn order to fully deploy the app, use thedeploy.shscript, which installs all the Python dependencies, updates the datawarehouse, and runs the web-app with gunicorn, using thegunicorn_config.pyfile.Matomo integrationTo enable Matomo integration, you just have to pass the following environment variables like this:DAOA_MATOMO_URL="https://matomo.example.com"DAOA_MATOMO_SITE_ID=1You 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.DataThe data is updated daily and published inKagglePublicationsJavier 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.Freely available hereYoussef 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.Freely available here.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.Freely available here.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.Freely available here.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.Freely available here.AcknowledgementsDAO-Analyzer is created under the umbrella of two 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; and P2P Models, funded by the European Research Council (ERC-2017-STG 625 grant no.: 75920), led by Samer Hassan.Cite asYou 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