Giter VIP home page Giter VIP logo

block-explorer's People

Contributors

akinwale avatar dependabot[bot] avatar finer9 avatar kauffj avatar kcseb avatar lbrydocs avatar lyoshenka avatar marcdeb1 avatar nikooo777 avatar preserveddarnell avatar tiger5226 avatar tzarebczan avatar ykris45 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

block-explorer's Issues

Add endpoint to show all LBRY locked up in claims

Add an endpoint + add info to stats page

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Normalization Hardfork - Changes required

Since Block Explorer leverages Chainquery to get it's results, the queries sent to Chainquery must be NFD normalized for accurate comparisons. We need to implement NFD Normalization to normalize the query paramters sent to Chainquery. There will be a new column normalized_name that should be used for normalized comparisons for claim names.

cache supply endpoint daily?

This query takes a few seconds to run - maybe we can cache the results daily?

https://explorer.lbry.io/api/v1/supply

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

A new block explorer

The development of this block explorer is quite firm, we have a stable old-fashioned explorer.
The current project is in php and uses the cakephp framework, particularly indicated for small projects see a comparison

Actual de facto standard for medium-large web apps for the backend is laravel, which also provides integration with main frontend frameworks, including vuejs. Is also good to have websocket instead of ajax for runtime update without page refresh.

I believe that the block explorer is a fundamental service for a cryptocurrency, I think we should have a new explorer: mobile first, super detailed (able to provide statistics even to the most hungry nerd), which exposes api to allow third-party software development, able to offer new services.

Below a list of juicy things to have in a new explorer:

  • More stats about blockchain and its network, lbry upper layer network:
    • chain size / block size / txs in blocks
    • chain difficulty / hashrate
    • top supported content / tip-support stats
    • claims stats
    • blockchain network visualization on map
    • lbry-sdk network visualization on map
    • mining stat / pool hashrate / mining profit
    • lcb price / comparison with other stats
    • {suggest more}
  • More services:
    • Email/telegram alert when blockchain see an input (output) tx to (from) an address in a "watch list" customized by the user [auth zone]
    • broadcast signed tx, useful for users who use a cold wallet (offline) to store lbc
    • address alias, in order to allow identification of pool addresses, explorer addresses etc.. [can be both general alias and user customized alias: auth zone]
    • {suggest more}

I created a repo in which I am developing a new explorer based on laravel, I'm still porting the functionality of the current explorer, but the classic "blockchain" part is ready.
I would like some feedback on what I have already developed, if you like it, if something could be better, if I have to continue or abandon the development, if there is a possibility that the project will be included under github lbryio organization.
Repo link: LBRYEXPLORER
Actually hosted here: lbryexplorer.tech

Show claim information on transaction page

Disable "Open in LBRY" links for claims still in mempool

The recent claims list shows things which are still pending and the link takes you to a "there's nothing at this location" message. Consider turning off links for mempool content and perhaps colour coding them so it's clear that they aren't mined yet.

Remove or replace author

https://d33v4339jhl8k0.cloudfront.net/inline/67942/1635135e12b6508f62cc212081c85985106dc9f1/ea07d100168142940e22d680676649f198bbcfbe/xc_9.png

We show author on claim pages, but this field is not used by the app anymore as it's been replaced by channel. We should remove or replace it with the channel (but the channel is already shown in "published by"

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Create page to show top content and channel claims

Similar to the rich list, have a page which shows claims/channels that have top LBC bid amounts.

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

incorrect incoming tx / amount

Sent you this one a while ago: https://explorer.lbry.io/address/bXikZS1g1jvjV1vSB83nPkaEXGZTKoms4f

Looks like it should only have 1 input from: https://explorer.lbry.io/tx/8694118779e15f97bbc79803a67e1f67528f1f6d0aaa5172bb473774aaa72328?address=bXikZS1g1jvjV1vSB83nPkaEXGZTKoms4f#bXikZS1g1jvjV1vSB83nPkaEXGZTKoms4f because the other one links to this tx: https://explorer.lbry.io/tx/0cb62edff9a3ec4478f0a8b8b57b227142cee626c559f5352a54fb333fec17ca?address=bXikZS1g1jvjV1vSB83nPkaEXGZTKoms4f#bXikZS1g1jvjV1vSB83nPkaEXGZTKoms4f which shows 0 coming from that address.

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

balance incorrect on certain addresses (bU2XUzckfpdEuQNemKvhPT1gexQ3GG3SC2)

https://explorer.lbry.io/address/bU2XUzckfpdEuQNemKvhPT1gexQ3GG3SC2

This balance should be 245K as of 10/20/2018. This is the LBRY hot wallet, ask Grin/Tom/Josh for balance if needed.

Internal Use

Acceptance Criteria

  1. run the script to update balances

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Pay To Public Key Processing is wrong

I think I found a bug while creating the chain query app. The address for p2pk vouts were different for lbrycrd vs blockexplorer.

https://github.com/lbryio/block-explorer/blob/master/src/Shell/BlockShell.php#L1855

