Commit Graph

45 Commits

Author SHA1 Message Date
Joe Uhren 8fa337f6f9 Network peer updates
-Added a new port_filter setting to the 3 network_page tables which allows showing only results from peers on the selected port
-Added a new hide_protocols setting to the 3 network_page tables which allows hiding results from peers on the selected protocols
-Added a Port column to the data table on the Network page Connections tab
-The data table on the Network page Connections tab is now sortable
-The peer sync now refreshes data for peers that existed since last sync
-Adding and updating peers now displays the port # in the log output
-The /ext/getnetworkpeers api is now sorted by ip4/ip6, address and port which also means all data on the Network page is sorted this way by default as well
-The /ext/getnetworkpeers api no longer requires the internal argument for calls originating from the Network page
-The Network page now only makes a single call to the /ext/getnetworkpeers api instead of 3 calls
-The find_peer and drop_peer functions now requiresa port to distinguish between multiple connections to the same peer on different ports
2022-07-01 21:11:57 -06:00
Joe Uhren 40d367510d Better special char support for mongo user/pass
-URL encoding the mongo username and password helps prevent connection issues when using certain special characters such as % or @ for example
2022-06-13 19:37:48 -06:00
Joe Uhren 44caca42b1 Geolocation update for peer sync
-freegeoip.app now requires an api key so the peer sync has been updated to use reallyfreegeoip.org instead
-Added extra error checking to the peer sync so that it will error out when the geolocation service does not return a proper object
2022-04-30 21:27:12 -06:00
Joe Uhren d7c18a48f5 Improved (sync/backup) scripts + misc updates
-Added locks to all sync processes (blocks, markets, peers, masternodes) as well as "create backup", "restore backup" and "delete database" functions. This helps prevent problems with syncing data while a backup is in progress for example
-The code to initialize certain database collections on startup was moved into database.js and is now called from restore_backup.js and delete_database.js. This effectively allows the database to be deleted or restored to a completely different backup while the explorer is still running
-Lock functions (create_lock, remove_lock, is_locked) were moved into explorer.js for better reusability and rewriten to be synchronous
-is_locked function now accepts an array of lock files to be able to check for multiple locks in a single call
-remove_sync_message() function was moved into database.js so that restore_backup.js and delete_database.js can also check for and remove the sync msg if it exists
-Useful Scripts section updated in the README to make it clear that the explorer no longer needs to be stopped for these scripts to be run
-Most if not all log messages now start with a capitlal letter
2022-04-30 20:53:10 -06:00
Joe Uhren 8e32e294b7 Cross-platform support (Win, MacOS, Linux)
-All shell scripts have been removed and replaced with javascript equivalents which allows for better platform independence
-All scripts have been improved over the older shell scripts to be more functional and dynamic
-Updated all applicable cmds in the package.json to target the new js scripts + added the backup, restore and delete database functions to the list
-Removed the json and strip-json-comments-cli packages as they are no longer needed
-Added a new package realine-sync
-Updated cluster code with better Windows support when shutting down the explorer
-Backup and Restore scripts now use mongo's own encryption instead of tar.gz by default. Older tar.gz backups can still be restored as long as the tar.gz suffix is explicitly added
-Backup and Restore scripts now support connecting to remote database based on the mongo details in settings.json
-Updated README to include a new line for the 'platform independence' feature, updated script cmds and notes about certain steps being Linux only
2022-04-23 11:28:32 -06:00
Joe Uhren aa1765d8d9 Add 2 network charts to page header
-Hashrate chart is populated from get_hashrate
-Difficulty chart is populated from get_difficulty
-Added a networkhistories collection to hold the new network data
-Index sync and resync functions now check for and update network history data at the end of the sync process
-restore_backup.sh and delete_database.sh scripts now drop the new networkhistories collection
-Added a new javascript library chartjs-plugin-crosshair which adds crosshair functionality to the new chart.js line charts
-Added new settings to settings.json for controlling things like collecting network_history data, independently enabling/disabling the network charts and changing colors of various aspects of the charts
-Updated README to introduce the network charts and added a line for the chartjs-plugin-crosshair library
2022-04-11 01:37:27 -06:00
Joe Uhren 61595a1ba6 Index/Update improvement
-Shifted some of the code around to be run in a better order (for example, blockchain_last_updated date is set right after finishing the blockchain sync instead of at the very end of the reindex)
2022-03-19 19:38:21 -06:00
Joe Uhren 835a83283f Fix and move heavycoin update
-update_heavy has been moved into a proper callback function which is now only called for index and reindex syncs right near the end of the process instead of at the beginning
2022-03-19 19:27:17 -06:00
Joe Uhren cd05484ba5 Reindex tweaks and improvements
-Added an "Are you sure" prompt before starting the reindex to make it clear that this is a destructive sync option
-All necessary coin stat data is cleared before starting the resync (txes, blockchain_last_updated and richlist_last_updated were not previously being cleared)
-More and better messages about what is being done during the process
-Shifted some of the code around to be run in a better order (for example, blockchain_last_updated date is set right after finishing the blockchain sync instead of at the very end of the reindex)
2022-03-19 18:44:36 -06:00
Joe Uhren fafa6e5279 Better market error during sync 2021-12-04 18:12:31 -07:00
Joe Uhren 59cee58cb0 Update node dependencies + fix breaking changes
-All node dependencies are up-to-date in package.json
-Updated semantic versioning of some node dependencies in package.json
-Applied fixes to necessary explorer files to fix breaking changes to mongoose dependency
-Update README with new Node.js and MongoDB version recommendations

