[dashninja.pl] Dash Masternode Ninja - Free Masternode Monitoring

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
Dash Masternode Ninja - Free Masternode Monitoring

My page offers free masternode monitoring tools. Feel free to donate/tip me whenever you feel like it: Xbon36F261wXDL4p1CEZAX28t8U4ayR9uu

On plain internet it uses very secure HTTPS settings and available both on IPv4 and IPv6.
Can be browsed privately using Tor and I2P. This way you don't have to trust me on not logging the queries. :)

You need to have JavaScript enabled to use.

Blocks Masternodes Payee
Mainnet URL : https://www.dashninja.pl/blocks.html
Mainnet Tor : seuhd5sihasshuqh.onion/blocks.html
Mainnet I2P : dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma.b32.i2p/blocks.html
Testnet URL : https://test.dashninja.pl/blocks.html
Current version: HTML v2.3.9 / JS v2.3.4
(if you see an older version force the refresh by pressing Ctrl+F5)

Get statistics about which pool is updated to latest version of dashd and paying masternodes correctly.

Global Statistics:



Per Miner information:
Click on the pool name/pubkey in the Per Miner statistic to filter and see only blocks found by that pool during last 24h.



Blocks Detail:
Auto-updates every 2.5 minutes.



API:
A "RESTful" API returning JSON can be used to retrieve the data:
End-point: /api/blocks
HTTP Method: GET
HTTP GET Parameters:
  • testnet (mandatory) = 0 for mainnet or 1 for testnet
Result in the data property:
blocks is an array with last 24h blocks for each:
  • BlockId
  • BlockHash
  • BlockMNPayee = What masternode was paid for this block
  • BlockMNValue = How much the masternode was paid
  • BlockSupplyValue = How much coin was generated in that block
  • BlockMNPayed = Was the masternode paid (0 or 1)
  • BlockPoolPubKey = Pool pubkey that found the block (or P2POOL)
  • PoolDescription = Human readable description of the pool pubkey (if known)
  • BlockMNProtocol = ProtocolVersion of the masternode payed (indicates the pool version)
  • BlockTime = When was the block found
  • BlockDifficulty
  • BlockMNValueRatio = Payment ratio (MN/total)
  • BlockMNValueRatioExpected = Payment ratio expected from block template
  • IsSuperBlock = Was this a Super Block (payment of budgets)
  • SuperBlockBudgetName = Super Block Budget Name (v0.12.0.x)
  • BlockDarkSendTXCount = InstantSend transactions count in block
  • MemPoolDarkSendTXCount = InstantSend transactions in mempool
stats is an array with some stats (global, perversion and perminer).

Masternodes Monitoring
Mainnet URL : https://www.dashninja.pl/masternodes.html
Mainnet Tor : seuhd5sihasshuqh.onion/masternodes.html
Mainnet I2P : dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma.b32.i2p/masternodes.html
Testnet URL : https://test.dashninja.pl/masternodes.html
Current version: HTML v2.2.15 / JS v2.3.9
(if you see an older version force the refresh by pressing Ctrl+F5)

Check if your masternode is detected by several monitoring dashd nodes accross Europe.

To show only your nodes:
https://www.dashninja.pl/?mnregexp=...NcT4jWLELckQ9LWTeStftG39ATx4HwQ)#mnlistdetail



API:
A "RESTful" API returning JSON can be used to retrieve the data for your masternode:
End-point: /api/masternodes
HTTP Method: GET
HTTP GET Parameters:
  • testnet (mandatory) = 0 for mainnet or 1 for testnet
  • portcheck = 0 if you don't need/want the portcheck information (faster) or 1 if you do (slower)
  • balance = 0 if you don't need/want the balance information of the pubkey (faster) or 1 of you do (slower)
  • ips = JSON list of ip:p ort masternode info to retrieve, ex: ips=["ip1: port1","ip2: port2"]
  • pubkeys = JSON list of pubkeys masternode info to retrieve, ex: pubkeys=["pubkey1","pubkey2"]
  • vins = JSON list of vins masternode info to retrieve, ex: vins=["outputhash1-outputindex1","outputhash2-outputindex2"]
  • protocol = Don't specify it to use latest (that's usually what you want). Add it if you wish to check old versions (as long as monitoring nodes are still running with this protocol version, ex: 70076 for v0.11.2.23)
  • exstatus = Retrieve an array of extended status from all monitoring nodes on Dash Ninja
