Title: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on February 06, 2021, 04:22:25 AM eIquidus
v1.102.0 Written in node.js and mongodb, eIquidus is the most stable, secure, customizable and feature-rich open-source block explorer with support for virtually any altcoin that implements some form of the Bitcoin RPC API protocol (https://developer.bitcoin.org/reference/rpc/index.html) (EVM blockchains such as ETH, BNB, etc. are not supported). Originally built for the Exor blockchain (https://github.com/team-exor/exor), eIquidus has since grown into a fully-featured explorer with a focus on stability and security at its core. All features from the original iquidus explorer (https://github.com/iquidus/explorer) are included here along with many new ideas from other iquidus forks, and an absolute ton of new custom changes and bug fixes that were developed specifically for eIquidus. https://i.imgur.com/mjhisVq.png Premium Support All code in this project is open source and available free-of-charge under the BSD-3-Clause license. If you require assistance setting up an explorer for your coin, or are interested in hiring a developer to incorporate custom changes for your explorer, you may contact the developer using the links below: Discord: Joe [Team Exor]#5573 (https://discord.gg/dSuGm3y) Telegram: @joeuhren (https://t.me/joeuhren) Features
See it in Action
Installation Pre-Install The following prerequisites must be installed before using the explorer:
NOTE: In most cases, the blockchain must be synced with the txindex feature enabled to have access to all transactions. See the "Wallet Settings" section for more details. Node.js The recommended way to install Node.js is by using the Node Version Manager (NVM): Code: sudo apt update Using the --lts option in the last cmd above will install the most recent LTS version of Node.js. If you want to install a specific version you can do it with the following cmd: Code: nvm install 18.16.0 If desired, multiple versions of Node.js can be installed at the same time with NVM. Use the following syntax to easily change the current Node.js version to another installed version: Code: nvm use 18.14.2 MongoDB It is recommended to follow the install instructions at the official mongo website since they will be updated more often and have specific instructions for many different operating systems: https://www.mongodb.com/docs/manual/administration/install-community/ (https://www.mongodb.com/docs/manual/administration/install-community/). Below are instructions to install the latest v6.x version of MongoDB on Ubunutu 22.04 (run one line at a time): Code: sudo apt-get install gnupg Once MongoDB is installed it is recommended to run the following cmds to start the database server and add it as a service to ensure it starts up automatically after a reboot: Code: sudo systemctl start mongod Database Setup Open the MongoDB cli (The legacy mongo shell mongo was deprecated in MongoDB v5.0 and removed in MongoDB v6.0. Newer installs must now use mongosh): Code: mongosh Select database: NOTE: explorerdb is the name of the database where you will be storing local explorer data. You can change this to any name you want, but you must make sure that you set the same name in the settings.json file for the dbsettings.database setting. Code: use explorerdb Create a new user with read/write access: Code: db.createUser( { user: "eiquidus", pwd: "Nd^p2d77ceBX!L", roles: [ "readWrite" ] } ) Exit the mongo shell: Code: exit Download Source Code Code: git clone https://github.com/team-exor/eiquidus explorer Install Node Modules Code: cd explorer && npm install --only=prod Configure Explorer Settings Code: cp ./settings.json.template ./settings.json Make required changes in settings.json NOTE: You can further customize the site by adding your own javascript code to the public/js/custom.js file and css rules to the public/css/custom.scss file. Adding changes to custom.js and custom.scss is the preferred method of customizing your site, without affecting the ability to receive explorer code updates in the future. Start/Stop the Explorer Start Explorer (Use for Testing) You can launch the explorer in a terminal window that will output all warnings and error msgs with one of the following cmds (be sure to run from within the explorer directory): Code: npm start or (useful for crontab): Code: cd /path/to/explorer && /path/to/npm run prestart && /path/to/node --stack-size=10000 ./bin/cluster NOTE: mongod must be running to start the explorer. The explorer defaults to cluster mode by forking an instance of its process to each cpu core, which results in increased performance and stability. Load balancing gets automatically taken care of and any instances that for some reason die, will be restarted automatically. If desired, a single instance can be launched with: Code: npm run start-instance or (useful for crontab): Code: cd /path/to/explorer && /path/to/npm run prestart && /path/to/node --stack-size=10000 ./bin/cluster 1 Stop Explorer (Use for Testing) To stop the explorer running with npm start you can end the process with the key combination CTRL+C in the terminal that is running the explorer, or from another terminal you can use one of the following cmds (be sure to run from within the explorer directory): Code: npm stop or (useful for crontab): Code: cd /path/to/explorer && /path/to/node ./scripts/stop_explorer.js Start Explorer Using PM2 (Recommended for Production) PM2 (https://www.npmjs.com/package/pm2) is a process manager for Node.js applications with a built-in load balancer that allows you to always keep the explorer alive and running even if it crashes. Once you have configured the explorer to work properly in a production environment, it is recommended to use PM2 to start and stop the explorer instead of npm start and npm stop to keep the explorer constantly running without the need to always keep a terminal window open. You can start the explorer using PM2 with one of the following terminal cmds (be sure to run from within the explorer directory): Code: npm run start-pm2 or (useful for crontab): Code: cd /path/to/explorer && /path/to/npm run prestart "pm2" && /path/to/pm2 start ./bin/instance -i 0 -n explorer -p "./tmp/pm2.pid" --node-args="--stack-size=10000" NOTE: Use the following cmd to find the install path for PM2 (Linux only): Code: which pm2 Start Explorer Using PM2 and Log Viewer Alternatively, you can start the explorer using PM2 and automatically open the log viewer which will allow for viewing all warnings and error msgs as they come up by using one of the following terminal cmds (be sure to run from within the explorer directory): Code: npm run start-pm2-debug or (useful for crontab): Code: cd /path/to/explorer && /path/to/npm run prestart "pm2" && /path/to/pm2 start ./bin/instance -i 0 -n explorer -p "./tmp/pm2.pid" --node-args="--stack-size=10000" && /path/to/pm2 logs Stop Explorer Using PM2 (Recommended for Production) To stop the explorer when it is running via PM2 you can use one of the following terminal cmds (be sure to run from within the explorer directory): Code: npm run stop-pm2 or (useful for crontab): Code: cd /path/to/explorer && /path/to/pm2 stop explorer Reload Explorer Using PM2 (Recommended for Production) The explorer can be stopped and restarted in a single cmd when it is running via PM2, which is often necessary after updating the explorer code for example. Use one of the following terminal cmds to reload the explorer (be sure to run from within the explorer directory): NOTE: Assuming the explorer has access to 2 or more cpus, this reload will be done in such a way that there will be zero-downtime while the restart is being performed. If you only have a single cpu then the explorer will be inaccessible for a few seconds while the restart is being performed. Code: npm run reload-pm2 or (useful for crontab): Code: cd /path/to/explorer && /path/to/pm2 reload explorer Start Explorer Using Forever (Alternate Production Option) Forever (https://www.npmjs.com/package/forever) is an alternative to PM2 which is another useful Node.js module that is used to always keep the explorer alive and running even if the explorer crashes or stops. Once you have configured the explorer to work properly in a production environment, forever can be used as an alternative to PM2 to start and stop the explorer instead of npm start and npm stop to keep the explorer constantly running without the need to always keep a terminal window open. You can start the explorer using forever with one of the following terminal cmds (be sure to run from within the explorer directory): Code: npm run start-forever or (useful for crontab): Code: cd /path/to/explorer && /path/to/npm run prestart "forever" NOTE: Use the following cmd to find the install path for forever (Linux only): Code: which forever Stop Explorer Using Forever (Alternate Production Option) To stop the explorer when it is running via forever you can use one of the following terminal cmds (be sure to run from within the explorer directory): Code: npm run stop-forever or (useful for crontab): Code: cd /path/to/explorer && /path/to/forever stop "explorer" Reload Explorer Using Forever (Alternate Production Option) The explorer can be stopped and restarted in a single cmd when it is running via forever, which is often necessary after updating the explorer code for example. Use one of the following terminal cmds to reload the explorer (be sure to run from within the explorer directory): NOTE: The explorer will be inaccessible for a few seconds while the restart is being performed. Code: npm run reload-forever or (useful for crontab): Code: cd /path/to/explorer && /path/to/forever restart "explorer" Syncing Databases with the Blockchain sync.js (located in scripts/) is used for updating the local databases. This script must be called from the explorers root directory. Code: Usage: /path/to/node scripts/sync.js [mode] It is recommended to do the initial syncing of your blockchain, markets, peers and masternodes using the manual commands below to ensure there are no sync issues. When you are sure that everything is syncing correctly, you should then install the necessary scripts to a crontab at 1+ minute intervals as indicated below Commands for Manually Syncing Databases A number of npm scripts are included with the explorer for easy syncing of the various explorer databases. The following scripts are the main commands used for syncing the explorer with your blockchain:
A small handful of useful scripts are also included to assist in solving various issues you may experience with the explorer:
Also see the "Useful Scripts" section for more helpful scripts. Sample Crontab Example crontab; update index every minute, market data every 2 minutes, peers and masternodes every 5 minutes Easier crontab syntax using npm scripts, but may not work on some systems depending on permissions and how nodejs was installed: Code: */1 * * * * cd /path/to/explorer && npm run sync-blocks > /dev/null 2>&1 Or, run the crontab by calling the sync script directly, which should work better in the event you have problems running the npm scripts from a crontab: Code: */1 * * * * cd /path/to/explorer && /path/to/node scripts/sync.js update > /dev/null 2>&1 Wallet Settings The wallet connected to eIquidus must be running with the following flags: Code: -daemon -txindex You may either call your coins daemon using this syntax: Code: coind -daemon -txindex or else you can add the settings to your coins config file (recommended): Code: daemon=1 Run Express Webserver on Port 80 A typical webserver binds to port 80 to serve webpages over the http protocol, but the Express webserver cannot do this by default unless it is given root permissions, which isn't recommended for security reasons. Instead, there are two recommended workarounds to achieve the same end result: NOTE: Be sure to allow port 80 through any firewalls you may have configured or the explorer website may not be accessible remotely. Use Setcap to Safely Grant User Permissions NOTE: This option is only available to Linux users 1. You can use the setcap command to change the capabilities of the node binary file to specifically allow the Express webserver to bind to a port less than 1024 (this one-time cmd requires root privileges): Code: sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\`` 2. Open the settings.json file and change the webserver.port setting to a value of 80. Save the change and restart the explorer. You should now be able to browse to the explorer by IP address or domain name without the need for specifying the 3001 port any longer. Use Another Webserver as a Reverse Proxy NOTE: The following instructions are for Linux users only, but installing and configuring another webserver should be possible on any OS A few steps are involved in setting up another webserver that can bind to port 80 and forward all incoming traffic to the eIquidus node.js app. Any commercial webserver can be used to create the reverse proxy, but in this case, Nginx will be used as an example: 1. Install Nginx with the following terminal cmd: Code: sudo apt-get install nginx 2. Remove the default configuration file: Code: sudo rm /etc/nginx/sites-enabled/default 3. Create a new file in /etc/nginx/sites-available/ called node and open it with the nano text editor: Code: sudo nano /etc/nginx/sites-available/node 4. Paste the following code in the file and make sure to change example.com to your domain or IP address, and change port 3001 on the proxy_pass line to the port # you have configured for the webserver.port setting in the settings.json file. When done editing, press CTRL+X, then Y (for yes to save) and then ENTER to finish saving the changes to the config file: Code: server { 5. Create a new symbolic link for the Nginx configuration file that was just created and link it to the /etc/nginx/sites-enabled directory: Code: sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node 6. Restart Nginx to apply the configuration changes: Code: sudo service nginx restart 7. Nginx will now forward all incoming requests to eIquidus and after restarting the explorer it should be browsable via http://example.com without the need for the http://example.com:3001 port any longer. TLS/SSL Support Similar to the problem with binding to port 80, a typical webserver binds to port 443 to serve webpages over the https protocol, but the Express webserver cannot do this by default unless it is given root permissions, which isn't recommended for security reasons. Instead, there are two recommended workarounds to achieve the same end result: Manually Link TLS/SSL Certificates to the Explorer or Use Nginx as a Reverse Proxy. NOTE: Be sure to allow port 443 through any firewalls you may have configured or the explorer website may not be accessible remotely. Prerequisites NOTE: The following instructions are for Linux users only, but installing and configuring certbot should be possible on any OS There are a few common steps that must be completed before TLS/SSL certificates can be generated: 1. Install snapd: Code: sudo apt install snapd 2. Ensure that snapd is up to date: Code: sudo snap install core; sudo snap refresh core 3. Install certbot (full install instructions for different operating systems and configurations can be found here: https://certbot.eff.org/instructions (https://certbot.eff.org/instructions)): Code: sudo snap install --classic certbot 4. Prepare the certbot command: Code: sudo ln -s /snap/bin/certbot /usr/bin/certbot Manually Link TLS/SSL Certificates to the Explorer NOTE: The following instructions are for Linux users only, but installing and configuring certbot should be possible on any OS Follow the steps below to configure the Express webserver for use with TLS/SSL: 1. If you haven't already done so, run the setcap cmd from the "Use Setcap to Safely Grant User Permissions Instructions" above which will allow node.js to bind to port 443 without needing root permissions. 2. There are different options for generating a valid TLS/SSL certificate via certbot. If you are running the explorer on port 80 you can run the cmd on step 2A), otherwise run the cmd on step 2B) if the explorer is running on any port # other than 80. This step is important because certbot will automatically renew your TLS/SSL certificate periodically and it will fail to renew if the wrong option is chosen: A. The Webroot method is used when port 80 is already in use by the explorer. Be sure to change the webroot-path to the absolute path of the explorer/public directory: NOTE: The explorer must be running for this cmd to work properly: Code: sudo certbot certonly --webroot --webroot-path /path/to/explorer/public B. The Standalone method is used when port 80 is not already in use by the explorer: Code: sudo certbot certonly --standalone Certbot will ask a few simple questions and generate the necessary TLS/SSL certificate files for your domain. It will also install the necessary files to automatically renew the certificates when they are about to expire, so you shouldn't need to do anything special to keep them up to date. 3. Once the TLS/SSL certificates are generated, you will need to grant permission to non-root users with the following commands: Code: sudo chmod -R 755 /etc/letsencrypt/live/ 4. The last step is to enable TLS in the explorer's settings.json file and specify the paths to the 3 main certificate files that you just generated. Example: Code: "webserver": { Ensure that webserver.tls.enabled = true and that you specify the exact path to the webserver.tls.cert_file, webserver.tls.chain_file and webserver.tls.key_file files by changing example.com to the domain name that you just generated TLS/SSL certificates for. 5. If all went well, you should now be able to start up the explorer and browse to it using a secure https connection like https://example.com (https://example.com). Use Nginx as a Reverse Proxy NOTE: The following instructions are for Linux users only, but installing and configuring certbot and nginx should be possible on any OS 1. If you haven't already done so, first follow through the "Use Another Webserver as a Reverse Proxy Instructions" above and then continue with step #2 below. 2. Generate a new TLS/SSL certificate via certbot which will automatically edit your Nginx configuration files and enable https at the same time: Code: sudo certbot --nginx Certbot will ask a few simple questions and generate the necessary TLS/SSL certificate files for your domain and link them to Nginx. It will also install the necessary files to automatically renew the certificates when they are about to expire, so you shouldn't need to do anything special to keep them up to date. 3. If all went well, you should now be able to start up the explorer and browse to it using a secure https connection like https://example.com (https://example.com). CORS Support eIquidus has basic CORS support which is useful to prevent other sites from consuming public APIs while still allowing specific websites whitelisted access. What is CORS? CORS description taken from MaxCDN One (https://www.maxcdn.com/one/visual-glossary/cors/) Quote To prevent websites from tampering with each other, web browsers implement a security measure known as the same-origin policy. The same-origin policy lets resources (such as JavaScript) interact with resources from the same domain, but not with resources from a different domain. This provides security for the user by preventing abuse, such as running a script that reads the password field on a secure website. In cases where cross-domain scripting is desired, CORS allows web developers to work around the same-origin policy. CORS adds HTTP headers which instruct web browsers on how to use and manage cross-domain content. The browser then allows or denies access to the content based on its security configuration. How to Benefit From Using CORS? You must first set up CORS in eIquidus by editing the settings.json file and setting the value for webserver.cors.enabled to true. Code: "webserver": { The webserver.cors.corsorigin setting defaults to "\*" which allows all requests from any origin. Keeping this setting at "\*" can lead to abuse and is not recommended. Therefore, you should change the webserver.cors.corsorigin setting to an external origin that you control, as seen in the following example: Code: "webserver": { The above example would allow sharing of resources from eIquidus for all data requests coming from the example.com domain, while all requests coming from any other domain would be rejected as per normal. Below is an example of a simple javascript call using jQuery (https://jquery.com) that could be used on your example.com website to return the current block count from eIquidus: Code: jQuery(document).ready(function($) { Useful Scripts Update Explorer Script Automatically download and install the newest explorer source code, update out-of-date dependencies and reload the explorer with a single command. This update script can be safely run while the explorer is actively running to prevent needing to manually shut down to do updates, but please note that the website may be inaccessible for a few seconds or more while the explorer is being updated. NOTE: Only explorer installations that were installed via cloning the source from git can be automatically updated. Be sure to follow the "Quick Install Instructions" to set up the explorer for optimum use with this update script. Update the explorer with the following command: Code: npm run update-explorer or (useful for crontab): Code: cd /path/to/explorer && /path/to/node ./scripts/update_explorer.js NOTE: The update script also supports a couple optional parameters. Use the following command if you want to update the explorer code only, without checking for out-of-date dependencies: Code: npm run update-explorer "explorer-only" or (useful for crontab): Code: cd /path/to/explorer && /path/to/node ./scripts/update_explorer.js "explorer-only" Use the following command if you want to upgrade outdated dependencies only, without checking for explorer code updates: Code: npm run update-explorer "dependencies-only" or (useful for crontab): Code: cd /path/to/explorer && /path/to/node ./scripts/update_explorer.js "dependencies-only" Backup Database Script Make a complete backup of an eIquidus mongo database and save to compressed file. A built-in locking mechanism prevents data from being updated or changed while a backup is in process. Backups can be safely created while the explorer is actively running and/or while the explorer is turned off. The following backup scenarios are supported: Backup Database (No filename specified) Code: npm run create-backup Backs up to the explorer/backups directory by default with the current date as the filename in the format yyyy-MMM-dd.bak Backup Database (Partial filename specified) Code: npm run create-backup test Backs up the the explorer/backups directory by default with the filename test.bak Backup Database (Full filename specified) Code: npm run create-backup today.bak Backs up the the explorer/backups directory by default with the filename today.bak Backup Database (Full path with partial filename specified) Code: npm run create-backup /usr/local/bin/abc Backs up the the /usr/local/bin directory with the filename abc.bak Backup Database (Full path and filename specified) Code: npm run create-backup ~/new.bak Backs up the the users home directory with the filename new.bak Restore Database Script Restore a previously saved eIquidus mongo database backup. WARNING: This will completely overwrite your existing eIquidus mongo database, so be sure to make a full backup before proceeding. A built-in locking mechanism prevents data from being updated or changed while a backup is being restored. Backups can be safely restored while the explorer is actively running and/or while the explorer is turned off. NOTE: Older v1.x eIquidus database backups were compressed into tar.gz files. These older tar.gz backups can still be restored, but you must specifically add the .tar.gz suffix. Example: Code: npm run restore-backup /path/to/old_backup.tar.gz The following restore scenarios are supported: Restore Database (Partial filename specified) Code: npm run restore-backup old Restores the explorer/scripts/backups/old.bak file Restore Database (Full filename specified) Code: npm run restore-backup working.bak Restores the explorer/scripts/backups/working.bak file Restore Database (Full path with partial filename specified) Code: npm run restore-backup /home/explorer/backup Restores the /home/explorer/backup.bak file Restore Database (Full path and filename specified) Code: npm run restore-backup ~/archive.bak Restores the ~/archive.bak file Delete Database Script Wipe the eIquidus mongo database clean to start again from scratch. WARNING: This will completely destroy all data in your existing eIquidus mongo database, so be sure to make a full backup before proceeding. A built-in locking mechanism prevents data from being updated or changed while the database is being deleted. The process to delete the database can be executed while the explorer is actively running and/or while the explorer is turned off. Delete Database Delete the mongo database with the following command: Code: npm run delete-database Known Issues exceeding stack size Code: RangeError: Maximum call stack size exceeded Nodes default stack size may be too small to index addresses with many tx's. If you experience the above error while running sync.js the stack size needs to be increased. To determine the default setting run: Code: node --v8-options | grep -B0 -A1 stack-size To run a sync with a larger stack size launch with: Code: node --stack-size=[SIZE] scripts/sync.js index update Where [SIZE] is an integer higher than the default. note: SIZE will depend on which blockchain you are using, you may need to play around a bit to find an optimal setting Error: bind EACCES ... This error can appear when you try to run the explorer on a port number lower than 1024. There are a couple solutions to this problem which are explained in more detail in the "Run Express Webserver on Port 80" section above. Error: Callback was already called This error typically means there is some kind of connection issue between the explorer and the wallet daemon. The most common mistake that can cause this error is by configuring the wallet's P2P port # instead of the RPC port # in the settings.json. This can also happen if your wallet is not set up to accept RPC connections. Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency This warning is currently displayed when starting or stopping the explorer using the forever module. The good news is that this warning can safely be ignored although it can be confusing as to why it is displayed at all. This is a deep rooted issue with forever that is actively being discussed here (https://github.com/foreversd/forever/issues/1077). Long story short is that forever depends on a number of outdated dependencies that require certain parts of the code to be rewritten and so far it has not been officially resolved yet. Forever is still included as an option for those who are used to using it although we recommend using pm2 to run your production explorer since it is more modern and can do everything forever does and more. Donations / Support Us The eIquidus block explorer is brought to you by the tireless efforts of the Exor development team (https://exor.io/#section-team) for the benefit of the greater crypto community. If you enjoy our work, please consider supporting our continued development of this and many other cool crypto projects which you can find on our github page (https://github.com/team-exor). Please consider supporting us with a small donation by sending us some cryptocurrency:
We also encourage submitting quality pull requests from software developers looking to help make the block explorer even better. Special Thanks
Useful Links: eIquidus github (https://github.com/team-exor/eiquidus) Live Exor Coin Explorer (https://explorer.exor.io) Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: antimonycoin on May 18, 2021, 08:47:47 AM eIquidus v1.99.0 Written in node.js and mongodb, eIquidus is the most stable, secure, customizable and feature-rich open-source block explorer with support for virtually any altcoin that implements some form of the Bitcoin RPC API protocol (https://developer.bitcoin.org/reference/rpc/index.html). Originally built for the Exor blockchain (https://github.com/team-exor/exor), eIquidus has since grown into a fully-featured explorer with a focus on stability and security at its core. All features from the original iquidus explorer (https://github.com/iquidus/explorer) are included here along with many new ideas from other iquidus forks, and an absolute ton of new custom changes and bug fixes that were developed specifically for eIquidus. Special Thanks
!!! eIquidus Open Bounty Program !!! !!! DEVELOPERS WANTED: We pay EXOR coins for quality pull requests !!! Before getting too excited, please note that for now, the average payment will likely be equivalent to the price of a cup of coffee, depending on the complexity and usefulness of the pull request. The open bounty means that we welcome any and all code submissions that improve the overall experience of the explorer in some way. We are generally more interested in bug fixes and feature enhancements that are useful for most users, and are less interested in coin-specific changes that only benefit a small handful of users, although we do appreciate and support those types of updates as well. Payments will be decided on a case by case basis. If you are interested in submitting a pull request for payment, you may create a new issue (https://github.com/team-exor/eiquidus/issues) for bugs, start a new discussion (https://github.com/team-exor/eiquidus/discussions) for general updates, or contact the developer privately via Discord Joe [Team Exor]#5573 (https://discord.gg/dSuGm3y) or Telegram @joeuhren (https://t.me/joeuhren) to get an approximate quote on how much a particular fix or feature may be worth. Features
See it in Action
Installation Full Setup Guide While we do not yet have our own step-by-step setup instructions, there are a few well-written guides out there already that detail how to set up and install the original iquidus explorer (https://github.com/iquidus/explorer). Because the setup process for iquidus is more-or-less identical to eIquidus at this moment in time (making changes to settings.json is probably the biggest difference although we have helpful comments for each setting), here are some of the more complete guides that may be useful for anyone who needs more detailed instructions than are provided in the quick install instructions:
Quick Install Instructions Pre-Install The following prerequisites must be installed before using the explorer:
Database Setup Open the MongoDB cli: Code: mongo Select database: NOTE: explorerdb is the name of the database where you will be storing local explorer data. You can change this to any name you want, but you must make sure that you set the same name in the settings.json file for the dbsettings.database setting. Code: > use explorerdb Create a new user with read/write access: Code: > db.createUser( { user: "eiquidus", pwd: "Nd^p2d77ceBX!L", roles: [ "readWrite" ] } ) Download Source Code Code: git clone https://github.com/team-exor/eiquidus explorer Install Node Modules Code: cd explorer && npm install --production Configure Explorer Settings Code: cp ./settings.json.template ./settings.json Make required changes in settings.json Starting the Explorer You can launch the explorer in a terminal window that will output all warnings and error msgs with the following cmd (be sure to run from within the explorer directory): Code: npm start NOTE: mongod must be running to start the explorer. The explorer defaults to cluster mode, forking an instance of its process to each cpu core. This results in increased performance and stability. Load balancing gets automatically taken care of and any instances that for some reason die, will be restarted automatically. If desired, a single instance can be launched with: Code: node --stack-size=10000 bin/instance Stopping the Explorer To stop the explorer running with npm start you can end the process with the key combination CTRL+C in the terminal that is running the explorer or from another terminal you can use the following cmd (be sure to run from within the explorer directory): Code: npm stop Syncing Databases with the Blockchain sync.sh (located in scripts/) is used for updating the local databases. This script must be called from the explorers root directory. Code: Usage: scripts/sync.sh /path/to/nodejs [mode] It is recommended to have this script launched via a cronjob at 1+ min intervals. Sample Crontab Example crontab; update index every minute, market data every 2 minutes, peers and masternodes every 5 minutes Code: */1 * * * * /path/to/explorer/scripts/sync.sh /path/to/nodejs update > /dev/null 2>&1 Wallet Settings The wallet connected to eIquidus must be running with the following flags: Code: -daemon -txindex You may either call your coins daemon using this syntax: Code: coind -daemon -txindex or else you can add the settings to your coins config file (recommended): Code: daemon=1 Forever Forever (https://www.npmjs.com/package/forever) is a useful node.js module that is used to always keep the explorer alive and running even if the explorer crashes or stops. Once you have configured the explorer to work properly in a production environment, it is recommended to use forever to start and stop the explorer instead of npm start and npm stop to keep the explorer constantly running without the need to always keep a terminal window open. Install Forever Run the following cmd in a terminal to install forever: Code: sudo npm install forever -g Starting the Explorer Using Forever You can start the explorer using forever with the following terminal cmd (be sure to run from within the explorer directory): Code: npm run sass:compile && /path/to/nodejs /path/to/forever start bin/cluster NOTE: Use the following cmd to find the install path for forever: Code: which forever Stopping the Explorer Using Forever To stop the explorer when it is running via forever you can use the following terminal cmd (be sure to run from within the explorer directory): Code: /path/to/nodejs /path/to/forever stop bin/cluster Useful Scripts Backup Database Script Make a complete backup of an eIquidus mongo database collection and save to compressed tar.gz file. Please note that you must ensure that the explorer is NOT running at the time of backup to prevent corrupting the backup data. The following backup scenarios are supported: Backup Database (No filename specified) Code: sh scripts/create_backup.sh Backs up to the explorer/backups directory by default with the current date as the filename in the format yyyy-MMM-dd.tar.gz Backup Database (Partial filename specified) Code: sh scripts/create_backup.sh test Backs up the the explorer/backups directory by default with the filename test.tar.gz Backup Database (Full filename specified) Code: sh scripts/create_backup.sh today.tar.gz Backs up the the explorer/backups directory by default with the filename today.tar.gz Backup Database (Full path with partial filename specified) Code: sh scripts/create_backup.sh /usr/local/bin/abc Backs up the the /usr/local/bin directory with the filename abc.tar.gz Backup Database (Full path and filename specified) Code: sh scripts/create_backup.sh ~/new.tar.gz Backs up the the users home directory with the filename new.tar.gz Restore Database Script Restore a previously saved eIquidus mongo database collection backup. WARNING: This will completely overwrite your existing eIquidus mongo database, so be sure to make a full backup before proceeding. Please note that the explorer should NOT be running at the time of restore to prevent problems restoring the database. The following restore scenarios are supported: Restore Database (Partial filename specified) Code: sh scripts/restore_backup.sh old Restores the explorer/scripts/backups/old.tar.gz file Restore Database (Full filename specified) Code: sh scripts/restore_backup.sh working.tar.gz Restores the explorer/scripts/backups/working.tar.gz file Restore Database (Full path with partial filename specified) Code: sh scripts/restore_backup.sh /home/explorer/backup Restores the /home/explorer/backup.tar.gz file Restore Database (Full path and filename specified) Code: sh scripts/restore_backup.sh ~/archive.tar.gz Restores the ~/archive.tar.gz file Delete Database Script Completely wipe the eIquidus mongo database collection clean to start again from scratch. WARNING: This will completely destroy all data in your existing eIquidus mongo database, so be sure to make a full backup before proceeding. Please note that the explorer should NOT be running at the time of database deletion to prevent database related problems. Delete the mongo database with the following command: Delete Database Code: sh scripts/delete_database.sh CORS Support eIquidus has basic CORS support which is useful to prevent other sites from consuming public APIs while still allowing specific websites whitelisted access. What is CORS? CORS description taken from MaxCDN One (https://www.maxcdn.com/one/visual-glossary/cors/) Quote To prevent websites from tampering with each other, web browsers implement a security measure known as the same-origin policy. The same-origin policy lets resources (such as JavaScript) interact with resources from the same domain, but not with resources from a different domain. This provides security for the user by preventing abuse, such as running a script that reads the password field on a secure website. In cases where cross-domain scripting is desired, CORS allows web developers to work around the same-origin policy. CORS adds HTTP headers which instruct web browsers on how to use and manage cross-domain content. The browser then allows or denies access to the content based on its security configuration. How to Benefit From Using CORS? You must first set up CORS in eIquidus by editing the settings.json file and setting the value for webserver.cors.enabled to true. Code: "webserver": { The webserver.cors.corsorigin setting defaults to "\*" which allows all requests from any origin. Keeping this setting at "\*" can lead to abuse and is not recommended. Therefore, you should change the webserver.cors.corsorigin setting to an external origin that you control, as seen in the following example: Code: "webserver": { The above example would allow sharing of resources from eIquidus for all data requests coming from the example.com domain, while all requests coming from any other domain would be rejected as per normal. Below is an example of a simple javascript call using jQuery (https://jquery.com) that could be used on your example.com website to return the current block count from eIquidus: Code: jQuery(document).ready(function($) { Known Issues exceeding stack size Code: RangeError: Maximum call stack size exceeded Nodes default stack size may be too small to index addresses with many tx's. If you experience the above error while running sync.sh the stack size needs to be increased. To determine the default setting run: Code: node --v8-options | grep -B0 -A1 stack-size To run a sync with a larger stack size launch with: Code: node --stack-size=[SIZE] scripts/sync.js index update Where [SIZE] is an integer higher than the default. note: SIZE will depend on which blockchain you are using, you may need to play around a bit to find an optimal setting How You Can Support Us The eIquidus block explorer is brought to you by the tireless efforts of the Exor development team (https://exor.io/#section-team) for the benefit of the greater crypto community. If you enjoy our work, please consider supporting our continued development of this and many other cool crypto projects which you can find on our github page (https://github.com/team-exor). You can support us via one of the following options:
Useful Links: eIquidus github (https://github.com/team-exor/eiquidus) Live Exor Coin Explorer (https://explorer.exor.io) Thank you, we installed your explorer but we have two errors: 1. the total supply on the top panel show 0: http://wallet.antimonycoin.com:3001/ 2. The richlist: http://wallet.antimonycoin.com:3001/richlist - doesn't show the % You know a fix for this? thanks Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 18, 2021, 02:26:01 PM Quote Thank you, we installed your explorer but we have two errors: 1. the total supply on the top panel show 0: http://wallet.antimonycoin.com:3001/ 2. The richlist: http://wallet.antimonycoin.com:3001/richlist - doesn't show the % You know a fix for this? thanks I took a quick peek at your site and it looks like you managed to solve both issues yourself. Just in case you're unsure, or for anyone else who may be wondering, there are a few different options to determine how the total supply is derived by changing the sync.supply value in the settings.json config file which will affect both the top panel total supply and richlist numbers as well as some other calculations throughout the site. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: antimonycoin on May 18, 2021, 02:57:18 PM Quote Thank you, we installed your explorer but we have two errors: 1. the total supply on the top panel show 0: http://wallet.antimonycoin.com:3001/ 2. The richlist: http://wallet.antimonycoin.com:3001/richlist - doesn't show the % You know a fix for this? thanks I took a quick peek at your site and it looks like you managed to solve both issues yourself. Just in case you're unsure, or for anyone else who may be wondering, there are a few different options to determine how the total supply is derived by changing the sync.supply value in the settings.json config file which will affect both the top panel total supply and richlist numbers as well as some other calculations throughout the site. Yes, thank you, was the circulating supply needed to be Coinbase in settings.joson and that solved my problem, thank you for your quick answer Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 19, 2021, 12:09:35 PM Hi. I had a look at the demo. I see under "Markets" tab the Stex exchange. In the description though, Stex is not mentioned as a supported exchange platform.
How did you implemented then Stex under "Markets" function ? Thank you Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 19, 2021, 05:57:38 PM Hi. I had a look at the demo. I see under "Markets" tab the Stex exchange. In the description though, Stex is not mentioned as a supported exchange platform. How did you implemented then Stex under "Markets" function ? Thank you Which description are you referring to that doesn't list Stex as a supported exchange? Stex is listed in the ReadMe along with the rest of the supported exchanges. Maybe double-check and make sure that you are looking at the correct github page: https://github.com/team-exor/eiquidus (https://github.com/team-exor/eiquidus) To make changes to the functionality of the explorer you will need to manually edit the settings.json file which is where all the configuration settings can be found. There are quite a lot of settings at this point but all options are heavily commented to hopefully make it easier to understand what each feature does. The markets_page.exchanges section of the config is where you will find the option to enable stex and all other supported markets/exchanges. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 20, 2021, 10:03:17 AM Which description are you referring to that doesn't list Stex as a supported exchange? Stex is listed in the ReadMe along with the rest of the supported exchanges. Maybe double-check and make sure that you are looking at the correct github page: https://github.com/team-exor/eiquidus (https://github.com/team-exor/eiquidus) Ok. I've managed to get the Stex synced. You were right. The issue is now that the top boxes for Price and Marketcap shows zero values, despite market exchange is synced. Probably because whatever I tried (reset mongo db, reindex, etc.) I was unable to manage to make "total coin supply" work. Also, the Crontab is doing nothing when filled in with these: Code: */1 * * * * /path/to/explorer/scripts/sync.sh /path/to/nodejs update > /dev/null 2>&1 They do work though if I run them individually in terminal. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 20, 2021, 06:42:20 PM Which description are you referring to that doesn't list Stex as a supported exchange? Stex is listed in the ReadMe along with the rest of the supported exchanges. Maybe double-check and make sure that you are looking at the correct github page: https://github.com/team-exor/eiquidus (https://github.com/team-exor/eiquidus) Ok. I've managed to get the Stex synced. You were right. The issue is now that the top boxes for Price and Marketcap shows zero values, despite market exchange is synced. Probably because whatever I tried (reset mongo db, reindex, etc.) I was unable to manage to make "total coin supply" work. Also, the Crontab is doing nothing when filled in with these: Code: */1 * * * * /path/to/explorer/scripts/sync.sh /path/to/nodejs update > /dev/null 2>&1 They do work though if I run them individually in terminal. To get the Price and Marketcap boxes to show proper values you must successfully run the market sync and update sync scripts at least once each for those values to be populated. If your crontab is not firing properly, you must have some kind of problem with your crontab syntax. I would recommend manually running each command one at a time outside of crontab to make sure you have the proper syntax and then add it into your crontab when you can verify and see that it is working without errors. I know you said you already did that but the fact that you are having problems showing the Price and Marketcap tells me that something didn't work correctly and you should pay attention to the error msgs to try and pinpoint the issue. If you still can't figure it out, you can post some of the output from manually running the sync commands and I'll see if I can help you track down the cause of the errors. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: Mercedes.li on May 22, 2021, 03:00:00 AM hi.dev. I tried to configure eIquidus on windows 10 OS. I installed mongodb 4.4.6 and node 14.17And executed npm install --production and Git2.3.1 (sh may be needed, I don’t know if I really need this program!) and modified the settings .json. Now, I use CMD to execute in the file directory: npm start. Got the following response:
Code: H:\eiquidus-1.99.0>npm start Red indicates an error. Do I need to download any other programs? Any response is appreciated. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: Mercedes.li on May 22, 2021, 08:18:04 AM After patient modification, my explorer can work. Now, I still receive the following error, but my web page is displayed well. Is it related to the fact that I haven't fully synchronized the blockchain?
Code: _http_outgoing.js:561 This is my package.json : Code: { Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: Mercedes.li on May 23, 2021, 12:15:08 PM hi.sir. I followed the tutorial to complete the browser configuration, this is a good project! Now, I encountered the following difficulties:
1 My page zoom is different from "https://explorer.exor.io/", my upper left LOGO is very close to the left side of the window; 2 My search box is different from "https://explorer.exor.io/", it is very short, and the search button is below it instead of on the right. 3 On the TOP100 page, the percentage color is not displayed under the "Wealth Distribution" item, but the color is displayed in the pie chart below, but the ranking of the entire TOP100 is displayed correctly. Any answers are appreciated. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 24, 2021, 12:32:50 AM hi.dev. I tried to configure eIquidus on windows 10 OS. Just a note that while it may possibly work under Windows 10, the project has been tested and configured to run under ubuntu/debian linux and no efforts have been made yet to make the source compatible with other operating systems, so you may have troubles getting everything working because of this. After patient modification, my explorer can work. Now, I still receive the following error, but my web page is displayed well. Is it related to the fact that I haven't fully synchronized the blockchain? Code: _http_outgoing.js:561 The ERR_HTTP_HEADERS_SENT error typically means your wallet daemon is not running or else you have not properly configured your wallet connection in the settings.json file. This is my package.json : Code: { Have you made custom changes to the package.json file? Typically no changes are necessary in this file. It also seems that either you removed a lot of the newer scripts or else you are running an older version of the explorer. Are you sure that you cloned the newest changes from https://github.com/team-exor/eiquidus (https://github.com/team-exor/eiquidus)? It seems you are a few months behind in regards to updates. Maybe try a git pull and double-check that you are cloning/forking from the official repo: https://github.com/team-exor/eiquidus (https://github.com/team-exor/eiquidus) hi.sir. I followed the tutorial to complete the browser configuration, this is a good project! Now, I encountered the following difficulties: 1 My page zoom is different from "https://explorer.exor.io/", my upper left LOGO is very close to the left side of the window; 2 My search box is different from "https://explorer.exor.io/", it is very short, and the search button is below it instead of on the right. 3 On the TOP100 page, the percentage color is not displayed under the "Wealth Distribution" item, but the color is displayed in the pie chart below, but the ranking of the entire TOP100 is displayed correctly. Any answers are appreciated. 1) Can you post a screenshot to demonstrate the zoom issue you are referring to? Or else can you provide a link to a test explorer where you are encountering this issue? It's difficult to say what could be wrong without being able to see it 2) There are two different search position options that you can find in the settings.json file. Lookup the page_header.panels.search setting and change the position option to show the search box inside the page header or below it. 3) Once again, can you post a screenshot or provide a link to your explorer that is having this color issue so I can see what it looks like? Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: Mercedes.li on May 24, 2021, 03:38:10 AM hi.dev. I tried to configure eIquidus on windows 10 OS. I installed mongodb 4.4.6 and node 14.17And executed npm install --production and Git2.3.1 (sh may be needed, I don’t know if I really need this program!) and modified the settings .json. Now, I use CMD to execute in the file directory: npm start. Got the following response: Code: H:\eiquidus-1.99.0>npm start Red indicates an error. Do I need to download any other programs? Any response is appreciated. Thanks for your reply, now, I am getting the best effect by changing the code! I found that it cannot be executed in windows Code: "sh ./scripts/sass_theme_reader.sh && ./node_modules/.bin/sass --no-source-map --style=compressed ./public/css/style.scss ./public/css/style.min.css" Code: start %cd%/scripts/sass_theme_reader.sh & %cd%/node_modules/.bin/sass.cmd --no-source-map --style=compressed ./public/css/style.scss ./public/css/style.min.css However, I got another difficulty. I couldn't view the block records from 1-104. I modified the block_page and transaction_page of settings.json, but it was always the case. I cannot send my explorer connection because it is not on the public network. The picture cannot be sent because I don't have permission. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 24, 2021, 04:47:06 PM Ok... I managed to make this explorer work (again) for public access : https://explorer.voltpot.org (https://explorer.voltpot.org)
I've checked once again and every of these commands runs successfully when they are run one by one in terminal: Code: Usage: scripts/sync.sh /path/to/nodejs [mode] If they are on a crontab job though, nothing happens. I've seen a file named "delete.me" in explorer/tmp folder. So I delete it. Now I'm running the " scripts/sync.sh /path/to/nodejs check " command. It's been running for almost 3 hr already: Code: ~/explorer$ scripts/sync.sh /path/to/nodejs check It shows like the PID 3530 associated with this "check" is running indeed: Code: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND The only difference I've noticed is that in the ~explorer/tmp folder it shows up now an "index.pid" file, but no "cluster.pid" file. These 2 files were present in /tmp folder on original Iquidus Explorer. So I wonder if there might be a connection for Crontab not working, because of ~explorer/tmp folder issues?! Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 24, 2021, 09:36:20 PM Thanks for your reply, now, I am getting the best effect by changing the code! I found that it cannot be executed in windows Code: "sh ./scripts/sass_theme_reader.sh && ./node_modules/.bin/sass --no-source-map --style=compressed ./public/css/style.scss ./public/css/style.min.css" Code: start %cd%/scripts/sass_theme_reader.sh & %cd%/node_modules/.bin/sass.cmd --no-source-map --style=compressed ./public/css/style.scss ./public/css/style.min.css However, I got another difficulty. I couldn't view the block records from 1-104. I modified the block_page and transaction_page of settings.json, but it was always the case. I cannot send my explorer connection because it is not on the public network. The picture cannot be sent because I don't have permission. If you cannot send a link or screenshot to the problems you are experiencing, can you tell me the name of the altcoin you are trying to sync and send a link to the source and/or wallet binaries? I will see if I can find some time this week to sync the blockchain myself and try to figure out what is wrong with blocks 1-104 and let you know the results. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 24, 2021, 09:50:25 PM Ok... I managed to make this explorer work (again) for public access : https://explorer.voltpot.org (https://explorer.voltpot.org) I've checked once again and every of these commands runs successfully when they are run one by one in terminal: Code: Usage: scripts/sync.sh /path/to/nodejs [mode] If they are on a crontab job though, nothing happens. I've seen a file named "delete.me" in explorer/tmp folder. So I delete it. Now I'm running the " scripts/sync.sh /path/to/nodejs check " command. It's been running for almost 3 hr already: Code: ~/explorer$ scripts/sync.sh /path/to/nodejs check It shows like the PID 3530 associated with this "check" is running indeed: Code: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND The only difference I've noticed is that in the ~explorer/tmp folder it shows up now an "index.pid" file, but no "cluster.pid" file. These 2 files were present in /tmp folder on original Iquidus Explorer. So I wonder if there might be a connection for Crontab not working, because of ~explorer/tmp folder issues?! Thanks for the explorer link. I can see that you are able to sync the main blockchain data without troubles, but it seems that the peer and market sync have not been run successfully. Running scripts/sync.sh /path/to/nodejs check won't be very useful for you in this case since your blockchain looks to be synced already and that is not the problem. Try running these cmds manually to sync the stex market data and peers list: Code: sh /path/to/explorer/scripts/sync.sh market Can you post the results of those two cmds? I'm guessing one or both are showing an error msg. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 25, 2021, 08:03:47 AM Thanks for the explorer link. I can see that you are able to sync the main blockchain data without troubles, but it seems that the peer and market sync have not been run successfully. Running scripts/sync.sh /path/to/nodejs check won't be very useful for you in this case since your blockchain looks to be synced already and that is not the problem. Try running these cmds manually to sync the stex market data and peers list: Code: sh /path/to/explorer/scripts/sync.sh market Can you post the results of those two cmds? I'm guessing one or both are showing an error msg. They do work if I run them one by one in Terminal. They don't work though via Crontab. That's what I'm trying to point to. Also, as you can see, the boxes for "price" and "marketcap" shows ZERO, despite the market (Stex) is correctly synced. Code: scripts/sync.sh /path/to/nodejs peers Code: scripts/sync.sh /path/to/nodejs market Indeed, with your commands I'm getting this: Code: sh /path/to/explorer/scripts/sync.sh market Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 25, 2021, 06:37:13 PM Thanks for the explorer link. I can see that you are able to sync the main blockchain data without troubles, but it seems that the peer and market sync have not been run successfully. Running scripts/sync.sh /path/to/nodejs check won't be very useful for you in this case since your blockchain looks to be synced already and that is not the problem. Try running these cmds manually to sync the stex market data and peers list: Code: sh /path/to/explorer/scripts/sync.sh market Can you post the results of those two cmds? I'm guessing one or both are showing an error msg. They do work if I run them one by one in Terminal. They don't work though via Crontab. That's what I'm trying to point to. Also, as you can see, the boxes for "price" and "marketcap" shows ZERO, despite the market (Stex) is correctly synced. Code: scripts/sync.sh /path/to/nodejs peers Code: scripts/sync.sh /path/to/nodejs market Indeed, with your commands I'm getting this: Code: sh /path/to/explorer/scripts/sync.sh market Thanks for posting the results of the peers and market sync. I believe your crontab problem has to do with the fact that you are not passing the correct nodejs path. If you specify the wrong path while running a sync cmd, it will attempt to lookup the correct path, which works when running manually but does not work in crontab. Therefore, you absolutely must specify the correct path in crontab otherwise it will fail. To find your nodejs path, run this cmd: Code: which node Then, update your crontab cmds with the correct nodejs path as follows: Code: */1 * * * * /YOUR_FULL_PATH_TO_THE_EXPLORER_SCRIPTS_DIRECTORY/sync.sh /YOUR_FULL_PATH_TO_NODE update > /dev/null 2>&1 Be sure to replace YOUR_FULL_PATH_TO_THE_EXPLORER_SCRIPTS_DIRECTORY with the full path to your explorer/scripts directory and replace YOUR_FULL_PATH_TO_NODE with the path to your node install that you got from the which node cmd. In regards to the problem with the "price" and "marketcap" boxes showing zero, it is because the stex api only returns values for trades made in the last 24 hours. Therefore the price and marketcap will always be zero until someone buys some coins and you run a market sync after that. Hopefully that all makes sense Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 25, 2021, 07:44:13 PM Thanks for posting the results of the peers and market sync. I believe your crontab problem has to do with the fact that you are not passing the correct nodejs path. If you specify the wrong path while running a sync cmd, it will attempt to lookup the correct path, which works when running manually but does not work in crontab. Therefore, you absolutely must specify the correct path in crontab otherwise it will fail. To find your nodejs path, run this cmd: Code: which node Then, update your crontab cmds with the correct nodejs path as follows: Code: */1 * * * * /YOUR_FULL_PATH_TO_THE_EXPLORER_SCRIPTS_DIRECTORY/sync.sh /YOUR_FULL_PATH_TO_NODE update > /dev/null 2>&1 Be sure to replace YOUR_FULL_PATH_TO_THE_EXPLORER_SCRIPTS_DIRECTORY with the full path to your explorer/scripts directory and replace YOUR_FULL_PATH_TO_NODE with the path to your node install that you got from the which node cmd. In regards to the problem with the "price" and "marketcap" boxes showing zero, it is because the stex api only returns values for trades made in the last 24 hours. Therefore the price and marketcap will always be zero until someone buys some coins and you run a market sync after that. Hopefully that all makes sense Amazing... Crontab now working. Thanks. Waiting to see if "Price" and "Marketcap" boxes will show some values as there was some recent moves on Stex exchange. :) Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 26, 2021, 06:19:28 PM Thanks for posting the results of the peers and market sync. I believe your crontab problem has to do with the fact that you are not passing the correct nodejs path. If you specify the wrong path while running a sync cmd, it will attempt to lookup the correct path, which works when running manually but does not work in crontab. Therefore, you absolutely must specify the correct path in crontab otherwise it will fail. To find your nodejs path, run this cmd: Code: which node Then, update your crontab cmds with the correct nodejs path as follows: Code: */1 * * * * /YOUR_FULL_PATH_TO_THE_EXPLORER_SCRIPTS_DIRECTORY/sync.sh /YOUR_FULL_PATH_TO_NODE update > /dev/null 2>&1 Be sure to replace YOUR_FULL_PATH_TO_THE_EXPLORER_SCRIPTS_DIRECTORY with the full path to your explorer/scripts directory and replace YOUR_FULL_PATH_TO_NODE with the path to your node install that you got from the which node cmd. In regards to the problem with the "price" and "marketcap" boxes showing zero, it is because the stex api only returns values for trades made in the last 24 hours. Therefore the price and marketcap will always be zero until someone buys some coins and you run a market sync after that. Hopefully that all makes sense Amazing... Crontab now working. Thanks. Waiting to see if "Price" and "Marketcap" boxes will show some values as there was some recent moves on Stex exchange. :) Please accept my apologies. I was looking into this problem a bit deeper and realized that the reason your "Price" and "Marketcap" boxes are not populating is because the explorer currently only supports BTC markets when populating those values. I have added this to my TODO list and will add support for ETH and USDT and other markets in the near future. For now, you may want to hide those boxes via the config until a fix is released. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 27, 2021, 11:35:03 AM Please accept my apologies. I was looking into this problem a bit deeper and realized that the reason your "Price" and "Marketcap" boxes are not populating is because the explorer currently only supports BTC markets when populating those values. I have added this to my TODO list and will add support for ETH and USDT and other markets in the near future. For now, you may want to hide those boxes via the config until a fix is released. Thanks for letting me know. No rush, but do you have any idea about how long it might take for you to come up with this update? Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 27, 2021, 06:20:40 PM Please accept my apologies. I was looking into this problem a bit deeper and realized that the reason your "Price" and "Marketcap" boxes are not populating is because the explorer currently only supports BTC markets when populating those values. I have added this to my TODO list and will add support for ETH and USDT and other markets in the near future. For now, you may want to hide those boxes via the config until a fix is released. Thanks for letting me know. No rush, but do you have any idea about how long it might take for you to come up with this update? I don't want to make any promises, but I'll see if I can take a look in the next week or two and update you here when a fix is released. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on May 30, 2021, 02:49:07 AM Please accept my apologies. I was looking into this problem a bit deeper and realized that the reason your "Price" and "Marketcap" boxes are not populating is because the explorer currently only supports BTC markets when populating those values. I have added this to my TODO list and will add support for ETH and USDT and other markets in the near future. For now, you may want to hide those boxes via the config until a fix is released. Thanks for letting me know. No rush, but do you have any idea about how long it might take for you to come up with this update? I have an update for you. When you have a spare moment, stop your explorer, do a git pull and restart the explorer. I added better support for USD price lookups of any altcoin, so your ETH and USDT pairs should now return proper values. Please keep in mind that for now it only displays the USD value for the default exchange trading pair (as it always did), and not an average of all markets. I plan to add the average market price as an option in the near future, but hopefully this will suffice for now. Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: ekkakon on May 30, 2021, 09:02:48 AM I have an update for you. When you have a spare moment, stop your explorer, do a git pull and restart the explorer. I added better support for USD price lookups of any altcoin, so your ETH and USDT pairs should now return proper values. Please keep in mind that for now it only displays the USD value for the default exchange trading pair (as it always did), and not an average of all markets. I plan to add the average market price as an option in the near future, but hopefully this will suffice for now. Thank you. It works now. I will highly recommend Eiquidus on Voltpot's channels. Excellent support ! :) Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: pazor_true on February 14, 2022, 02:51:24 PM Hi,
how can i add a new market_logo in a new market modul ? is there a guide how to create the market_logo string ? regards btw. i am adapting the eIquidus 1.99.0 to Emerald Crypto explorer. nice piece of software Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on February 15, 2022, 03:16:22 PM Hi, how can i add a new market_logo in a new market modul ? is there a guide how to create the market_logo string ? regards btw. i am adapting the eIquidus 1.99.0 to Emerald Crypto explorer. nice piece of software There is no guide, but it is all open source so you're welcome to review how it works in the code itself. The market_logo is stored in base64 format. You can use a converter like this one to get the string you need to add the new logo: https://www.imgtobase64.com/ Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: pazor_true on February 22, 2022, 01:43:39 PM Hi, how can i add a new market_logo in a new market modul ? is there a guide how to create the market_logo string ? regards btw. i am adapting the eIquidus 1.99.0 to Emerald Crypto explorer. nice piece of software There is no guide, but it is all open source so you're welcome to review how it works in the code itself. The market_logo is stored in base64 format. You can use a converter like this one to get the string you need to add the new logo: https://www.imgtobase64.com/ hi Joe, thank you for your reply. i added the logo of Graviex Exchange, Unnamed Exchange and FreiExchange to the modules in the EmeraldCrypto Explorer based on your eIquidus 1.99.0. Feel free to use them. You will find the explorer under https://explorer.emeraldcrypto.de Github https://github.com/Crypto-Currency/Emerald-Block-Explorer/tree/1.99.0.emd regards Pazor Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on June 04, 2022, 01:55:37 AM HUGE eIquidus explorer update v1.100.0 released after more than a year of development!
Truth-be-told the last version was bumped all the way to v1.99 thinking that v2.0 was right around the corner, but there's still a few necessary changes to be made before the v2.0 release. This release is very stable, and as always, it is compatible with a large number of bitcoin-clones for those that are needing a simple yet powerful open-source block explorer for their own coin: https://github.com/team-exor/eiquidus (https://github.com/team-exor/eiquidus) Notable changes since v1.99.0:
The full change log can be found here: https://raw.githubusercontent.com/team-exor/eiquidus/master/UPGRADE (https://raw.githubusercontent.com/team-exor/eiquidus/master/UPGRADE) Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on July 10, 2022, 03:41:45 AM The eIquidus explorer has been updated to v1.101.0 today.
This is mostly a maintenance release with various improvements and bug-fixes. The update script has been perfected so that manual restarts of the explorer are no longer necessary after updating since the update script now handles restarting automatically. IMPORTANT NOTE: This release contains breaking changes for running the explorer via PM2 and Forever. It is strongly recommended to stop the explorer before updating to prevent problems. If you were running an explorer version that is older than v1.100.0-bae4d50 (https://github.com/team-exor/eiquidus/commit/bae4d50087f9134d5ad72c51ff0279b43ab75320) and you did not shut down the explorer before performing a code update, you will be unable to shut down or restart the explorer using the usual built-in cmds due to breaking changes. Therefore, you will need to type out the full stop cmd this one time only, and from now on going forward you should no longer need to even stop the explorer for any update, as it is now built into the update cmd. If running using pm2 and you cannot stop the explorer, you can stop using the following full cmd syntax: Windows: Code: pm2 stop ./bin/instance Linux and other OS's: Code: node node_modules/pm2/bin/pm2 stop ./bin/instance If running using forever and you cannot stop the explorer, you can stop using the following full cmd syntax: All OS's: Code: node node_modules/forever/bin/forever stop ./bin/cluster Notable changes since v1.100.0:
The full change log can be found here: https://raw.githubusercontent.com/team-exor/eiquidus/master/UPGRADE (https://raw.githubusercontent.com/team-exor/eiquidus/master/UPGRADE) Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on June 15, 2023, 02:00:36 AM We are proud to announce the release of eIquidus explorer v1.102.0. The most notable change here is the orphan block fix from commit 09fa919 (https://github.com/team-exor/eiquidus/commit/09fa91968645b63321813d190749d6502a6fbaa8) which was one of the last big bugs left in the system.
Although the orphan block fix introduced some new database changes, it is not necessary to reindex your existing explorer since it is smart enough to handle new and existing explorer setups. NOTE: As of commit de0da04 (https://github.com/team-exor/eiquidus/commit/de0da04e7b792371ede393623aaefcefa02d38c4), if you were running via pm2 or forever when updating the explorer with this change, it is necessary to manually stop the explorer with npm run stop-pm2 or npm run stop-forever and then start again after the code has been updated to allow NODE_ENV to be set to "production". Without doing this, the explorer will still be run in "development" mode until pm2 or forever is fully stopped and restarted. How to Upgrade
Notable changes since v1.101.0:
The full change log can be found here: https://raw.githubusercontent.com/team-exor/eiquidus/master/UPGRADE (https://raw.githubusercontent.com/team-exor/eiquidus/master/UPGRADE) Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: BitcoinXProject on January 26, 2024, 03:35:28 PM Hi, Is this project still maintained? I tried to install it and I got Node issues:
npm install --production npm http GET https://registry.npmjs.org/bitcoin-core/2.0.0 npm http 200 https://registry.npmjs.org/bitcoin-core/2.0.0 npm http GET https://registry.npmjs.org/bitcoin-core/-/bitcoin-core-2.0.0.tgz npm http 200 https://registry.npmjs.org/bitcoin-core/-/bitcoin-core-2.0.0.tgz npm WARN engine bitcoin-core@2.0.0: wanted: {"node":">=4"} (current: {"node":"v0.10.25","npm":"1.3.24"}) npm http GET https://registry.npmjs.org/debugnyan npm http GET https://registry.npmjs.org/bluebird npm http GET https://registry.npmjs.org/json-bigint npm http GET https://registry.npmjs.org/uphold/request-logger npm http GET https://registry.npmjs.org/lodash npm http GET https://registry.npmjs.org/standard-error npm http GET https://registry.npmjs.org/semver npm http 304 https://registry.npmjs.org/lodash npm http 405 https://registry.npmjs.org/uphold/request-logger npm ERR! TypeError: Cannot read property 'latest' of undefined npm ERR! at next (/home/x/.nvm/v0.10.25/lib/node_modules/npm/lib/cache.js:692:35) npm ERR! at /home/x/.nvm/v0.10.25/lib/node_modules/npm/lib/cache.js:680:5 npm ERR! at saved (/home/x/.nvm/v0.10.25/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:142:7) npm ERR! at /home/x/.nvm/v0.10.25/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:133:7 npm ERR! at Object.oncomplete (fs.js:107:15) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! System Linux 5.15.0-91-generic npm ERR! command "/home/x/.nvm/v0.10.25/bin/node" "/home/x/.nvm/v0.10.25/bin/npm" "install" "--production" npm ERR! cwd /home/x/Documents/explorer npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.24 npm ERR! type non_object_property_load npm http 304 https://registry.npmjs.org/semver npm http 304 https://registry.npmjs.org/json-bigint npm http 304 https://registry.npmjs.org/bluebird npm http 304 https://registry.npmjs.org/debugnyan npm http 304 https://registry.npmjs.org/standard-error npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/x/Documents/explorer/npm-debug.log npm ERR! not ok code 0 Title: Re: [ANN] eIquidus - Open-Source Altcoin Block Explorer Post by: joe@exor on January 27, 2024, 02:02:27 AM Hi, Is this project still maintained? I tried to install it and I got Node issues According to your log, you are using Node 0.10.25 which is super old. The explorer only works with modern versions of Node (16.20.1 is the oldest supported version). Take a look at the installation section in the github README for step-by-step instructions: https://github.com/team-exor/eiquidus?tab=readme-ov-file#installation |