GithubHelp home page GithubHelp logo

cityofzion / dora Goto Github PK

View Code? Open in Web Editor NEW
11.0 9.0 9.0 26.15 MB

Home Page: https://dora.coz.io/

HTML 0.39% CSS 17.16% TypeScript 69.22% JavaScript 0.13% SCSS 13.10%
react typescript redux-thunk blockchain-explorer blockchain neo

dora's Introduction

dora

React / TypeScript based block explorer for the NEO blockchain

dora is built on top of a new cross chain backend service, documentation for which can be found here and should be referenced for all contributors and future development.

Local development

npm run start Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

Generating static documentation

Static documentation automatically gets parsed and generated on the client side based on the contents of /src/documentation/api.yaml in the develop branch built on top of swagger-ui-dist

Deployment to Develop and Production Environments

Merges made to the develop branch will automatically build and deploy to https://dora-dev.coz.io/ while updates to master will deploy https://dora.coz.io/

dora's People

Contributors

aldo-maciel avatar comountainclimber avatar dependabot[bot] avatar endkeycoder avatar habibkarim avatar hal0x2328 avatar hecate2 avatar ixje avatar jplippi avatar leonardodizconde avatar lllwvlvwlll avatar lock9 avatar lopescode avatar melanke avatar raulduartep avatar skunkpirates42 avatar stevenkhong avatar thacryba avatar uudens avatar vincentgeneste avatar yumiuehara avatar zidious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dora's Issues

Potential block "time" issue

It appears as though there are repeated block times on the details page =

"It shows 05:07:00 for me for blocks 4,541,483 through 4,541,492"

Neoscan Marketing Release Discussion

This product will be the first encounter with the new branding. It would be good to have a banner at the very least. We should also consider an article describing the core feature. I also believe we will need some explanation for the change to neoscan.

@deanragnarok do you have any thoughts?

Block Sync Discussion

@hal0x2328 is working on chain sync checkout; This discussion issue will be used to track the progress and debugging of that initiative.

[Feat] Cross-Chain Support Views and "Helpers"

When adding cross chain support, there are a number of helpers that can be implemented to make exploration easier

Examples:

  • When searching for an address, if it resolves on multiple chains, display that to the user

[Feat] Neo3 API enhancements

This feature covers a review of the enhancements to the neo3 api as well as improvements to accommodate architectural changes made during the neo2 development process as well as changes made to the neo3 platform.

Design embelishments to extend neo branding

I would like to use this issue to discuss some design embelishments which give the explorer a bit more of a Neo feel without diverging too much from our awesome branding. The neo team is currently discussing how to define a common feel within the ecosystem while allowing the communities to retain their distinct branding. I would prefer that we are the ones proposing changes instead of waiting for them to try to impose them.

@deanragnarok @comountainclimber

API Hosting

This task will cover the transition of the API to hosting on aws under the coz.io domain.

The planned path pattern is as follows:
dora.coz.io/api/v2/{{blockchain}}/{{network}}/{{method}}

Example:
dora.coz.io/api/v2/neo2/mainnet/get_invocation_stats

Indexer exits randomly with no error

During indexing of blocks using the DynamoDBPublisher plugin, neo-cli will randomly exit, usually after several hours of uptime. There are no error messages printed on STDOUT/STDERR and the exit code is zero. Trying to determine if it is a .NET/C# issue or a system resources issue.

Transactions list page filtering mechanics / UI elements

Dora should allow users to filter data. This filter should be present in the transaction list and in the search results.

The filter UI elements will differ depending on the page.

The filter on the search page:
image

The filter on the transaction list:
image

We also need to update the API to support this filtering. I (@lock9) don't think we need to add Neo Legacy specific filters (transaction type).

README.md

It would probably be better to have something other than the default create react app README.md for this repo:

  • Includes details on CI confguration
  • Details on eslint / prettier conventions
  • Explanation of "what it does"

Indexer contract count doesn't match db snapshot contract count

The contract counts between the indexer's memory and the LevelDB snapshot get further out of sync as block height increases. For example as of block 1536922, the snapshot has 2168 contracts stored and the indexer's in-memory contract array has 2189. It may be that the indexer is picking up and adding contracts where the deployment failed for some reason.

Home page interactive chart

This epic includes issues related to the home screen dashboard/chart.
There are 2 charts combined, using the same data. One is a bar chart (purple), containing range data (smaller / bigger blocks), and the other, is a line chart, with the average amount of transactions on those blocks. By default, each data point represents 10 blocks. This issue does not include the final touches on the design, like shadows or the gradient in the column, but other aspects should be 'identical' (purple rounded columns)

100 datapoints representing 10 blocks. The Y-axis is represented by a rounded column, which displays the smallest and bigger block sizes (transactions).
Example: If the smaller blocks contain 0 transactions, and the bigger 4, the column will start on 4 and end on the 0.

Additional features:

Tooltip: when hovering over the chart, it is possible to see the value represented by the column (smaller block, bigger block, average transactions in that interval, and the block interval that it is covering. Note: It is not possible to follow the design in details
Example (texts to be updated):

  • Block #923,232 - 242
  • Smaller block: '0' (empty block)
  • Biggest block: '20'
  • Average block size: 4.5
    image

Zoom:
It is possible to change the zoom in the chart. This changes the number of blocks per data point. There are 3 zoom levels: 100 blocks per data point, 10 blocks per data point, and 3 blocks per data point. This will show data about the latest 100.000, 1000, and 300 blocks respectively.
The values at the axis and the title must be updated to match the new interval.
image

TPS Counter:
Below the chart there is an informative box that shows the total number of transactions in that interval, and the TPS (transactions per second). The TPS is calculated by dividing the sum of total transactions in the interval, by the seconds in the interval. If this value is not provided by the API, we can assume that each block takes 15 seconds to be formed.
image

API Endpoint:
We need an API to get this information.

Please view the attached issues (make sure you are using ZenHub extension)

Light / Dark themes

Implementation of SCSS and redux mechanics to implement and store theme options (see neo3 preview explorer for an example)

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.