Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/DAppBoard/dappboard-documentation

How to install, run and hack DAppBoard.
https://github.com/DAppBoard/dappboard-documentation

blockchain

Last synced: 3 months ago
JSON representation

How to install, run and hack DAppBoard.

Awesome Lists containing this project

README

        

# DAppBoard Documentation
How to install, run and hack [DAppBoard](http://dappboard.com).

Table of content:
* [1. Introduction](#1-introduction)
* [2. Installation](#2-installation)
+ [A. Prerequisite](#a-prerequisite)
+ [B. Setup](#b-setup)
- [a. Common tools](#a-common-tools)
- [b. ETL and Database](#b-etl-and-database)
- [c. Web](#c-web)
* [2. Running](#2-running)
+ [A. ETL](#a-etl)
+ [B. Web](#b-web)
* [3. License and attribution](#3-license-and-attribution)

## 1. Introduction

The DAppBoard project is a suite of open source tools used to capture and analyze Ethereum blockchain data. It is o into 4 repositories:
* [ETL](https://github.com/DAppBoard/dappboard-etl): The tools that extract and transform the blockchain data and inject into our database.
* [Web](https://github.com/DAppBoard/dappboard-web): A backend and frontend based on SailsJS. This is what you see when you visit [dappboard.com](http://dappboard.com).
* [Environment](https://github.com/DAppBoard/dappboard-environment): Contains script and environment variable you will need to run DAppBoard [ETL](https://github.com/DAppBoard/dappboard-etl) and [Web](https://github.com/DAppBoard/dappboard-web).
* [Documentation](https://github.com/DAppBoard/dappboard-documentation): How to set up and run your own DAppBoard.

## 2. Installation

### A. Prerequisite

Running DAppBoard requires few resources

* **Ubuntu 18.04 server**: any other distribution should work but this is what we use.
* **PostgreSQL database**: or any compatible system like Amazon Aurora.

We are currently hosting our pipeline at [DigitalOcean](http://digitalocean.com) and would like to thanks them for their support.

### B. Setup

#### a. Common tools

On a fresh Ubuntu server, clone the environment installation script and run it as an administrator. This will install all the tools needed to run the [ETL](https://github.com/DAppBoard/dappboard-etl) and [Web](https://github.com/DAppBoard/dappboard-web) interface.

``cd ~ && git clone https://github.com/DAppBoard/dappboard-environment.git && cd dappboard-environment && sudo ./install_server.sh``

You will then need to fill the environment file, the sample one is available here ```dappboard-environment/env_sample```:

```
# Database connection information
export DAPPBOARD_PSQL_HOST=""
export DAPPBOARD_PSQL_DB=""
export DAPPBOARD_PSQL_USER=""
export DAPPBOARD_PSQL_PASSWORD=""

# The connection string for your RPC node or Infura
export DAPPBOARD_NODE_URL=""

# Only necessary for scripts that are fetching data from Etherscan (ABI/Sourcecode)
export DAPPBOARD_ETHERSCAN_API=""
```

Once you have filled the information, source it and add it to your general environment.

```source env_sample && sudo cat env_sample >> /etc/environment```

#### b. ETL and Database

For installing the [ETL](https://github.com/DAppBoard/dappboard-etl), we just need to clone the repo and install NPM dependencies.

``cd ~ && cd dappboard-etl/etl && npm install``

You will then need to create all the tables and indexes. For this, connect to your PostgreSQL database and run the SQL queries located in the ```dappboard-etl/schemas/tables/``` folder or [here](https://github.com/DAppBoard/dappboard-etl/tree/master/schemas/tables).

#### c. Web

Installing the [Web](https://github.com/DAppBoard/dappboard-web) part is optional as it's only valuable if you want to replicate DAppBoard. We publish it for learning and transparency purpose.

``cd ~ && cd dappboard-web/ && npm install``

## 2. Running

### A. ETL

We use [PM2](http://pm2.keymetrics.io/) in order to run and monitor node script: it was installed with the server environment. In the home folder run:

```pm2 start etl.ecosystem.config.js```

This will start all the ETL scripts:
* **live** is responsible for getting new blocks and ingesting them.
* **past** is responsible for going back in time for ingesting the blocks.
* **scrape_tokens** is running every hour and get information about the tokens that emitted Transfer events.

### B. Web

In the web folder, run:

```sails lift```

## 3. License and attribution

Everything you see (sources, documentation) is published under the MIT License.

We invite you to use our work and contribute. If you use our tools or some of our data, feel free to tell it to the world!