Skip to content

andrewnk/turtle-explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turtle Explorer

This explorer is a reimagining of the original cryptonote explorer using updated tools, such as Docker, Node.js, Feathers.js, Vue.js, Socket.IO, Go, etc. It is still in the early stages and, therefore, has a long way to go...but slow and steady wins the race!

Demo: http://trtl.rocks

Containers

Container Tools What it does ARG & ENV
db-nodes-and-pools Alpine build with Timescale/Postgres DB that stores node and pool data - a time series database built on PostgreSQL (uses Notify for realtime events) ARGS:
GO_PASSWORD
WEB_PASSWORD

ENV:
POSTGRES_USER
POSTGRES_PASSWORD
db-daemon-cache TODO - Alpine build with Timescale/Postgres DB that will store daemon information - a time series database built on PostgreSQL (uses Notify for realtime events) ARGS:
TURTLECOINSERVICE_PASSWORD
WEB_PASSWORD

ENV:
POSTGRES_USER
POSTGRES_PASSWORD
daemon TODO TurtleCoin daemon ARGS:
TURTLECOIN_PROGRAM
service-nodes-and-pools Alpine build with Go Routinely pulls a list of pools and public nodes, retrieves data from pool and node api's, and insert the records into the db ARGS:
DB_USER
DB_NAME
DB_PASSWORD
DB_HOST
DB_PORT
DB_SSLMODE
service-daemon-cache TODO - Alpine build with Go Regularly pull data from the daemon and insert into the db ARGS:
DB_USER
DB_NAME
DB_PASSWORD
DB_HOST
DB_PORT
DAEMON_RPC_PORT
DAEMON_RPC_HOST
web-cache Alpine build Redis Stores cached db query responses
web-backend Alpine build with FeathersJS, Socket.IO Grabs the data from the db's and relay to frontend ARGS:
DB_USER
DB_PASSWORD
DB_PORT
DB_HOST
DB_NAME
web-frontend Alpine build with Nuxt, Bulma, Vue.JS, FeathersJS, Feathers-Vuex, Socket.IO Display the data ARGS:
WEBSOCKET_HOST
WEBSOCKET_PORT

Docker Container Layout

alt text

Running

Start the project by running the following command in the root dir:

docker-compose build && docker-compose -f docker-compose.yml up -d

Once all containers are up and running (docker ps -a) you can view the frontend by visiting localhost or 127.0.0.1 in your browser.

Running a dev environment

In order to run the development environment in docker you will need to setup/start the services manually. I start each container in its own shell to make it easier to move between containers.

Start the project by running the following command in the root dir:

docker-compose build && docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

Get a shell in the go container, build, and start the program

docker exec -it service-nodes-and-pools ash
CGO_ENABLED=0 go build -a --installsuffix cgo --ldflags="-s" -o service-nodes-and-pools
./service-nodes-and-pools -db-user=go -db-name=trtl -db-password=98765 -db-host=db-nodes-and-pools -db-port=5432 -db-ssl-mode=disable

Get a shell in the backend web container and start

docker exec -it web-backend ash
npm install
npm start

Get a shell in the frontend web container and run the dev environment

docker exec -it web-frontend ash
npm install
npm run dev

Once all containers are up and running (docker ps -a) view the frontend by going to localhost or 127.0.0.1 in your browser. The frontend code is set up with hot reloading, so you can view the changes in the browser whenever you save a file.

Development

Want to contribute? Great, feel free to reach out or submit a PR!

TODO:

  • Add more miner software config templates for mining config generation
  • Add the ability to compare pool and node data in a chart
  • Add daemon
  • Add daemon db
  • Add daemon cache service to query the daemon and store the results in the db
  • Format "my pool stats" downloadable spreadsheet
  • Add help section that explains all the pages and content
  • Work on the layout and design
  • ...

License

MIT