Commit Graph

428 Commits

Author SHA1 Message Date
Joe Uhren b5f3e3c490 Version bump to v1.103.0 + other small updates
-Version bumped to v1.103.0 in package.json
-Updated the UPGRADE file with details of changes in v1.103.0
-Updated the year in the LICENSE and README files
2025-02-02 19:24:22 -07:00
Joe Uhren 3a2f679201 Improved block sync speed
-A number of functions have been rewritten to be more optimized and faster: calculate_total, is_unique, convert_to_satoshi, get_input_addresses, processVoutAddresses, prepare_vout, prepare_vin
-Txes are now written to database via bulk writes which helps improve the sync speed and also controls memory usage with batching to write data once a certain threshold is reached
-update_address function changed to update_addresses since it now bulk writes the addresses in batches to improve sync speed and also controls memory usage with batching to write data once a certain threshold is reached
-The syncLoop function has been completely removed from the project and replaced with async library loops or even normal "for" loops in some cases which greatly improves sync speeds over large batches of data
-Fixed an issue with the flattened count of txes that is saved to the coinstats collection which could save incorrectly when using more than 1 thread
-Fixed an issue with the block sync which caused an unwanted delay when syncing less blocks than the amount of threads used to sync the data
-Fixed an issue with vout data processing that could sometimes populate data out of order
-Added a new sync.batch_size setting used to determine how many records (txes, addresses, addresstxes) should be saved in a single database transaction
-Added a new wait_for_bulk_database_save setting used to increase the block sync speed at the cost of not returning any error msgs for data that failed to save
-get_input_addresses function no longer returns in the exports section of the explorer.js file since it is only referenced in that file
-Updated explorerspec tests to use the newest function changes for any tests that needed to be updated

Special thanks to Karzo from Pepecoin for help with the bulkwrite code changes!
2025-02-02 19:10:17 -07:00
Joe Uhren 0b0ef817f1 "Maximum call stack size exceeded" error bug fixed
-The "Maximum call stack size exceeded" error is now handled internally by the block sync script in a way which will capture the error and re-launch the sync using a larger stack size and have the sync resume from where it left off. If the re-launch still doesn't have enough memory it will continue re-launching with more and more memory until the sync can finish without errors and then it will return to sync with a lower memory footprint for future syncs
-Added a new option for sync.elastic_stack_size which is used to determine how much memory should be used to increase the stack size for the block sync after encountering the "Maximum call stack size exceeded" error
-Fixed an issue with the block sync when using more than 1 thread that could sometimes cause the flattened txes value in the coinstats database to be written incorrectly (Use `npm run reindex-txcount` to fix this issue without needing to reindex the entire database)
-Updated the benchmark script so that it can also benefit from being able to capture the "Maximum call stack size exceeded" error even though the timing will be off so it outputs a new warning in that scenario which instructs to run the benchmark again with a higher stack size to properly capture the benchmark time
-Removed the "Maximum call stack size exceeded" error notes from the "Known Issues" section of the README
2025-01-09 20:00:37 -07:00
Joe Uhren 454fb0a7d7 Fixed multi-threaded sync + related improvements
-The block_parallel_tasks feature has been improved and fixed so that it is now safe to cancel (Ctrl+C) or kill (kill cmd not kill -9) the task and resume the sync later without missing transactions. The new block_parallel_tasks default is 8 threads which seems to be the sweet spot for any type of cpu
-Numerous improvements to the benchamark script to utilize new benchmark settings, auto-add credentials to the benchmark database, reuse the same sync code as the regular block sync instead of using a copy of the code and more
-Added a new cmd to run the benchmark script `npm run benchmark`
-README updated to include the new benchmark script instrutions + include multi-threaded sync as a feature
2025-01-01 19:20:13 -07:00
Joe Uhren 1909def4aa Fix missing document ready check on resize 2024-12-28 19:28:46 -07:00
Joe Uhren 45a929b254 Tons of network chart improvements and changes
-Chart.js has been updated to v4.4.7
-The chartjs-plugin-crosshair chart plugin has been updated to v2.0.5 via a forked version that has a working sync feature which is now available as a new setting option for use with the network charts
-Added a new max_hours setting to display chart data for a certain number of hours instead of a fixed set of records which can help reveal holes in the sync process for the explorer and/or blockchain
-Added a new timestamp field to the network history collection for use with the max_hours setting chart data
-Added a number of new network chart settings to control display of the chart title, legend, a new vertical block line option, chart height, an option to force 2 charts to appear on their own row or beside each other, and an option to force a chart to take up all available space in the chart box without extra padding
-Added a new dependency chartjs-plugin-annotation v3.1.0 to display block lines in new hourly charts
2024-12-28 19:22:38 -07:00
Joe Uhren 8730b94629 More deprecation warning css fixes 2024-10-29 18:25:51 -06:00
Joe Uhren e00dc0f511 Fix deprecation warnings for css themes 2024-09-21 19:30:42 -06:00
Joe Uhren d15b4f8b51 Merge pull request #46 from Rudra644/patch-1
Improved logo panel spacing on small screens
2024-09-19 20:57:03 -06:00
Joe Uhren 7177742f54 Improved logo panel spacing on small screens 2024-09-19 20:54:25 -06:00
Joe Uhren fff5a1a71d Update bad-words dependency to 4.0.0
-The newest major version of the bad-words filter had some breaking changes that have been applied to the project
2024-09-19 19:53:10 -06:00
Joe Uhren 6ca583cb2a Update defunct polyfill script to v4.8.0 2024-07-22 21:32:15 -06:00
Joe Uhren e884895291 Add version # to the header of all pages 2024-07-22 21:21:34 -06:00
Nakul Kaul f1b29df009 Improve layout consistency and logo alignment (layout.pug)
* Adjusted top and bottom margins for consistent card spacing:
    - Removed unnecessary top margin (-15px) on cards.
    - Added 10px bottom margin to Logo Card for alignment with other cards.

