Iquidium 0.6.5 * added Litecoin mweb secure private transactions (yet another variant of stealth Send/Receive) * added support for komodo 'interest' (which is not same as PoStake) * created new main index page tab 'Stealth' to list a coin's pubkeydrop/zcash-komodo-vShield/litecoin-mweb type transactions * added support for komodo-vShield-vjoinsplit transactions (similar to previous pubkeydrop stealth Send/Receive transactions) * added kraken.com support (markets) ------------------------------------------------------------------------------------------------------------------------------------------------ Iquidium 0.6.4 * upgraded mongodb from 4.0.28 to 4.4.4 * upgraded mongodb from 3.6.23 to 4.0.28 * lots of work into repair and maintenance tools: valbalance, utxoresolve, utxo, txwalk, cleanatx, funding, docreate * created a generalized split for AddressTx, TXI, and TXO collections * added tradeogre support (markets) * created a pre-processor for config files to facilitate creation of common config files for multiple systems - very simplistic: no quote marks allowed on #directive line, no comments allowed (ie: /* or //) on #directive line - supports #if or #elif: token expr token, where expr is one of: == or != - supports #else and #endif(aka #fi) - supports #echo to display info to the process console - future support of #set and #unset of constants - builtin constants include: HOSTNAME, DOMAINNAME, CWD, USERNAME, PID, PROCTITLE, CONFIGFILE, COINFOLDER, $BLANK(aka $SPACE), STARTUPTIME, SETTINGS.structure.field(only for # directives) - builtin constants are brutally subtituted/replaced in all ocurrances on all settings file lines These simplistic capabilities allow for common settings files to run on different hosts under different login names. * added faucet support * upgraded from using Jade v1.11.0 to Pug v3.0.2 ------------------------------------------------------------------------------------------------------------------------------------------------ Iquidium 0.6.3 * added gate.io support (markets) * added txbit support (markets) * added graviex support (markets) * added robots.txt support to app.js file * updated mongodb from version 3.4 to 3.6 * added Coinex support (markets) * added Freiexchange support (markets) * added "coin specific values" (aka CSVs) which allow for block level or transaction level recording in the database specialty coin info for example: myriad coin encodes at the block level which, of many, alogrithms was used to mine the coin, and namecoin encodes at the transaction level possible namecoin namespace information (namecoin is all about a blockchain based dns-ish namespace) * added readable text of content to bottom of QRcodes * enabled config option to enable/disable QRcode feature. if enabled but in Demo Mode it will generate munged QR code also, existence of address being QRcoded is verified or QRcode not generated. * added C-Patex support (markets) * added Stex support (markets) * transactions may include a 'locktime' which effectively post-dates the transaction to either a given block height or time stamp. until now these were ignored. they are recorded and displayed now, even if they are almost as rare as hen's teeth. here is an overview of how blockchain time locking is done, https://medium.com/summa-technology/bitcoins-time-locks-27e0c362d7a1 * added UTXO (unspent transaction output, ie: unspent coins) age metrics graphical chart. tracking spent transactions required no longer merging inputs and outputs in transactions and have the database retain information on all transactions, even zero valued non-standard ones. * transaction tracebacks (the highway icon) will now indicate if the current transaction output was spent (redeemed) in a newer transaction. (part of new UTXO support.) * compression middleware node.js module added, early stats show up to 65% reduction in data sent to the user * changed market page to show summary of all markets on one page with clickable links to the market websites. buy/sell books info no longer supported -- it would never be current and essentially useless, and not all markets supported an API to return this information anyway. * language/locale support: moved a lot more built-in text strings to language file changed the locale configuration setting to be an array of possibly several language codes did initial Italian translation using Google Translate -- this was mostly to help reveal built-in strings that still needed to be moved from the program source into a message file. it also revealed the need to use !{xxx} rather than #{xxx} syntax inside Jade to be able to properly display accented characters. to get proper date formats had to do: npm i --save full-icu because node.js defaults to only installing en-US locale. then had to modify package.json for: {"scripts":{"start":"node --icu-data-dir=_common/node_modules/full-icu app.js"}} * allow #nnnn (#height) syntax in search bar to start the general tx listing (descending) from that block number * allow date/time search to use Posix 10 digit numeric time values (probably not useful to humans, just iquidium developer) these numbers are most often seen when viewing 'raw' block and transaction outputs. * fix folio zeroing address balances bug. ------------------------------------------------------------------------------------------------------------------------------------------------ Iquidium 0.6.2 (dognose.net modification of Iquidus 1.6.1) for original Iquidus 1.6.1 source visit http://github.com/iquidus/explorer * made it remember which tab selected on browser page reload, also allows bookmarking #tabname with url * renamed 'Rich List' (former Top 100) to be now called 'Metrics', added graphical metrics charts * created some simple 'help' documentation. see the question-mark in the bottom left of screen * added safety check in scripts/sync.js to ensure minimum system filespace available (see config settings under 'dbsettings') * if the explorer is less than 99% up to date, the percentage will be displayed in the bottom-right of every page * removed pagination from network/peers page and made columns sortable in ascending or descending direction. changed date display format to be sortable. also created a separate page listing the peer information in addnode= style for easy copy/paste. * raw /api/ requests now pretty prints slightly with clickable links for tx, block, and address values, integer timestamps are also translated to human readable form. &pretty=1 must be specified, this is the default for within-explorer links * upgraded to use mongodb 3.4.9 instead of 2.6.9, and also node.js 8.12.0 (with some gnashing of teeth :) ) * the bitcoin node api returns transactions amount decoded from the raw TX info as decimal numbers. due to limitations in computer math hardware and compiler libraries this was prone to dusty amounts of error in the values. these tiny incorrectnesses add up over a large blockchain. this situation is most obvious with coins that have whole coin proof-of-work, no proof-of-stake, and no fee burning. the total value of the coin supply should always be a whole number -- but were ending up with fractional amounts. now the raw TX transaction amounts are decoded directly as non-floating point 'satoshi values' to avoid precision problems. * coin integer values are represented and moved about and done math onto as 'satoshi' values, ie: 8 orders of magnitude bigger than you usually see. this results in JavaScript precision problems when dealing with wallets with very large balances or running totals of transactions (15 digits or more integer values). now represent satoshi values as strings in the database tables, and use a precise big number Scheme library to manipulate and handle those large integers. the library i'm using is found at: https://github.com/jtobey/javascript-bignum i chose it because it allows me to represent expressions in a more compact way than perhaps the more popular node.js bignumber module. also fixed a precision problem adding up multiple transactions of small decimal values by converting those values to satoshi integers before doing arthmetic on them. * added self to peers (option in settings.json to stop this), seems odd not to show the explorer node * added settings.json logotooltip for display when doing a mouseover the top of page logo * added tooltips (mouseover text) to various glyphicons and links * create /traceback/ web interface to backtrack input chain for a transaction * remember first-tx and last-tx timestamps for addresses, richlist now flags long idle and recently active addresses * collect associations of multiple input-addresses as "Seen with" addresses, ie: owned by same person/pool/exchange this is not a complete association with an owner, only those addresses which are used together as inputs for a transaction are noted. there could be separate groups which are really owned by the same owner. * remember separate input and output tx counts for addresses (for future use) * fix minor glitches in initial creation of 'coinbase' pseudo-address * remember last addmissing (check) block processed so future runs can start there instead of beginning * removed extraneous Tx.find() calls (quite slow) when doing update/reindex/addmissing the need for last_txs in the Stats table was removed in a previous version but the call to get them remained * added ability to configure which of the richlists or distribution chart are displayed * added 'poorlist' of non-zero balances, also added richlists by TX count, sent, etc * added ip address mapping, and/or hiding to network (peers) * added domain name resolution to network (peers), with option not to do specific ones * added unnamedexchange, crex24, and southxchange support (markets) * added external links to 'officialsite' and 'otherexplorer' within the socialmedia link grouping * wrapped external/socialmedia settings under subgroup 'external' * added, but not documented, /webcounters interface (more work needs to be done) * added getnetworkgps and getnetworkinfo rpc api call support * added altexchanger and shoreline support (markets) * changed the markets 'exchange' value in settings.json to be an array matching the listed markets, this allows different base currency for different exchanges. or multiple base currencies at the same exchange. * radical rewrite of indexing to buffer multiple writes to database. besides performance improvement it helps reduce database weirdness when a block full of transactions gets an error from the coind and gives up. leaving half a block of transactions done and already inserted in the database with associated address balances updated. * added optional starting and ending block number to addmissing (check) in sync.js * renamed 'check' option in script/sync.js to 'addmissing' * added search by date/time * added bitcointalk social media link (settings.json) * removed tx data from database .find() before invoking .sort() in richlist, turns out .sort mongoose method has 32k size limit * added check for .find.sort error return message embedded in regular return data (.sort does not use regular error return methods) * coins based on Novacoin codebase have a concept of obsfucated transactions (secret transactions) that relay sent amounts through a public key. the explorer now tracks these drops and pickups for that public key in a pseudo-address called 'pubkeydrop' * added donation link/info via settings.json * added report errors link via settings.json * move many strings from code into locale/en.json * move some parameters (size of transaction list, size of richlist, etc) to settings.json * added geoip-lite, flag-icon-css, and timezone node.js packages to be able to display country info for network peers * created locale/ndl.json for pirate/noodle talk * fix UTC(gmt) and localzone date-time display inconsistencies * added option -dositesettings to avoid processing ./site_defaultsettings.json * created site_defaultsettings.json file processed BEFORE settings.json * added option -dolabels to avoid processing ./addrlabels.json, invoked by update/admin scripts but not clusters * created addrlabels.json file processed AFTER settings.json (it can actually be used for any setting besides labels) * moved most code and files to _common folder so multiple explorers can share bulk of code via symlinks * added several error checks on RPC call returns, do retries on failed RPC calls. also checks for null value returns, etc (some coin daemons, while running at low system priority on a busy system, seem to randomly decide to return an 'invalid parameter' error for valid RPC requests. retries usually work.) * added debug values to settings.json, you do not want to use these unless you like seeing garbage or have updates stop working ------------------------------------------------------------------------------------------------------------------------------------------------ Iquidus 1.6.1 for original Iquidus 1.6.1 source visit http://github.com/iquidus/explorer * fixed last_txs setting, rename to last_indextxs * added hashrate_units setting * added cryptsy support (markets) * removed market update lockfile 1.6.0 * Fixed negative/incorrect balance due to sending to yourself (Issues #6, #8) * Pages found via search now display full url * Markets backend overhaul/rewrite * Added Yobit support (markets) * Added Empoex support (markets) * Layout redesign * Layout data (coin supply, connections etc) now fetched via ajax * Dynamic table data on main view (ajax, updates every 30 seconds) 1.5.2 * fix poloniex href (xCore) * added links (xCore) * coinbase balance fix (xCore) * getaddress balance fix * added getbalance api call * finalized getlasttxs api call * added footer logo 1.5.1 * added labels setting (address labels) 1.5.0 * added theme setting to settings.json * added bootswatch themes * new extended api call (getlasttxs) * Index page now shows last x transactions instead of only last block * added last_txs settings to settings.json and also last_addrtxs * mobile fixes * OP_RETURN/type=nulldata crash fix * PoS fixes * search tx confirmation fix * search tx blockcount fix * address page redesign 1.4.1 * Added user and password to database settings * Mongo authentication * Added alert (index not up-to-date) * New richlist configuration settings * added 'npm stop' to kill cluster * Added logo setting 1.4.0 * Removed mintpal support (markets) * Added poloniex support (markets) * Cluster support * Jasmine test scripts * getaddress api fix (address not found) * Base 2 rounding fix (values stored in satoshis) * DRK fixes * New current supply setting: BALANCES * Sync fixes/optimizations * New setting: show_sent_received 1.3.4 * Added qrcode api * Added qrcode to address page 1.3.3 * Wealth Distribution stats & charts (richlist) * New locale settings (richlist) * Extended api * getmoneysupply (api) * getaddress (api) * getdistribution (api) * Negative zero balance fix (address) 1.3.2 * HeavyCoin support * New heavy setting (heavy) * New rewards page (heavy) * Current coin supply (coinbase total sent, getinfo.moneysupply, getsupply (heavy)) * New supply setting (supply) * New txcount setting * Address txs segfault fix * Indexing optimizations * DOS address page fix 1.3.1 * Rich Lists/Top 100 * PoS fixes * ui fixes * coinbase address segfault fix * performance tweaks 1.3.0 * merged blocknotify.js and markets.js into sync.js * added update and check timeout settings * local tx index * input addresses/amounts * unixtime format (now human friendly date/time) * fixed genesis crash * added genesis settings * local address index * new address view * search by address 1.2.1 * updated locale (markets) * updated index view * updated tx view * updated block view * added optional seach to navbar * added confirmations setting * added screenshots 1.2.0 * added jqplot and datatables * new markets page * added mintpal support (markets) * added bittrex support (markets) * new display setting (markets, twitter) * new locale entries (markets) * new settings (markets, api) * added icons to nav (explorer, markets, api, loading, twitter) * new twitter setting 1.1.0 * fixed navbar title (was not reading from settings) * added locale support (and updated views) * new display setting to toggle menu items (api) 1.0.0 * initial release