NOTE: Node.js must be updated to at least v14.13.1 to fix breaking errors in a few of the updated dependencies
2021-12-04 12:44:35 -07:00
Joe Uhren f0908fd176 Add optional block_start parameter to check mode 2021-11-21 19:15:42 -07:00
Joe Uhren e5e1887401 Check mode no longer updates the last block height
-Also add output displaying which block is currently being checked as before it was almost impossible to determine what, if anything was happening in check mode
2021-11-21 18:09:06 -07:00
Joe Uhren 5d5719dfef Updated check mode verbiage
-Remove reference to index_timeout setting which doesn't exist and add reference to sync.update_timeout
2021-11-21 13:22:24 -07:00
joeuhren 460ca331b6 Add support for USD price lookup of any altcoin
-Market sync now sets the last USD price based on the default market pair even if it is not BTC
-Removed the coindesk api which was only really useful for getting the USD price of BTC
-Added a couple coingecko apis which are used to get the current USD value of the default market pair
-Updated the readme, settings file comments and info/api page with better verbiage regarding the market price which was previously only measured in BTC
2021-05-29 20:40:35 -06:00
joeuhren 8af8b78627 Fix network peers with no port
-Many blockchains allow you to use addnodes without a port # and it will assume the default port internally, but the explorer was failing to parse these peers because it was expecting a port. This is now fixed and will display the peer data without a port in these cases
2021-05-09 17:49:03 -06:00
joeuhren f8c008ecd4 Add support for newer Dash masternode format
-Automatically detect if using newer or older Dash masternode format and display applicable columns and data
-Added new fields 'ip_address' and 'last_paid_block' to the Masternode collection
2021-05-03 12:28:08 -06:00
joeuhren f948e29085 Cluster updates + add new start/stop options
-More graceful shutdown of node cluster on 'npm stop' with better cleanup of resources on exit
-Added new stop_explorer.sh script which looks up the explorer port # via settings file and closes the application running on that port # instead of saving and killing the process by pid as it did before
-Added support for pm2 and forever using 'npm run start-pm2' and 'npm run start-forever' respectively
-pm2 is automatically installed when starting with 'npm run start-pm2' if it is not already installed
-forever is automatically installed when starting with 'npm run start-forever' if it is not already installed
-Updated existing npm commands in package.json by replacing hardcoded 'node' with '$(which node)'
-/path/to/nodejs changed to /path/to/node in the /settings.json.template, /lib/settings.js and /scripts/sync.js files
-README updates:
 -Added a new 'Start/Stop the Explorer' section
 -Added PM2 instructions to the 'Start/Stop the Explorer' section
 -Moved Start/Stop Explorer instructions to the 'Start/Stop the Explorer' section
 -Moved Forever instructions to the 'Start/Stop the Explorer' section
 -/path/to/nodejs changed to /path/to/node
 -Some additional small misc fixes
