mirror of
https://git.wownero.com/wownero/onion-wownero-blockchain-explorer.git
synced 2024-08-15 00:33:12 +00:00
Ported to Aeon
https://github.com/moneroexamples/onion-monero-blockchain-explorer/pull/118
This commit is contained in:
parent
35db6a00ca
commit
2ba9a35830
16 changed files with 67 additions and 64 deletions
|
@ -1,7 +1,7 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(PROJECT_NAME
|
||||
xmrblocks)
|
||||
aeonblocks)
|
||||
|
||||
|
||||
project(${PROJECT_NAME})
|
||||
|
@ -15,13 +15,13 @@ if (WIN32)
|
|||
endif()
|
||||
|
||||
|
||||
if (NOT MONERO_DIR)
|
||||
set(MONERO_DIR ~/monero)
|
||||
if (NOT AEON_DIR)
|
||||
set(AEON_DIR ~/aeon)
|
||||
endif()
|
||||
|
||||
message(STATUS MONERO_DIR ": ${MONERO_DIR}")
|
||||
message(STATUS AEON_DIR ": ${AEON_DIR}")
|
||||
|
||||
set(MONERO_SOURCE_DIR ${MONERO_DIR}
|
||||
set(MONERO_SOURCE_DIR ${AEON_DIR}
|
||||
CACHE PATH "Path to the root directory for Monero")
|
||||
|
||||
# set location of monero build tree
|
||||
|
|
35
README.md
35
README.md
|
@ -1,4 +1,4 @@
|
|||
# Onion Monero Blockchain Explorer
|
||||
# Onion Aeon Blockchain Explorer
|
||||
|
||||
Currently available Monero blockchain explorers have several limitations which are of
|
||||
special importance to privacy-oriented users:
|
||||
|
@ -105,9 +105,9 @@ sudo apt install git build-essential cmake libboost-all-dev miniupnpc libunbound
|
|||
# go to home folder
|
||||
cd ~
|
||||
|
||||
git clone --recursive https://github.com/monero-project/monero
|
||||
git clone --recursive https://github.com/aeonix/aeon
|
||||
|
||||
cd monero/
|
||||
cd aeon/
|
||||
|
||||
# checkout last monero version
|
||||
git checkout -b last_release v0.12.0.0
|
||||
|
@ -121,7 +121,7 @@ Once the Monero is compiles, the explorer can be downloaded and compiled
|
|||
as follows:
|
||||
|
||||
```bash
|
||||
# go to home folder if still in ~/monero
|
||||
# go to home folder if still in ~/aeon
|
||||
cd ~
|
||||
|
||||
# download the source code
|
||||
|
@ -130,14 +130,17 @@ git clone https://github.com/moneroexamples/onion-monero-blockchain-explorer.git
|
|||
# enter the downloaded sourced code folder
|
||||
cd onion-monero-blockchain-explorer
|
||||
|
||||
# checkout the aeon branch
|
||||
git checkout origin/aeon
|
||||
|
||||
# make a build folder and enter it
|
||||
mkdir build && cd build
|
||||
|
||||
# create the makefile
|
||||
cmake ..
|
||||
|
||||
# altearnatively can use: cmake -DMONERO_DIR=/path/to/monero_folder ..
|
||||
# if monero is not in ~/monero
|
||||
# altearnatively can use: cmake -DAEON_DIR=/path/to/aeon_folder ..
|
||||
# if monero is not in ~/aeon
|
||||
#
|
||||
# also can build with ASAN (sanitizers), for example
|
||||
# cmake -DSANITIZE_ADDRESS=On ..
|
||||
|
@ -149,7 +152,7 @@ make
|
|||
|
||||
To run it:
|
||||
```
|
||||
./xmrblocks
|
||||
./aeonblocks
|
||||
```
|
||||
|
||||
By default it will look for blockchain in its default location i.e., `~/.bitmonero/lmdb`.
|
||||
|
@ -164,7 +167,7 @@ For example:
|
|||
Example output:
|
||||
|
||||
```bash
|
||||
[mwo@arch onion-monero-blockchain-explorer]$ ./xmrblocks
|
||||
[mwo@arch onion-monero-blockchain-explorer]$ ./aeonblocks
|
||||
2016-May-28 10:04:49.160280 Blockchain initialized. last block: 1056761, d0.h0.m12.s47 time ago, current difficulty: 1517857750
|
||||
(2016-05-28 02:04:49) [INFO ] Crow/0.1 server is running, local port 8081
|
||||
```
|
||||
|
@ -174,7 +177,7 @@ Go to your browser: http://127.0.0.1:8081
|
|||
## The explorer's command line options
|
||||
|
||||
```
|
||||
xmrblocks, Onion Monero Blockchain Explorer:
|
||||
aeonblocks, Onion Monero Blockchain Explorer:
|
||||
-h [ --help ] [=arg(=1)] (=0) produce help message
|
||||
-t [ --testnet ] [=arg(=1)] (=0) use testnet blockchain
|
||||
-s [ --stagenet ] [=arg(=1)] (=0) use stagenet blockchain
|
||||
|
@ -222,7 +225,7 @@ xmrblocks, Onion Monero Blockchain Explorer:
|
|||
functionality
|
||||
--ssl-key-file arg path to key file for ssl (https)
|
||||
functionality
|
||||
-d [ --deamon-url ] arg (=http:://127.0.0.1:18081)
|
||||
-d [ --deamon-url ] arg (=http:://127.0.0.1:11181)
|
||||
Monero deamon url
|
||||
```
|
||||
|
||||
|
@ -230,10 +233,10 @@ Example usage, defined as bash aliases.
|
|||
|
||||
```bash
|
||||
# for mainnet explorer
|
||||
alias xmrblocksmainnet='~/onion-monero-blockchain-explorer/build/xmrblocks --port 8081 --testnet-url "http://139.162.32.245:8082" --enable-pusher --enable-emission-monitor'
|
||||
alias aeonblocksmainnet='~/onion-monero-blockchain-explorer/build/aeonblocks --port 8081 --testnet-url "http://139.162.32.245:8082" --enable-pusher --enable-emission-monitor'
|
||||
|
||||
# for testnet explorer
|
||||
alias xmrblockstestnet='~/onion-monero-blockchain-explorer/build/xmrblocks -t --port 8082 --mainnet-url "http://139.162.32.245:8081" --enable-pusher --enable-emission-monitor'
|
||||
alias aeonblockstestnet='~/onion-monero-blockchain-explorer/build/aeonblocks -t --port 8082 --mainnet-url "http://139.162.32.245:8081" --enable-pusher --enable-emission-monitor'
|
||||
```
|
||||
|
||||
These are aliases similar to those used for http://139.162.32.245:8081/ and http://139.162.32.245:8082/, respectively.
|
||||
|
@ -245,7 +248,7 @@ disabled. To enable it use `--enable-emission-monitor` flag, e.g.,
|
|||
|
||||
|
||||
```bash
|
||||
xmrblocks --enable-emission-monitor
|
||||
aeonblocks --enable-emission-monitor
|
||||
```
|
||||
|
||||
This flag will enable emission monitoring thread. When started, the thread
|
||||
|
@ -283,7 +286,7 @@ By default, decoding and proving tx's outputs are done on the server side. To do
|
|||
(private view and tx keys are not send to the server) JavaScript-based decoding can be enabled:
|
||||
|
||||
```
|
||||
xmrblocks --enable-js
|
||||
aeonblocks --enable-js
|
||||
```
|
||||
|
||||
## Enable SSL (https)
|
||||
|
@ -299,10 +302,10 @@ openssl req -new -key server.key -out server.csr
|
|||
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
|
||||
```
|
||||
|
||||
Having the `crt` and `key` files, run `xmrblocks` in the following way:
|
||||
Having the `crt` and `key` files, run `aeonblocks` in the following way:
|
||||
|
||||
```bash
|
||||
./xmrblocks --ssl-crt-file=/tmp/server.crt --ssl-key-file=/tmp/server.key
|
||||
./aeonblocks --ssl-crt-file=/tmp/server.crt --ssl-key-file=/tmp/server.key
|
||||
```
|
||||
|
||||
Note: Because we generated our own certificate, modern browsers will complain
|
||||
|
|
12
main.cpp
12
main.cpp
|
@ -166,10 +166,10 @@ main(int ac, const char* av[])
|
|||
|
||||
string deamon_url {*deamon_url_opt};
|
||||
|
||||
if (testnet && deamon_url == "http:://127.0.0.1:18081")
|
||||
deamon_url = "http:://127.0.0.1:28081";
|
||||
if (stagenet && deamon_url == "http:://127.0.0.1:18081")
|
||||
deamon_url = "http:://127.0.0.1:38081";
|
||||
if (testnet && deamon_url == "http:://127.0.0.1:11181")
|
||||
deamon_url = "http:://127.0.0.1:21181";
|
||||
if (stagenet && deamon_url == "http:://127.0.0.1:11181")
|
||||
deamon_url = "http:://127.0.0.1:31181";
|
||||
|
||||
uint64_t mempool_info_timeout {5000};
|
||||
|
||||
|
@ -323,7 +323,7 @@ main(int ac, const char* av[])
|
|||
|| post_body.count("viewkey") == 0
|
||||
|| post_body.count("tx_hash") == 0)
|
||||
{
|
||||
return string("xmr address, viewkey or tx hash not provided");
|
||||
return string("AEON address, viewkey or tx hash not provided");
|
||||
}
|
||||
|
||||
string tx_hash = remove_bad_chars(post_body["tx_hash"]);
|
||||
|
@ -365,7 +365,7 @@ main(int ac, const char* av[])
|
|||
|| post_body.count("txprvkey") == 0
|
||||
|| post_body.count("txhash") == 0)
|
||||
{
|
||||
return string("xmr address, tx private key or "
|
||||
return string("AEON address, tx private key or "
|
||||
"tx hash not provided");
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ namespace xmreg
|
|||
"path to crt file for ssl (https) functionality")
|
||||
("ssl-key-file", value<string>(),
|
||||
"path to key file for ssl (https) functionality")
|
||||
("deamon-url,d", value<string>()->default_value("http:://127.0.0.1:18081"),
|
||||
("deamon-url,d", value<string>()->default_value("http:://127.0.0.1:11181"),
|
||||
"Monero deamon url");
|
||||
|
||||
|
||||
|
|
|
@ -303,7 +303,7 @@ cryptonote::network_type CurrentBlockchainStatus::nettype {cryptonote::network_t
|
|||
|
||||
string CurrentBlockchainStatus::output_file {"emission_amount.txt"};
|
||||
|
||||
string CurrentBlockchainStatus::deamon_url {"http:://127.0.0.1:18081"};
|
||||
string CurrentBlockchainStatus::deamon_url {"http:://127.0.0.1:11181"};
|
||||
|
||||
uint64_t CurrentBlockchainStatus::blockchain_chunk_size {10000};
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@ MempoolStatus::is_thread_running()
|
|||
}
|
||||
|
||||
bf::path MempoolStatus::blockchain_path {"/home/mwo/.bitmonero/lmdb"};
|
||||
string MempoolStatus::deamon_url {"http:://127.0.0.1:18081"};
|
||||
string MempoolStatus::deamon_url {"http:://127.0.0.1:11181"};
|
||||
cryptonote::network_type MempoolStatus::nettype {cryptonote::network_type::MAINNET};
|
||||
atomic<bool> MempoolStatus::is_running {false};
|
||||
boost::thread MempoolStatus::m_thread;
|
||||
|
|
|
@ -1572,7 +1572,7 @@ public:
|
|||
if (!xmreg::parse_str_address(xmr_address_str, address_info, nettype))
|
||||
{
|
||||
cerr << "Cant parse string address: " << xmr_address_str << endl;
|
||||
return string("Cant parse xmr address: " + xmr_address_str);
|
||||
return string("Cant parse AEON address: " + xmr_address_str);
|
||||
}
|
||||
|
||||
// parse string representing given private key
|
||||
|
|
|
@ -81,7 +81,7 @@ class rpccalls
|
|||
|
||||
public:
|
||||
|
||||
rpccalls(string _deamon_url = "http:://127.0.0.1:18081",
|
||||
rpccalls(string _deamon_url = "http:://127.0.0.1:11181",
|
||||
uint64_t _timeout = 200000);
|
||||
|
||||
bool
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<H4 style="margin:5px">
|
||||
Transactions:<br/> Sorry, its not possible to find txs associated with
|
||||
normal addresses in Monero
|
||||
normal addresses in Aeon
|
||||
</H4>
|
||||
|
||||
<br/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<h4>Output keys for address: {{address}}</h4>
|
||||
<h4>Viewkey: {{viewkey}}</h4>
|
||||
{{#has_total_xmr}}
|
||||
<h4>Total xmr: {{total_xmr}}</h4>
|
||||
<h4>Total AEON: {{total_xmr}}</h4>
|
||||
{{/has_total_xmr}}
|
||||
|
||||
<div class="center">
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="center">
|
||||
<h6 style="margin-top:10px">
|
||||
<a href="https://github.com/moneroexamples/onion-monero-blockchain-explorer">source code</a>
|
||||
<a href="https://github.com/moneroexamples/onion-monero-blockchain-explorer/tree/aeon">source code</a>
|
||||
| explorer version (api): {{git_branch_name}}-{{last_git_commit_date}}-{{last_git_commit_hash}} ({{api}})
|
||||
| monero version: {{monero_version_full}}
|
||||
| Aeon version: {{monero_version_full}}
|
||||
</h6>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
{{#refresh}}
|
||||
<meta http-equiv="refresh" content="10">
|
||||
{{/refresh}}
|
||||
<title>Onion Monero Blockchain Explorer</title>
|
||||
<title>Onion Aeon Blockchain Explorer</title>
|
||||
<!--<link rel="stylesheet" type="text/css" href="/css/style.css">-->
|
||||
<style type="text/css">
|
||||
{{#css_styles}}{{/css_styles}}
|
||||
|
@ -19,7 +19,7 @@
|
|||
<div>
|
||||
|
||||
<div class="center">
|
||||
<h1 class="center"><a href="/">Onion Monero Blockchain Explorer</a></h1>
|
||||
<h1 class="center"><a href="/">Onion Aeon Blockchain Explorer</a></h1>
|
||||
<h4 style="font-size: 15px; margin: 0px">({{^enable_js}}no javascript - {{/enable_js}}no cookies - no web analytics trackers - no images - open sourced)</h4>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
{{#emission}}
|
||||
<h3 style="font-size: 12px; margin-top: 2px">
|
||||
Monero emission (fees) is {{amount}} ({{fee_amount}}) as of {{blk_no}} block
|
||||
Aeon emission (fees) is {{amount}} ({{fee_amount}}) as of {{blk_no}} block
|
||||
</h3>
|
||||
{{/emission}}
|
||||
|
||||
|
|
|
@ -4,19 +4,19 @@ var config = {
|
|||
coinUnitPlaces: 12,
|
||||
txMinConfirms: 10, // corresponds to CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE in Monero
|
||||
txCoinbaseMinConfirms: 60, // corresponds to CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW in Monero
|
||||
coinSymbol: 'XMR',
|
||||
openAliasPrefix: "xmr",
|
||||
coinName: 'Monero',
|
||||
coinUriPrefix: 'monero:',
|
||||
addressPrefix: 18,
|
||||
integratedAddressPrefix: 19,
|
||||
subAddressPrefix: 42,
|
||||
addressPrefixTestnet: 53,
|
||||
integratedAddressPrefixTestnet: 54,
|
||||
subAddressPrefixTestnet: 63,
|
||||
addressPrefixStagenet: 24,
|
||||
integratedAddressPrefixStagenet: 25,
|
||||
subAddressPrefixStagenet: 36,
|
||||
coinSymbol: 'AEON',
|
||||
openAliasPrefix: "aeon",
|
||||
coinName: 'Aeon',
|
||||
coinUriPrefix: 'aeon:',
|
||||
addressPrefix: 0xB2,
|
||||
integratedAddressPrefix: 0x2733,
|
||||
subAddressPrefix: 0x06B8,
|
||||
addressPrefixTestnet: 0x0426,
|
||||
integratedAddressPrefixTestnet: 0x2C27,
|
||||
subAddressPrefixTestnet: 0x0AAC,
|
||||
addressPrefixStagenet: 0x011A,
|
||||
integratedAddressPrefixStagenet: 0x2C1B,
|
||||
subAddressPrefixStagenet: 0x0B20,
|
||||
feePerKB: new JSBigInt('2000000000'),//20^10 - for testnet its not used, as fee is dynamic.
|
||||
dustThreshold: new JSBigInt('1000000000'),//10^10 used for choosing outputs/change - we decompose all the way down if the receiver wants now regardless of threshold
|
||||
txChargeRatio: 0.5,
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
</table>
|
||||
|
||||
<h3>
|
||||
Sum XMR from matched outputs (i.e., incoming XMR):
|
||||
Sum AEON from matched outputs (i.e., incoming AEON):
|
||||
{{#found_our_outputs}}
|
||||
{{sum_xmr}}
|
||||
{{/found_our_outputs}}
|
||||
|
@ -142,7 +142,7 @@
|
|||
|
||||
</div>
|
||||
<h3>
|
||||
Sum XMR from matched and marked by * ring member's outputs: {{sum_mixin_xmr}}
|
||||
Sum AEON from matched and marked by * ring member's outputs: {{sum_mixin_xmr}}
|
||||
<br/>
|
||||
<span style="font-size: 16px"> Possible spending is:
|
||||
{{possible_spending}} (tx fee included)
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
</table>
|
||||
|
||||
|
||||
<h3>{{outputs_no}} output(s) for total of {{outputs_xmr_sum}} xmr</h3>
|
||||
<h3>{{outputs_no}} output(s) for total of {{outputs_xmr_sum}} AEON</h3>
|
||||
<div class="center">
|
||||
<table class="center">
|
||||
<tr>
|
||||
|
@ -82,7 +82,7 @@
|
|||
<input type="radio" id="tab-1" name="tab-group-1" checked>
|
||||
<label for="tab-1">Decode outputs</label>
|
||||
<div class="content">
|
||||
<h4 style="margin: 0px">Check which outputs belong to given Monero address/subaddress and viewkey</h4>
|
||||
<h4 style="margin: 0px">Check which outputs belong to given Aeon address/subaddress and viewkey</h4>
|
||||
<h5 style="margin: 0px">
|
||||
For RingCT transactions, outputs' amounts are also decoded
|
||||
<br/>
|
||||
|
@ -95,7 +95,7 @@
|
|||
</h5>
|
||||
<form action="/myoutputs" method="post" style="width:100%; margin-top:2px" class="style-1">
|
||||
<input type="hidden" name="tx_hash" value="{{tx_hash}}"><br/>
|
||||
<input type="text" name="xmr_address" size="110" placeholder="Monero address/subaddress"><br/>
|
||||
<input type="text" name="xmr_address" size="110" placeholder="Aeon address/subaddress"><br/>
|
||||
<input type="text" name="viewkey" size="110" placeholder="Private viewkey" style="margin-top:5px"><br/>
|
||||
<input type="hidden" name="raw_tx_data" value="{{raw_tx_data}}">
|
||||
<!--above raw_tx_data field only used when checking raw tx data through tx pusher-->
|
||||
|
@ -117,10 +117,10 @@
|
|||
<label for="tab-2">Prove sending</label>
|
||||
|
||||
<div class="content">
|
||||
<h4 style="margin: 0px">Prove to someone that you have sent them Monero in this transaction</h4>
|
||||
<h4 style="margin: 0px">Prove to someone that you have sent them Aeon in this transaction</h4>
|
||||
<h5 style="margin: 0px">
|
||||
Tx private key can be obtained using <i>get_tx_key</i>
|
||||
command in <i>monero-wallet-cli</i> command line tool
|
||||
command in <i>aeon-wallet-cli</i> command line tool
|
||||
<br/>
|
||||
{{#enable_js}}
|
||||
Note: address/subaddress and tx private key are NOT sent to the server, as the calculations are done on the client side
|
||||
|
@ -134,7 +134,7 @@
|
|||
<input type="text" name="txprvkey" size="120" placeholder="Tx private key"><br/>
|
||||
<input type="hidden" name="raw_tx_data" value="{{raw_tx_data}}">
|
||||
<!--above raw_tx_data field only used when checking raw tx data through tx pusher-->
|
||||
<input type="text" name="xmraddress" size="120" placeholder="Recipient's monero address/subaddress" style="margin-top:5px"><br/>
|
||||
<input type="text" name="xmraddress" size="120" placeholder="Recipient's Aeon address/subaddress" style="margin-top:5px"><br/>
|
||||
|
||||
{{#enable_js}}
|
||||
<!-- if have js, DONOT submit the form to server.
|
||||
|
@ -356,7 +356,7 @@
|
|||
|
||||
decoding_results_str += "</table>";
|
||||
|
||||
decoding_results_str += "<h3>Sum XMR from matched outputs (i.e., incoming XMR): " + (sum_outptus / 1e12) + "</h3>"
|
||||
decoding_results_str += "<h3>Sum AEON from matched outputs (i.e., incoming AEON): " + (sum_outptus / 1e12) + "</h3>"
|
||||
|
||||
|
||||
// decrypt payment_id8 which results in using
|
||||
|
@ -397,14 +397,14 @@
|
|||
{{/enable_mixins_details}}
|
||||
|
||||
{{^inputs_xmr_sum_not_zero}}
|
||||
<h3>{{inputs_no}} input(s) for total of {{inputs_xmr_sum}} xmr</h3>
|
||||
<h3>{{inputs_no}} input(s) for total of {{inputs_xmr_sum}} AEON</h3>
|
||||
{{/inputs_xmr_sum_not_zero}}
|
||||
{{#inputs_xmr_sum_not_zero}}
|
||||
{{^have_any_unknown_amount}}
|
||||
<h3>{{inputs_no}} inputs(s) for total of {{inputs_xmr_sum}} xmr</h3>
|
||||
<h3>{{inputs_no}} inputs(s) for total of {{inputs_xmr_sum}} AEON</h3>
|
||||
{{/have_any_unknown_amount}}
|
||||
{{#have_any_unknown_amount}}
|
||||
<h3>{{inputs_no}} inputs(s) for total of at least {{inputs_xmr_sum}} xmr</h3>
|
||||
<h3>{{inputs_no}} inputs(s) for total of at least {{inputs_xmr_sum}} AEON</h3>
|
||||
{{/have_any_unknown_amount}}
|
||||
{{/inputs_xmr_sum_not_zero}}
|
||||
|
||||
|
|
Loading…
Reference in a new issue