Git Product home page Git Product logo

explorer's People

Contributors

anarchistsprime avatar chey avatar ghobson2013 avatar iquidus avatar ksynb avatar lyoshenka avatar mudjello avatar patrykwegrzyn avatar rudy4682 avatar snyk-community avatar suriyaa avatar uaktags avatar udjinm6 avatar vr2ualize avatar xcoredev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

explorer's Issues

Mobile view

Just a cosmetic based on mobile view

B43FE273-0D77-403B-986A-5C0DFEEC6B8C
This happens on the above and coin supply on mobile/laptop easy fix?

Also If you can point me in the right direction, how do I make the menu bigger in mobile view assuming it’s all css

Unable to connect to explorer API

[2019-11-07T18:06:28.975] [INFO] default - Workers needed: 1. NumThreads: 8. BlocksToGet 2. Per Worker: 2000 1 -1
[2019-11-07T18:06:28.983] [INFO] default - There are 1 workers
(node:11313) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
[2019-11-07T18:06:29.777] [INFO] Workers.Master - Worker [0] 11313 is starting, start at index -1 and end at index 1
[2019-11-07T18:06:29.779] [INFO] default - Worker [11313] is starting, ensure it finishes
[2019-11-07T18:06:29.827] [ERROR] Workers.Master - ***************************** Exception Caught, Thu Nov 07 2019 18:06:29 GMT+0000 (UTC)
[2019-11-07T18:06:29.827] [ERROR] Workers.Master - Exception is: TypeError: Cannot read property 'blockindex' of null
at /home/explorer/lib/database.js:879:84
at /home/explorer/node_modules/mongoose/lib/model.js:4600:16
at /home/explorer/node_modules/mongoose/lib/utils.js:264:16
at _hooks.execPost (/home/explorer/node_modules/mongoose/lib/query.js:4326:11)
at /home/explorer/node_modules/kareem/index.js:135:16
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)

I have tried with everything, and it gives the same respons every time i tried to start the update. All RPC connections etc are working fine with original iquodus.

Multicoin

This is not an issue but more of a question, i am using your explorer as you know, before all the cluster work. My question is i know you are looking at multicoin support but i am trying to run 2 explorers on one semi decent server and i am using ssl on both however

One explorer is using port 443 for the ssl, i am trying to launch a second explorer but cannot because 443 is being used even though i have use --port 445 when sending npm start, gives me the in use error.

Just wondering if you knew of a way to launch two on the same server two different url folders with all packages in each including force ssl and forever.

Any help you can provide will be much appreciated, i have also changed the default port for both 8082 and 8083 but still try's to access 443.

I think the problem i have could be force ssl trying to open the default port even though it's used. I could be totally wrong and i can't run two with ssl.

Update:

Got it working on two different ports, but i have to use the port number at the end url:441 as the other explorer has port 80 redirected to 443 and i can't redirect the same port to two different ports as far as i am aware.

Do you know of a better way to get them to work without appending the port to the url

sync.js

Hi me again

just a quick one, i am running sync.js and get the following error

