mimblewimble / grin-explorer

Blockchain explorer for grin
GNU Affero General Public License v3.0
59 stars 53 forks source link

Grin-Explorer is the first block explorer for the [[https://grin.mw][Grin]] blockchain. This is the source code for the instance running at [[https://grinexplorer.net]].

I hope it provides a useful service for anybody interested in Grin and to its development.

** Bugs, Feature Requests, etc.

Please report bugs, feature requests or feedback [[https://github.com/mimblewimble/grin-explorer/issues/new][here]] or ping me (@hendi) on Gitter.

** License

grin-explorer is licensed under the terms of the GNU AGPL 3, see the file [[LICENSE]] for details. Basically it allows you to use and modify this code as long as you make all changes available under the same terms. The easiest way to do this is to fork this repo (publically!) and deploy your instance from that repo.p

** How to setup your own instance

*** Requirements

Python >= 3.5 and PostgreSQL >= 9.3 are required.

Grin is required to run as an archival node and basic auth needs to be disabled in its REST API. Set archive_mode = true and comment out api_secret_path in grin-server.toml respectively.

*** Installation

Start PostgreSQL. Note that the following is just an example to run PostgreSQL, you should ensure you use your own user and credentials when setting it up.

+begin_src sh

sudo postgresql-setup --initdb sudo systemctl start postgresql sudo -u postgres -i

psql

postgres=# \password postgres Enter new password: Enter it again: postgres=# CREATE USER myuser WITH PASSWORD 'mypass'; postgres=# CREATE DATABASE mydb; postgres=# GRANT ALL PRIVILEGES ON DATABASE mydb to myuser; postgres=# \q sudo systemctl restart postgresql

+end_src

Start grin-explorer. Again, ensure you use your own credentials for Django.

+begin_src sh

git clone https://github.com/mimblewimble/grin-explorer cd grin-explorer python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

SECRET_KEY is required by Django

export SECRET_KEY=somesecretkey

PostgreSQL configuration

export DB_NAME=mydb export DB_USER=myuser export DB_PASSWORD=mypass export DB_HOST=127.0.0.1 export DB_PORT=5432 python3 ./grinexplorer/manage.py migrate python3 ./grinexplorer/manage.py runserver

+end_src

*** Import blockchain

+begin_src sh

python3 ./grinexplorer/manage.py import_from_tip http://127.0.0.1:13413

+end_src