Result in the data property is an array of masternodes found from input parameters:
  • MasternodeOutputHash
  • MasternodeOutputIndex
  • MasternodeIP
  • MasternodePort
  • MasternodePubkey
  • MasternodeProtocol
  • MasternodeLastSeen
  • MasternodeActiveSeconds
  • MasternodeLastPaid
  • ActiveCount = How many monitoring nodes (on latest protocol version) see it active (in masternode list and 1)
  • InactiveCount = How many monitoring nodes (on latest protocol version) see it inactive (in masternode list but with 0)
  • UnlistedCount = How many monitoring nodes (on latest protocol version) see it unlisted (not in masternode list)
  • ExStatus (only if exstatus=1)
    • NodeName = id of the Dash Ninja node
    • NodeVersion = version as reported by getinfo of Dash Ninja node
    • NodeProtocol = protocol version as reported by getinfo of Dash Ninja node
    • Status = active/inactive/unlisted as seen by the Dash Ninja Node
    • StatusEx = Exact status code from rpc call as seen by the Dash Ninja Node
  • Portcheck (only if portcheck=1)
    • Result = open/closed
    • SubVer = Complete version string returned by remote dashd
    • NextCheck = Next scheduled check
    • ErrorMessage = Last error message when remote dashd was port checked
    • Country = Country name for IP
    • CountryCode = Country code (2 letters) for IP
  • Balance (only if balance=1)
    • Value
    • LastUpdate

Masternode Detail

Mainnet URL : https://www.dashninja.pl/mndetails.html?mnoutput=
Mainnet Tor : seuhd5sihasshuqh.onion/mndetails.html?mnoutput=
Mainnet I2P : dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma.b32.i2p/mndetails.html?mnoutput=
Testnet URL : https://test.dashninja.pl/mndetails.html?mnoutput=
Add your masternode output hash and index at the end of the URL (hash-index).
Current version: HTML v3.0.0 / JS v3.0.0
(if you see an older version force the refresh by pressing Ctrl+F5)

Check details of your masternode for monitoring info and last expected and actual payments.

 
Last edited:

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
Budgets Monitoring (Obsolete since v0.12.1):
Mainnet URL : https://www.dashninja.pl/budgets.html
Mainnet Tor : seuhd5sihasshuqh.onion/budgets.html
Testnet URL : https://test.dashninja.pl/budgets.html
Add your masternode output hash and index at the end of the URL (hash-index).
Current version: HTML v1.5.3 / JS v1.5.0
(if you see an older version force the refresh by pressing Ctrl+F5)

Check budget proposals, alloted, final and super-blocks.

Budgets Details (Obsolete since v0.12.1):
Mainnet URL : https://www.dashninja.pl/budgetdetails.html?budgetid=
Mainnet Tor : seuhd5sihasshuqh.onion/budgetdetails.html?budgetid=
Testnet URL : https://test.dashninja.pl/budgetdetails.html?budgetid=
Add the budget hash id at the end of the URL (hash).
Current version: HTML v1.2.2 / JS v1.2.1
(if you see an older version force the refresh by pressing Ctrl+F5)

Check budget details, payments and prebuilt manual votes commands.

Governance Proposal Monitoring:
Mainnet URL : https://www.dashninja.pl/governance.html
Mainnet Tor : seuhd5sihasshuqh.onion/governance.html
Mainnet I2P : dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma.b32.i2p/governance.html
Testnet URL : https://test.dashninja.pl/governance.html
Current version: HTML v1.0.3 / JS v1.0.4
(if you see an older version force the refresh by pressing Ctrl+F5)

Check governance proposals, valid, final and super-blocks.

API (Governance proposals):
A "RESTful" API returning JSON can be used to retrieve the data for governance proposals:
End-point: /api/governanceproposals
Cache time: 120 seconds (not need to refresh more often...)
HTTP Method: GET
HTTP GET Parameters:
  • testnet (mandatory) = 0 for mainnet or 1 for testnet
  • onlyvalid = 0 if you want even non-valid proposal (default) or 1 if you don't
  • balance = 0 if you don't need/want the balance information of the pubkey (faster) or 1 of you do (slower)
  • proposalsnames = JSON list of proposals names ex: proposalsnames=["proposal1","propoal2"]
  • proposalshashes = JSON list of proposals hashes ex: proposalshahes=["deadbeef1","deadbeef2"]
