AlgoSearch (live deployment)
AlgoSearch enables you to explore and search the Algorand blockchain for transactions, addresses, blocks, assets, statistics, and more, in real-time. It's a simple, easy-to-deploy, and open-source block explorer to be used alongside an Algorand archival node.
Dependencies
- Node.js 8+ for use with server and front-end.
- go-algorand for Algorand
goal
node (must support archival indexing). - CouchDB as database solution.
Work on AlgoSearch is funded by the Algorand Foundation through a grant to Anish Agnihotri. The scope of work includes the development of an open-source block explorer (AlgoSearch) and a WIP analytics platform.
The go-algorand node currently aims to support only Linux and OSX environments for development.
Simpler installation instructions, a hands-on guide, and a one-click deploy Docker image will be published upon final completion of AlgoSearch.
First you'll need to install CouchDB and Algorand's Node locally.
You can run CouchDB using Docker easily:
mkdir db-data
docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -p 5984:5984 --name my-couchdb -v $(pwd)/db-data:/opt/couchdb/data -d couchdb
install
# Run in folder root directory
npm install
configure
- Enter your sitename in
src/constants.js
. - Copy
service/global.sample.js
toservice/global.js
and enter your node and DB details.
build
# Run in folder root directory
npm run build
- Make sure DB is running and that DB details are correct in
service/global.js
. - Create tables:
node service/sync/initSync.js
- Create blocks DB view:
- Go to: http://127.0.0.1:5984/_utils/#/database/blocks/new_view
- Fill according to service/design.md
- Create transactions DB view:
- Go to: http://127.0.0.1:5984/_utils/#/database/transactions/new_view
- Fill according to service/design.md
- Sync tables:
Note that this step takes time to sync and should stay running as long as the server is running.
node service/sync/syncAll.js
nodemon server.js
Make sure node is running on the preferred network and that algod details are correct in service/global.js
.
The Wiki is currently under construction.
Copyright (C) 2020, Anish Agnihotri.