Compare commits
79 Commits
Author | SHA1 | Date |
---|---|---|
|
534700aade | 3 months ago |
|
640b74184c | 4 months ago |
|
6cfd55291d | 5 months ago |
|
0fe8ca9b03 | 5 months ago |
|
c588211ad4 | 5 months ago |
|
c4b865e173 | 5 months ago |
|
921ec96c8b | 5 months ago |
|
7b0eeed095 | 5 months ago |
|
fa56409f7c | 1 year ago |
|
1149c463b1 | 1 year ago |
|
1bd4654295 | 1 year ago |
|
e223793a69 | 1 year ago |
|
bc81830120 | 1 year ago |
|
c9c72abfdc | 1 year ago |
|
949b76abe4 | 1 year ago |
|
cc91c6dd5a | 1 year ago |
|
e007c4ba6e | 1 year ago |
|
336be40234 | 1 year ago |
|
a67dabd148 | 1 year ago |
|
e3659291a7 | 1 year ago |
|
f5053961a6 | 1 year ago |
|
19dffab015 | 1 year ago |
|
1ec999718f | 1 year ago |
|
dffccbc229 | 1 year ago |
|
d6ba984118 | 1 year ago |
|
3f3f238f16 | 1 year ago |
|
b25532ecff | 1 year ago |
|
27d0f8ad0d | 2 years ago |
|
b0535c1a69 | 2 years ago |
|
6b10e414ac | 2 years ago |
|
0224ab7d2c | 2 years ago |
|
fbc0c9261c | 2 years ago |
|
f1a92673d2 | 2 years ago |
|
d916154e3a | 2 years ago |
|
b15d0d0c1f | 2 years ago |
|
8138b6644d | 2 years ago |
|
96f1af5dee | 2 years ago |
|
0d2d32adbb | 2 years ago |
|
a1d7a68ecf | 2 years ago |
|
04f39a1c2d | 2 years ago |
|
4b66f78527 | 2 years ago |
|
9c4452c2b5 | 2 years ago |
|
2561b52150 | 2 years ago |
|
20f2e42b5a | 2 years ago |
|
ac8be8c416 | 2 years ago |
|
aac0b2db62 | 2 years ago |
|
2b8b37ca8f | 2 years ago |
|
ac0ec9dd59 | 2 years ago |
|
1e0b6e0314 | 2 years ago |
|
cc8df52678 | 2 years ago |
|
cf6dd64276 | 2 years ago |
|
9897b0efdc | 2 years ago |
|
10c1099f7c | 2 years ago |
|
640779b46b | 2 years ago |
|
c2e90ed888 | 2 years ago |
|
ae5ab0d4d3 | 2 years ago |
|
b086c96c4c | 2 years ago |
|
796ff72909 | 2 years ago |
|
05ad6da964 | 2 years ago |
|
60809bff4a | 2 years ago |
|
71922404cc | 2 years ago |
|
59c1eef62c | 2 years ago |
|
82da3fc1c5 | 2 years ago |
|
d21de97e15 | 2 years ago |
|
1a1b4162f1 | 2 years ago |
|
98b6d9a67f | 2 years ago |
|
f51dff5919 | 2 years ago |
|
90a1b85eab | 2 years ago |
|
b8d8ce07f3 | 2 years ago |
|
581b9ea65f | 2 years ago |
|
9da4f50c88 | 2 years ago |
|
87c8e7dfe5 | 2 years ago |
|
6482917a4e | 2 years ago |
|
89bbeb413b | 2 years ago |
|
4a5e8c48de | 2 years ago |
|
138652a510 | 2 years ago |
|
bf4d772fba | 2 years ago |
|
9ff1e8cde8 | 2 years ago |
|
c2b8482546 | 2 years ago |
63 changed files with 1628 additions and 1297 deletions
@ -0,0 +1,3 @@ |
|||||
|
/.vscode |
||||
|
/explorer.dragonx.is/api/hashrate.json |
||||
|
/explorer.dragonx.is/api/hashrate100.json |
@ -0,0 +1,3 @@ |
|||||
|
{ |
||||
|
"liveServer.settings.port": 5501 |
||||
|
} |
@ -1,7 +1,47 @@ |
|||||
# explorer.hush.land |
# Siona |
||||
|
|
||||
|
This is Siona, a maximum privacy block explorer designed for chains which support zaddrs |
||||
|
and which runs <a href="https://explorer.hush.is">explorer.hush.is</a> and <a href="https://explorer.hush.land">explorer.hush.land</a>. |
||||
|
|
||||
|
It is written in Perl 5 and generates static HTML with no Javascript and basic inline CSS for styling. It requires a Redis server |
||||
|
running on localhost, which is for caching and reduces disk i/o. |
||||
|
|
||||
|
# Installing dependencies |
||||
|
Requires JSON::Any and Redis Perl modules and redis-server an Debian package. |
||||
|
|
||||
|
Use Cpan Minus to install Perl Modules: |
||||
|
```sudo apt install cpanminus``` |
||||
|
|
||||
|
```cpanm JSON::Any``` & ```cpanm Redis``` |
||||
|
|
||||
|
install jq: |
||||
|
```sudo apt-get install jq``` |
||||
|
# Instructions |
||||
|
|
||||
|
Assume you put `update.sh` in /home/$USER and your Hush source code in ~/git/hush3 , add this to your $USER crontab with `crontab -e` : |
||||
|
|
||||
``` |
``` |
||||
crontab -l |
# set env vars that Siona will use |
||||
|
SIONA_DOMAIN=explorer.some.poop |
||||
|
SIONA_ACNAME=GAZOOTZ |
||||
|
SIONA_CLI=~/git/hush3/src/hush-cli -ac_NAME=${SIONA_ACNAME} |
||||
|
|
||||
*/5 * * * * cd /home/hush && ./update.sh |
# update explorer data every 5 minutes |
||||
|
*/5 * * * * ~/update.sh |
||||
``` |
``` |
||||
|
|
||||
|
# additional Notes |
||||
|
|
||||
|
when running export_env.sh for manual testing, run the script as source. This assigns the env variables to the current shell. |
||||
|
|
||||
|
```source ./export_env.sh ``` or ```. ./export_env.sh``` for shorthand |
||||
|
|
||||
|
use ```sudo -E``` to preserve env variables if sudo is needed |
||||
|
|
||||
|
# Copyright |
||||
|
|
||||
|
2016-2023 The Hush Developers |
||||
|
|
||||
|
# License |
||||
|
|
||||
|
GPLv3 |
@ -0,0 +1,181 @@ |
|||||
|
<!doctype html> |
||||
|
|
||||
|
<head> |
||||
|
<title>Home | Hush - Transact and Speak Freely</title> |
||||
|
<style> |
||||
|
body { |
||||
|
background-color: #101010; |
||||
|
max-width: 850px; |
||||
|
margin: auto; |
||||
|
font-family: 'Ubuntu Mono'; |
||||
|
color: #b3b3b3; |
||||
|
text-align: center |
||||
|
} |
||||
|
|
||||
|
table { |
||||
|
width: 100%; |
||||
|
border-collapse: collapse; |
||||
|
margin-top: 15px |
||||
|
} |
||||
|
|
||||
|
td { |
||||
|
border: 1px solid #1a1a1a; |
||||
|
font-size: 16px; |
||||
|
padding: 0.5em |
||||
|
} |
||||
|
|
||||
|
td:hover { |
||||
|
background-color: #1a1a1a |
||||
|
} |
||||
|
|
||||
|
pre { |
||||
|
background-color: #0d0d0d; |
||||
|
border: 1px solid #1a1a1a; |
||||
|
font-size: 6px; |
||||
|
padding: 15px; |
||||
|
color: #e6e6e6 |
||||
|
} |
||||
|
|
||||
|
details { |
||||
|
cursor: pointer; |
||||
|
background-color: #0d0d0d; |
||||
|
text-align: left; |
||||
|
margin-top: 15px; |
||||
|
padding: 0.5em; |
||||
|
border: 1px solid #1a1a1a; |
||||
|
font-size: 13px; |
||||
|
word-wrap: break-word |
||||
|
} |
||||
|
|
||||
|
summary { |
||||
|
outline: none; |
||||
|
padding: 0.4em |
||||
|
} |
||||
|
|
||||
|
.blockt { |
||||
|
border: 1px solid #1a1a1a; |
||||
|
padding: 0.15em; |
||||
|
background-color: #0d0d0d; |
||||
|
margin-top: 15px; |
||||
|
text-align: left; |
||||
|
font-size: 13px; |
||||
|
word-wrap: break-word |
||||
|
} |
||||
|
|
||||
|
.blockt p { |
||||
|
padding-left: 0.7em; |
||||
|
padding-right: 0.7em |
||||
|
} |
||||
|
|
||||
|
.button:link { |
||||
|
float: right; |
||||
|
font-size: 11px |
||||
|
} |
||||
|
|
||||
|
.mainlinkexplorer:link { |
||||
|
text-decoration: dotted underline; |
||||
|
text-underline-position: under |
||||
|
} |
||||
|
|
||||
|
.mainlinkexplorer:hover { |
||||
|
text-decoration: none; |
||||
|
color: #595959 |
||||
|
} |
||||
|
|
||||
|
.links { |
||||
|
margin: 15px; |
||||
|
font-size: 13px |
||||
|
} |
||||
|
|
||||
|
a:link { |
||||
|
color: #b3b3b3; |
||||
|
text-decoration: none |
||||
|
} |
||||
|
|
||||
|
a:visited { |
||||
|
color: #b3b3b3 |
||||
|
} |
||||
|
|
||||
|
a:hover { |
||||
|
color: #b3b3b3 |
||||
|
} |
||||
|
|
||||
|
* { |
||||
|
scrollbar-width: thin; |
||||
|
scrollbar-color: #333333 #101010 |
||||
|
} |
||||
|
|
||||
|
::-webkit-scrollbar { |
||||
|
width: 6px |
||||
|
} |
||||
|
|
||||
|
::-webkit-scrollbar-thumb { |
||||
|
background: #333333 |
||||
|
} |
||||
|
|
||||
|
@font-face { |
||||
|
font-family: 'Ubuntu Mono'; |
||||
|
src: url('../UbuntuMono.ttf') format('truetype') |
||||
|
} |
||||
|
</style> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<h2>Hush - Speak and Transact Freely</h2> |
||||
|
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
||||
|
<pre> |
||||
|
&&&& |
||||
|
&&&& &&&&&& &&&& |
||||
|
&&&&&& &&&&&& &&&&&& |
||||
|
&&& &&&&&& &&&& &&&&&& &&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& && &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&& &&&&& |
||||
|
&&&&& &&&& && &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&& &&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&&&& &&&&&& &&&&&& &&&&& |
||||
|
&&& &&&&&& && && &&&&&& &&& |
||||
|
&&&&&& &&&&&& &&&&&& |
||||
|
&&&& &&&&&& &&&& |
||||
|
&&&&&& |
||||
|
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
||||
|
</pre> |
||||
|
<table> |
||||
|
<tr> |
||||
|
<td><a href="https://hush.land">Why Hush</a></td> |
||||
|
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
||||
|
<td><a href="https://hushpool.is">HushPool</a></td> |
||||
|
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><a href="https://explorer.hush.land">Explorer</a></td> |
||||
|
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
||||
|
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
||||
|
<td><a href="https://hush.land/team.html">Team</a></td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
<div class="blockt"> |
||||
|
<p>These addresses have NO PRIVACY! They really should move funds to a zaddr!</p> |
||||
|
</div> |
||||
|
#ADDRESS_DATA# |
||||
|
<div class="links"> |
||||
|
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span |
||||
|
style="color: #262626">]</span></a> |
||||
|
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span |
||||
|
style="color: #262626">]</span></a> |
||||
|
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span |
||||
|
style="color: #262626">]</span></a> |
||||
|
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span |
||||
|
style="color: #262626">]</span></a> |
||||
|
</div> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,160 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, |
||||
|
minimum-scale=1"" /> |
||||
|
<!-- <link rel="stylesheet" href="../dragonx.is/style.css" /> --> |
||||
|
<link rel="stylesheet" href="../../../dragonx.is/style.css" /> |
||||
|
<link rel="icon" type="image/x-icon" href="../../../img/logo_dragonx.ico" /> |
||||
|
<title>Explorer | DragonX</title> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<div class="bg-overlay"></div> |
||||
|
<div class="img-bg"></div> |
||||
|
|
||||
|
<section class="explorer-block-section"> |
||||
|
<div class="explorer-block-bar block"> |
||||
|
<a class="back-btn" href="https://explorer.dragonx.is/blocks">Block List</a> |
||||
|
<a class="explorer-btn" href="https://explorer.dragonx.is">Explorer</a> |
||||
|
<h3 class="block-title">Block Info</h3> |
||||
|
<section class="block-info-card"> |
||||
|
<div class="flex-center main-info"> |
||||
|
<div class="block-info height"> |
||||
|
<p>Block</p> |
||||
|
<a href="">#BLOCKS#</a> |
||||
|
</div> |
||||
|
<div> |
||||
|
<div class="flex-center"> |
||||
|
<div class="block-info main"> |
||||
|
<p>Reward</p> |
||||
|
<p>#BLOCKREWARD#</p> |
||||
|
</div> |
||||
|
<div class="block-info main"> |
||||
|
<p>Difficulty</p> |
||||
|
<p>#DIFFICULTY#</p> |
||||
|
</div> |
||||
|
<div class="block-info main"> |
||||
|
<p>Block Size</p> |
||||
|
<p>#BLOCKSIZE#</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<div class="block-info main"> |
||||
|
<p>Block Time</p> |
||||
|
<p>#BLOCKTIME#</p> |
||||
|
</div> |
||||
|
<div class="block-info main"> |
||||
|
<p>Block Version</p> |
||||
|
<p>#VERSION#</p> |
||||
|
</div> |
||||
|
<div class="block-info main"> |
||||
|
<p>Block Bits</p> |
||||
|
<p>#BITS#</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center flex-col hash-info"> |
||||
|
<div class="block-info"> |
||||
|
<p>Block Hash</p> |
||||
|
<a href="/block/#BLOCKHASH#" |
||||
|
>#BLOCKHASH#</a |
||||
|
> |
||||
|
</div> |
||||
|
<div class="block-info"> |
||||
|
<p>Prev Hash</p> |
||||
|
<a href="/block/#PREVIOUSBLOCKHASH#" |
||||
|
>#PREVIOUSBLOCKHASH#</a |
||||
|
> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center flex-col adv-info"> |
||||
|
<div class="block-info"> |
||||
|
<p>Block Nonce</p> |
||||
|
<p> |
||||
|
#BLOCKNONCE# |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="block-info"> |
||||
|
<p>Block Anchor</p> |
||||
|
<p> |
||||
|
#ANCHOR# |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="block-info"> |
||||
|
<p>Chainwork</p> |
||||
|
<p> |
||||
|
#CHAINWORK# |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="block-info"> |
||||
|
<p>Merkle Root</p> |
||||
|
<p> |
||||
|
#MERKLEROOT# |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="block-info"> |
||||
|
<p>Final Sapling Root</p> |
||||
|
<p> |
||||
|
#FINALSAPLINGROOT# |
||||
|
</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div>#TX_TABLE#</div> |
||||
|
<!-- <div class="transaction flex-center flex-col"> |
||||
|
<h3 class="tx-title">Transaction</h3> |
||||
|
<div |
||||
|
class="shielded" |
||||
|
style="--shielded-bg: ${txBG}; --shielded-col: ${txOutline};" |
||||
|
> |
||||
|
<span>$txtype</span> |
||||
|
</div> |
||||
|
<div class="tx-reward">${valueBalance} DRGX</div> |
||||
|
<span class="tx-time">$txtime</span> |
||||
|
<div class="tx-info" style="--tx-outline: ${txOutline};"> |
||||
|
<div class="flex-center flex-col"> |
||||
|
<div class="tx-id-bar"> |
||||
|
<p>TX ID</p> |
||||
|
<a href="/tx/$tx" |
||||
|
>$tx</a |
||||
|
> |
||||
|
</div> |
||||
|
<div class="tx-id-bar" style="--miner-id-margin: 17.5vh"> |
||||
|
<p>Miner</p> |
||||
|
<p class="">$to</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<div class="tx-in-out flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<p>Vins</p> |
||||
|
<p>$vins</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Vouts</p> |
||||
|
<p>$vouts</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="tx-in-out flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<p>Zins</p> |
||||
|
<p>$zins</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Zouts</p> |
||||
|
<p>$zouts</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> --> |
||||
|
</section> |
||||
|
</div> |
||||
|
</section> |
||||
|
</body> |
||||
|
</html> |
||||
|
|
||||
|
|
@ -0,0 +1,49 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, |
||||
|
minimum-scale=1"" /> |
||||
|
<!-- <link rel="stylesheet" href="../dragonx.is/style.css" /> --> |
||||
|
<link rel="stylesheet" href="../../../dragonx.is/style.css" /> |
||||
|
<link rel="icon" type="image/x-icon" href="../../../img/logo_dragonx.ico" /> |
||||
|
<title>Explorer | DragonX</title> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<div class="bg-overlay"></div> |
||||
|
<div class="img-bg"></div> |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
<section id="blocks"> |
||||
|
<div class="explorer-blocks-bar flex-center flex-col"> |
||||
|
<a class="back-btn" href="https://explorer.dragonx.is">Back</a> |
||||
|
#BLOCKS_TABLE# |
||||
|
<!-- <div class="block-card flex-center flex-col"> |
||||
|
<div class="flex-center"> |
||||
|
<a class="block-height flex-center" href="/block/$height/">$height</a> |
||||
|
<div> |
||||
|
<a class="block-hash flex-center" href="/block/$hash/">$hash</a> |
||||
|
<p class="address-reward flex-center" href="/block/$height/">$miner + $reward</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<p class="block-time flex-center">${duration}s</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p class="block-date flex-center">$time</p> |
||||
|
<p class="tx-count flex-center">Transactions: $txs</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> --> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</section> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,6 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
export SIONA_ROOT_DIR="siona-DragonX" |
||||
|
export SIONA_DOMAIN="explorer.dragonx.is" |
||||
|
export SIONA_CLI="/home/admin/HUSH/hush3/src/dragonx-cli" |
||||
|
export SIONA_ACNAME="DRAGONX" |
@ -0,0 +1,162 @@ |
|||||
|
<!-- td = standard data cell --> |
||||
|
<!-- tr = row in html table, contians th or td elements --> |
||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<link rel="stylesheet" href="../dragonx.is/style.css" /> |
||||
|
<link rel="icon" type="image/x-icon" href="./logo_dragonx.png"> |
||||
|
<title>Explorer | DragonX</title> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<header> |
||||
|
<input type="checkbox" id="nav-check" /> |
||||
|
<nav class="nav-bar mobile"> |
||||
|
<div class="toggle-overlay" style="pointer-events: none"></div> |
||||
|
<a href="https://dragonx.is"> |
||||
|
<svg class="header-logo mobile" xmlns="http://www.w3.org/2000/svg" width="12vh" |
||||
|
height="12vh" viewBox="0 0 128 128" alt="dragonx logo"> |
||||
|
<path fill="white" stroke="none" stroke-width="1" |
||||
|
d="M35.86 47.8c-2.76 3.53-5.73 6.97-8.88 10.45-4.11-3.47-8.71-4.13-8.71-4.13 17.78-6.06 2.18-11.77.22-12.65C.14 33.19 0 11.47 0 11.47c8.93 26.49 28.25 25.06 28.25 25.06.28-.17.52-.36.72-.55 1.27 2.54 3.56 6.73 6.89 11.83Zm10.31-16.46c-1.05 2.32-2.26 4.52-3.58 6.7a70.682 70.682 0 0 1-3.58-6.7c1.35-2.67 3.58-15.96 3.58-15.96s2.23 13.29 3.58 15.96Zm5.73 44.63-2.7 1.82s-.08-3.45-2.73-1.43c-.33.25-1.85 1.71-.03 3.31 0 0-3.14 3.17-3.86 6.37-.72-3.2-3.86-6.37-3.86-6.37 1.82-1.6.3-3.06-.03-3.31-2.65-2.01-2.73 1.43-2.73 1.43l-2.7-1.82c.22-2.76.08-5.18-.36-7.3 3.64-3.83 6.86-7.66 9.68-11.33 2.84 3.67 6.04 7.5 9.68 11.33-.44 2.12-.58 4.55-.36 7.3Zm15-21.86s-4.6.66-8.71 4.13c-3.11-3.47-6.12-6.92-8.88-10.45 3.34-5.1 5.62-9.29 6.89-11.83.19.19.44.39.72.55 0 0 19.32 1.43 28.25-25.06 0 0-.14 21.72-18.5 29.99-1.96.88-17.56 6.59.22 12.65Z" /> |
||||
|
<path fill="#91a4b8" stroke="none" stroke-width="1" |
||||
|
d="M73.6 99.29s-4.88-19.16-14.53-26.71c-6.62-6.23-12.13-12.79-16.48-18.74-4.36 5.95-9.87 12.54-16.48 18.74-9.62 7.55-14.53 26.71-14.53 26.71-1.85-18.88 6.09-27.79 9.98-32.03 6.06-6.59 11.88-12.85 16.87-19.41-5.93-8.88-8.85-15.3-8.85-15.3-.69-2.54-2.98-5.15-2.98-5.15 4.71-6.28-1.24-13.18-1.24-13.18C29.85 9.86 30.57 6.45 31.81 0c-1.52 17.34 3.11 30.32 10.81 41.98C50.26 30.32 54.89 17.34 53.37 0c1.24 6.48 1.96 9.87 6.45 14.22 0 0-5.95 6.89-1.24 13.18 0 0-2.29 2.62-2.98 5.15 0 0-2.92 6.42-8.82 15.3 4.99 6.56 10.83 12.85 16.87 19.41 3.86 4.24 11.8 13.15 9.95 32.03Z" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
<nav class="nav-links mobile"> |
||||
|
<!-- https://git.hush.is/dan_s/how-to-mine-dragonx/src/branch/master/README.md --> |
||||
|
<a href="https://git.hush.is/dan_s/how-to-mine-dragonx/src/branch/master/README.md" |
||||
|
class="component-button" style="--index: 0"><small class="">Mine DragonX</small></a> |
||||
|
<a href="https://git.hush.is/hush/SilentDragon/releases" class="component-button" |
||||
|
style="--index: 1"><small class="">GUI Wallet</small></a> |
||||
|
<a href="https://t.me/+ISXrAVgLnXkwZmU5" class="component-button" style="--index: 2"><small |
||||
|
class="">Tech Support</small></a> |
||||
|
<a href="https://explorer.dragonx.is" class="component-button" style="--index: 3"><small |
||||
|
class="">Explorer</small></a> |
||||
|
<a href="https://www.youtube.com/channel/UCmGOYuRrFbPGRw5vytVgUQw" class="component-button" |
||||
|
style="--index: 3"><small class="">Guides</small></a> |
||||
|
</nav> |
||||
|
<button class="mobile-menu mobile" style="background-color: rgba(0, 0, 0, 0); border-style: none"> |
||||
|
<label for="nav-check"> |
||||
|
<img class="nav-mobile-icon nav-btn" src="../img/mobile-sidebar-button.png" |
||||
|
alt="hamburger menu" /> |
||||
|
</label> |
||||
|
</button> |
||||
|
</nav> |
||||
|
<nav class="nav-bar desktop"> |
||||
|
<nav class="nav-links"> |
||||
|
<!-- https://git.hush.is/dan_s/how-to-mine-dragonx/src/branch/master/README.md --> |
||||
|
<a href="https://git.hush.is/dan_s/how-to-mine-dragonx/src/branch/master/README.md" |
||||
|
class="component-button"><small class="">Mine DragonX</small></a> |
||||
|
<a href="https://git.hush.is/hush/SilentDragon/releases" class="component-button"><small |
||||
|
class="">GUI Wallet</small></a> |
||||
|
<a href="https://t.me/+ISXrAVgLnXkwZmU5" class="component-button"><small class="">Tech |
||||
|
Support</small></a> |
||||
|
<a href="https://explorer.dragonx.is" class="component-button" style="--index: 3"><small |
||||
|
class="">Explorer</small></a> |
||||
|
<a href="https://www.youtube.com/channel/UCmGOYuRrFbPGRw5vytVgUQw" class="component-button" |
||||
|
style="--index: 3"><small class="">Guides</small></a> |
||||
|
</nav> |
||||
|
</nav> |
||||
|
</header> |
||||
|
<div class="header-space"></div> |
||||
|
<div class="divider"></div> |
||||
|
<section class="explorer-section"> |
||||
|
<input class="explorer-radio" type="radio" name="radio" id="hush-tab" /> |
||||
|
<input class="explorer-radio" type="radio" checked="checked" name="radio" id="dragonx-tab" /> |
||||
|
<div class="explorer-content-body"> |
||||
|
<section class="explorer-content"> |
||||
|
<div class="hush-tab-info-bar"> |
||||
|
<span>DragonX Was built on the <a href="https://hush.is">HUSH</a> |
||||
|
Blockchain.</span> |
||||
|
</div> |
||||
|
<img class="logo-hush" src="../img/logo_HUSH.svg" alt="" /> |
||||
|
</section> |
||||
|
<section class="explorer-content"> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<span>This Explorer was forked from the <a href="htpps://explorer.hush.land"> |
||||
|
HUSH Explorer</a>.</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Last Update:</h3> |
||||
|
<span>#TIPTIME#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Block Height :</h3> |
||||
|
<span>#BLOCKS#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Hashrate:</h3> |
||||
|
<span>#HASHPS#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Anonymity Set:</h3> |
||||
|
<span>#ANONSET#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Total Transactions:</h3> |
||||
|
<span>#TXCOUNT#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Price:</h3> |
||||
|
<span class="price">-</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Transaction Rate:</h3> |
||||
|
<span>#TXRATE#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Difficulty:</h3> |
||||
|
<span>#DIFFICULTY#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Total Volume:</h3> |
||||
|
<span class="volume">-</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Protocol Version:</h3> |
||||
|
<span>#PROTOCOLVERSION#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar"> |
||||
|
<h3>Peers Connected:</h3> |
||||
|
<span>#CONNECTIONS# via TLS 1.3</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar" style="--explorer-content-index: 2"> |
||||
|
<h3>Circulating Supply:</h3> |
||||
|
<span>#SUPPLY#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar" style="--explorer-content-index: 1"> |
||||
|
<h3>Shielded Supply:</h3> |
||||
|
<span>#ZFUNDS#</span> |
||||
|
</div> |
||||
|
<div class="explorer-content-bar" style="--explorer-content-index: 1"> |
||||
|
<h3>Percent Shielded:</h3> |
||||
|
<span>#ZFUNDS_PERCENT#</span> |
||||
|
</div> |
||||
|
<nav class="explorer-nav"> |
||||
|
<a class="explorer-info-btn" href="https://git.hush.is/hush/anonsets">What is |
||||
|
Anonset?</a> |
||||
|
<a class="explorer-info-btn" href="/blocks/">Blocklist</a> |
||||
|
<a class="explorer-info-btn" href="/addresses/">T-Address List</a> |
||||
|
</nav> |
||||
|
</section> |
||||
|
</div> |
||||
|
<div class="explorer-tab-bar"> |
||||
|
<label for="hush-tab" class="explorer-tab" style="--tab-index: 2"> |
||||
|
<span>HUSH</span> |
||||
|
</label> |
||||
|
<label for="dragonx-tab" class="explorer-tab" style="--tab-index: 0"> |
||||
|
<span>DragonX Explorer</span> |
||||
|
</label> |
||||
|
<div class="explorer-dot" style="--tab-index: 1"></div> |
||||
|
<div class="explorer-dot" style="--tab-index: 0.94"></div> |
||||
|
<div class="explorer-dot" style="--tab-index: 0.88"></div> |
||||
|
</div> |
||||
|
</section> |
||||
|
<div class="divider"></div> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,175 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, |
||||
|
minimum-scale=1"" /> |
||||
|
<!-- <link rel="stylesheet" href="../../dragonx.is/dragonx.is/style.css" /> --> |
||||
|
<link rel="stylesheet" href="../../dragonx.is/style.css" /> |
||||
|
<link rel="icon" type="image/x-icon" href="./logo_dragonx.png" /> |
||||
|
<title>Explorer | DragonX</title> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<header> |
||||
|
<div class="nav-logo"> |
||||
|
<a href="https://dragonx.is" alt="dragonx logo"></a> |
||||
|
</div> |
||||
|
<div class="nav-menu desktop"> |
||||
|
<a class="btn" href="https://dragonx.is/releases">Wallets</a> |
||||
|
<a class="btn" href="https://dragonx.is/exchanges">Exchanges</a> |
||||
|
<a class="btn" href="https://explorer.dragonx.is">Explorer</a> |
||||
|
<a class="btn" href="https://dragonx.is/guides">Guides</a> |
||||
|
<a class="btn" href="https://dragonx.is/tg">Telegram</a> |
||||
|
<a class="btn" href="https://dragonx.is/matrix">Matrix</a> |
||||
|
</div> |
||||
|
</header> |
||||
|
<input type="checkbox" id="mobile-checkbox" name="mobile-checkbox" style="display: none;"> |
||||
|
<label for="mobile-checkbox" id="mobile-menu-btn"></label> |
||||
|
<div class="nav-menu mobile"> |
||||
|
<a class="btn" href="https://dragonx.is/releases">Wallets</a> |
||||
|
<a class="btn" href="https://dragonx.is/exchanges">Exchanges</a> |
||||
|
<a class="btn" href="https://explorer.dragonx.is">Explorer</a> |
||||
|
<a class="btn" href="https://dragonx.is/guides">Guides</a> |
||||
|
<a class="btn" href="https://dragonx.is/tg">Telegram</a> |
||||
|
<a class="btn" href="https://dragonx.is/matrix">Matrix</a> |
||||
|
</div> |
||||
|
<div class="bg-overlay"></div> |
||||
|
<div class="img-bg"></div> |
||||
|
<section id="explorer" class="flex-col"> |
||||
|
<div class="explorer-content flex-center"> |
||||
|
<div class="explorer-title flex-center"> |
||||
|
<h3>DragonX Explorer</h3> |
||||
|
<div class="flex-center"> |
||||
|
<p>Price</p> |
||||
|
<p>$ #PRICE#</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="explorer-inner-content"> |
||||
|
<div class="explorer-1 flex-center"> |
||||
|
<div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Hashrate</p> |
||||
|
<p>#HASHPS#</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Difficulty</p> |
||||
|
<p>#DIFFICULTY#</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center" id="graphContainer"></div> |
||||
|
</div> |
||||
|
<div class="explorer-2 flex-center"> |
||||
|
<div> |
||||
|
<p>Block Height:</p> |
||||
|
<p>#BLOCKS#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Anonymity Set:</p> |
||||
|
<p>#ANONSET#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Total Transactions:</p> |
||||
|
<p>#TXCOUNT#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Transaction Rate:</p> |
||||
|
<p>#TXRATE#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Total Volume:</p> |
||||
|
<p>.0077033708 BTC</p> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<div class="explorer-3 flex-center"> |
||||
|
<div> |
||||
|
<p>Circulating Supply:</p> |
||||
|
<p>#SUPPLY#</p> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p>Shielded Supply:</p> |
||||
|
<p>#ZFUNDS#</p> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p>Percent Shielded:</p> |
||||
|
<p>#ZFUNDS_PERCENT#</p> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<div class="explorer-4 flex-center"> |
||||
|
<a href="https://explorer.dragonx.is/blocks" class="btn">Blocks</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="explorer-footer flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<p>Protocol Version:</p> |
||||
|
<p>#PROTOCOLVERSION#</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Last Update:</p> |
||||
|
<p>#TIPTIME#</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Peers Connected:</p> |
||||
|
<p>#CONNECTIONS# via TLS 1.3</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
<div class="divider"></div> |
||||
|
<script src="https://d3js.org/d3.v4.min.js"></script> |
||||
|
<script src="./main.js"></script> |
||||
|
<footer class="flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<div class="footer-links flex-center"> |
||||
|
<a href="https://dragonx.is/releases">Wallets</a> |
||||
|
<a href="https://dragonx.is/exchanges">Exchanges</a> |
||||
|
<a href="https://explorer.dragonx.is">Explorer</a> |
||||
|
</div> |
||||
|
<img |
||||
|
src="../../dragonx.is/img/logos/dragonx_logotext_light.svg" |
||||
|
class="footer-logo" |
||||
|
alt="" |
||||
|
/> |
||||
|
<div class="footer-links flex-center"> |
||||
|
<a href="https://dragonx.is/mining/">How To Mine</a> |
||||
|
<a href="" class="link-out">Documentation</a> |
||||
|
<a href="https://arrakis.hush.is/">Hush Arrakis Chain Creator</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div style="margin: 2rem 0 2rem 0" class="flex-center"> |
||||
|
<a href="https://twitter.com/DragonXchain" class="footer-social" |
||||
|
><img |
||||
|
src="../../dragonx.is/img/social_icons/icon_twitter.svg" |
||||
|
onmouseover="src='../../dragonx.is/img/social_icons/icon_twitter_red.svg'" |
||||
|
onmouseleave="src='../../dragonx.is/img/social_icons/icon_twitter.svg'" |
||||
|
alt="" |
||||
|
/></a> |
||||
|
<a href="https://dragonx.is/tg" class="footer-social" |
||||
|
><img |
||||
|
src="../../dragonx.is/img/social_icons/icon_telegram.svg" |
||||
|
onmouseover="src='../../dragonx.is/img/social_icons/icon_telegram_red.svg'" |
||||
|
onmouseleave="src='../../dragonx.is/img/social_icons/icon_telegram.svg'" |
||||
|
alt="" |
||||
|
/></a> |
||||
|
<a href="https://dragonx.is/matrix" class="footer-social" |
||||
|
><img |
||||
|
src="../../dragonx.is/img/social_icons/icon_matrix.svg" |
||||
|
onmouseover="src='../../dragonx.is/img/social_icons/icon_matrix_red.svg'" |
||||
|
onmouseleave="src='../../dragonx.is/img/social_icons/icon_matrix.svg'" |
||||
|
alt="" |
||||
|
/></a> |
||||
|
</div> |
||||
|
© Copyright DragonX |
||||
|
<script type="text/javascript"> |
||||
|
document.write(new Date().getFullYear()); |
||||
|
</script> |
||||
|
</footer> |
||||
|
</body> |
||||
|
</html> |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 19 KiB |
@ -0,0 +1,90 @@ |
|||||
|
|
||||
|
// set the dimensions and margins of the graph
|
||||
|
var margin = {top: 100, right: -10, bottom: 0, left: -10}, |
||||
|
width = 538 - margin.left - margin.right, |
||||
|
height = 350 - margin.top - margin.bottom; |
||||
|
|
||||
|
// parse the date / time
|
||||
|
var parseTime = d3.timeParse("%Y"); |
||||
|
|
||||
|
// set the ranges
|
||||
|
var x = d3.scaleTime().range([0, width]); |
||||
|
var y = d3.scaleLinear().range([height, 0]); |
||||
|
|
||||
|
// define the line
|
||||
|
var valueline = d3.line() |
||||
|
.x(function(d) { return x(d.Time); }) |
||||
|
.y(function(d) { return y(d.Diff); }); |
||||
|
// define the line
|
||||
|
var valueline2 = d3.line() |
||||
|
.x(function(d) { return x(d.Time); }) |
||||
|
.y(function(d) { return y(d.Hashrate); }); |
||||
|
|
||||
|
// append the svg obgect to the body of the page
|
||||
|
// appends a 'group' element to 'svg'
|
||||
|
// moves the 'group' element to the top left margin
|
||||
|
var svg = d3.select("#graphContainer").append("svg") |
||||
|
.attr("width", width + margin.left + margin.right) |
||||
|
.attr("height", height + margin.top + margin.bottom) |
||||
|
.attr("class", "graph") |
||||
|
.append("g") |
||||
|
.attr("transform", |
||||
|
"translate(" + margin.left + "," + margin.top + ")"); |
||||
|
|
||||
|
function draw(data, blocks) { |
||||
|
|
||||
|
var data = data[blocks]; |
||||
|
|
||||
|
let graphHeight = 0; |
||||
|
|
||||
|
|
||||
|
// format the data
|
||||
|
data.forEach(function(d) { |
||||
|
// d.Time = parseTime(d.Time);
|
||||
|
console.log(d.Time); |
||||
|
d.Diff = +d.Diff; |
||||
|
d.Hashrate = +d.Hashrate; |
||||
|
graphHeight = d.Diff; |
||||
|
}); |
||||
|
|
||||
|
// sort years ascending
|
||||
|
data.sort(function(a, b){ |
||||
|
return a["Block"]-b["Block"]; |
||||
|
}) |
||||
|
|
||||
|
// Scale the range of the data
|
||||
|
x.domain(d3.extent(data, function(d) { return d.Time; })); |
||||
|
y.domain([0, d3.max(data, function(d) { |
||||
|
return Math.max(d.Diff, d.Hashrate); })]); |
||||
|
|
||||
|
// Add the valueline path.
|
||||
|
svg.append("path") |
||||
|
.data([data]) |
||||
|
.attr("class", "line1") |
||||
|
.attr("d", valueline); |
||||
|
// Add the valueline path.
|
||||
|
svg.append("path") |
||||
|
.data([data]) |
||||
|
.attr("class", "line2") |
||||
|
.attr("d", valueline2); |
||||
|
// Add the X Axis
|
||||
|
svg.append("g") |
||||
|
.attr("transform", "translate(0," + (height - 20) + ")") |
||||
|
.call(d3.axisBottom(x)); |
||||
|
|
||||
|
// // Add the Y Axis
|
||||
|
// svg.append("g")
|
||||
|
// .call(d3.axisLeft(y));
|
||||
|
} |
||||
|
// Get the data
|
||||
|
d3.json("./api/hashrate100.json", function(error, data) { |
||||
|
if (error) throw error; |
||||
|
|
||||
|
data.blocks.splice(0, data.blocks.length - 5 ); |
||||
|
// console.log(data);
|
||||
|
|
||||
|
// trigger render
|
||||
|
draw(data, "blocks"); |
||||
|
}); |
||||
|
|
||||
|
|
@ -0,0 +1,175 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, |
||||
|
minimum-scale=1"" /> |
||||
|
<!-- <link rel="stylesheet" href="../../dragonx.is/dragonx.is/style.css" /> --> |
||||
|
<link rel="stylesheet" href="../../dragonx.is/style.css" /> |
||||
|
<link rel="icon" type="image/x-icon" href="./logo_dragonx.png" /> |
||||
|
<title>Explorer | DragonX</title> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<header> |
||||
|
<div class="nav-logo"> |
||||
|
<a href="https://dragonx.is" alt="dragonx logo"></a> |
||||
|
</div> |
||||
|
<div class="nav-menu desktop"> |
||||
|
<a class="btn" href="https://dragonx.is/releases">Wallets</a> |
||||
|
<a class="btn" href="https://dragonx.is/exchanges">Exchanges</a> |
||||
|
<a class="btn" href="https://explorer.dragonx.is">Explorer</a> |
||||
|
<a class="btn" href="https://dragonx.is/guides">Guides</a> |
||||
|
<a class="btn" href="https://dragonx.is/tg">Telegram</a> |
||||
|
<a class="btn" href="https://dragonx.is/matrix">Matrix</a> |
||||
|
</div> |
||||
|
</header> |
||||
|
<input type="checkbox" id="mobile-checkbox" name="mobile-checkbox" style="display: none;"> |
||||
|
<label for="mobile-checkbox" id="mobile-menu-btn"></label> |
||||
|
<div class="nav-menu mobile"> |
||||
|
<a class="btn" href="https://dragonx.is/releases">Wallets</a> |
||||
|
<a class="btn" href="https://dragonx.is/exchanges">Exchanges</a> |
||||
|
<a class="btn" href="https://explorer.dragonx.is">Explorer</a> |
||||
|
<a class="btn" href="https://dragonx.is/guides">Guides</a> |
||||
|
<a class="btn" href="https://dragonx.is/tg">Telegram</a> |
||||
|
<a class="btn" href="https://dragonx.is/matrix">Matrix</a> |
||||
|
</div> |
||||
|
<div class="bg-overlay"></div> |
||||
|
<div class="img-bg"></div> |
||||
|
<section id="explorer" class="flex-col"> |
||||
|
<div class="explorer-content flex-center"> |
||||
|
<div class="explorer-title flex-center"> |
||||
|
<h3>DragonX Explorer</h3> |
||||
|
<div class="flex-center"> |
||||
|
<p>Price</p> |
||||
|
<p>$ #PRICE#</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="explorer-inner-content"> |
||||
|
<div class="explorer-1 flex-center"> |
||||
|
<div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Hashrate</p> |
||||
|
<p>#HASHPS#</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Difficulty</p> |
||||
|
<p>#DIFFICULTY#</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex-center" id="graphContainer"></div> |
||||
|
</div> |
||||
|
<div class="explorer-2 flex-center"> |
||||
|
<div> |
||||
|
<p>Block Height:</p> |
||||
|
<p>#BLOCKS#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Anonymity Set:</p> |
||||
|
<p>#ANONSET#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Total Transactions:</p> |
||||
|
<p>#TXCOUNT#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Transaction Rate:</p> |
||||
|
<p>#TXRATE#</p> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<p>Total Volume:</p> |
||||
|
<p>.0077033708 BTC</p> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<div class="explorer-3 flex-center"> |
||||
|
<div> |
||||
|
<p>Circulating Supply:</p> |
||||
|
<p>#SUPPLY#</p> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p>Shielded Supply:</p> |
||||
|
<p>#ZFUNDS#</p> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p>Percent Shielded:</p> |
||||
|
<p>#ZFUNDS_PERCENT#</p> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<div class="explorer-4 flex-center"> |
||||
|
<a href="https://explorer.dragonx.is/blocks" class="btn">Blocks</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="explorer-footer flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<p>Protocol Version:</p> |
||||
|
<p>#PROTOCOLVERSION#</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Last Update:</p> |
||||
|
<p>#TIPTIME#</p> |
||||
|
</div> |
||||
|
<div class="flex-center"> |
||||
|
<p>Peers Connected:</p> |
||||
|
<p>#CONNECTIONS# via TLS 1.3</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
<div class="divider"></div> |
||||
|
<script src="https://d3js.org/d3.v4.min.js"></script> |
||||
|
<script src="./main.js"></script> |
||||
|
<footer class="flex-center"> |
||||
|
<div class="flex-center"> |
||||
|
<div class="footer-links flex-center"> |
||||
|
<a href="">Wallets</a> |
||||
|
<a href="">Exchanges</a> |
||||
|
<a href="">Explorer</a> |
||||
|
</div> |
||||
|
<img |
||||
|
src="../../dragonx.is/img/logos/dragonx_logotext_light.svg" |
||||
|
class="footer-logo" |
||||
|
alt="" |
||||
|
/> |
||||
|
<div class="footer-links flex-center"> |
||||
|
<a href="">How To Mine</a> |
||||
|
<a href="" class="link-out">Documentation</a> |
||||
|
<a href="">Arrakis Chain Creator</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div style="margin: 2rem 0 2rem 0" class="flex-center"> |
||||
|
<a href="https://twitter.com/DragonXchain" class="footer-social" |
||||
|
><img |
||||
|
src="../../dragonx.is/img/social_icons/icon_twitter.svg" |
||||
|
onmouseover="src='../../dragonx.is/img/social_icons/icon_twitter_red.svg'" |
||||
|
onmouseleave="src='../../dragonx.is/img/social_icons/icon_twitter.svg'" |
||||
|
alt="" |
||||
|
/></a> |
||||
|
<a href="https://dragonx.is/tg" class="footer-social" |
||||
|
><img |
||||
|
src="../../dragonx.is/img/social_icons/icon_telegram.svg" |
||||
|
onmouseover="src='../../dragonx.is/img/social_icons/icon_telegram_red.svg'" |
||||
|
onmouseleave="src='../../dragonx.is/img/social_icons/icon_telegram.svg'" |
||||
|
alt="" |
||||
|
/></a> |
||||
|
<a href="https://dragonx.is/matrix" class="footer-social" |
||||
|
><img |
||||
|
src="../../dragonx.is/img/social_icons/icon_matrix.svg" |
||||
|
onmouseover="src='../../dragonx.is/img/social_icons/icon_matrix_red.svg'" |
||||
|
onmouseleave="src='../../dragonx.is/img/social_icons/icon_matrix.svg'" |
||||
|
alt="" |
||||
|
/></a> |
||||
|
</div> |
||||
|
© Copyright DragonX |
||||
|
<script type="text/javascript"> |
||||
|
document.write(new Date().getFullYear()); |
||||
|
</script> |
||||
|
</footer> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,65 @@ |
|||||
|
<!doctype html> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, |
||||
|
minimum-scale=1"" /> |
||||
|
<!-- <link rel="stylesheet" href="../dragonx.is/style.css" /> --> |
||||
|
<link rel="stylesheet" href="../../../dragonx.is/style.css" /> |
||||
|
<link rel="icon" type="image/x-icon" href="../../../img/logo_dragonx.ico" /> |
||||
|
<title>Explorer | DragonX</title> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
|
||||
|
<div class="bg-overlay"></div> |
||||
|
<div class="img-bg"></div> |
||||
|
<section id="tx-info"> |
||||
|
|
||||
|
<div class="tx-info-bar flex-center flex-col"> |
||||
|
<a class="back-btn" href="/block/#BLOCKHEIGHT#/"">Back</a> |
||||
|
<a class="back-btn" href="https://explorer.dragonx.is/blocks"">Block List</a> |
||||
|
<a class="explorer-btn" href="https://explorer.dragonx.is">Explorer</a> |
||||
|
|
||||
|
<div class="tx-info-height"> |
||||
|
<p>Block Height</p> |
||||
|
<a href="/block/#BLOCKHEIGHT#/" class="">#BLOCKHEIGHT#</a> |
||||
|
</div> |
||||
|
<div class="tx-info-main tx-id"> |
||||
|
<p>TX ID</p> |
||||
|
<span class="tx-id-text">#TXID#</span> |
||||
|
</div> |
||||
|
<div class="tx-info-main"> |
||||
|
<p>TX Time</p> |
||||
|
<span class="">#TXTIME#</span> |
||||
|
</div> |
||||
|
<div class="tx-info-hash"> |
||||
|
<p>Block Hash</p> |
||||
|
<a href="/block/#BLOCKHASH#">#BLOCKHASH#</a> |
||||
|
</div> |
||||
|
#TX_DATA# |
||||
|
<!-- <div class="tx-transaction flex-center flex-col"> |
||||
|
<div class="flex-center flex-col"> |
||||
|
<div class="flex-center flex-col"><h3>Coinbase</h3><span>$coinbase</span></div> |
||||
|
<div class="flex-center flex-col"><h3>Locktime</h3><span>$locktime</span></div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="flex-center flex-col"> |
||||
|
<div class="flex-center flex-col"> |
||||
|
<div class="flex-center flex-col"><h3>Transparent Inputs:</h3><span>$vins</span></div> |
||||
|
<div class="flex-center flex-col"><h3>Transparent Outputs:</h3><span>$vouts</span></div> |
||||
|
</div> |
||||
|
<div class="flex-center flex-col"> |
||||
|
<div class="flex-center flex-col"><h3>Shielded Inputs:</h3><span>$zins</span></div> |
||||
|
<div class="flex-center flex-col"><h3>Shielded Outputs:</h3><span>$zouts</span></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</div> --> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,15 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
DOMAIN=${SIONA_DOMAIN} |
||||
|
DIR="/var/www/$DOMAIN" |
||||
|
|
||||
|
echo $$ >> $DIR/PID |
||||
|
|
||||
|
# make a backup so we can diff them |
||||
|
cp $DIR/{index,index-prev}.html |
||||
|
# let index.html settle |
||||
|
sleep 2 |
||||
|
perl $DIR/bin/update.pl $DIR/api &> $DIR/index-new.html |
||||
|
cp $DIR/index-new.html $DIR/index.html |
@ -0,0 +1,16 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
DOMAIN=${SIONA_DOMAIN} |
||||
|
ROOT_DIR=${SIONA_ROOT_DIR} |
||||
|
DIR="/var/www/$ROOT_DIR/$DOMAIN" |
||||
|
|
||||
|
|
||||
|
|
||||
|
cd $DIR && ./update_api.sh |
||||
|
cd $DIR && ./update_explorer_data.sh |
||||
|
|
||||
|
# Anonset |
||||
|
# cd $DIR && anonset=$(curl -s "https://$DOMAIN/api/getchaintxstats.json" | jq -r '.shielded_pool_size') && sed -i "s|<span class='anonset'>.*</span>|<span class='anonset'> $anonset </span>|g" template.html |
||||
|
|
||||
|
perl $DIR/bin/update.pl > $DIR/index-1.html |
||||
|
cat $DIR/index-1.html > $DIR/index.html |
@ -0,0 +1,33 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
# Copyright 2016-2022 The Hush Developers |
||||
|
|
||||
|
SIONA_ROOT_DIR="siona-DragonX" |
||||
|
SIONA_DOMAIN="explorer.dragonx.is" |
||||
|
SIONA_CLI="/home/admin/HUSH/hush3/src/dragonx-cli" |
||||
|
SIONA_ACNAME="DRAGONX" |
||||
|
|
||||
|
DOMAIN=${SIONA_DOMAIN} |
||||
|
ROOT_DIR=${SIONA_ROOT_DIR} |
||||
|
CLI=${SIONA_CLI} |
||||
|
# this is optional and not used yet here |
||||
|
ACNAME=${SIONA_ACNAME} |
||||
|
DIR=/var/www/$ROOT_DIR/$DOMAIN/api |
||||
|
HIGHESTBLOCK=$(curl -s "https://$DOMAIN/api/getblockchain.json" | jq -r '.blocks') |
||||
|
echo "highest block" $HIGHESTBLOCK |
||||
|
|
||||
|
|
||||
|
# TODO: remove IP info from getpeerinfo |
||||
|
#$CLI getpeerinfo > $DIR/getpeerinfo.json |
||||
|
$CLI getinfo &> $DIR/getinfo.json |
||||
|
$CLI getmininginfo &> $DIR/getmininginfo.json |
||||
|
|
||||
|
$CLI getchaintxstats &> $DIR/getchaintxstats.json |
||||
|
$CLI gettxoutsetinfo &> $DIR/gettxoutsetinfo.json |
||||
|
$CLI coinsupply &> $DIR/coinsupply.json |
||||
|
$CLI getchaintips &> $DIR/getchaintips.json |
||||
|
$CLI getchaintxstats &> $DIR/getchaintxstats.json |
||||
|
|
||||
|
|
||||
|
redis-cli set anonset $($CLI z_anonsetblockdelta 1 $HIGHESTBLOCK) |
||||
|
redis-cli set hashps $($CLI getnetworkhashps -1) |
||||
|
|
@ -0,0 +1,19 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
cli=${SIONA_CLI} |
||||
|
DOMAIN=${SIONA_DOMAIN} |
||||
|
ROOT_DIR=${SIONA_ROOT_DIR} |
||||
|
|
||||
|
# only ask for data if we don't have it |
||||
|
#if [ -s ~/data/blocks/block-$HEIGHT.json ]; then |
||||
|
# HEIGHT=$($cli getblockcount); $cli getblock $HEIGHT > ~/data/blocks/block-$HEIGHT.json |
||||
|
#fi |
||||
|
|
||||
|
NEWFILE=/var/www/$ROOT_DIR/$DOMAIN/blocks/index.new.html |
||||
|
INDEXFILE=/var/www/$ROOT_DIR/$DOMAIN/blocks/index.html |
||||
|
|
||||
|
# reads data from /var/www/$domain/api |
||||
|
/var/www/$ROOT_DIR/$DOMAIN/bin/update_blocks_redis.pl > $NEWFILE |
||||
|
if [ -s $NEWFILE ]; then |
||||
|
cp $NEWFILE $INDEXFILE |
||||
|
fi |
@ -0,0 +1,79 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
# Copyright 2016-2022 The Hush Developers |
||||
|
|
||||
|
SIONA_ROOT_DIR="siona-DragonX" |
||||
|
SIONA_DOMAIN="explorer.dragonx.is" |
||||
|
SIONA_CLI="/home/admin/HUSH/hush3/src/dragonx-cli" |
||||
|
SIONA_ACNAME="DRAGONX" |
||||
|
|
||||
|
DOMAIN=${SIONA_DOMAIN} |
||||
|
ROOT_DIR=${SIONA_ROOT_DIR} |
||||
|
CLI=${SIONA_CLI} |
||||
|
# this is optional and not used yet here |
||||
|
ACNAME=${SIONA_ACNAME} |
||||
|
DIR=/var/www/$ROOT_DIR/$DOMAIN/api |
||||
|
|
||||
|
$CLI getblockchaininfo &> $DIR/getblockchain.json |
||||
|
|
||||
|
HIGHESTBLOCK=$(curl -s "https://$DOMAIN/api/getblockchain.json" | jq -r '.blocks') |
||||
|
CURBLOCKCOMPARE=$(curl -s "https://$DOMAIN/api/blockinfo.json" | jq -r '.height') |
||||
|
|
||||
|
#check if still on the same block so there's no duplicate data |
||||
|
if (( $HIGHESTBLOCK == $CURBLOCKCOMPARE)); then |
||||
|
|
||||
|
echo "getblockchain.json blocks" $HIGHESTBLOCK |
||||
|
echo "blockinfo.json height" $CURBLOCKCOMPARE |
||||
|
echo "no new block, skipping..." |
||||
|
|
||||
|
else |
||||
|
|
||||
|
echo "getblockchain.json blocks" $HIGHESTBLOCK |
||||
|
echo "blockinfo.json height" $CURBLOCKCOMPARE |
||||
|
echo "new block, adding data.." |
||||
|
|
||||
|
$CLI getnetworkhashps -1 &> $DIR/hashps.json |
||||
|
$CLI getblock $HIGHESTBLOCK 1 &> $DIR/blockinfo.json |
||||
|
|
||||
|
CURBLOCKHEIGHT=$(curl -s "https://$DOMAIN/api/blockinfo.json" | jq -r '.height') |
||||
|
echo "CURBLOCKHEIGHT" $CURBLOCKHEIGHT |
||||
|
CURBLOCKDIFF=$(curl -s "https://$DOMAIN/api/blockinfo.json" | jq -r '.difficulty') |
||||
|
echo "CURBLOCKDIFF" $CURBLOCKDIFF |
||||
|
CURBLOCKTIME=$(curl -s "https://$DOMAIN/api/blockinfo.json" | jq -r '.time') |
||||
|
echo "CURBLOCKTIME" $CURBLOCKTIME |
||||
|
CURHASHPS=$(curl -s "https://$DOMAIN/api/hashps.json") |
||||
|
echo "CURHASHPS" $CURHASHPS |
||||
|
|
||||
|
#recording every block for historical data purposes |
||||
|
jq --arg jq_block_height ${CURBLOCKHEIGHT} \ |
||||
|
--arg jq_block_diff ${CURBLOCKDIFF} \ |
||||
|
--arg jq_block_time ${CURBLOCKTIME} \ |
||||
|
--arg jq_block_hashps ${CURHASHPS} \ |
||||
|
'.blocks += [{ |
||||
|
"Block": $jq_block_height, |
||||
|
"Time": $jq_block_time, |
||||
|
"Diff": $jq_block_diff, |
||||
|
"Hashrate": $jq_block_hashps |
||||
|
}]' /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate.json > /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate.json.tmp |
||||
|
mv /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate.json.tmp /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate.json |
||||
|
|
||||
|
#only record every 100th block for rendering the graph so I don't have to loop through every entry to format for d3.js |
||||
|
if (($HIGHESTBLOCK % 100 == 0)); then |
||||
|
jq --arg jq_block_height ${CURBLOCKHEIGHT} \ |
||||
|
--arg jq_block_diff ${CURBLOCKDIFF} \ |
||||
|
--arg jq_block_time ${CURBLOCKTIME} \ |
||||
|
--arg jq_block_hashps ${CURHASHPS} \ |
||||
|
'.blocks += [{ |
||||
|
"Block": $jq_block_height, |
||||
|
"Time": $jq_block_time, |
||||
|
"Diff": $jq_block_diff, |
||||
|
"Hashrate": $jq_block_hashps |
||||
|
}]' /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate.json > /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate100.json.tmp |
||||
|
mv /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate100.json.tmp /var/www/siona-DragonX/explorer.dragonx.is/api/hashrate100.json |
||||
|
|
||||
|
else |
||||
|
echo "not 100th block" |
||||
|
fi |
||||
|
|
||||
|
fi |
||||
|
|
||||
|
|
@ -0,0 +1,10 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
# Copyright 2016-2022 The Hush Developers |
||||
|
|
||||
|
PRICE=$(curl -s "https://api.coinpaprika.com/v1/coins/drgx-dragonx/ohlcv/latest" | jq -r '.[].open') |
||||
|
|
||||
|
PRICEROUNDED=`printf "%.2f" $PRICE` |
||||
|
redis-cli set price $PRICEROUNDED |
||||
|
|
||||
|
|
||||
|
|
@ -1 +0,0 @@ |
|||||
yep |
|
@ -1 +0,0 @@ |
|||||
git clone https://git.hush.is/hush/hush3 |
|
@ -1,14 +0,0 @@ |
|||||
#!/usr/bin/env bash |
|
||||
|
|
||||
DIRDIR="/var/www/explorer.hush.land/var/www/explorer.hush.land" |
|
||||
DIR="/var/www/explorer.hush.land" |
|
||||
|
|
||||
cd $DIR && ./update_explorer_data.sh |
|
||||
cd $DIR && ./update_api.sh |
|
||||
|
|
||||
# Anonset |
|
||||
cd $DIRDIR && anonset=$(curl -s 'https://explorer.hush.land/api/getchaintxstats.json' | jq -r '.shielded_pool_size') && sed -i "s|<span class='anonset'>.*</span>|<span class='anonset'> $anonset </span>|g" template.html |
|
||||
|
|
||||
perl $DIR/bin/update.pl > $DIRDIR/index-1.html |
|
||||
|
|
||||
cd $DIRDIR && cat index-1.html > index.html |
|
@ -1,337 +0,0 @@ |
|||||
#!/usr/bin/env perl |
|
||||
use strict; |
|
||||
use warnings; |
|
||||
use JSON::Any; |
|
||||
use Data::Dumper; |
|
||||
use 5.014; |
|
||||
my $STATS = {}; |
|
||||
$|=1; |
|
||||
|
|
||||
my $ADDRS = {}; |
|
||||
|
|
||||
# While Siona swims, we pave with bricks on the road she will run on... |
|
||||
my $dir = shift || $ENV{HOME} . "/data"; |
|
||||
my $cli = "/home/duke/git/hush3/src/hush-cli"; |
|
||||
my $getinfo = readfile("$dir/getinfo.json"); |
|
||||
my $template = readfile("/var/www/explorer.hush.is/address/template.html"); |
|
||||
my $addrdir = "/var/www/explorer.hush.is/address/"; |
|
||||
if($getinfo =~ m/"blocks": (\d+)/){ $STATS->{BLOCKS} ||= $1; } |
|
||||
if($getinfo =~ m/"tls_connections": (\d+)/){ $STATS->{TLS_CONNECTIONS} ||= $1; } |
|
||||
if($getinfo =~ m/"connections": (\d+)/){ $STATS->{CONNECTIONS} ||= $1; } |
|
||||
if($getinfo =~ m/"protocolversion": (\d+)/){ $STATS->{PROTOCOLVERSION} ||= $1; } |
|
||||
|
|
||||
my @symbols = qw/ |
|
||||
TX_TABLE ADDRESSES_TABLE TLS_CONNECTIONS CONNECTIONS PROTOCOLVERSION |
|
||||
/; |
|
||||
my @addresses; |
|
||||
my $height = $STATS->{BLOCKS}; |
|
||||
$STATS->{ADDRESSES_TABLE} = ""; |
|
||||
$STATS->{TX_TABLE} = ""; |
|
||||
|
|
||||
my $mineraddress = ""; |
|
||||
for my $h ($height-50 .. $height) { |
|
||||
my $thisminer = ""; |
|
||||
# TODO: fix this garbage |
|
||||
my $reward = $h > 340000 ? "3.125 HUSH" : "12.5 HUSH"; |
|
||||
my $block = get_block($h); |
|
||||
#die Dumper $block; |
|
||||
my $time = localtime($block->{time}) . " UTC" || ""; |
|
||||
my @txs = @{ $block->{tx} }; |
|
||||
my $numtx = @txs; |
|
||||
# TODO: look on filesystem first? redis cache? |
|
||||
my $hash = qx!$cli getblockhash $h!; |
|
||||
chomp $hash; |
|
||||
|
|
||||
my $root = "/var/www/explorer.hush.is"; |
|
||||
my $blockdir = "$root/block/$hash"; |
|
||||
if (!-e "$root/block/$h") { |
|
||||
# make /block/HEIGHT work |
|
||||
my $cmd = "ln -s $blockdir $root/block/$h"; |
|
||||
qx{$cmd}; |
|
||||
warn $cmd; |
|
||||
} |
|
||||
if (!-d $blockdir) { |
|
||||
# so explorer.hush.is/block/HASH works |
|
||||
my $cmd = "mkdir -p $blockdir"; |
|
||||
qx{$cmd}; |
|
||||
warn $cmd; |
|
||||
my $block_template_file = "$root/block/template.html"; |
|
||||
my $new_block_file = "$root/block/$hash/index.html"; |
|
||||
# TODO: process template with block details |
|
||||
my $block_template = readfile($block_template_file); |
|
||||
$block_template =~ s/#BLOCKS#/$h/g; |
|
||||
$block_template =~ s/#BLOCKHASH#/$hash/g; |
|
||||
$block_template =~ s/#PREVIOUSBLOCKHASH#/$block->{previousblockhash}/ge; |
|
||||
$block_template =~ s/#BLOCKTIME#/$time/g; |
|
||||
$block_template =~ s/#ANCHOR#/$block->{anchor}/ge; |
|
||||
$block_template =~ s/#VERSION#/$block->{version}/ge; |
|
||||
$block_template =~ s/#BITS#/$block->{bits}/ge; |
|
||||
$block_template =~ s/#BLOCKSIZE#/$block->{size}/ge; |
|
||||
$block_template =~ s/#CHAINWORK#/$block->{chainwork}/ge; |
|
||||
$block_template =~ s/#MERKLEROOT#/$block->{merkleroot}/ge; |
|
||||
$block_template =~ s/#FINALSAPLINGROOT#/$block->{finalsaplingroot}/ge; |
|
||||
# TODO |
|
||||
$block_template =~ s/#BLOCKREWARD#/3.125 HUSH/g; |
|
||||
$block_template =~ s/#BLOCKNONCE#/$block->{nonce}/ge; |
|
||||
$block_template =~ s/#DIFFICULTY#/$block->{difficulty}/ge; |
|
||||
$block_template =~ s/#NUM_TXS#/$numtx/g; |
|
||||
|
|
||||
my $txtype = ""; |
|
||||
# generate tx list table |
|
||||
$STATS->{TX_TABLE}=<<HTML; |
|
||||
<table border=1> |
|
||||
<tr><th>Transaction ID (txid)</th><th>Type</th><th>Inputs</th> |
|
||||
<th>Outputs</th><th>Shielded Inputs</th><th>Shielded Outputs</th> |
|
||||
<th>Addresses</th> |
|
||||
<th>Amount</th> |
|
||||
<th>Transaction Time</th> |
|
||||
<!-- |
|
||||
<th>Expiry Height</th> |
|
||||
<th>Lock Time</th> |
|
||||
--> |
|
||||
</tr> |
|
||||
HTML |
|
||||
|
|
||||
my $txi = 0; |
|
||||
for my $tx (@txs) { |
|
||||
my $json = qx!$cli getrawtransaction $tx 1!; |
|
||||
# "vout": 0, |
|
||||
# "address": "RBHHGTQoULWb8gPD6Nj4fix6ov46hzzQMj", |
|
||||
# address is duplicated in the JSON of getrawtransaction !! fuck. |
|
||||
# KMD or ZEC upstream bug? |
|
||||
$json =~ s/"vout": 0,\w*"address": "([a-z0-9]+)",/"vout": 0,/mg; |
|
||||
|
|
||||
# Satoshi Forgive Me |
|
||||
$json =~ s/"address":\w+"([a-z0-9]+)"(.+)"address":\w+"\g1"(.+)/"address": "$1"$2/mg; |
|
||||
|
|
||||
warn "decoding tx=$tx"; # with json=$json"; |
|
||||
my $j = JSON::Any->new; |
|
||||
my $o = $j->decode($json); |
|
||||
$TX->{$tx} = $o; |
|
||||
my $tx_dir = "$root/tx/$tx"; |
|
||||
my $tx_file = "$root/tx/$tx/index.html"; |
|
||||
my $tx_template_file = "$root/tx/template.html"; |
|
||||
my $tx_template = readfile($tx_template_file); |
|
||||
my $txtime = localtime($o->{time}) . " UTC ( " . $o->{time} . " )"; |
|
||||
#my $txsize = $o->{size} . " bytes"; |
|
||||
$tx_template =~ s/#TXID#/$tx/ge; |
|
||||
$tx_template =~ s/#TXTIME#/$txtime/ge; |
|
||||
#$tx_template =~ s/#TXSIZE#/$txsize/g; |
|
||||
$tx_template =~ s/#BLOCKHEIGHT#/$h/ge; |
|
||||
$tx_template =~ s/#BLOCKHASH#/$hash/ge; |
|
||||
my ($vin,$vout,$zin,$zout) = ($o->{vin},$o->{vout},$o->{vShieldedSpend},$o->{vShieldedOutput}); |
|
||||
my $expiryheight = $o->{expiryheight} == 0 ? "Default" : $o->{expiryheight}; |
|
||||
my $locktime = localtime($o->{locktime}) . " UTC ( " . $o->{locktime} . " )"; |
|
||||
my $valueBalance = $o->{valueBalance} || "?"; |
|
||||
|
|
||||
my $vins = @$vin; |
|
||||
my $vouts = @$vout; |
|
||||
my $zins = @$zin; |
|
||||
my $zouts = @$zout; |
|
||||
my $coinbase = $vin->[0] ? $vin->[0]->{coinbase}." with sequence ".$vin->[0]->{sequence} : "False"; #($vin->[0] && $vin->[0]->{coinbase}) ? $vin->[0]{coinbase} . " with sequence " . $vin->{sequence} : "False"; |
|
||||
|
|
||||
# coinbase does not count as a transparent input |
|
||||
$vins-- if ($vin->[0] && $vin->[0]->{coinbase}); |
|
||||
|
|
||||
my $tx_data =<<DATA; |
|
||||
<table border=1> |
|
||||
<tr><th>Coinbase</th><td align=center>$coinbase</td></tr> |
|
||||
<tr><th>Expiry Height</th><td align=center>$expiryheight</td></tr> |
|
||||
<tr><th>Transparent Inputs</th><td align=center> $vins </td></tr> |
|
||||
<tr><th>Transparent Outputs</th><td align=center> $vouts </td></tr> |
|
||||
<tr><th>Shielded Inputs</th><td align=center> $zins </td></tr> |
|
||||
<tr><th>Shielded Outputs</th><td align=center> $zouts </td></tr> |
|
||||
<tr><th>Locktime</th><td align=center>$locktime</td></tr> |
|
||||
</table> |
|
||||
|
|
||||
DATA |
|
||||
$tx_template =~ s/#TX_DATA#/$tx_data/g; |
|
||||
|
|
||||
my $cmd = "mkdir -p $tx_dir"; |
|
||||
warn $cmd; |
|
||||
## create tx dir + page |
|
||||
qx{$cmd}; |
|
||||
|
|
||||
open(my $fh, '>', $tx_file) or die "$tx_file: $!"; |
|
||||
print $fh $tx_template; |
|
||||
close $fh or die $!; |
|
||||
|
|
||||
## create tx view on block page |
|
||||
my $from = $o->{vin}->[0] ? $o->{vin}->[0]->{address} : "zs1???"; |
|
||||
#my $to = $o->{vout}->[0] ? $o->{vout}->[0]->{scriptPubKey}->{addresses}->[0] : "zs1???"; |
|
||||
my $to2 = ""; |
|
||||
# only look at coinbase tx's |
|
||||
if($txi == 0) { |
|
||||
# LEXICAL SCOPING BUG, MAN! |
|
||||
$mineraddress = $o->{vout}->[0] ? $o->{vout}->[0]->{scriptPubKey}->{addresses}->[0] : ""; |
|
||||
$thisminer = $mineraddress; |
|
||||
} |
|
||||
say "<!-- miner for $tx is $mineraddress -->"; |
|
||||
my $to = $mineraddress ? $mineraddress : "zs1???"; |
|
||||
if($o->{vout}->[1]) { |
|
||||
$to2 = $o->{vout}->[1]->{scriptPubKey}->{addresses}->[0]; |
|
||||
} |
|
||||
$valueBalance = ($o->{vout}->[0]->{value} || 0) + ($o->{vout}->[1]->{value} || 0); |
|
||||
$valueBalance ||= "?"; |
|
||||
$from ||= ""; |
|
||||
|
|
||||
$txtype = "Mining"; |
|
||||
if($zins+$zouts>0) { |
|
||||
$txtype = "Shielded"; |
|
||||
if($zins==0 && $zouts>0) { $txtype = "Shielding"; } |
|
||||
if($vins==0 && $vouts==0){ $txtype = "Fully Shielded" } |
|
||||
# this is prevented by consensus rule on HUSH mainnet |
|
||||
# but if we see it, ring the bell, lulz |
|
||||
if($zins>0 && $zouts==0) { $txtype = "De-Shielding!"; } |
|
||||
} |
|
||||
#if($vouts>0) { $txtype = "DPoW"; } |
|
||||
my $stuff; |
|
||||
|
|
||||
if ($txtype eq "Mining") { |
|
||||
$stuff =<<STUFF; |
|
||||
<pre> |
|
||||
=> $to |
|
||||
=> $to2 |
|
||||
</pre> |
|
||||
<br/> |
|
||||
STUFF |
|
||||
} else { |
|
||||
#TODO: fix this shite |
|
||||
$stuff =<<STUFF; |
|
||||
<pre> |
|
||||
$from => $to |
|
||||
$from => $to2 |
|
||||
</pre> |
|
||||
<br/> |
|
||||
STUFF |
|
||||
} |
|
||||
|
|
||||
my $tx_table = <<HTML; |
|
||||
<tr> |
|
||||
<td><a href="/tx/$tx">$tx</a></td> |
|
||||
<td>$txtype</td> |
|
||||
<td align=center>$vins</td> |
|
||||
<td align=center>$vouts</td> |
|
||||
<td align=center>$zins</td> |
|
||||
<td align=center>$zouts</td> |
|
||||
<td>$stuff</td> |
|
||||
<td>$valueBalance HUSH</td> |
|
||||
<td>$txtime</td> |
|
||||
<!-- |
|
||||
<td>$expiryheight</td> |
|
||||
<td>$locktime</td> |
|
||||
--> |
|
||||
</tr> |
|
||||
HTML |
|
||||
$STATS->{TX_TABLE} .= $tx_table; |
|
||||
$txi++; |
|
||||
} |
|
||||
|
|
||||
$STATS->{TX_TABLE} .= "</table>"; |
|
||||
# $STATS->{TX_TABLE} .= "<pre>" . Dumper [ $vin ];'' |
|
||||
|
|
||||
$block_template =~ s/#TX_TABLE#/$STATS->{TX_TABLE}/ge; |
|
||||
|
|
||||
# > ? |
|
||||
open(my $fh, '>>', $new_block_file) or die "$new_block_file: $!"; |
|
||||
print $fh $block_template; |
|
||||
close $fh or die $!; |
|
||||
warn "wrote to $new_block_file "; |
|
||||
} else { |
|
||||
warn "block exists on disk, looking info up"; |
|
||||
#TODO: error-checking for corrupt data |
|
||||
#warn Dumper $block; |
|
||||
my $lookuptx = $block->{tx}->[0]; |
|
||||
my $o = get_raw($lookuptx); |
|
||||
$thisminer = $o->{vout}->[0]->{scriptPubKey}->{addresses}->[0]; |
|
||||
warn "thisminer=$thisminer"; |
|
||||
} |
|
||||
|
|
||||
# give data to blocks after we have processed everything |
|
||||
my $b = [ $h, $hash, $reward,$time,$numtx,$thisminer,0 ]; |
|
||||
#warn Dumper $b; |
|
||||
push @addresses, $b; |
|
||||
} |
|
||||
|
|
||||
sub get_raw { |
|
||||
my $tx = shift; |
|
||||
my $cmd = "$cli getrawtransaction $tx 1"; |
|
||||
warn $cmd; |
|
||||
my $json = qx!$cmd!; |
|
||||
# "vout": 0, |
|
||||
# "address": "RBHHGTQoULWb8gPD6Nj4fix6ov46hzzQMj", |
|
||||
# address is duplicated in the JSON of getrawtransaction !! fuck. |
|
||||
# KMD or ZEC upstream bug? |
|
||||
$json =~ s/"vout": 0,\w*"address": "([a-z0-9]+)",/"vout": 0,/mg; |
|
||||
# Satoshi Forgive Me |
|
||||
$json =~ s/"address":\w+"([a-z0-9]+)"(.+)"address":\w+"\g1"(.+)/"address": "$1"$2/mg; |
|
||||
warn "decoding tx=$tx"; # with json=$json"; |
|
||||
my $j = JSON::Any->new; |
|
||||
my $o = $j->decode($json); |
|
||||
return $o; |
|
||||
} |
|
||||
|
|
||||
# render data |
|
||||
for my $b (reverse @addresses) { |
|
||||
|
|
||||
$STATS->{ADDRESSES_TABLE} .= <<"FUCK"; |
|
||||
<tr> |
|
||||
<td align=center><a href="/block/$b->[0]">$b->[0]</a></td> |
|
||||
<td align=center><a href="/block/$b->[1]">$b->[1]</a></td> |
|
||||
<td align=center>$b->[2]</td> |
|
||||
<td align=center>$b->[3]</td> |
|
||||
<td align=center>$b->[4]</td> |
|
||||
<td align=center>$b->[5]</td> |
|
||||
</tr> |
|
||||
FUCK |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
for my $s (@symbols) { |
|
||||
if($s && $STATS->{$s}) { $template =~ s/#$s#/$STATS->{$s}/ge } |
|
||||
} |
|
||||
|
|
||||
say $template; |
|
||||
|
|
||||
###### functions |
|
||||
|
|
||||
sub get_block { |
|
||||
my $height = shift; |
|
||||
my $dir = "/home/duke/data/blocks/"; |
|
||||
my $file = "$dir/block-$height.json"; |
|
||||
my $stats = {}; |
|
||||
my $block; |
|
||||
|
|
||||
# create data if it's not there |
|
||||
if( (!-e $file) || (-s $file == 0)) { |
|
||||
# logging? |
|
||||
my $cmd = "$cli getblock $height > /home/duke/data/blocks/block-$height.json"; |
|
||||
warn $cmd; |
|
||||
qx/$cmd/; |
|
||||
# let the file sync to disk |
|
||||
sleep 1; |
|
||||
} |
|
||||
my $json = readfile($file); |
|
||||
if($json) { |
|
||||
my $j = JSON::Any->new; |
|
||||
$block = $j->decode($json); |
|
||||
} else { |
|
||||
warn "empty block $height!!" unless $json; |
|
||||
warn Dumper [$json]; |
|
||||
} |
|
||||
|
|
||||
return $block; |
|
||||
} |
|
||||
|
|
||||
sub readfile { |
|
||||
my $file = shift; |
|
||||
my $data = ""; |
|
||||
open(my $fh, '<', $file) or die "$file: $!"; |
|
||||
my $txlist = 0; |
|
||||
while(<$fh>){ |
|
||||
$data.=$_ |
|
||||
} |
|
||||
close($fh); |
|
||||
return $data; |
|
||||
} |
|
@ -1,7 +0,0 @@ |
|||||
#!/usr/bin/perl |
|
||||
use strict; |
|
||||
use warnings; |
|
||||
use Redis; |
|
||||
my $r = Redis->new; |
|
||||
|
|
||||
$r->set("test:123","fuck"); |
|
@ -1,13 +0,0 @@ |
|||||
#!/usr/bin/env bash |
|
||||
DIR=/var/www/explorer.hush.land/var/www/explorer.hush.land/api |
|
||||
|
|
||||
# TODO: remove IP info from getpeerinfo |
|
||||
#~/git/hush3/src/hush-cli getpeerinfo > $DIR/getpeerinfo.json |
|
||||
~/git/hush3/src/hush-cli getinfo &> $DIR/getinfo.json |
|
||||
~/git/hush3/src/hush-cli getmininginfo &> $DIR/getmininginfo.json |
|
||||
~/git/hush3/src/hush-cli getblockchaininfo &> $DIR/getblockchain.json |
|
||||
~/git/hush3/src/hush-cli getchaintxstats &> $DIR/getchaintxstats.json |
|
||||
~/git/hush3/src/hush-cli gettxoutsetinfo &> $DIR/gettxoutsetinfo.json |
|
||||
~/git/hush3/src/hush-cli coinsupply &> $DIR/coinsupply.json |
|
||||
~/git/hush3/src/hush-cli getchaintips &> $DIR/getchaintips.json |
|
||||
~/git/hush3/src/hush-cli getchaintxstats &> $DIR/getchaintxstats.json |
|
@ -1,18 +0,0 @@ |
|||||
#!/usr/bin/env bash |
|
||||
|
|
||||
cli=~/git/hush3/src/hush-cli |
|
||||
|
|
||||
# only ask for data if we don't have it |
|
||||
#if [ -s ~/data/blocks/block-$HEIGHT.json ]; then |
|
||||
# HEIGHT=$($cli getblockcount); $cli getblock $HEIGHT > ~/data/blocks/block-$HEIGHT.json |
|
||||
#fi |
|
||||
|
|
||||
NEWFILE=/var/www/explorer.hush.land/var/www/explorer.hush.land/blocks/index.new.html |
|
||||
INDEXFILE=/var/www/explorer.hush.land/var/www/explorer.hush.land/blocks/index.html |
|
||||
|
|
||||
# reads data from /var/www/explorer.hush.is/api |
|
||||
#~/git/explorer.hush.is/bin/update_blocks.pl > $NEWFILE |
|
||||
/var/www/explorer.hush.land/bin/update_blocks_redis.pl > $NEWFILE |
|
||||
if [ -s $NEWFILE ]; then |
|
||||
cp $NEWFILE $INDEXFILE |
|
||||
fi |
|
@ -1,78 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('../UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="blockt"><p>These addresses have NO PRIVACY! They really should move funds to a zaddr!</p></div> |
|
||||
#ADDRESS_DATA# |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,101 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('../../UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr><td style="font-size: 14px"><a href="/block/#BLOCKS#" class="mainlinkexplorer">Block Height: #BLOCKS#</a></td></tr> |
|
||||
<tr><td style="font-size: 14px"><a href="/block/#BLOCKHASH#" class="mainlinkexplorer">Block Hash: #BLOCKHASH#</a></td></tr> |
|
||||
<tr><td style="font-size: 14px"><a href="/block/#PREVIOUSBLOCKHASH#" class="mainlinkexplorer">Previous Block Hash: #PREVIOUSBLOCKHASH#</a></td></tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px">Block Reward: #BLOCKREWARD#</td> |
|
||||
<td style="font-size: 14px">Block Time: #BLOCKTIME#</td> |
|
||||
<td style="font-size: 14px">Block Difficulty: #DIFFICULTY#</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px">Block size: #BLOCKSIZE# bytes</td> |
|
||||
<td style="font-size: 14px">Block Version: #VERSION#</td> |
|
||||
<td style="font-size: 14px">Block Bits: #BITS#</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr><td style="font-size: 14px">Block Nonce: #BLOCKNONCE#</td></tr> |
|
||||
<tr><td style="font-size: 14px">Block Anchor: #ANCHOR#</td></tr> |
|
||||
<tr><td style="font-size: 14px">Chainwork: #CHAINWORK#</td></tr> |
|
||||
<tr><td style="font-size: 14px">Merkle Root: #MERKLEROOT#</td></tr> |
|
||||
<tr><td style="font-size: 14px">Final Sapling Root: #FINALSAPLINGROOT#</td></tr> |
|
||||
</table> |
|
||||
#TX_TABLE# |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,77 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('../UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
#BLOCKS_TABLE# |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,125 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlink:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlink:hover { text-decoration: none; color: #595959 } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="blockt"><p>This is the most private and secure Blockchain Explorer in Zcash World, inspiration goes to <a href="https://xmrchain.net" class="mainlink">xmrchain.net</a>! There is no Javascript both client or server-side, it has no cookies, web analytics trackers, no images, no external CSS, visited and unvisited links are the same color so screenshots do not leak metadata, likewise it is available as a <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="mainlink">Tor hidden service</a>.</p></div> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Thu Sep 29 17:23:39 2022<!-- 1664472219 --></td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/blocks/" class="mainlinkexplorer">Blocks list</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/blocks/" class="mainlinkexplorer">Block Height: 1099008 </a></td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="https://git.hush.is/hush/anonsets" class="mainlinkexplorer">Anonymity Set</a>:<span class='anonset'> 2410752 </span></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Total Transactions: 1810407</td> |
|
||||
<td style="font-size: 14px; width: 50%">Transaction Rate: 2.1093 per minute </td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Hashrate: 11.19 MSol/s</td> |
|
||||
<td style="font-size: 14px; width: 50%">Difficulty: 49283696</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Circulating Supply: 12798895.34523515 HUSH</td> |
|
||||
<td style="font-size: 14px; width: 50%">Shielded Supply: 6850551.72538454 HUSH</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<td style="font-size: 14px; width: 50%">Price:<span class='price'> 0.00000273 BTC</span></td> |
|
||||
<td style="font-size: 14px; width: 50%">Total Volume:<span class='volume'> .0077033708 BTC </span></td> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Percent Shielded: 53.525 </td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/addresses/" class="mainlinkexplorer">T-addresses list</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">29 peers connected via TLS 1.3</td> |
|
||||
<td style="font-size: 14px; width: 50%">Protocol Version: 1987424</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,125 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlink:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlink:hover { text-decoration: none; color: #595959 } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="blockt"><p>This is the most private and secure Blockchain Explorer in Zcash World, inspiration goes to <a href="https://xmrchain.net" class="mainlink">xmrchain.net</a>! There is no Javascript both client or server-side, it has no cookies, web analytics trackers, no images, no external CSS, visited and unvisited links are the same color so screenshots do not leak metadata, likewise it is available as a <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="mainlink">Tor hidden service</a>.</p></div> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Thu Sep 29 17:23:39 2022<!-- 1664472219 --></td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/blocks/" class="mainlinkexplorer">Blocks list</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/blocks/" class="mainlinkexplorer">Block Height: 1099008 </a></td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="https://git.hush.is/hush/anonsets" class="mainlinkexplorer">Anonymity Set</a>:<span class='anonset'> 2410752 </span></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Total Transactions: 1810407</td> |
|
||||
<td style="font-size: 14px; width: 50%">Transaction Rate: 2.1093 per minute </td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Hashrate: 11.19 MSol/s</td> |
|
||||
<td style="font-size: 14px; width: 50%">Difficulty: 49283696</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Circulating Supply: 12798895.34523515 HUSH</td> |
|
||||
<td style="font-size: 14px; width: 50%">Shielded Supply: 6850551.72538454 HUSH</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<td style="font-size: 14px; width: 50%">Price:<span class='price'> 0.00000273 BTC</span></td> |
|
||||
<td style="font-size: 14px; width: 50%">Total Volume:<span class='volume'> .0077033708 BTC </span></td> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Percent Shielded: 53.525 </td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/addresses/" class="mainlinkexplorer">T-addresses list</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">29 peers connected via TLS 1.3</td> |
|
||||
<td style="font-size: 14px; width: 50%">Protocol Version: 1987424</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,125 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlink:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlink:hover { text-decoration: none; color: #595959 } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="blockt"><p>This is the most private and secure Blockchain Explorer in Zcash World, inspiration goes to <a href="https://xmrchain.net" class="mainlink">xmrchain.net</a>! There is no Javascript both client or server-side, it has no cookies, web analytics trackers, no images, no external CSS, visited and unvisited links are the same color so screenshots do not leak metadata, likewise it is available as a <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="mainlink">Tor hidden service</a>.</p></div> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">#TIPTIME#</td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/blocks/" class="mainlinkexplorer">Blocks list</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/blocks/" class="mainlinkexplorer">Block Height: #BLOCKS# </a></td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="https://git.hush.is/hush/anonsets" class="mainlinkexplorer">Anonymity Set</a>:<span class='anonset'> 2410752 </span></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Total Transactions: #TXCOUNT#</td> |
|
||||
<td style="font-size: 14px; width: 50%">Transaction Rate: #TXRATE# per minute </td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Hashrate: #NETWORKSOLPS# MSol/s</td> |
|
||||
<td style="font-size: 14px; width: 50%">Difficulty: #DIFFICULTY#</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Circulating Supply: #SUPPLY# HUSH</td> |
|
||||
<td style="font-size: 14px; width: 50%">Shielded Supply: #ZFUNDS# HUSH</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<td style="font-size: 14px; width: 50%">Price:<span class='price'> 0.00000273 BTC</span></td> |
|
||||
<td style="font-size: 14px; width: 50%">Total Volume:<span class='volume'> .0077033708 BTC </span></td> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">Percent Shielded: #ZFUNDS_PERCENT# </td> |
|
||||
<td style="font-size: 14px; width: 50%"><a href="/addresses/" class="mainlinkexplorer">T-addresses list</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td style="font-size: 14px; width: 50%">#CONNECTIONS# peers connected via TLS 1.3</td> |
|
||||
<td style="font-size: 14px; width: 50%">Protocol Version: #PROTOCOLVERSION#</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,85 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<head> |
|
||||
<title>Home | Hush - Transact and Speak Freely</title> |
|
||||
<style> |
|
||||
body { background-color: #101010; max-width: 850px; margin: auto; font-family: 'Ubuntu Mono'; color: #b3b3b3; text-align: center } |
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 15px } |
|
||||
td { border: 1px solid #1a1a1a; font-size: 16px; padding: 0.5em } |
|
||||
td:hover { background-color: #1a1a1a } |
|
||||
pre { background-color: #0d0d0d; border: 1px solid #1a1a1a; font-size: 6px; padding: 15px; color: #e6e6e6 } |
|
||||
details { cursor: pointer; background-color: #0d0d0d; text-align: left; margin-top: 15px; padding: 0.5em; border: 1px solid #1a1a1a; font-size: 13px; word-wrap: break-word } |
|
||||
summary { outline: none; padding: 0.4em } |
|
||||
.blockt { border: 1px solid #1a1a1a; padding: 0.15em; background-color: #0d0d0d; margin-top: 15px; text-align: left; font-size: 13px; word-wrap: break-word } |
|
||||
.blockt p { padding-left: 0.7em; padding-right: 0.7em } |
|
||||
.button:link { float: right; font-size: 11px } |
|
||||
.mainlinkexplorer:link { text-decoration: dotted underline; text-underline-position: under } |
|
||||
.mainlinkexplorer:hover { text-decoration: none; color: #595959 } |
|
||||
.links { margin: 15px; font-size: 13px } |
|
||||
a:link { color: #b3b3b3; text-decoration: none } |
|
||||
a:visited { color: #b3b3b3 } |
|
||||
a:hover { color: #b3b3b3 } |
|
||||
* { scrollbar-width: thin; scrollbar-color: #333333 #101010 } |
|
||||
::-webkit-scrollbar { width: 6px } |
|
||||
::-webkit-scrollbar-thumb { background: #333333 } |
|
||||
@font-face { font-family: 'Ubuntu Mono'; src: url('../../UbuntuMono.ttf') format('truetype') } |
|
||||
</style> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h2>Hush - Speak and Transact Freely</h2> |
|
||||
<h3>Private Cryptocurrency and Messenger using Zero Knowledge Mathematics</h3> |
|
||||
<pre> |
|
||||
&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&& &&&&&& &&&& &&&&&& &&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& &&&&& |
|
||||
&&&&& &&&& && &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&& &&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&&&& &&&&&& &&&&&& &&&&& |
|
||||
&&& &&&&&& && && &&&&&& &&& |
|
||||
&&&&&& &&&&&& &&&&&& |
|
||||
&&&& &&&&&& &&&& |
|
||||
&&&&&& |
|
||||
&&&& <a href="http://jlqhwhak65kokg3pdjp3ufy6almf5spnhsfnugtjsc4z7wtapgozxyad.onion" class="button">.onion</a> |
|
||||
</pre> |
|
||||
<table> |
|
||||
<tr> |
|
||||
<td><a href="https://hush.land">Why Hush</a></td> |
|
||||
<td><a href="https://hush.land/hushchat.html">HushChat</a></td> |
|
||||
<td><a href="https://hushpool.is">HushPool</a></td> |
|
||||
<td><a href="https://git.hush.is/onryo/hush-box">HushBox</a></td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td><a href="https://explorer.hush.land">Explorer</a></td> |
|
||||
<td><a href="https://git.hush.is/hush">Gitea</a></td> |
|
||||
<td><a href="https://hush.land/faq.html">F.A.Q</a></td> |
|
||||
<td><a href="https://hush.land/team.html">Team</a></td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
<tr><td style="font-size: 14px"><a href="/block/#BLOCKHEIGHT#" class="mainlinkexplorer">Block Height: #BLOCKHEIGHT#</a></td></tr> |
|
||||
<tr><td style="font-size: 14px"><a href="/block/#BLOCKHASH#" class="mainlinkexplorer">Block Hash: #BLOCKHASH#</a></td></tr> |
|
||||
<tr><td style="font-size: 14px"><a href="/tx/#TXID#" class="mainlinkexplorer">Transaction ID: #TXID#</a></td></tr> |
|
||||
<tr><td style="font-size: 14px">Transaction Time: #TXTIME#</td></tr> |
|
||||
</table> |
|
||||
<table> |
|
||||
#TX_DATA# |
|
||||
</table> |
|
||||
<div class="links"> |
|
||||
<a href="https://hush.is/matrix"><span style="color: #262626">[</span> matrix <span style="color: #262626">]</span></a> |
|
||||
<a href="https://hush.is/mastodon"><span style="color: #262626">[</span> mastodon <span style="color: #262626">]</span></a> |
|
||||
<a href="https://videos.hush.is"><span style="color: #262626">[</span> peertube <span style="color: #262626">]</span></a> |
|
||||
<a href="https://t.me/hush_main"><span style="color: #262626">[</span> telegram <span style="color: #262626">]</span></a> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,15 +0,0 @@ |
|||||
#!/usr/bin/env bash |
|
||||
|
|
||||
set -e |
|
||||
|
|
||||
DOMAIN=explorer.hush.land/var/www/explorer.hush.land |
|
||||
DIR=/var/www |
|
||||
|
|
||||
echo $$ >> $DIR/$DOMAIN/PID |
|
||||
|
|
||||
# make a backup so we can diff them |
|
||||
cp $DIR/$DOMAIN/{index,index-prev}.html |
|
||||
# let index.html settle |
|
||||
sleep 2 |
|
||||
perl /var/www/explorer.hush.land/bin/update.pl /var/www/explorer.hush.land/api &> $DIR/$DOMAIN/index-new.html |
|
||||
cp $DIR/$DOMAIN/index-new.html $DIR/$DOMAIN/index.html |
|
Loading…
Reference in new issue