A simple block explorer based on deamon's rpc calls. It supports https://github.com/ElementsProject/elements and should be easy to adapt to support other chains based on the elements codebase.
Dependent on the OS distribution:
make python docker-ce docker-compose
Docker-compose should be installed with pip:
sudo pip uninstall docker-compose
sudo pip install -U docker-compose
Add your user to the docker group:
sudo usermod -a -G docker $USER
Restart the system for the last command to take effect.
Test docker installation:
docker run hello-world
Also, an 'explorer-data' directory needs to exist alongside the project dir for it to work.
From inside the cloned directory:
mkdir ../explorer-data
There are several targets on the makefile, some are generic, but most depend on the environment.
There are 3 supported environments:
dev
staging
production
All of them have their own configuration directory in ./docker. All of them have two ways of being run: '' and ''-nod.
For example, one can do:
make dev
<do stuff>
make stop-dev
(In this case ''=dev)
Or one can also do:
make dev-nod
<do stuff>
Ctrl-c
(In this case ''=dev)
The first one will run the explorer as daemon in the background and one has to stop it manually and differently for each env in the following way:
make stop-'<env>'
The second form including "-nod" stand for "no daemon", meaning you will see the logs in your terminal directly without accessing the containers logs directly and one can also stop with Ctrl-c instead of having to remember which env is to stop.
For those who want to see the logs withour using the "-nod" targets, here are some variations:
sudo docker logs -f rpcexplorer_explorer_1
sudo docker logs rpcexplorer_daemons_1
sudo docker logs rpcexplorer_postgres_1
For all the supported environments, there's an ipython-'', so that one can go into REPL with all the dependencies installed and the db and daemons running within docker without having to install and reproduce anything locally. For example:
make ipython-dev
Currently most of the testing is done manually. There are tools for automatic testing of the python parts now, and some tests, but not many, in https://github.com/jtimon/elements-explorer/tree/master/explorer/tests .
One can run all the supported tests with:
make check-all
...or...
python3 ./run_tests.py --dbs=dummydb,postgres
...are currently equivalent.
That will run the tests through all the supported databases, currently:
dummydb
postgres
If one wants to run all tests for a given database:
make check-<db>
...or...
python3 ./run_tests.py --dbs=<db>
...are currently equivalent.
One can also run individual tests or groups of tests for a given db or group of dbs. There's some examples below:
python3 ./run_tests.py --dbs=dummydb
python3 ./run_tests.py --dbs=postgres
python3 ./run_tests.py --tests=api_faucet.py
python3 ./run_tests.py --tests=process_generator.py
python3 ./run_tests.py --dbs=dummydb,postgres --tests=api_faucet.py
python3 ./run_tests.py --dbs=dummydb,postgres --tests=api_faucet.py,process_generator.py
python3 ./run_tests.py --dbs=dummydb --tests=api_faucet.py
python3 ./run_tests.py --dbs=dummydb --tests=api_faucet.py,process_generator.py
python3 ./run_tests.py --dbs=postgres --tests=api_faucet.py
python3 ./run_tests.py --dbs=postgres --tests=api_faucet.py,process_generator.py
python3 ./run_tests.py --dbs=dummydb,postgres --tests=api_faucet.py
python3 ./run_tests.py --dbs=dummydb,postgres --tests=api_faucet.py,process_generator.py
See ./doc/db.org
MIT, see COPYING