Jump to content
Sign in to follow this  
buzzkillb

How to Basic Block Explorer

Recommended Posts

267

420 posts
24 BF$

How to setup a basic block explorer on Denarius.  Using ciquidus because it shows an extra masternode thingy.

image.thumb.png.47564312f7f8b002e8d1d86ed2310478.png

Mostly RIP'd from Biblepay explorer setup
https://www.reddit.com/r/BiblePay/comments/7elm7r/iquidus_block_explorer_guide/

#explorer we are using
https://github.com/iquidus/explorer

#edit denarius.conf

nano denarius.conf
rpcuser=XXXX
rpcpassword=XXXX
daemon=1
listen=1
server=1
daemon=1
txindex=1

#install mongodb 4.2 ubuntu 16.04, reference for 18.04
reference: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start

cd /var/log/mongodb
tail mongod.log
# [initandlisten] waiting for connections on port <port>
# Port 27017 by default


#setup mongodb

mongo
use explorerdb
db.createUser( { user: "iquidus", pwd: "3xp!0reR", roles: [ "readWrite" ] } )
exit

#install nodejs

sudo apt-get update
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs


#install ciquidus block explorer

cd ~
git clone https://github.com/iquidus/explorer explorer

# gyp build errors
# https://github.com/nodejs/node-gyp/issues/809

sudo apt-get install libkrb5-dev
cd explorer && npm install --production

cp ./settings.json.template ./settings.json


#start explorer

cd ~/explorer
npm start

#start syncing explorer to blockchain
#open 2nd putty

cd ~/explorer
node scripts/sync.js index update

#Binding a Node.js App to Port 80 with Nginx
https://eladnava.com/binding-nodejs-port-80-using-nginx/

  • Like 1

If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites
267

420 posts
24 BF$

READ POST BELOW FOR LATEST Iquidus 1.7.3 settings.json

keeping the original ciquidus settings.json here for archive reasons.

#exchange id's

cryptopia id 5265
coinexchange id 371

#sample settings.json

/*
  This file must be valid JSON. But comments are allowed

  Please edit settings.json, not settings.json.template
*/
{
  // name your instance!
  "title": "Denarius.pro",

  "address": "https://denarius.pro",

  // coin name
  "coin": "Denarius",

  // coin symbol
  "symbol": "D",

  // logo
  "logo": "/images/denarius.png",

  // favicon
  "favicon": "public/favicon.ico",

  // Uses bootswatch themes (http://bootswatch.com/)
  // Valid options:
  //     Cerulean, Cosmo, Cyborg, Darkly, Flatly, Journal, Lumen, Paper,
  //     Readable, Sandstone, Simplex, Slate, Spacelab, Superhero, United, Yeti
  // theme (see /public/themes for available themes)
  "theme": "Slate",

  // port to listen for requests on.
  "port" : 3001,

  // database settings (MongoDB)
  "dbsettings": {
    "user": "CHANGEMECHANGEMECHANGEME",
    "password": "CHANGEMECHANGEMECHANGEME",
    "database": "explorerdb",
    "address": "localhost",
    "port": 27017
  },

  //update script settings
  "update_timeout": 10,
  "check_timeout": 250,

  // wallet settings
  "wallet": {
    "host": "localhost",
    "port": 32369,
    "user": "denariusrpc",
    "pass": "CHANGEMECHANGEMECHANGEME"
  },

  // confirmations
  "confirmations": 10,

  // language settings
  "locale": "locale/en.json",

  // menu settings
  "display": {
    "api": true,
    "markets": true,
    "richlist": true,
    "twitter": true,
    "facebook": false,
    "googleplus": false,
    "bitcointalk": false,
    "website": false,
    "slack": false,
    "github": false,
    "search": true,
    "movement": true,
    "network": true
  },

  // index page (valid options for difficulty are POW, POS or Hybrid)
  "index": {
    "show_hashrate": true,
    "difficulty": "Hybrid",
    "last_txs": 100
  },

  // ensure links on API page are valid
  "api": {
    "blockindex": 1337,
    "blockhash": "000000000661c86bf89e652eb142093bd9123006f3085595dee183bfe1c24570",
    "txhash": "000000000661c86bf89e652eb142093bd9123006f3085595dee183bfe1c24570",
    "address": "DABQj7yoQuvfxVVWMf2mqWhoHLDMUqUJsc"
  },

  // market settings
  //supported markets: bittrex, poloniex, yobit, empoex, bleutrade, cryptopia, ccex, coinexchange
  //default market is loaded by default and determines last price in header
  "markets": {
    "coin": "D",
    "exchange": "BTC",
    "enabled": ["cryptopia"],
    "cryptopia_id": "5265",
    "ccex_key" : "Get-Your-Own-Key",
    "coinexchange_id": "371",
    "default": "cryptopia"
  },

  // richlist/top100 settings
  "richlist": {
    "distribution": true,
    "received": true,
    "balance": true
  },
  // movement page settings
  // min amount: show transactions greater than this value
  // low flag: greater than this value flagged yellow
  // high flag: greater than this value flagged red
  "movement": {
    "min_amount": 100,
    "low_flag": 1000,
    "high_flag": 5000
  },

  // twitter, facebook, googleplus, bitcointalk, github, slack, website
  "twitter": "denariuscoin",
  "facebook": "yourfacebookpage",
  "googleplus": "yourgooglepluspage",
  "bitcointalk": "yourbitcointalktopicvalue",
  "github": "yourgithubusername/yourgithubrepo",
  "slack": "yourfullslackinviteurl",
  "website": "yourfullwebsiteurl",

  //genesis
  "genesis_tx": "c6d8e8f56c25cac33567e571a3497bfc97f715140fcfe16d971333b38e4ee0f2",
  "genesis_block": "00000d5dbbda01621cfc16bbc1f9bf3264d641a5dbf0de89fd0182c2c4828fcd ",

  //heavy (enable/disable additional heavy features)
  "heavy": false,

  //amount of txs to index per address (stores latest n txs)
  "txcount": 100,

  //show total sent & received on address page (set false if PoS)
  "show_sent_received": true,

  // how to calculate current coin supply
  // COINBASE : total sent from coinbase (PoW)
  // GETINFO : retreive from getinfo api call (PoS)
  // HEAVY: retreive from heavys getsupply api call
  // BALANCES : total of all address balances
  // TXOUTSET : retreive from gettxoutsetinfo api call
  "supply": "GETINFO",

  // how to acquire network hashrate
  // getnetworkhashps: uses getnetworkhashps api call, returns in GH/s
  // netmhashps: uses getmininginfo.netmhashpsm returns in MH/s
  "nethash": "netmhashps",

  // nethash unitd: sets nethash API return units
  // valid options: "P" (PH/s), "T" (TH/s), "G" (GH/s), "M" (MH/s), "K" (KH/s)
  "nethash_units": "G",

  // Address labels
  // example : "CGTta3M4t3yXu8uRgkKvaWd2d8DQvDPnpL": {"label": "This is a burn address", "type":"danger", "url":"http://example.com"}
  // label (required) = test to display
  // type (optional) = class of label, valid types: default, primary, warning, danger, success
  // url (optional) = url to link to for more information
  "labels": {
  //  "CLkWg5YSLod772uLzsFRxHgHiWVGAJSezm": {"label": "Donation Address", "type":"primary", "url":"http://example.com"},
  "DNRXXXXXXXXXXXXXXXXXXXXXXXXXZeeDTw": {"label": "Burn Addy"}
  }
}

 