/usr/bin/nodejs scripts/sync.js index update
/var/www/vhosts/explorer/node_modules/bitcoin-core/dist/src/index.js:33
function source(...args) {
^^^

SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object. (/var/www/vhosts/explorer/lib/explorer.js:9:16)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object. (/var/www/vhosts/explorer/lib/database.js:11:11)
at Module._compile (module.js:410:26)

seems to be bitcoin-core module related, just wondered if you could help

Error on "update" if index is cancelled.

lib\explorer.js:384
    module.exports.syncLoop(tx.vin.length, function (loop) {
                                   ^

TypeError: Cannot read property 'length' of undefined

Error occurs when I do a sync.js index reindex, let that run for a few moments, and then Ctrl+C and run sync.js index update.

Issue appears to be that stats.last is set to -1. So since the index failed out/crashed/ended prematurely, it didn't update db.stats. We need to update stats atleast partially during an update to make sure everything is on the up and up. Atleast it should gracefully crash/restart its operation.

Clusters - Workers are stalling / possibly error handling issue

So in investigating, I've setup logging with 57290e0 and because of that I am able to start focusing on where things are going wrong.

So our console is showing that we're actively getting results from worker PID:19280
console-output

But in our process tree, while we see 19280 is actively running and using memory above 64mb, (just to choose 1 worker) looking at 3588 shows no movement.
process list

The log file for 3588 shows about the same thing too, it hasn't updated since 3:23PM, let's look at the file itself.
3588logfile

End of log file shows us the same thing, last thing has been 3588, and there's no update_tx_db finished. Updating stats.Last to set #####, so we're still in database.js stuck somewhere
3588end of file

Looking at the syncLog we see the same thing, 3588 started but there's no indication that it finished.
sync-log-3588

One thing I did run into though:

C:\Users\tim\Documents\git\official-explorer\lib\explorer.js:368
      iteration:function(){
                        ^

RangeError: Maximum call stack size exceeded

There were also Timeouts when communicating with the coin daemon. Unfortunately log4js doesn't capture those traces (and I'm not redirecting console to file). My guess is there's a try/catch that's doing throws with no returns. So we're crashing.

initial install issue - Both Master and Cluster affected

So, to test this out, I simply just deleted all the collections, ran "npm start" to recreate the collections for a new install, and then ran the node scripts/sync.js index reindex, or update. Either one should work fine, but it appears that because of the way we get the "end" we break.

explorer/scripts/sync.js

Lines 140 to 141 in 8ed38ea

db.update_db(settings.coin, function(){
db.get_stats(settings.coin, function(stats){

This is where the problem seems to come into play.

db.update_db is suppose to set the stats.count to what the current blockcount is. Then right after all that is done, it's db.get_stats which pulls that information (a redundant call), but for whatever reason we still get left with a 0.

error on first run

/root/motion-explorer/node_modules/debug/src/node.js:132
let val = process.env[key];
^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object. (/root/motion-explorer/node_modules/debug/src/index.js:9:19)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)

TX Search Error - Page isn't working

When searching for a TX you get a page isn't working error instead of a explorer can't find error.
The block i tried to search was a payment to self, it does require 20 confirmations so may not be in the explorer yet.

search url goes to example.com/block/dcb75512cd2b4bb24b0f4c5d5eaa0a27cdb8ae422de8ad67f8cee1270efe576b
which is a web error rather than a explorer error.

Seems to be if the transaction isn't in the DB yet, but i think it should go to an internal error rather than browser error, not sure if that is how it should work.

First run - this.options.preload.forEach error

Just wondered if anyone could help with this error, Clean install and running with npm start and i get the below error, i also know this is WIP but i cannot solve this issue.

Starting cluster with pid: 9034 /var/www/vhosts/explorer/node_modules/i18next/dist/commonjs/i18next.js:234 this.options.preload.forEach(function (l) { ^ TypeError: this.options.preload.forEach is not a function at I18n.loadResources (/var/www/vhosts/explorer/node_modules/i18next/dist/commonjs/i18next.js:234:32) at setLng (/var/www/vhosts/explorer/node_modules/i18next/dist/commonjs/i18next.js:320:16) at I18n.changeLanguage (/var/www/vhosts/explorer/node_modules/i18next/dist/commonjs/i18next.js:326:9) at Timeout.load [as _onTimeout] (/var/www/vhosts/explorer/node_modules/i18next/dist/commonjs/i18next.js:178:16) at ontimeout (timers.js:482:11) at tryOnTimeout (timers.js:317:5) at Timer.listOnTimeout (timers.js:277:5) /var/www/vhosts/explorer/node_modules/i18next/dist/commonjs/i18next.js:234 this.options.preload.forEach(function (l) {
I have not changed any dependencies just edited settings and run, as per a previous install without i18next.

any help on narrowing down the issue is appreciated - I also seen the error mentioned on another issue but i have the language change already as it was a recent download.

I know you can't reproduce it looking at your comments on the other issue, did you replicate the error, as i can't find any information on this.

Server Linux 18.04
Mongodb - 3.6.12
Nodejs - 8.10.0

tx not found

Hello, i'm testing your block explorer, but i have a error when i try to reindex de blockchaing:

node scripts/sync.js index reindex
script launched with pid: 29194
(node:29194) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
Update Stats Completed.
(node:29194) DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
(node:29194) DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead.
index cleared (reindex)
tx not found: af4517dedb668073063d28d8aafe22fe19f60ecd73ba378c3beb229d67c9739f
tx not found: faddb01584632c5f39807fad76727b3ebd1786f57f57724ce219a2d9648e21bf
tx not found: de12c8b2678aa5ffb7b728042cfb7b9479c9d9569097d1ba3849bf64874e4504
tx not found: 95fb58dba4aa7c03a58a200070b869be3cc5564a2c30db1c890303a4200616b0
tx not found: 9ae391289c3c7de6af4b86ced783ba45b92763242c6cd7ad9a4150cb3effea2a

npm = 6.4.1
node = 8.16.0
blackchain = ArepaCoin

Block.tx.length issue on new install | User: Merratzz | coin: Prux

Coin: Prux-coin
Explorer Base: WIP PR
Commit: f9120b3
Issue reported in: iquidus#257

Merratzz is reporting that on a fresh install, running the initial sync index is resulting in an error with block.tx.length. This error is typical when there's no "tx" found inside the block. Better error checking needs to be put in place.

Other possible issue:
[ ] Settings.json.template is not up to date with the new additions. Possible user doesn't have correct settings.json format.
[ ] User casted doubt on genesis and genesis tx, not quite sure if they ran a vanilla IE install to ensure correct setup.

Currently running a test with a fresh install locally. Will check if a new commit is needed.

Latest Transaction vs Latest Blocks (previously named:"Block vs Entries List")

Entries list does not match how many blocks there are on the index page see screenshot (limit screen view due to unreleased coin)
image

As you can see from the image it shows 218 more entries than actual blocks in the DB and i also have "last_txs": 1000 so that doesn't make sense either.

Really like this explorer and want to keep using it, so just trying to point out some bugs/issues
Also i don't suppose you know how to show more than 10 entries on the index page or a setting or maybe make a setting in the json for show no entries 25 or something
Also i have a few more do you want separate issues for them all

Update - Nearly 300 entries more than blocks, the gap is getting bigger

TypeError: Cannot read property 'proof-of-work' of undefined

TypeError: Cannot read property 'proof-of-work' of undefined
at /home/user/explorer/routes/index.js:356:19
at Request._callback (/home/user/explorer/lib/explorer.js:80:14)
at self.callback (/home/user/explorer/node_modules/request/request.js:185:22)
at Request.emit (events.js:198:13)
at Request.onRequestError (/home/user/explorer/node_modules/request/request.js:881:8)
at ClientRequest.emit (events.js:198:13)
at Socket.socketErrorListener (_http_client.js:392:9)
at Socket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)

api section works fine and is getting all the info such as get difficulty.

The coin has worked with the older explorers.

Cluster - Need a way to monitor and restart/re-fork workers

So an issue that I'm finding is that there's occasionally CONNREFUSED happening from the Daemon while the workers are doing their thing. After this error is thrown, the worker is stalled (#24). So we need a way for the workers to tell the master they're still working, and if they're not (but still alive) then the Master needs to kill them and start a new one in its place.

The problem is that cluster.workers[].process.env isn't a thing; You can't restart a worker (no cluster.workers[].restart, etc. You're basically just stuck with a dead process. This almost certainly has to do with the amount of communication we're throwing at the Daemon, but we really need a way to address this.

-Cosmetic - Movement Page Display of results

Just noticed on movement page, the result header is missing Tx-Id so the results are all shifted left

I removed

.col-xs-12.col-md-12(style="margin-bottom: 5%")
table#alerts-table.table.table-striped.table-bordered
thead
th timestamp
th.d-none txid
th amount

and added

 .col-xs-12.col-md-12(style="margin-bottom: 5%")
      .panel.panel-default
        .panel-heading
          strong= t('movement.latest')
        table#alerts-table.table.table-bordered.table-striped
          thead
            tr
              th.text-center= t('movement.timestamp')
              th.hidden-xs.text-center= t('movement.txid')
              th.text-center= t('movement.amount_coin',{coin : settings.symbol})
          tbody.text-center
  .footer-padding

Not sure if your code is intentional or not just thought i would mention it, spacing and tables match all other pages except network gonna look at that now.

When i enable lengthChange the dropdown shows but the header isn't like masternodes

image
image

First image does not have a header box like 2nd image, code could be wrong still working on it

Merge with iquidus master and begin PR merges

Right now we've fallen behind on maintaining iquidus, I'm merging uaktags fork with iquidus master, make sure that holds and start accepting the PRs.

Uaktags had a few features:
-Logger for better logging
-i18n for internationalization

Test Needed - Load Balance CoinDaemons / RoundRobin CoinDaemons

So one thing that I was thinking of, which has nothing to do with the code/project of the explorer, but I wonder how stability would be handled if there were multiple coin daemons that the workers could communicate with.

The thought process would be to either extend the settings.json to have multiple wallets, with an order of priority setup. Then the users can either set multiple guys and we'll just go in order as workers are being created (roundrobin) and use each daemon. Alternatively, test with having a loadbalancer in the mix to route traffic to a wallet. This would be perfect for those that are on public webhosts that offer such functionality (like ionos).

Error with connect to rpc

cd /home/ubuntu/explorer && /home/ubuntu/.nvm/src/node-v6.17.1/node scripts/sync.js index update
script launched with pid: 10289
Update Stats Completed.
/home/ubuntu/explorer/lib/database.js:797
lib.syncLoop(block.tx.length, function (subloop) {
^

TypeError: Cannot read property 'length' of undefined
at /home/ubuntu/explorer/lib/database.js:797:36
at Request._callback (/home/ubuntu/explorer/lib/explorer.js:122:14)
at Request.self.callback (/home/ubuntu/explorer/node_modules/request/request.js:185:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request. (/home/ubuntu/explorer/node_modules/request/request.js:1161:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage. (/home/ubuntu/explorer/node_modules/request/request.js:1083:12)
at IncomingMessage.g (events.js:292:16)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:978:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)

Soon will separate Sync into separate app from "Frontend"

Currently Iquidus Explorer is a all-in-one package: The frontend nodeJS Web App that people can view to explore the BlockChain, and a backend Sync tool which does all the heavy lifting. With the enhancements of clustering (both via cpu and the possibility of using multiple systems) there's a need now to separate the two. The backend, with the introduction and soon deprecation of "use_rpc", we no longer need the explorer to be visible to the backends to do our syncing. So this opens up numerous possibilities like Multi-Coin functionality as well as building better, more diverse applications for the front end to function and grow.

A few benefits of removing the Sync from the Frontend:

  • No longer does the frontend need to use as many workers to stay alive. The sync never hits the simple express app, so more resources are dedicated to visitors of the site than being used for the syncing operation.
  • Syncing is now exponentially faster. Again, we're not adding an additional hop to the mix, we're going directly to the daemon and moving on.
  • Frontend applications can be coded out of any language without needing the old express app running. Some proof of concepts will be posted soon.

npm start not working.

/explorer# npm start

[email protected] start /home/explorer
node --stack-size=10000 ./bin/cluster

Starting cluster with pid: 25685
(node:25759) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(node:25753) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(node:25734) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(node:25709) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
events.js:174
throw er; // Unhandled 'error' event
^

Error: getaddrinfo ENOTFOUND 127.0.0.1:3001
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
Emitted 'error' event at:
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1458:12)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:17)

versions :
Mongod : db version v4.2.1
NodeJS v10.17.0

Masternodes / Network

Masternodes and network do not show on the pages, the cron runs but no data parsed

image
image
image

I know this WIP just trying to iron out some issues before our coin launch, we really like the modifications you have done.

Also the icons are really close to the data in the blocks see above image were maternodes is null the icon is right next to null no space same as supply and diff ect in the blocks along the top.

Start work on a coin object, much like exchanges

Each coin is not created equal, some have their own accepted commands, some are masternodes, etc. This should be the coins job to figure out, not the explorer.

#57 and #58 will remove the old json approach I had tested before, in favor of a cleaner way to do this (hopefully)

cluster - different block values

622526: 16645814a60898b9f4717d18f57af8110d66a02f189ecd8ee4529ff6a1ee46ea
update_tx_db finished. Updating stats.Last to set 622526
worker 10602 died
There are still 0 workers
Updating Richlist - Recieved
Updating Richlist - Balance
Getting Stats
Updating CronJob_Run
root@explorer:~/explorerV3# elicoin-cli getblockcount
623700
root@explorer:~/explorerV3# /usr/bin/nodejs scripts/sync.js index check 2>&1 | tee sync-logV3_1.txt
script launched with pid: 12437
(node:12437) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
Please wait, generating a list of blocks.
Done, moving on to checking what blocks are in the DB.
There are 606966 known blocks
Update Stats Completed.
/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/utils.js:132
      throw err;
      ^

TypeError: Cannot read property 'length' of undefined
    at clusterStart (/root/explorerV3/scripts/sync.js:143:56)
    at /root/explorerV3/scripts/sync.js:324:13
    at /root/explorerV3/lib/database.js:771:20
    at callback (/root/explorerV3/node_modules/mongoose/lib/query.js:4015:9)
    at /root/explorerV3/node_modules/mongoose/lib/query.js:4249:12
    at result (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/utils.js:410:17)
    at session.endSession (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/utils.js:398:11)
    at ClientSession.endSession (/root/explorerV3/node_modules/mongoose/node_modules/mongodb-core/lib/sessions.js:134:41)
    at executeCallback (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/utils.js:395:17)
    at updateCallback (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/operations/collection_ops.js:1413:3)
    at updateDocuments (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/operations/collection_ops.js:1502:62)
    at handleCallback (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/utils.js:128:55)
    at coll.s.topology.update (/root/explorerV3/node_modules/mongoose/node_modules/mongodb/lib/operations/collection_ops.js:1467:5)
    at /root/explorerV3/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:397:18
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickCallback (internal/process/next_tick.js:181:9)
root@explorer:~/explorerV3#

stats.Last is 622526
real last is 623700
checking is 606966 Update Stats Completed - but that's not true

Balance wallets, Coin Supply, (on the web) also have incorrect values

Phantom Masternodes - Question

Hi,

I have a question regarding api/getpeerinfo and api/gethashinfo

I am trying to block external calls to these to api elements and only allow localhost and server and i don't have Nginx installed so i have been trying to block them via apache but with no luck.

Do you have any suggestions on how to do this i have used in apache2.conf and 000.default.conf

<Location /api/getpeerinfo>
Deny from all
Allow from 127.0.0.1
Allow from server ip

does not seem to work from what i can tell, using apache2 2.4

Just wondered if it was possible, i know you can do it with Nginx but i would need to reset a lot of things to get it to install correctly, just hoping not too as i use SSL.

Cannot read property 'length' of undefined

    at /home/ubuntu/.explorer/lib/database.js:831:78
    at Request._callback (/home/ubuntu/.explorer/lib/explorer.js:223:16)
    at Request.self.callback (/home/ubuntu/.explorer/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/home/ubuntu/.explorer/node_modules/request/request.js:1161:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (/home/ubuntu/.explorer/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)

This happens while syncing

Empty Search

I have noticed if you press search with nothing in the box you get a page isn't working and the address bar showing

/block/[object%20Object]
Normally it would show an error text saying no results found i am assuming this from translation should kick in error": "Error! - {{error}}
Unmodified explorer is - "ex_search_error": "Search found no results for: ",

cluster - New workers aren't being generated.

clean installation of Debian 9
node 8.16.0
npm 6.4.1
mongod 4.0.1
clean installation - git -b cluster-sync (last)
coin: Elicoin

After starting reindex and after that update started running but probably (for the first time) from 10000 blocks synchronization stopped with announcement There are still 0 workers.

log selection how workers disappear:

script launched with pid: 23047
(node:23047) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
Update Stats Completed.
Workers needed: 60606. NumThreads: 4. BlocksToGet 606059. Per Worker: 10 624904 18845
There are 4 workers
...............
18883: 9319eb43ccc25654b63a14e8cfa9513d535c705935958037f0510bf80d3c4ff2
update_tx_db finished. Updating stats.Last to set 18883
worker 23079 died
There are still 3 workers
...............
22543: f6d5fc59a96f6ad0af888e225397821f60ab34b3b498b98229a5044756f2bce3
update_tx_db finished. Updating stats.Last to set 22551
worker 28504 died
There are still 2 workers
There are 60235 workers still needed
...............
scriptPubKey: 
     { asm: 'OP_DUP OP_HASH160 08e6ccc23513: 3c1cce2bd5001e219253f27b7212aae2f2dec7f4d8197cef31c278ad1bfd70bc
worker 29937 died
There are still 1 workers
There are 60139 workers still needed
update_tx_db finished. Updating stats.Last to set 23513
worker 29965 died
There are still 1 workers
There are 60138 workers still needed
...............
27243: 1a21d8a3355d15fdb78ddca026eda816af4849c7b98f14d6ec82fcc97544b776
update_tx_db finished. Updating stats.Last to set 27246
worker 3326 died
There are still 0 workers
Updating Richlist - Recieved
Updating Richlist - Balance
Getting Stats
Updating CronJob_Run

I just cant get this to work. What node versions are you using?

I have a few different versions of the iquidus explorer working successfully but i cannot get this version to run. I really want to use this one since @uaktags keeps updating and it looks solid. Id love to know what node, npm, linux, and mongo versions you are running just so i can rule some stuff out.

Thanks!

Support for Coingecko / Coinmarketcap / CryptoCompare?

uaktags/iquidus-explorer-exchanges#3

So it was brought up/asked about making a market integration for these coin trackers. The hesitation I have comes from the fact that these aren't markets, so they're missing things that need to be shown in a market, and they provide an avg overview rather than the knowledge of what the price is currently.

However, I've already made the explorer allow multiple markets to show, we could in theory change the header widget to being a price ticket from the trackers, and still provide Market functionality with anywhere from 1 to multiple markets.

So the idea currently, discussion is welcomed, to have a setting just like markets, but to be for CMC/CG/CC, and a toggle of display the Enabled-Market or the Enabled-Tracker. The tracker would then provide a JS output of the price as a whole (CoinPage could also use some loving from this info too), and the markets will just keep their functionality.

Coininfo

Coininfo is missing from settings.json - i have added the setting true or false but i think i am missing something for it to show the page

/var/www/vhosts/explorer/views/coininfo.pug:31 29| h5.sub=t('coininfo.coin_supply') 30| .row.info-row > 31| if settings.coininfo.masternodes.enabled 32| .col-md-4 33| h4 #{totalMasternodes} 34| h5.sub=t('coininfo.total_nodes') Cannot read property 'enabled' of undefined

I don't think app.js looks for a toggle or index i will look at previous explorer i used to see if that is the case.

Sorry to keep adding issues, i am trying to fix these i was okay with jade but a lot of things changed and i haven't quite caught up.

Multi-coin support | Separate front from backend

So currently there's two main logic areas:
The Cluster or (app.js)
and
The Sync script.

The Cluster/app.js merely is just the explorer itself that controls the express webapp. However, this also is our linkage point to the backend coin which the Sync script relies on.

The Sync script, currently just a simple "start from Block 1 (or last sync'd block) and go up from there" sends all of its API calls to app.js and that communicates out to the wallet based on settings.json.

There's not much really stopping us from turning this into a multi-coin explorer if a few things are done first.

  1. Remove "last txes" from the index page and instead give a menu/listing of coins we're indexing.
  2. Change calls like /api/gettransaction? to something like /api/btc/gettransaction. Basically add a coin variable to calls.
  3. Remove the sync tool from needing to use app.js at all. In theory we have enough traffic already hitting the webserver, we really don't need more from internal. Also, the webserver itself doesn't necessarily need bitcoin-core/bitcoin-node-api module for much that we can't offload somewhere else.

Number 3 is where things would probably get tricky, but my theory is this:

  1. We're already needing a separate server for the daemon(s) unless you're letting them run on the same system which could lead to performance issues with users. Each daemon should have its own "sync.js application" that uses bitcoin-core (bitcoin-node-api is an express webapp wrapper for bitcoin-core) directly. This removes 1 additional request query from happening and would hopefully speed things up.
  2. Each sync.js application therefore updates the mongodb which our frontend will read and display data from.

to be continued.

Testing for cluster

While looking at the idea of #13, I started wondering, if we have a separate sync.js application, would it be faster to communicate via cli vs TCP/RPC. Keep the sync and daemon local to eachother, only have 1 connection outbound to the mongodb.

To test, I'm going to try doing a timed reindex of Vulc for 10minutes say 3x each. So 3x with RPC to localhost daemon, 3x RPC to a remote server on a LAN, and 3x with local cli. The goal is to see if we'll get any performance improvement.

Swap cluster for PM2

I have a goal of removing cluster module and replace it with PM2. I've found it to be much easier to work with, plus i hate the use of .pids. Just let a Process Manager deal with everything.

Cluster - ClusterWorkers on fresh db

clean installation of Debian 9
node 8.16.0
npm 6.4.1
mongod 4.0.1
clean installation - git -b cluster-sync (last)
coin: Elicoin

I don't know if you tested the launch of a new database. When you first run npm , each worker creates records in db (created only once).

I could not always start the index update with the result

Update Stats Completed.
0

Sync Issue TX not found

I am using master branch last commit july 2019 and latest nodjs and mongodb but for some reason when i try to sync the explorer with the wallet i get the following error.

tx not found: 7c8db41e3384232648be8d833f30603dd30aa208811e0b93a0f7d96af32ff626

and output from explorer is

GET /api/getrawtransaction?txid=7c8db41e3384232648be8d833f30603dd30aa208811e0b93a0f7d96af32ff626&decrypt=1 200 2.853 ms - 39
{
name: 'SyntaxError',
message: 'Duplicate key "hex"',
at: 2016,
text: '[{"result":{"hex":"0100000001fa686755504a0dbbe8cac35e3f033e47b3d64f293dee0e64899599e175ab546a020000004847304402207f7461039c2cb41aa93abaf6968e46debd0957755b5ff6ff787206c1883272760220296f953d16beee27d809c50ab7922e8ec19a8c816127631ea37416ca18714fef01ffffffff0400000000000000000040c2ad74610100002321024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28ac4034371d180100002321024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28ac008e7657490000001976a91402d4e232808e04af604d990c6be0693be673fddb88ac00000000","txid":"7cbc2a2e4cb204c227048e9ecfc742259b618ecc11edfd04b7b06b59c10b3e5a","version":1,"size":254,"locktime":0,"vin":[{"txid":"6a54ab75e1999589640eee3d294fd6b3473e033f5ec3cae8bb0d4a50556768fa","vout":2,"scriptSig":{"asm":"304402207f7461039c2cb41aa93abaf6968e46debd0957755b5ff6ff787206c1883272760220296f953d16beee27d809c50ab7922e8ec19a8c816127631ea37416ca18714fef01","hex":"47304402207f7461039c2cb41aa93abaf6968e46debd0957755b5ff6ff787206c1883272760220296f953d16beee27d809c50ab7922e8ec19a8c816127631ea37416ca18714fef01"},"sequence":4294967295}],"vout":[{"value":0.00,"n":0,"scriptPubKey":{"asm":"","hex":"","type":"nonstandard"}},{"value":15180.81,"n":1,"scriptPubKey":{"asm":"024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28 OP_CHECKSIG","hex":"21024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28ac","reqSigs":1,"type":"pubkey","addresses":["TSvM6H7tmdQnqL6bJMc1YAXskCtESeuWkn"]}},{"value":12030.81,"n":2,"scriptPubKey":{"asm":"024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28 OP_CHECKSIG","hex":"21024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28ac","reqSigs":1,"type":"pubkey","addresses":["TSvM6H7tmdQnqL6bJMc1YAXskCtESeuWkn"]}},{"value":3150.00,"n":3,"scriptPubKey":{"asm":"OP_DUP OP_HASH160 02d4e232808e04af604d990c6be0693be673fddb OP_EQUALVERIFY OP_CHECKSIG","hex":"76a91402d4e232808e04af604d990c6be0693be673fddb88ac","reqSigs":1,"type":"pubkeyhash","addresses":["TAEBNrSqcHzpBBzvhUxW6ENd9HW8zZ37gx"]}}],"hex":"0100000001fa686755504a0dbbe8cac35e3f033e47b3d64f293dee0e64899599e175ab546a020000004847304402207f7461039c2cb41aa93abaf6968e46debd0957755b5ff6ff787206c1883272760220296f953d16beee27d809c50ab7922e8ec19a8c816127631ea37416ca18714fef01ffffffff0400000000000000000040c2ad74610100002321024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28ac4034371d180100002321024741fb6295715085a4b0d93536f564cc922ad2a0663cf65c136d06dc4b2b2d28ac008e7657490000001976a91402d4e232808e04af604d990c6be0693be673fddb88ac00000000","blockhash":"68b85bb9eb276c542ab516c3a7ebec4a3fe65846b0b2668a3a96198c79c7234e","confirmations":51759,"time":1574971263,"blocktime":1574971263},"error":null,"id":"1579806226047-0"}]\n'

I know in a previous issue this was mentioned but unsure if it was fixed, i don't have the time issue as it's only in the source code once.

Any help with is is appreciated, i am using master as it has masternode page, seems other branches do not.

I have noticed that decrypt=1 on the api url generates an error check console not sure if that is the issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.