* Optimized Logo size for better block card alignment:
    - Reduced Logo height from 128px to 96px for proper vertical positioning.

These changes ensure a more uniform and visually appealing layout across all card components.
2024-06-26 14:33:04 +05:30
Joe Uhren 788454051c Add preliminary plugin support
-Plugins can now be enabled via settings.json after dropping the plugin files into the new plugins directory
-Enabling plugins will allow extending the normal functionality of the explorer with new database collections, menus, pages and apis + open up a new url for data to be sent from the plugin to the explorer
-A new plugins section was added to the settings with a definition for the generic-snapshots plugin
-Locale strings are now loaded and shared out via the settings so there is generally no more need to explicitly include the locale.js file
-The locale object has been updated to localization within the explorer
-A number of new locale strings have been added and their values replaced with the locale string within the explorer
-Added plugin support verbiage and a link to the generic-snapshots crowdfunding task to the README
2024-06-16 18:58:12 -06:00
Joe Uhren 7ebdb5e868 Fix summary cache issue on pages with top panels
-Sometimes the summary info would get cached and display the wrong data. It was especially noticable on pages with top panels when using the browser back button to return to a page and the data would not load correctly
2024-05-10 15:10:47 -06:00
Joe Uhren 517e0290fb CSS now only compiled when necessary on startup 2024-04-13 15:40:15 -06:00
Joe Uhren cfe60be3cf Reset hCaptcha after submit claim address form 2024-03-20 19:44:05 -06:00
Joe Uhren 9c57b4b37a Claim address page security improvements
-Removed the ability to claim an address that has 0 transactions
-The "Claim" button is now disabled after submitting to help prevent double submissions
2024-03-20 19:36:16 -06:00
Joe Uhren cf9dce3449 Add multiple captcha options for form submission
-Supported captchas include Google reCaptcha v3 (score-based), Google reCaptcha v2 (checkbox and invisible) and hCaptcha ("Always Challenge" mode)
-Captcha options are global to the explorer even though the only form submission page is the "Claim Address" feature which takes full advantage of the new captcha options
2024-03-20 18:20:03 -06:00
Joe Uhren 5d960ceea7 Fix market sync crash for invalid default pair
-The market sync could crash when calculating the USD price if the base pair of the markets_page.default_exchange.trading_pair value was not found in coingecko's vs_currencies list from https://api.coingecko.com/api/v3/simple/supported_vs_currencies (for example, using USDT as the default base pair). A different calculation is now used in this case which does not require any additional api credits to be used.
2024-03-03 20:04:58 -07:00
Joe Uhren 328076cbbe Fix yobit url in README 2024-02-26 19:45:45 -07:00
Joe Uhren cbb9155f3f Remove defunct exchange SouthXchange 2024-02-26 19:44:32 -07:00
Joe Uhren 81e6bebe6f Add OHLCV chart support for xeggex market 2024-02-26 19:33:29 -07:00
Joe Uhren 8a40dc2663 Merge pull request #42 from gdiscord/master
Added support for Nonkyc exchange
2024-02-26 19:00:39 -07:00
Joe Uhren 3d141dab92 Nonkyc market improvements
-Added OHLCV chart support
-Lined up some of the config code better
-Updated count of supported exchanges in the README
2024-02-26 18:58:19 -07:00
gdiscord f92cdfc4ca Added support for Nonkyc exchange
Nonkyc is practically same as Xeggex.
2024-02-09 16:57:01 +00:00
Joe Uhren e0b01e97ac Fix js error when resize screen before page loads 2024-02-06 20:25:12 -07:00
Joe Uhren d86beee960 Add new settings to save+display multi-algo data
-New settings allow reading of the hash algorithm used to mine a particular block for coins that support this feature and have the algorithm data stored in the raw block data
-An "Algorithm" column has been added to the block page and main transaction homepage when multi-algo data is enabled
-The /ext/getlasttxs api will now return the hash algorithm if reading of the multi-algo data is enabled
2024-02-06 19:44:11 -07:00
Joe Uhren 860209a5f9 Fix an issue with invalid masternode count
-This fix prevents an error from being thrown that crashes the explorer when trying to use a masternode count that is a sinlge number. A single number masternode count is not valid or usable since it cannot differentiate the number of good and bad nodes, but the explorer will no longer crash when given this data
2024-02-03 08:56:40 -07:00
Joe Uhren 4e032c0e49 Fix masternode page columns after table is loaded 2024-02-02 15:35:04 -07:00
Joe Uhren dace981d6a Masternode improvements
-Added support for a couple masternode list and count formats that do not have a separate fieldname for each value
-Masternode grid columns are now shown or hidden based on whether there is any data
2024-02-02 15:21:45 -07:00
Joe Uhren f57db7c033 Better sidebar placement on page load 2024-01-09 18:41:41 -07:00
Joe Uhren ba518b4104 Remove defunct exchange bittrex 2024-01-06 13:53:54 -07:00
Joe Uhren d34be922be README updates
-Changed sample crontab from 2 to 5 minute intervals for the market sync since the coingecko api will soon force free users to the keyed api which only allows making 1 api call every 5 minutes without running out of credits for the month
-Updated all links to the Exor crowfunding / task list page with newer urls
2024-01-05 16:25:05 -07:00
Joe Uhren 9851e2ce9d Added a coingecko api key option
-As of Feb 2024 the free "keyless" coingecko api will be deprecated and will likely stop working. There is a free demo api key that can be used which can now be plugged into the explorer settings to allow the coingecko api to continue working. Read more here: https://support.coingecko.com/hc/en-us/articles/21880397454233
2024-01-05 14:55:34 -07:00
Joe Uhren 65c48ea829 Added market sync options: average and coingecko
-The previous market price calculation setting was hardcoded to only display market and USD prices for a single exchange and trading pair which was not very accurate for coins listed on multiple exchanges or with multiple trading pairs. The new default is to average the market prices for all supported exchanges and trading pairs
-The coingecko market price option was added to allow fetching the market price directly from the coingecko api instead of calculating it via supported exchanges known to the explorer
-Added a new root setting option for default_coingecko_ids which allows presetting symbols to their associated internal coingecko id to help prevent matching to the wrong currency with same symbol via coingecko api calls
-Fixed an issue where the explorer would fail to start with an enabled exchange that had no defined trading pairs
2024-01-05 00:47:22 -07:00
Joe Uhren ed8d7a5964 Update mongoose dependency to 8.x
-A couple small fixes were applied to the database.js to change the alias of findOneAndRemove to findOneAndDelete to fix breaking changes
2023-12-27 17:08:24 -07:00
Joe Uhren accf9a981d Added an optional USD market cap panel
-New settings for the USD market cap panel were added to the config options
2023-12-27 13:29:33 -07:00
Joe Uhren 8276f28841 Added an optional USD price panel
-New settings for the USD price panel were added to the config options
-Added USD price to the getsummary API
2023-12-27 13:28:17 -07:00
Joe Uhren c03178ef86 README updates
-Added a crowdfunding section
-Split off the contact info into its own "Developer Contact" section and added a link to the "Premium Support" section
-Updated recommended versions for Node.js and MongoDB
-Updated the MongoDB install instructions for ubunutu 22.04 for the newest 7.x series of MongoDB
-Added some new options to the "Donations / Support Us" section
2023-11-04 17:50:05 -06:00
Joe Uhren 7ce3b5477e Optimized global client-side javascript code
-Javascript in the layout.pug has been moved around in an attempt to only load code into the client based on certain settings such as the type of menu (side or top) in order to slim down the loading of pages by not including unnecessary code
-Fixed a bug on the richlist page where the last updated date and logo spinning animation would fail to load if the distribution chart was disabled in the settings
-The .ext/getsummary api has been modified to only return the connection and block counts when necessary
-The getmasternodecount rpc api will no longer fetch data unless it is enabled in settings
2023-11-03 18:42:34 -06:00
Joe Uhren 5ca9602c74 Side menu improvements
-The side menu toggle button is now an anchor tag instead of a div and no longer moves the search box when opening/closing the menu
-Added a fix for opening/closing the side menu when the browser window is zoomed in or out which didn't always work properly in all browsers earlier
2023-10-28 15:46:15 -06:00
Joe Uhren 9392187eed More market fixes
-Fixed a bug with the freiexchange pair volume value when paired with LTC
-Added a default value of zero for many of the fields for each market in the event that the data returned for a particular field is not numeric
2023-10-27 19:29:01 -06:00
Joe Uhren 74ca66d44e Market improvements
-All external market apis have been normalized with a similar coding format, improved error handling with new wait times in between api calls to prevent abuse issues with sending too many requests too quickly
-All general market code has been reviewed and improved where necessary to help prevent sync issues
-Inactive markets are now removed from the markets collection on startup of the explorer to help prevent bloating the database
-The yobit api url has been changed to the new url
-The poloniex market has been updated to use the newest api
-The southxchange exchange trading link has been changed to the new url
-Miscellaneous locale string changes and reorganization
2023-10-27 18:33:52 -06:00
Joe Uhren 83d7f4b182 Fix for sketchy theme markets page
-Before this fix, using the sketchy theme with the dark background table color would cause the Market > Buy/Sell order table data to have a black background which was pretty much unreadable
2023-10-19 20:30:49 -06:00
Joe Uhren 58576b22d6 Core script and library updates
-jQuery has been updated to v3.7.1
-Luxon has been updated to v3.4.3. Also updated the link to the documentation showing how to format dates in the settings.json.template and settings.js
-Datatables has been updated to v1.13.6
-Font Awesome has been updated to v6.4.2 and all icons in the project have been updated to use the newest v6.x codes
-OverlayScrollbars has been updated to v2.3.2
-flag-icons (previously called flag-icon-css) has been updated to v6.11.1
-Updated the main style.scss file with better color support for the new datatable loading animation color
-Exor theme has been updated to v3.0.2 with a small fix to support the new datatable loading animation color
2023-10-19 20:26:27 -06:00
Joe Uhren f5d4d4478d Smoother claim instruction behavior on open/close 2023-10-11 19:32:26 -06:00
Joe Uhren b3eda54981 Market/Exchange cleanup
-The following defunct exchanges have been removed: bleutrade, crex24, txbit and unnamed
2023-10-11 18:56:11 -06:00
Joe Uhren 74c85a4df3 Chart and graph improvements
-jqPlot has been completely removed and replaced with chart.js on all remaining charts and graphs (richlist pie chart and market candlestick chart)
-chart.js has been updated to v4.4.0
-chartjs-plugin-crosshair has been updated to v2.0.0
-Added 2 new small libraries to enable the chart.js candlestick chart: chartjs-chart-financial v0.1.1 and chartjs-adapter-luxon v1.3.1
2023-10-09 19:28:42 -06:00