Which ZEC explorer is realtime & correct?

Kinda agree with “johnwisdom the wise” - it’ll be a huge waste of time.

If you really want to do it the hard way, here’s how :-

  • get the raw block data using zcash-cli getblock blocknumber 0
  • extract the transaction data, its what’s left after you remove the block header
  • use zcash-cli decoderawtransaction rawblockdata
  • add up the vouts from the first transaction
  • (repeat 580000 times)
2 Likes

Lol, there must be a tool for that, i can’t believe no such tool is available that proofs that all data is correct and proofs each pool seperatly against the mined blocks height. Seriously?

Not exactly hard to make one, its just a script to scan blocks.

You could post a request on ZFgrants if you really want someone to make it. :wink:

1 Like

The most accurate way to verify the blockchain is with a full node. Block explorer’s are prone to errors as you are finding out, I would say none of them are 100% trustworthy.

Josh Cincinnati wrote a script that you can run if you wish to do the verification manually:

GitHub - acityinohio/auditthezed: Very inefficient auditing script for zcashd

3 Likes

I don’t want to discredit your sincere interest on finding a realtime explorer.
I’m just saying there is no need to doubt about the transparent pool because if any anomaly would’ve occured we would’ve known, no doubt about it.
If a miner mined a block and didn’t receive his full 12.5 ZEC he/she would’ve informed urgently. There are so many institutions that scan in depth many blockchains (zcash 100% included) and they would’ve disclosed such flaw.
The thing is, anyone can check this pretty easily and I’d say no doubt this has been done before.

If you’re really really interested(or anybody else :stuck_out_tongue: ) I’d offer to do such work for 10 ZEC.

It has been done before, this thread: https://twitter.com/acityinohio/status/1095121344969216000?s=19

2 Likes

Like the instructions on josh’s github :-

go run main.go
Then grab a coffee or two…or ten. It’ll be a while

:rofl:

2 Likes

I just remembered the existence of the gettxoutsetinfo RPC command, which means that you can get everything you need directly from zcashd:

