Git Product home page Git Product logo

eth2-beaconchain-explorer's Introduction

Eth2 Beacon Chain Explorer

The explorer provides a comprehensive and easy to use interface for the upcoming Eth2 beacon chain. It makes it easy to view proposed blocks, follow attestations and monitor your staking activity.

Badge Gitter Go Report Card

About

The explorer is built using golang and utilizes a PostgreSQL database for storing and indexing data. In order to avoid the situation we currently have with the Eth1 chain where closed source block explorers dominate the market we decided to make our explorer open source and available for everybody.

Eth 2.0 Testnet Explorers

Prysm beaconcha.in
Lighthouse lighthouse.beaconcha.in

Warning: The explorer is still under heavy active development. More or less everything might change without prior notice and we cannot guarantee any backwards compatibility for now. Once the eth2 ecosystem matures we will be able to provide stronger guarantees about the updatability of the explorer.

Site

Features

  • Bootstrap based and mobile first web interface
  • Fast and robust blockchain indexing engine, able to handle missed, duplicate & forked blocks
  • Index page
    • Auto refresh - Index page data is automatically updated every 15 seconds
    • Basic chain statistics (current epoch, current slot, active validators, pending validators, staked ether)
    • Information on the 20 most recent blocks (epoch, slot, time, proposer, hash, number of attestations, deposits, slahsings and voluntary exits)
  • Epochs page
    • Pageable tabular view of all epochs (epoch, time, blocks, attestations, slashings, exits, finalization status, voting statistics)
  • Blocks page
    • Pageable tabular view of all blocks (epoch, time, proposer, hash, attestations, slashings, exits)
  • Block page
    • Basic block info (epoch, slot, status, time, proposer, root hash, parent hash, state root hash, signature, randao reveal, graffiti, eth1 data)
    • List of attestations included in the block
    • List of deposits included in the block
    • List of LMD GHOST votes
  • Validators page
    • Pageable tabular view of all pending, active and ejected validators
  • Validator page
    • Basic validator info (index, current balance, current effective balance, status, slashed, active since, exited on)
    • Historic balance evolution chart
    • List of proposed and missed blocks
  • Visualizations
    • Live visualization of blocks being added to the blockchain

ToDo

  • Add chain statistic charts
  • Improve design, move away from stock bootstrap 4
  • Use a proper open source charting library
  • Come up with a smarter exporter logic (the current logic is stupid as it simply dumps the contents of the RPC calls into the database without doing any pre-aggregation or cleanups)

Getting started

We currently do not provide any pre-built binaries of the explorer. Docker images are available at https://hub.docker.com/repository/docker/gobitfly/eth2-beaconchain-explorer.

  • Download the latest version of the Prysm beacon chain client and start it with the --archive flag set
  • Wait till the client finishes the initial sync
  • Setup a PostgreSQL DB and import the tables.sql file from the root of this repository
  • Install go version 1.13 or higher
  • Clone the repository and run make all to build the indexer and front-end binaries
  • Copy the config-example.yml file and adapt it to your environment
  • Start the explorer binary and pass the path to the config file as argument
  • To build bootstrap run npm run --prefix ./bootstrap dist-css in project folder.

Developing locally with docker

  • Clone the repository

  • Run docker-compose up to start instances of the following containers eth1, prysm, postgres and golang.

  • Open a new terminal in project directory and run docker run -it --rm --net=host -v $(pwd):/src postgres psql -f /src/tables.sql -d db -h 0.0.0.0 -U postgres to create new tables in the database

  • Wait for the client to finish initial sync, you can check this by looking at logs of prysm instance.

  • Copy the config-example.yml file and adapt it to your environment.
    In your .yml file specify eth1Endpoint as './private/eth1_node/.ethereum/goerli/geth.ipc'. For database information check postgres section in docker-compose.yml file.

  • Connect to golang instance by running docker exec -ti golang bash and run make all

  • Start the explorer binary and pass the path to the config file as argument

    ./bin/explorer --config your_config.yml   
    

Development

Install golint. (see https://github.com/golang/lint)

Commercial usage

The explorer uses Highsoft charts which are not free for commercial and governmental use. If you plan to use the explorer for commercial purposes you currently need to purchase an appropriate HighSoft license. We are planning to switch out the Highsoft chart library with a less restrictive charting library (suggestions are welcome).

eth2-beaconchain-explorer's People

Contributors

alonmuroch avatar bigbadalien avatar buttaa avatar davidcybavo avatar dpdanpittman avatar dwitvliet avatar dylancaponi avatar guybrush avatar haug-den-lucas avatar imnisen avatar jandetlefsen avatar jmesmon avatar justindrake avatar kiriyha avatar madalinah avatar manuelsc avatar mattcee233 avatar maxxor avatar mkinney avatar nicolasochem avatar nivblox avatar olegshmuelov avatar peterbitfly avatar prestonvanloon avatar qix avatar qu0b avatar rggjan avatar stefa2k avatar vahegian avatar zevzek avatar

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.