If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites
267

420 posts
24 BF$

For latest 1.7.3 release

recompile daemon putting a // in front of this line

https://github.com/carsenk/denarius/blob/master/src/rpcrawtransaction.cpp#L115

Error reading "last" property during reindex reference: https://github.com/iquidus/explorer/issues/335

Change to amount of CPU's and test sync

  "block_parallel_tasks": 4,

sample settings.json

/*
  This file must be valid JSON. But comments are allowed

  Please edit settings.json, not settings.json.template
*/
{
  // name your instance!
  "title": "IQUIDUS",

  "address": "127.0.0.1:3001",

  // coin name
  "coin": "Denarius",

  // coin symbol
  "symbol": "D",

  // logo
  "logo": "/images/logo.png",

  // favicon
  "favicon": "public/favicon.ico",

  // Uses bootswatch themes (http://bootswatch.com/)
  // Valid options:
  //     Cerulean, Cosmo, Cyborg, Darkly, Flatly, Journal, Lumen, Paper,
  //     Readable, Sandstone, Simplex, Slate, Spacelab, Superhero, United, Yeti
  // theme (see /public/themes for available themes)
  "theme": "Cyborg",

  // port to listen for requests on.
  "port" : 3001,

  // database settings (MongoDB)
  "dbsettings": {
    "user": "iquidus",
    "password": "password",
    "database": "explorerdb",
    "address": "localhost",
    "port": 27017
  },

  //update script settings
  "update_timeout": 10,
  "check_timeout": 250,
  "block_parallel_tasks": 4,

  // wallet settings
  "use_rpc": true,

  "wallet": {
    "host": "localhost",
    "port": 32369,
    "username": "denarius",
    "password": "password"
  },

  // confirmations
  "confirmations": 10,

  // language settings
  "locale": "locale/en.json",

  // menu settings
  "display": {
    "api": true,
    "markets": true,
    "richlist": true,
    "twitter": true,
    "facebook": false,
    "googleplus": false,
    "youtube": false,
    "search": true,
    "movement": true,
    "network": true
  },

  // index page (valid options for difficulty are POW, POS or Hybrid)
  "index": {
    "show_hashrate": true,
    // Show Market Cap in header
    "show_market_cap": false,
    // Show Market Cap in place of price box
    "show_market_cap_over_price": false,
    "difficulty": "Hybrid",
    "last_txs": 100,
    "txs_per_page": 10
  },

  // ensure links on API page are valid
  "api": {
    "blockindex": 1337,
    "blockhash": "000000000661c86bf89e652eb142093bd9123006f3085595dee183bfe1c24570",
    "txhash": "000000000661c86bf89e652eb142093bd9123006f3085595dee183bfe1c24570",
    "address": "DABQj7yoQuvfxVVWMf2mqWhoHLDMUqUJsc"
  },

  // market settings
  //supported markets: bittrex, poloniex, yobit, empoex, bleutrade, cryptopia, ccex
  //default market is loaded by default and determines last price in header
  "markets": {
    "coin": "JBS",
    "exchange": "D",
    "enabled": ["bittrex"],
    "cryptopia_id": "1658",
    "ccex_key" : "Get-Your-Own-Key",
    "default": "bittrex"
  },

  // richlist/top100 settings
  "richlist": {
    "distribution": true,
    "received": true,
    "balance": true
  },
  // movement page settings
  // min amount: show transactions greater than this value
  // low flag: greater than this value flagged yellow
  // high flag: greater than this value flagged red
  "movement": {
    "min_amount": 100,
    "low_flag": 1000,
    "high_flag": 5000
  },

  // twitter, facebook, googleplus, youtube
  "twitter": "iquidus",
  "facebook": "yourfacebookpage",
  "googleplus": "yourgooglepluspage",
  "youtube": "youryoutubechannel",

  //genesis
  "genesis_tx": "c6d8e8f56c25cac33567e571a3497bfc97f715140fcfe16d971333b38e4ee0f2",
  "genesis_block": "00000d5dbbda01621cfc16bbc1f9bf3264d641a5dbf0de89fd0182c2c4828fcd",

  //heavy (enable/disable additional heavy features)
  "heavy": false,

  //disable saving blocks & TXs via API during indexing.
  "lock_during_index": false,

  //amount of txs to index per address (stores latest n txs)
  "txcount": 100,
  "txcount_per_page": 50,

  //show total sent & received on address page (set false if PoS)
  "show_sent_received": true,

  // how to calculate current coin supply
  // COINBASE : total sent from coinbase (PoW)
  // GETINFO : retreive from getinfo api call (PoS)
  // HEAVY: retreive from heavys getsupply api call
  // BALANCES : total of all address balances
  // TXOUTSET : retreive from gettxoutsetinfo api call
  "supply": "GETINFO",

  // how to acquire network hashrate
  // getnetworkhashps: uses getnetworkhashps api call, returns in GH/s
  // netmhashps: uses getmininginfo.netmhashpsm returns in MH/s
  "nethash": "netmhashps",

  // nethash unitd: sets nethash API return units
  // valid options: "P" (PH/s), "T" (TH/s), "G" (GH/s), "M" (MH/s), "K" (KH/s)
  "nethash_units": "G",

  // Address labels
  // example : "JhbrvAmM7kNpwA6wD5KoAsbtikLWWMNPcM": {"label": "This is a burn address", "type":"danger", "url":"http://example.com"}
  // label (required) = test to display
  // type (optional) = class of label, valid types: default, primary, warning, danger, success
  // url (optional) = url to link to for more information
  "labels": {
  "DDD6SzCwXSEcTPHmNwEQX6xbUs2Rf3svNX": {"label": "Cryptopia", "type":"primary", "url":"http://disney.com"},
  //  "JSWVXHWeYNknPdG9uDrcBoZHztKMFCsndw": {"label": "Cryptsy"}
  }
}

 

  • Like 1

