So I’ve always had an interest in building things that utilize the many block explorers out there, but I’ve hated that most don’t offer API and if they do it’s very limited. I’ve fallen in love with creating crypto-Bookkeeping scripts, Discord bots, and other analytical scripts just for fun. However, doing so has forced me to start running my own Daemons for the RPC and, most times, my own Explorer. My Explorer of choice is the unfortunately forgotten piece of software called Iquidus Explorer.
I actually liked that Iquidus does a few nice things right out the gate:
1) A decent API
2) Easy to setup
3) MongoDB NoSQL database
However, that doesn’t mean that Iquidus fits my needs perfectly. It’s missing an API that only another Explorer has provided, and has subsequently removed, which means that scripts like LunarStaking no longer works with the improved methods I had. Looking at Iquidus though, it looks like noone else has asked for this type of API either: “getStakesSince” > Retrieve the transactions that were Stakes for an address since a particular blockheight. That’s how L.S. ran through really quickly to check if new rewards needed to be paid out, so without it available, it needed to be coded in.
Doing so took me a few moments and it was complete and ready to go, but that left me thinking what else is missing from Iquidus? Funny thing is it looks like the creator of Iquidus was going to do updates to bring it to 2.x but then closed the issue. Let’s see what he had planed and map out what we want?
So here we see the following:
- Store tx, address and balance data more efficiently, resulting in much faster indexing times.
- Separate front-end from backend/API. So one frontend can connect to many backends/API’s (multicoin support)
- Plugin framework
- Move markets & richlist/wealth distribution functionality into plugins, outside of main codebase for easier maintenance and customizations.
- Network plugin, displaying, charting and mapping various network information.
- Decred support
Not too bad of a list. Alot of this appears to be to separate the app and its features into plugins which is smart. For instance, I like to use a fork called Ciquidus because they have Masternode support, but on coins without masternode support, I’m boned.
So looking at this, #1 definitely can be done a little better, but let’s be serious, there’s not much more we can do besides indexes. One person already mentioned in a later PullRequest to add an index to timestamps of txes, but I honestly haven’t seen much improvement.
#2 would definitely be nice to bake into Iquidus. I’ve attacked this a separate way with Laravel instead but it still requires me to run multiple Iquidus’ in the background.
The plugin framework and what not for #3-5 will take a bit more work to figure out the best way to do that, but definitely would love to see that. And I don’t see what could be preventing #6.
What should we bring?
So that’s what the main developer proposed he’d like to see, but what about what we want to bring in?
- Better API support
- getRewards (includes MN and Stakes)
- Change the theme / view engine
- Personally I hate Jade, so I want to go with something like Express Handlebars
- Bring in some Bootstrap love, datatables, graphs, etc
- Add settings for various things:
- Enable/Disable certain functions
- RateLimit api