Giter Club home page Giter Club logo

explorer's People

Contributors

mhuggins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

tanitall haymac

explorer's Issues

Server caches blocks/transactions responses

Not sure if this is an issue with the actual HTML response being cached or the graphql results getting stuck in memory somehow. This only happens when the server generates the HTML for either the /blocks or /transactions route, not when it is client rendered (after first hitting the home page, for example).

Remove block hash "0x" prefix

Some block hashes are being recorded with a "0x" prefix. To clean this up, we'll need to:

  • Update the blockProcessor to call normalizeHex on the hash.
  • Create a script to update DB records:
    • blocks table's hash column
    • transactions table's blockhash column

Decode scripts

Need to convert the long encoded string for invocation script, contract code, etc. into the actual byte code. This will need to work for:

  • the invocation & verification scripts on a block, and
  • the invocation & verification scripts on a transaction

Prevent repetitive sync logging

There are a ton of these messages being logged daily:

Waiting for new blocks...
Waiting for blocks to process before fetching...

They are eating up the log volume limit for the free plan, and it's not really worth it to upgrade the plan right now since it's another out of pocket expense. Prefer to not log the same message twice in a row if we're just sitting in the same state during syncing.

Separate DB migrations from web server & sync app

I'm currently just calling sequelize.sync() when the app starts, which is not ideal. This could run into both apps trying to update the DB structure, for example, and for more extreme DB changes, this won't work long-term.

Mobile layout

Make it look nice across desktop, mobile, and tablet.

  • Container with rows/columns
  • Condensed navbar links
  • Replace tables with flexbox & hide long text with ellipses
  • Page titles are too big & need ellipses

Can't use back button after successful search

This is due to the /search/:term route being added to the router history before navigating to the actual block/transaction/address. Trying to hit the back button leads back to the search route, which then forwards the user to the result again.

Add meta keywords & description

Ideally, this would be new withMetaKeyword & withMetaDescription HOCs, or perhaps a single withMeta HOC that could be a bit more reusable. This could/should behave similarly to the withTitle HOC that already exists in order to support server rendering.

Home page

It's empty, here are some ideas:

  • Interesting charts about blocks & transactions (see etherscan charts).
  • Recent blocks & transactions.
  • NEO/GAS price chart.

Font/SVG icons

Need some icons throughout the site:

  • Navbar menu icon
  • Footer (blog & twitter link)
  • Transaction type
  • Transaction vin/vout arrows

Stylize vin/vout data

Need to show where the assets came from and where they went to in a legible manner. This might depend on creating a new vins table that includes the full referenced vout data. Alternatively, could convert vout data column to JSONB and add unique indexes for querying.

Asset fetch for displaying name/precious is limited for pagination

Although pagination isn't implemented yet, I have a limit added on all list fetches. When fetching the list of addresses or transactions, the list of assets is fetches in order to display the asset name and precision properly. However, the assets endpoint is limited as well, meaning that only the first 20 asset names/precisions are fetched. This would cause an error if the transaction or address includes an asset beyond the 20th record.

To fix this, the asset itself will need to be embedded in the response rather than the asset ID. This will require a change to the "asset" on the vin/vout GraphQL schemas.

Move DB to amazon

Heroku wants $50/month for over 10 million records, which is absolute bullshit.

Pagination

Pagination needs to be added for blocks and transactions.

Parallelize RPC fetches in sync app

Split the queue into 2 queues:

  1. fetch queue w/ concurrency
  2. persist queue w/o concurrency

After a fetch is successfully made by the first queue, it must enqueue the block onto the second queue.

HTTPS

Get an SSL cert and only use SSL for web requests.

Testnet

Need to create a testnet app. Maybe at testnet.explorer.neoverse.io?

Switch H1 & H2 tags

Page title should be H2, while each page section should be H1. Need to adjust styles.

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.