Result in the data property is an array of proposals found from input parameters:
  • Name
  • Hash
  • CollateralHash
  • URL
  • EpochStart = Start of validity
  • EpochEnd = Start of validity
  • MasternodeProtocol
  • MasternodeLastSeen
  • MasternodeActiveSeconds
  • MasternodeLastPaid
  • PaymentAddress = Where will the proposal be paid
  • PaymentAmount = Monthly amount requested
  • AbsoluteYes = How many valid absolute yes - no votes
  • Yes = How many yes votes total
  • No = How many no votes total
  • Abstain = How many abstain votes total
  • BlockchainValid
  • IsValidReason = Reason why the proposal might be invalid
  • CachedValid
  • CachedFunding
  • CachedDelete
  • CachedEndorsed
  • FirstReported = When was proposal first received by the monitoring nodes
  • LastReported = Last time seen by the monitoring nodes

In the result you will also find a stats property:
  • valid = How many valid proposals
  • funded = How many are funded
  • totalmns = How many valid masternodes
  • nextsuperblock = array of info about the next superblock
    • blockheight = What is the expected next superblock height
    • estimatedbudgetamount = Estimation of how much Dash will be available for budgets
    • estimatedblocktime = Estimation of timestamp for next superblock
  • latestblock = Current height of Dash blockchain
API (Governance triggers):
A "RESTful" API returning JSON can be used to retrieve the data for governance triggers:
End-point: /api/governancetriggers
Cache time: 120 seconds (not need to refresh more often...)
HTTP Method: GET
HTTP GET Parameters:
  • testnet (mandatory) = 0 for mainnet or 1 for testnet
  • onlyvalid = 0 if you want even non-valid proposal (default) or 1 if you don't
  • afterblockheight = by default will return all triggers, the best is to call it with current height to only have triggers for future superblocks
Result in the data governancetriggers property is an array of triggers found from input parameters:
  • Hash
  • BlockHeight
  • AbsoluteYes = How many valid absolute yes - no votes
  • Yes = How many yes votes total
  • No = How many no votes total
  • Abstain = How many abstain votes total
  • BlockchainValid
  • IsValidReason = Reason why the trigger might be invalid
  • CachedValid
  • CachedFunding
  • CachedDelete
  • CachedEndorsed
  • FirstReported = When was the trigger first received by the monitoring nodes
  • LastReported = Last time seen by the monitoring nodes
  • PaymentPosition = Payment position in superblock
  • PaymentAddress = Where will the proposal for this position in superblock be paid
  • PaymentAmount = Amount to be paid for this position in superblock
  • PaymentProposalHash = Proposal hash to be paid for this position in superblock
  • PaymentProposalName = Proposal name to be paid for this position in superblock
In the result you will also find a stats property:
  • valid = How many valid proposals

API (Governance superblocks):
A "RESTful" API returning JSON can be used to retrieve the data for governance superblocks (in blockchain paid governance proposals):
End-point: /api/blocks/superblocks
Cache time: 120 seconds (not need to refresh more often...)
HTTP Method: GET
HTTP GET Parameters:
  • testnet (mandatory) = 0 for mainnet or 1 for testnet
  • proposalshash = JSON list of proposals hashes ex: proposalshahes=["deadbeef1","deadbeef2"]
Result in the data superblocks property is an array of uperblocks payments found from input parameters:
  • BlockId
  • BlockHash
  • BlockPoolPubKey = The pubkey that found the block
  • PoolDescriptions = The name of the pool if it is known from the pubkey
  • BlockTime = Block timestamp
  • SuperBlockVersion = Superblock version (1 = old budget superblock else it is a newer governance superblock)
  • BlockchainValid
  • SuperBlockPaymentAddress = Address paid for this proposal in superblock
  • SuperBlockPaymentAmount = Amount paid for this proposal in superblock
  • SuperBlockProposalHash = Proposal hash paid in the superblock (only for governance superblocks)
  • SuperBlockProposalName = Proposal name paid in the superblock