2021-04-17 13:26:05 -06:00
joeuhren 20c0a382a3 Code cleanup
-Replace tabs with double-spaces
-Betting spacing and lining up of code functions
-Add missing semi-colons
-Remove extra characters and spaces where applicable
-Remove commented-out code fragments
-Add missing 2021 date to LICENSE
-Small touchups and other misc nitpickings
2021-03-17 17:54:09 -06:00
joeuhren e0928dd0fd General market improvements
-Improved the display of the market page so that as long as one section has data (stats, buys, sells, trade history) the page will load properly even if it's only one section that isn't blank. Previously it would display an error if just one section was blank.
-Added the coin name beside the market pages volume header column in the 24h stats section
-Fixed a bug that was displaying an error when the summary value from the 24h stats section was supplied but was a blank string or '-' character
-Better success/error message during market sync
2021-03-07 14:47:34 -07:00
joeuhren ab6c341bf4 Fix negative stat value issue after attempted sync
-Better error handling of update_db()
-Fixes an issue that can cause some stats values to get set to a negative number when running an index sync and the wallet daemon has not finished loading the blockchain yet (If this happens to you, stop the explorer, apply this fix with `git pull` to make sure it doesn't happen again, then run a reindex-txcount and reindex-last to restore the proper values)
2021-02-03 20:54:15 -07:00
joeuhren d35b0ec980 Add reindex-last sync option
-Use reindex-last to restore the coinstats.last value, which is the last synced blockindex value
2021-01-24 15:26:17 -07:00
joeuhren 4790764e2c Massive overhaul and cleanup of settings
-Restructured the settings.json.template and settings.js files with better groupings
-Added better comments for improved explanations of all settings
-Better handling of page length options on all datatables; Page length options are now configurable and also only display options based on limits set by certain items_per_page and max_items_per_query settings
-Markets have been extended to support unlimited trading pairs for each exchange
-Added coin_symbol and pair_symbol to the markets schema to support multiple trading pairs
-Added a burned field to the richlist schema for tracking burned coin addresses
-Added a locale string for the new richlist wealth distribution "Top 1-100 Total" table row
-Updated a couple locale strings that were incomplete or needed fixing (api_getblockhash and api_getnextrewardwhenstr)
-Added a new css class to remove some redundant inline styles for the richlist wealth distribution color boxes
-Richlist page now allows better separation of the top list(s) and the wealth distribution table and chart (you can now hide or show sections as desired)
-Richlist page now allows for better burned coin support (Hide burned coin addresses from lists and totals even when the burned coin amounts are still included in the total coin supply value)
-Block page now only displays the raw block link if the api_page.public_apis.rpc.getblock.enabled settings is set to true
-Transaction page now only displays the raw tx link if the api_page.public_apis.rpc.getrawtransaction.enabled setting is set to true
-Rate limiting class has been made global and is now used to limit market requests
-getnetworkhashps rpc call now returns a '-' if shared_pages.show_hashrate is not set to true
-Searching for unsycned blocks/txs no longer saves the data locally but instead still shows the data on screen. This helps prevent syncing data out-of-order (This eliminates the need for db_index.pid which has been removed)
-Coin supply is now always taken from the stats collection database instead of from the wallet via rpc command in all cases except when syncing
-Lots of misc fixes and code cleanup changes
-List of changed settings:
  -title -> shared_pages.page_title
  -coin -> coin.name
  -symbol -> coin.symbol
  -logo -> shared_pages.logo
  -headerlogo -> shared_pages.page_header.home_link_logo
  -favicon -> shared_pages.favicon
  -homelink -> shared_pages.page_header.home_link
  -logoheight -> shared_pages.page_header.home_link_logo_height
  -sticky_header -> shared_pages.page_header.sticky_header
  -sticky_footer -> shared_pages.page_footer.sticky_footer
  -footer_height_desktop -> shared_pages.page_footer.footer_height_desktop
  -footer_height_tablet -> shared_pages.page_footer.footer_height_tablet
  -footer_height_mobile -> shared_pages.page_footer.footer_height_mobile
  -social_link_percent_height_desktop -> shared_pages.page_footer.social_link_percent_height_desktop
  -social_link_percent_height_tablet -> shared_pages.page_footer.social_link_percent_height_tablet
  -social_link_percent_height_mobile -> shared_pages.page_footer.social_link_percent_height_mobile
  -theme -> shared_pages.theme
  -port -> webserver.port
  -update_timeout -> sync.update_timeout
  -check_timeout -> sync.check_timeout
  -block_parallel_tasks -> sync.block_parallel_tasks
  -use_rpc -> api_cmds.use_rpc
  -confirmations -> shared_pages.confirmations
  -display.api -> api_page.enabled
  -display.markets -> markets_page.enabled
  -display.richlist -> richlist_page.enabled
  -display.search -> shared_pages.page_header.show_search
  -display.movement -> movement_page.enabled
  -display.network -> network_page.enabled
  -display.masternodes -> masternodes_page.enabled
  -display.claim_address -> claim_address_page.enabled
  -display.claim_address_header_menu -> claim_address_page.show_header_menu
  -display.page_header_bgcolor -> shared_pages.page_header.bgcolor
  -display.page_footer_bgcolor -> shared_pages.page_footer.bgcolor
  -display.table_header_bgcolor -> shared_pages.table_header_bgcolor
  -display.networkpnl -> shared_pages.page_header.panels.network_panel.display_order
  -display.difficultypnl -> shared_pages.page_header.panels.difficulty_panel.display_order
  -display.masternodespnl -> shared_pages.page_header.panels.masternodes_panel.display_order
  -display.coinsupplypnl -> shared_pages.page_header.panels.coin_supply_panel.display_order
  -display.pricepnl -> shared_pages.page_header.panels.price_panel.display_order
  -display.marketcappnl -> shared_pages.page_header.panels.market_cap_panel.display_order
  -display.logopnl -> shared_pages.page_header.panels.logo_panel.display_order
  -index.show_last_updated -> index_page.show_last_updated
  -index.show_hashrate -> shared_pages.show_hashrate
  -index.difficulty -> shared_pages.difficulty
  -index.last_txs -> api_page.public_apis.ext.getlasttxs.max_items_per_query
  -index.txs_per_page -> index_page.transaction_table.items_per_page (for index page) AND movement_page.movement_table.items_per_page (for movement page)
  -reward_page.show_last_updated -> blockchain_specific.heavycoin.reward_page.show_last_updated
  -api.blockindex -> api_page.sample_data.blockindex
  -api.blockhash -> api_page.sample_data.blockhash
  -api.txhash -> api_page.sample_data.txhash
  -api.address -> api_page.sample_data.address
  -markets.exchange -> markets_page.default_exchange.trading_pair
  -markets.default -> markets_page.default_exchange.exchange_name
  -markets.market_dropdown_menu -> markets_page.show_market_dropdown_menu
  -markets.market_select_visible -> markets_page.show_market_select
  -richlist.distribution -> richlist_page.wealth_distribution.show_distribution_chart
  -richlist.received -> richlist_page.show_received_coins
  -richlist.balance -> richlist_page.show_current_balance
  -movement.min_amount -> movement_page.movement_table.min_amount
  -movement.low_flag -> movement_page.movement_table.low_warning_flag
  -movement.high_flag -> movement_page.movement_table.high_warning_flag
  -social_links -> shared_pages.page_footer.social_links
  -social_links[x].image_url -> shared_pages.page_footer.social_links[x].image_path
  -genesis_tx -> transaction_page.genesis_tx
  -genesis_block -> block_page.genesis_block
  -heavy -> blockchain_specific.heavycoin.enabled
  -save_stats_after_sync_blocks -> sync.save_stats_after_sync_blocks
  -txcount -> api_page.public_apis.ext.getaddresstxs.max_items_per_query
  -txcount_per_page -> address_page.history_table.items_per_page
  -show_sent_received -> address_page.show_sent_received
  -supply -> sync.supply
  -nethash -> shared_pages.page_header.panels.network_panel.nethash
  -nethash_units -> shared_pages.page_header.panels.network_panel.nethash_units
  -usecors -> webserver.cors.enabled
  -corsorigin -> webserver.cors.corsorigin
  -burned_coins -> richlist_page.burned_coins.addresses
  -public_api.rpc.getdifficulty -> api_page.public_apis.rpc.getdifficulty.enabled
  -public_api.rpc.getconnectioncount -> api_page.public_apis.rpc.getconnectioncount.enabled
  -public_api.rpc.getblockcount -> api_page.public_apis.rpc.getblockcount.enabled
  -public_api.rpc.getblockhash -> api_page.public_apis.rpc.getblockhash.enabled
  -public_api.rpc.getblock -> api_page.public_apis.rpc.getblock.enabled
  -public_api.rpc.getrawtransaction -> api_page.public_apis.rpc.getrawtransaction.enabled
  -public_api.rpc.getnetworkhashps -> api_page.public_apis.rpc.getnetworkhashps.enabled
  -public_api.rpc.getvotelist -> api_page.public_apis.rpc.getvotelist.enabled
  -public_api.rpc.getmasternodecount -> api_page.public_apis.rpc.getmasternodecount.enabled
  -public_api.rpc.getmaxmoney -> blockchain_specific.heavycoin.public_apis.getmaxmoney.enabled
  -public_api.rpc.getmaxvote -> blockchain_specific.heavycoin.public_apis.getmaxvote.enabled
  -public_api.rpc.getvote -> blockchain_specific.heavycoin.public_apis.getvote.enabled
  -public_api.rpc.getphase -> blockchain_specific.heavycoin.public_apis.getphase.enabled
  -public_api.rpc.getreward -> blockchain_specific.heavycoin.public_apis.getreward.enabled
  -public_api.rpc.getsupply -> blockchain_specific.heavycoin.public_apis.getsupply.enabled
  -public_api.rpc.getnextrewardestimate -> blockchain_specific.heavycoin.public_apis.getnextrewardestimate.enabled
  -public_api.rpc.getnextrewardwhenstr -> blockchain_specific.heavycoin.public_apis.getnextrewardwhenstr.enabled
  -public_api.ext.getmoneysupply -> api_page.public_apis.ext.getmoneysupply.enabled
  -public_api.ext.getdistribution -> api_page.public_apis.ext.getdistribution.enabled
  -public_api.ext.getaddress -> api_page.public_apis.ext.getaddress.enabled
  -public_api.ext.getaddresstxs -> api_page.public_apis.ext.getaddresstxs.enabled
  -public_api.ext.gettx -> api_page.public_apis.ext.gettx.enabled
  -public_api.ext.getbalance -> api_page.public_apis.ext.getbalance.enabled
  -public_api.ext.getlasttxs -> api_page.public_apis.ext.getlasttxs.enabled
  -public_api.ext.getcurrentprice -> api_page.public_apis.ext.getcurrentprice.enabled
  -public_api.ext.getbasicstats -> api_page.public_apis.ext.getbasicstats.enabled
  -public_api.ext.getsummary -> api_page.public_apis.ext.getsummary.enabled
  -public_api.ext.getnetworkpeers -> api_page.public_apis.ext.getnetworkpeers.enabled
  -public_api.ext.getmasternodelist -> api_page.public_apis.ext.getmasternodelist.enabled
  -public_api.ext.getmasternoderewards -> api_page.public_apis.ext.getmasternoderewards.enabled
  -public_api.ext.getmasternoderewardstotal -> api_page.public_apis.ext.getmasternoderewardstotal.enabled
  -api_cmds.heavies.getmaxmoney -> blockchain_specific.heavycoin.api_cmds.getmaxmoney
  -api_cmds.heavies.getmaxvote -> blockchain_specific.heavycoin.api_cmds.getmaxvote
  -api_cmds.heavies.getvote -> blockchain_specific.heavycoin.api_cmds.getvote
  -api_cmds.heavies.getphase -> blockchain_specific.heavycoin.api_cmds.getphase
  -api_cmds.heavies.getreward -> blockchain_specific.heavycoin.api_cmds.getreward
  -api_cmds.heavies.getnextrewardestimate -> blockchain_specific.heavycoin.api_cmds.getnextrewardestimate
  -api_cmds.heavies.getnextrewardwhenstr -> blockchain_specific.heavycoin.api_cmds.getnextrewardwhenstr
  -api_cmds.heavies.getsupply -> blockchain_specific.heavycoin.api_cmds.getsupply
-List of new settings:
  -shared_pages.page_header.panels.network_panel.enabled: allow enabling/disabling of the network panel
  -shared_pages.page_header.panels.difficulty_panel.enabled: allow enabling/disabling of the difficulty panel
  -shared_pages.page_header.panels.masternodes_panel.enabled: allow enabling/disabling of the masternodes panel
  -shared_pages.page_header.panels.coin_supply_panel.enabled: allow enabling/disabling of the coin supply panel
  -shared_pages.page_header.panels.price_panel.enabled: allow enabling/disabling of the price panel
  -shared_pages.page_header.panels.market_cap_panel.enabled: allow enabling/disabling of the market cap panel
  -shared_pages.page_header.panels.logo_panel.enabled: allow enabling/disabling of the logo panel
  -index_page.transaction_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -index_page.transaction_table.reload_table_seconds: the time in seconds to automatically reload the table data from the server
  -address_page.history_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -masternodes_page.masternode_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -masternodes_page.masternode_table.items_per_page: the default amount of items/records to display in the table at any given time
  -movement_page.movement_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -movement_page.movement_table.reload_table_seconds: the time in seconds to automatically reload the table data from the server
  -network_page.connections_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -network_page.connections_table.items_per_page: the default amount of items/records to display in the table at any given time
  -network_page.addnodes_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -network_page.addnodes_table.items_per_page: the default amount of items/records to display in the table at any given time
  -network_page.onetry_table.page_length_options: specify the page length options that determine how many items/records to display in the table at any given time
  -network_page.onetry_table.items_per_page: the default amount of items/records to display in the table at any given time
  -richlist_page.wealth_distribution.show_distribution_table: show/hide the wealth distribution summary table
  -richlist_page.wealth_distribution.colors: a list of html color codes to represent the top 100 groupings in the wealth distribution table and pie chart
  -richlist_page.burned_coins.include_burned_coins_in_distribution: determine whether to include burned coins in the wealth distribution section or not
  -markets_page.exchanges.altmarkets.enabled: enable/disable the altmarkets exchange
  -markets_page.exchanges.altmarkets.trading_pairs: a list of market trading pair symbols
  -markets_page.exchanges.bittrex.enabled: enable/disable the bittrex exchange
  -markets_page.exchanges.bittrex.trading_pairs: a list of market trading pair symbols
  -markets_page.exchanges.bleutrade.enabled: enable/disable the bleutrade exchange
  -markets_page.exchanges.bleutrade.trading_pairs: a list of market trading pair symbols
  -markets_page.exchanges.crex.enabled: enable/disable the crex exchange
  -markets_page.exchanges.crex.trading_pairs: a list of market trading pair symbols
  -markets_page.exchanges.poloniex.enabled: enable/disable the poloniex exchange
  -markets_page.exchanges.poloniex.trading_pairs: a list of market trading pair symbols
  -markets_page.exchanges.stex.enabled: enable/disable the stex exchange
  -markets_page.exchanges.stex.trading_pairs: a list of market trading pair symbols
  -markets_page.exchanges.yobit.enabled: enable/disable the yobit exchange
  -markets_page.exchanges.yobit.trading_pairs: a list of market trading pair symbols
  -claim_address_page.enable_bad_word_filter: enable/disable the "bad word" filter for claimed addresses, so that trying to claim an address with a bad word will fail
  -sync.show_sync_msg_when_syncing_more_than_blocks: show the sync msg at the top of all pages during index syncronization if there are more than this many blocks to process
  -labels[x].enabled: allow enabling/disabling of specific wallet address labels
  -blockchain_specific.heavycoin.reward_page.enabled: enable/disable the reward page
  -blockchain_specific.zksnarks.enabled: enable/disable Zcash zk-SNARKs private transaction support (WIP - 90% complete)
-List of deleted settings
  -address: unnecessary setting has been replaced by dynamic values via http request
  -markets.coin: replaced by a richer set of settings that allow choosing the coin for each market
  -markets.enabled -> replaced by a richer set of settings that allow enabling/disabling each market specifically
  -lock_during_index: no longer possible to save unsynced blocks/txs via search so this settings is now obsolete/unused
2021-01-22 15:04:32 -07:00
joeuhren 0dc7613cba Always do the check for and removal of sync msg 2021-01-01 18:33:53 -07:00
joeuhren 2fd39d76ce Add new "last updated date" settings
-Added new configurable settings to allow displaying a "last updated date" timestamp for: index, reward, masternode, movement, network, richlist and market pages
-Affected pages are now configured to be completely hidden and disabled when their display settings are set to false
2020-12-31 15:19:48 -07:00
joeuhren be1205d90a Add masternodes page/feature
-Added a new "Masternodes" page which displays the current list of masternodes on the network
-/api/getmasternodelist is no longer publicly accessible and has been replaced by /ext/getmasternodelist which returns the masternode list from local collection instead of directly from wallet
-Added new masternode sync options to sync.js and sync.sh
-Added new masternodes_last_updated field to the Stats collection
-Updated delete_database.sh and restore_backup.sh to include support for the new masternodes collection
-Network header menu icon changed to allow the new Masternodes menu item to use the old network icon
2020-12-30 18:22:02 -07:00
joeuhren 4a084cdfe1 Split out peer cmds into new functions
-Add new setting for getpeerinfo cmd
-getpeerinfo api call moved to explorer.js
-Peer geo location api call moved to explorer.js
2020-12-21 16:19:14 -07:00
joeuhren 2acb681b5a Better error checking for invalid markets 2020-12-08 22:52:15 -07:00
joeuhren 6f08d64a0a Fix index sync to prevent gaps in the block data 2020-12-08 20:51:35 -07:00
joeuhren 1ad61a58da Move sync message file to tmp directory 2020-12-05 18:21:21 -07:00
joeuhren f50c51d77c Improved long index sync warning functionality 2020-12-05 12:39:36 -07:00
joeuhren b6808da454 Improved syncing features 2020-12-04 10:59:58 -07:00
joeuhren 4b208b74a4 More node 14+ error ERR_INVALID_ARG_TYPE fixes 2020-12-03 16:21:06 -07:00
joeuhren 6d74c3e6de Flatten tx count value for faster lookups with large blockchains 2020-12-03 14:16:34 -07:00
joeuhren 3694b80fcd Sync reindex more verbose 2020-11-22 18:13:30 -07:00
joeuhren ea54a79de0 Fix mongoose usefindandmodify depreciation msg 2020-11-22 17:39:46 -07:00
joeuhren f8615794ff Remove the redundant need of get_stats after update_db 2020-11-22 17:00:44 -07:00
joeuhren 42e1964ab3 Database indexing: Full Address history, fix balances, add db file locks 2020-11-20 16:28:28 -07:00
joeuhren df35341be2 Update Mongoose calls: remove > deleteMany 2020-11-20 14:18:32 -07:00
joeuhren 4217f3314e Sync, Update_richlist: Fix memory overflow indexing 1000s of TXs 2020-11-20 14:06:53 -07:00
joeuhren fd277bc674 Full address history with DataTables ajax loading 2020-11-19 21:37:42 -07:00
joeuhren f500de2696 Fix for Server Discovery and Monitoring engine Deprecation Warning 2020-03-22 13:34:28 -06:00
joeuhren 3d6fc2923b start from actual last known block height when updating index 2019-10-01 21:25:47 -06:00
joeuhren a175e03bfa v1.0.1 2019-06-07 20:05:28 -06:00
Joe Uhren 60fb8e29b4 Initial release 2019-05-27 10:33:22 -07:00