$ zcash-cli gettxoutsetinfo
{
  "height": 590278,
  "bestblock": "0000000000064c3e2d89f3e91bb5ea7d33b596bf4cfce05df699acee31e082ff",
  "transactions": 938913,
  "txouts": 21329300,
  "bytes_serialized": 569349342,
  "hash_serialized": "8d60542496ac5c41d7833fa28e851c002760a9d44059e319a6de03e46f761d9c",
  "total_amount": 6901853.52691327
}
$ zcash-cli getblock 590278
{
  "hash": "0000000000064c3e2d89f3e91bb5ea7d33b596bf4cfce05df699acee31e082ff",
  "confirmations": 5,
  "size": 1629,
  "height": 590278,
  "version": 4,
  "merkleroot": "ea3e8c2314a5aff5ec6bf9121072ff42a2701528c75ee0e2f344471aee0d39c3",
  "finalsaplingroot": "07353c660c3dcbbd864aa6f9e531bb045e3d6fac7934a4a0fa69ecfd70c533ee",
  "tx": [
    "ea3e8c2314a5aff5ec6bf9121072ff42a2701528c75ee0e2f344471aee0d39c3"
  ],
  "time": 1566560109,
  "nonce": "00000000000000000000000000010000000000000015003000000005bcbc1db3",
  "solution": "00877ec6c65266679fab50717fa764e54c31db7db904aac1f8c5981641096c42c8d76b96c134106c07bd35fe5beafd6599b7db6033d89b2ba1e2eb30da670959cd5d7a9358f29314a2c6bbf2fc3d15b58c570331070fb5b6164741c4b12053f01d5240171c7b1d98030f5691755c0ba7151c9ec48d76d412ab54841b83d10fa046abc70a21cdd9b45278a4f71eecf88b3f6dff28691b519e1ce66d25b7b607e35fca4b9c3a7f09e7032c43c502990434d75fc268424bfb7d1978920ef2448e4a9902d7f1b9dd3e352b8041335ddb59de0e89198a1e2b521db701c45ba2e272995b194c2797128330432f25a4e543f3d68805d81b6395bd7eb7df114a03788f994685cc54d11b00c4364f6e663e80d9ee40197c366ecfc66887b533b207b72b764123ecf5a862088fe79cdb453e62fab330eb897ac45cc4f03b45ca1c2a91d26db9085fe2fe24cbd3cfb59e032e739a0a02373a51595298d1870151364324b364fae11ddfc80d10051edea9ac299f01c616e53a0cee1d95135fcc14aff5c27b479e67b7dd12a9e2f36835564bdbd7805c2d1eb01c1968d3a1aff7f6216c6e1600c77ffb900ad12fe2b11ad5a3f266b0aff8d73f915d95ee3ad553ff72be8d9fd27da4cf76539dd49427d341dfcb7c13c10e803a221171ed64a9919cec42d31af57a8c8f21859cd6ba48aafb804e82b1a3e72da95b9a781995061bf66f4650315ba05d76fa5a61e6872528998acd09e12789fe10e59bb2c892d03857231981f6af5e7c15ab8a861fce109fc3b322e0e5329602b1049fb50825cb251f9ca1928962ffb2a465c06964b145fb26b90c0a3fb22c6a3a3be848b1aad3ce4d56bbd6f606153330236626ebbe396a1ad619db4d734b6a02bc063d27b2622b4c5601a5a2bbb441cdbc7caeda2a1c8e375a8e4c7464acab89eeaec7a85e44b78eea7fd9a86200ea03161dc0c62754de7375f129533e7853d6982c28c4bd502c24b4c97fb3e38a364fa4de9f0cd97bc90311b4d2ff4febf5c234a11219a333e8aef5ffe8920f3837f665239e095860e539f4f504aed989dfaaf90756a0e483133964e7b9c660bcc6b3c5e1b41bd0f74145f3883ad8ef08ea01d54996f2d58a0ef313621e2787f142644b75b57562557db373cce657765929863c334d25fd690d2fcb5076369abfa69a1343d38b540b64288b0324e39f9159266161654819a34597dd681c05d5d8540cf9695ce1528dfb27f481be98fea693103026620e934413935524a17db1c1f5a3123260c51cdeefc897d2b0f51c0ae91321ec96a6aef0d5e6ad0e2d8bece88b3ad59a51522b823859d5cf46bdbb5c217222237f4fb0b349844505bf63a2da6db5599e070fadaa25bbcdcd03a89125e1825e275272025d2cba2c941781a89635c19d1309b0705c448a87d6dd155102798fa9c96e56d5cada81b4a1d25024b34d2c1a19111861aab3087957f8573113562bf33a074bd8447106fc069fb17a6723f9e1415cb29ad330690a33314530dc5b0934d82953b7a8932b60c052cb1e971b46c80589fba7acd0ffecf058108fe4d1e748942298a0eb1a628453b80bb7cbd543d2f3361d3021a55acf9df2105f35c75451049eaded581fab4ce93e08311f088c24812d86cb94d9a7676242a41cc464b2f20f3eaeaf036b8b70f4833ae632a7371b1bbdb832217079c85e1c82d232934af0a9d93a555f94784c315fbfbd49471eff2c33a25c3d67f4c4d234b9bdce825ebf39ad3e4e1aa72b05a48a6d3816c50e10767ed65fd89d9b4406cb574018cb91c2ef9e4805f978ab0e49e05ec9013956238653519a6ac68563e685c05a6dd9d95510081142c19b60cad7505901720a3d7f628ad20899483d52408b278265e4d53a6d45eba64fd57e3e9cb214df",
  "bits": "1c01d24c",
  "difficulty": 73686260.13631338,
  "chainwork": "00000000000000000000000000000000000000000000000001834b1bb02cbf0f",
  "anchor": "c755fc638155bf83903292dd7c36bd473730497e6b0946e9c0231558cdbce9dd",
  "valuePools": [
    {
      "id": "sprout",
      "monitored": true,
      "chainValue": 146968.84450953,
      "chainValueZat": 14696884450953,
      "valueDelta": 0.00000000,
      "valueDeltaZat": 0
    },
    {
      "id": "sapling",
      "monitored": true,
      "chainValue": 204513.54120198,
      "chainValueZat": 20451354120198,
      "valueDelta": 0.00000000,
      "valueDeltaZat": 0
    }
  ],
  "previousblockhash": "00000000004ecba5439357385201ab5ea1397c12cc025e61778ccacb2d3de60c",
  "nextblockhash": "0000000000a8472a29bedc4e230be3d4e73784cdb32e55b60e3c7742fe419959"
}

Doing the calculations:

Maximum total ZEC

  125000 Slow start contribution
+ (
  590278 Block height
 - 19999 Slow start blocks
) * 12.5
= 7253487.5 ZEC

Observed ZEC

  6901853.52691327 transparent pool
+  146968.84450953 Sprout pool
+  204513.54120198 Sapling pool
= 7253335.91262478 ZEC

Discrepancy

  7253487.5        Maximum
- 7253335.91262478 Observed
=     151.58737522 ZEC

So as of height 590278, the total ZEC in circulation is roughly 150 ZEC lower than the protocol-defined maximum.

7 Likes

It’s worth pointing out that it is allowed by the consensus protocol for a miner to claim less than they are actually entitled to claim. That’s a quirk of Bitcoin that we inherited.

1 Like

I’d like to see unclaimed miner rewards factored into a script that validates that the sum of those sources matches the expected issuance schedule. Has anyone worked on this lately?

3 Likes