We are using an associative array and we are assigning index 1 for the public key. It should be index 0 for the data to hash ( the public key ). This is why all p2pk outputs appear to be using the same address in blockexplorer.

https://explorer.lbry.io/address/bEBcZxhMCjLrgadsX5YupCmcu6D8iWRjpk

It is hashing the OP_CHECKSIG string. So it always gets the same hash hence always the same address.

Also there needs to be a check if the public key is compressed or not. The public key consists of an X and Y value. The compressed key consist of just the X. There are 3 options for the first byte of a public key compressed or not. 2,3, or 4. 2 and 3 are used for compressed public keys.

y2 = x^3+ ax^2 + b
so we need to perform square root to recover y from x. And it turns out that
sqrt(a) = a^(q+1)/4

Now you just have to pick either the positive or negative solution. If the y that you calculated is even, and the first byte of the key is even, then use this value, otherwise, use the negative value which is q-y.

https://bitcointalk.org/index.php?topic=162805

To validate you use the following

http://gobittest.appspot.com/Address

It automatically checks for compression.

Disable viewing of blocked data

Similar to our other apps, the explorer should also abide by the block list. It should not be possible to see blocked claim metadata. This should be done at both the claim and channel level.

Assign Names to "known" LBC addresses

Feature request/idea: Assign names to various known LBC addresses, similar to many explorers where large wallets are labelled, example: binance_hot_wallet, bitfinex_1, or eth_dev wallet so it can be publicly identified. Possibly also as a way to combat fraud and scammers, to label their addresses as possibly malicious accounts.

Genesis address shows balance, should be 0

https://explorer.lbry.io/address/bHW58d37s1hBjj3wPBkn5zpCX3F8ZW3uWf - should say 0.

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Block Time vs Created Time

Created time is when we find out about the transaction. Usually this is from when we read it from the mempool. However, with a full resync of chainquery this would be much sooner. In these cases the block explorer should show block time for both fields. If the gap is more than 1 hour a part make them both the blocktime value.

Add LBC price in BTC (SATS) or ETH (Gwei)

Feature request: Add the price of LBC in BTC (SATS) or ETH (Gwei) to the front page of https://explorer.lbry.io/ beside the price in $.

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Code cleanup

Per @akinwale - The #2 issue should be code cleanup, because I used some dirty shortcuts in some places. - look, you even got #2! lol

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Fix insecure images

On the homepage, there are links served from insecure domains. This makes the padlock in Firefox's URL bar gray with a caution sign.

Here's a function I made for .tech:

function makeImageSourceSecure(url) {
  const originalUrl = new URL(url);

  if (originalUrl.protocol !== "https")
    return `https://${originalUrl.host}${originalUrl.pathname}`;

  return originalUrl.href;
}

CI / CD processes

Need a CI/CD solution for block-explorer. Currently, need to deploy changes manually.

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

incorrect claim opens when using "view" button on tx page

https://explorer.lbry.io/tx/ffc95e511018815157c2a63c1818e16e9c61d8fe5a4fe7545264126e57dc7a39

Shows: https://explorer.lbry.io/claims/145ca931f4478344b2c1f6cd9a8359c00fe90430

Correct claim: ef3dbbed10ec1b72e38f7c712a4242c9995ff9d8

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Add Transaction details

Add details to transaction pages which includes transaction size, script sig details and any data points we have. This should be in an "advanced" (show/hide) view, especially for scritpsig

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Setup instructions

Update README.md with local installation instructions and restoring data from backups.

Add various LBC transaction notifications to users

Feature Idea/suggestion: Add various notifications to users for incoming transactions

If users have a browser tab open on a certain LBC address, have the tab auto generate a notification sound similar to those found on insight block explorers.

Also give the users the ability to "watch" an address similar to etherscan where users can subscribe to transaction activity of certain address(es) via email or other forms, or possibly implement the functionality of users signing up with emails/passwords to contain their own LBC address(es), again similar to etherscan.

Search issues

When I use the search function, I have various issues:

  • Numeric searches seem to be assumed to be a block number search. If I search for a filename that is numeric, the result returned may be a block number or nothing at all (because the block numbers don't go that high?)
  • If there are more than one entry for a filename, no results are returned. I should get multiple results to choose from.
  • If no results are returned for whatever reason, it doesn't tell me there is an error or no results. It just displays the explorer home page.

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Display total block size for the block chain

Like BTC has for theirs at: https://blockchain.info/charts/blocks-size

we should have one at
https://explorer.lbry.io/charts/blocks-size

Internal Use

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Use Chainquery

chainquery ought to make the explorer easier to work with/use and simpler to maintain (if doesn't do that, that is also useful feedback for chainquery).

Total Supply + Circulating supply endpoints + Info on Stats page

Need to add endpoints for total supply and circulating supply. Total supply should be much easier - it's all unspent outputs which I believe is available via lbrycrd.

Circulating supply is a bit trickier. A good starting point is probably to exclude the 3 addresses from: https://lbry.io/faq/credit-policy
But this will need to be updated when we move funds around for security purposes (once a year?). Not sure if any other funds/addresses need to be excluded, will check.

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.