Governance Proposal Details:
Mainnet URL : https://www.dashninja.pl/proposaldetails.html?proposalhash=
Mainnet Tor : seuhd5sihasshuqh.onion/proposaldetails.html?proposalhash=
Testnet URL : https://test.dashninja.pl/proposaldetails.html?proposalhash=
Add the budget hash id at the end of the URL (hash).
Current version: HTML v0.9.1 / JS v0.9.0
(if you see an older version force the refresh by pressing Ctrl+F5)

Check governance proposals (v0.12.1+) details, payments and pre-built manual votes commands.

Common API structures:
In the data result property you can find also 2 common structures :
  • cache = is the result from cache or from database
    • time = when was the data pulled from database
    • fromcache = boolean, if true then data comes from cache, else it comes from database
  • api = API versioning
    • version = API version for this end-point
    • compat = API version compatibility
    • bev = string representation of the current back-end version (first two values are the global Dash Ninja Back-End version)

License:
Dash Ninja is free to use and Open Source (GPLv3):
- Back End @ https://github.com/elbereth/dashninja-be
- Database @ https://github.com/elbereth/dashninja-db
- Control Scripts @ https://github.com/elbereth/dashninja-ctl
- Front End @ https://github.com/elbereth/dashninja-fe
- IRC Bot @ https://github.com/elbereth/dashninja-irc

I provide no warranty for anything showed on the website. Use at your own risk.

If any issue arise, the best way to notify is an issue on github (probably Front-End).
 
Last edited:

tungfa

Administrator
Dash Core Team
Moderator
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,906
6,729
1,283
you pages rule ... i am on every day !
well done for keeping this going in such a professional way !!
 

acidburn

Active Member
May 26, 2014
467
175
113
This is great. Even the API. :). Any chance you can stick sockets on it? So we can register interests and when something changes IT pushes the notification out?
 

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
Something wrong I guess. :)
But no time to check until the evening, sorry.

Edit: Fixed, portcheck will re-cehck everything soon.
 
Last edited by a moderator:

UdjinM6

Official Dash Dev
Dash Core Team
Moderator
May 20, 2014
3,638
3,538
1,183
elbereth something is wrong with color scheme
158019 -> 6 -> 1.2 green (20%)
158018 -> 6 -> 1.5 orange (25%)
should be colored in opposite way
 
Last edited by a moderator:

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
There is a problem with the query retrieving the expected ratio. Will try to fix that in the evening.

Edit: Fixed (was a problem in the API, the expected ratio is now correct, hence also the colors and stats).
 
Last edited by a moderator:
  • Like
Reactions: UdjinM6

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
Well I have no idea how to add that feature and I barely have more than half a hour per day to work on this.
So maybe but unlikely. :)
 

dark_wanderer

Member
Nov 12, 2014
82
36
58
Hi everybody!

A new member is here)

This Ninja is an awesome tool. A few months ago there were about 300 masternodes, today there are almost 1200! Is there any chart showing the number of masternodes vs time?
 

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
I wanted to store that info, but have not. So no. Not yet and I won't have it until the beginning.
Chaeplin's page had such stats.
 

dark_wanderer

Member
Nov 12, 2014
82
36
58
I wanted to store that info, but have not. So no. Not yet and I won't have it until the beginning.
Chaeplin's page had such stats.
Thanks for your answer. Unfortunately, Chaeplin's page does not respond.

Actually I wanted to create a chart with the following quantities vs time:

1) number of active masternodes
2) DRK price in $ as well as in BTC
3) total supply of DRK
4) masternode reward as the fraction of the block value (10, 20, ... %)

If someone has chart 1), please share as a csv file ! Thanks in advance)
 

tungfa

Administrator
Dash Core Team
Moderator
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,906
6,729
1,283
If you manage to
have x amount of MN addresses put into the search field,
and it saves that automatic, and shows me only these selected/saved addresses
in the list
that would make a huge improvement !!

just in idea
chaplins page had that feature and for multiple MN's it really helps
tx
 

tungfa

Administrator
Dash Core Team
Moderator
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,906
6,729
1,283
I know, I really would like to add tons of features but I have almost no free time... :/
i totally hear you
i am NOT asking
just talking ! i know we will get there

great page anyway !! Tx for hosting ....>