• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

DashRadar development thread

Previous output and redeemed in is already included in the links. "<" on the left side is a link to the previous output and ">" on the right side is a link to the redeeming input.
I know. This suggestion is for visualization improvement. Look at this pic. I can immediately visually identify clusters without going through the links.
I know. This suggestion is for visualization improvement. Look at this pic. I can immediately visually identify clusters without going through the links.
View attachment 7430
Ok. I don't think it's necessarily a good idea to display the txids by default. Maybe it could be added as an option or maybe there could be other ways to achieve the same thing. For example it should be possible to make it so that when mouse is hovered over one of the arrows then all of the arrows pointing to the same txid are highlighted.
I'm not sure how to make it to look good... I'm just saying that I'm finding this feature on cryptoid as very useful. Maybe small identicons from txid can be used...
Next I'm planning to add some median charts to the charts page.
Last edited:
And... another suggestion :rolleyes:
In the graph:
1) when mouse over the transaction - on the top left along with txid show the number of inputs, outputs and valueOut.
2) when mouse over the address - on the top left along with address show the number of txApperances, balance, and (if any) unconfirmedTxApperances and unconfirmedBalance

  • Refactored how the blockchain is imported to the Neo4j graph database
    • Mempool (a.k.a unconfirmed transactions) is imported (example query: get mempool transactions)
    • Delay of importing a new block reduced from ~1 minute to less than a second
    • Orphaned blocks are saved as :OrphanedBlock
    • Previously each block was imported in a single very complex query. Now each transaction, txin and txout is a separate query. This slowed down the initial import but made the code much easier to maintain.
    • Required database indexes are now added automatically
  • Rewrote https://github.com/Antti-Kaikkonen/Neo4jReadOnly using express.js
    • Less code
    • Better caching support (HTPP Not Modified). Should result in a better user experience especially on mobile connections
  • Rewrote https://github.com/Antti-Kaikkonen/chartjs-cypher using express.js
    • Less code
    • Better caching support (HTPP Not Modified). Should result in a better user experience especially on mobile connections
  • Charts page: Image width and height is set before the image is loaded to make loading less cluttered.
These changes do not include many visible changes but should make future development easier and enables using the neo4j graph database for things that require real-time data.
  • Block explorer
    • Front page changes
      • Added unconfirmed transactions to front page
      • Removed block hash from recent blocks and added block time
    • Address balance chart changes
      • Should load faster but can still take a while if there are 10k+ transactions
      • Better downsampling by using a chartjs plugin. (only if more than 2000 data points)
      • Hidden if there is only 1 data point.
    • Charts page bugfix: date was off by 1 day in some charts.
    • Many bugfixes and performance optimizations
  • Backend (database)
    • Fixed many bugs with how blockchain reorganizations are handled. Hopefully it's working now..
Blockchain explorer https://dashradar.com/explorer is not moving anymore... :rolleyes:
Oh sorry about that. I just moved to a diffent city so I couln't work for 2 days.. I will fix asap.

Edit: It got stuck at block 905186 which has 4785 transactions. I probably need to change the code to save in a single database transaction one transaction at a time instead of one block at a time. Meanwhile I'm trying to give the database more memory to work with to get it rolling again.
Last edited:
np :) you got hit with an improvised community driven stress test which brought down some nodes in our insight cluster for some time too (not to mention poloniex and shapeshift :D)
The issue was that determining the transaction type (privatesend, create denomination, mixing, ..) was too slow. I optimized the code and it seems to be working fine now. Just processed a 1.91 MB block without an issue. The block explorer should catch up withing an hour or two.
  • Block explorer
    • InstantSend icon is now displayed for InstantSend transactions in the block explorer
    • Added a summary of the last 24 hours to the front page of the block explorer
      • Number of transactions
      • Number of InstantSend transactions
      • Number of PrivateSend transactions
      • Hashrate
    • Changed the recent blocks table to also display date instead of only time, because viewing old blocks is possible.
    • Added PrivateSend analysis page. Link available from the transaction page of a PrivateSend transaction.
      • Example 1, Example 2
      • Currently I'm running the analysis on my own computer. When I'm running it, the analysis should be available a few minutes after the PrivateSend transaction is confirmed, but I won't be able to run it 24/7 currently.
      • Todo: Add explanation, add basic transaction info, create analysis where PrivateSend transactions are tracked back to guesstimated wallets instead of create denominations transactions (group together create denominations transactions belonging in the same wallet)
  • Backend
    • Updated to Dash Core v0.12.3
    • Updated to the latest insight-api. Also wrote a tutorial on how to install it.
    • InstantSend locks are stored in the database
    • Had to do some performance optimizations thanks to the recent stress test by the dash community
      • Now able to handle ~2mb blocks with ease
      • Initial sync time should also be greatly reduced
Source code of the PrivateSend analysis program: https://github.com/Antti-Kaikkonen/PrivateSendAnalysis.

As recommended to me by Dash Watch, I also added an analytics software matomo to the site. It's open source and self hosted (unlike something like google analytics), so no data is provided to third parties. I may, however, share some statistics here and with the Dash Watch team. So far only 60 unique visitors since I installed it in July 11th.

There is currently an issue with the search functionality of the block explorer because of this bug.
Search functionality is now again working properly in the block explorer. Also updated the privatesend analysis page with loading indicators, basic transaction details and visual improvements.

Currently working on changing the privatesend analysis by combining create denominations transactions originating from the same wallet. Soon the privatesend analysis page will show guesstimated wallets (based on the multi-input heuristic) instead of create denominations transactions.

I also want to inform everyone that I will keep working on the ongoing proposal in August so that I can finish the remaining proposal objectives.
Changed the PrivateSend analysis page to use guesstimated wallets as mixing sources. New analysis is available in https://dashradar.com/explorer/privatesend/[txid]. Old analysis is still available in https://dashradar.com/explorer/privatesend-old/[txid]. The new analysis typically has less mixing sources and higher percentages because it combines create denominations transactions belonging in the same wallet. To get a list of example analysis pages you can run this query. It fetches privatesend transactions between blocks 850000 and 855000 because the old analysis isn't available for recent transactions.

I want to emphasize that it's not possible for someone to determine the number of rounds used by just analyzing the blockchain. Different inputs can even use a different number if you interrupt the mixing process. So the results are more like leads rather than something conclusive.
Last edited:
I found a bug which caused mixing transactions to affect the guesstimated wallets feature although mixing transactions should have been ignored.

I'm going to remove all of the guesstimated wallets and then recompute them. This will cause a few hours of downtime. Edit: Done

I will also need to recompute the PrivateSend analysis results which were using the guesstimated wallets feature.
Last edited:
I found another bug where a trasaction included in an orphaned block re-appearing in the mempool caused the transaction to be duplicated. This has so far happened to only 1 transaction but it already scewed the average transaction fee chart for August 8th. Currently reprocessing the data and I will edit this post when fixed. Edit: done
Last edited:
Here is the number of unique visitors for July, August and September
dashradar unique visutors.png

I'm using an open-source self hosted analytics software called Matomo, so that your information is not leaked to Google or other third parties.