If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites
267

420 posts
24 BF$

forked and added carsen's tradeogre market with sample Denarius settings.json.template

https://github.com/buzzkillb/D-explorer


If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites
267

420 posts
24 BF$

if the index stops and need to restart

rm tmp/index.pid 
node scripts/sync.js index update

if that doesn't work try to reindex from 0

node --stack-size=15000 scripts/sync.js index reindex

 


If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites
267

420 posts
24 BF$

I am using cloudflare to proxy into that reverse proxy. Another way to do it would be follow the https://eladnava.com/binding-nodejs-port-80-using-nginx/ and then install certbot and let the certbot handle changing into port 443 with TLS.


If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites
267

420 posts
24 BF$

I give up trying to run some fancy cronjob to indexing. Setup screen

screen -S index

in screen make a new file called index.sh in your explorer directory and throw this in

#!/bin/bash
while true; do
rm tmp/index.pid
node scripts/sync.js index update
sleep 15
done

then make it executable

chmod +x index.sh

run this forever

./index.sh

then to leave this screen session but keep it running

ctrl a+d

to come back in list your screens

screen -ls

then reattach the screen

screen -r somenumber.name

e-z, and could throw in the peer and market updating in above, but cronjob seems okay for those.

  • Like 1

If you enjoy my content please consider donating to the Denarius creator - https://www.patreon.com/carsenk
Join Denarius Discord - https://discord.gg/JQEmXwb

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...