Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add explorer project #416

Merged
merged 1 commit into from
Feb 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions explorer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Sui Explorer
A chain explorer for the Sui network, similiar in functionality to [Etherscan](https://etherscan.io/) or [Solana Explorer](https://explorer.solana.com/).

## Proposed Basic Architecture

This is described in order of how data flows, from the source network to the end usder.

* We get raw data from the network using the in-progress "bulk sync" API

This raw data is dumped into a document store / noSQL kind of DB (which one not decided yet).

Plenty of the Cosmos explorers use this step, citing how much easier it makes syncing history & recovering from periods of being offline. Access to untouched historical data means that any errors in converting the data into relational table form can be corrected later.

* A sync process runs to move new data from this raw cache into a more structured, relational database.

This DB is PostgreSQL, unless there's a strong argument for using something else presented.

We index this database to optimize common queries - "all transactions for an address", "objects owned by address", etc.

* The HTTP api is implemented as a Rust webserver, talks to the relational database & encodes query results as JSON

* Browser frontend is a standard React app, powered by the HTTP api


## Sub-Projects

Front-end code goes in `client` folder,

All back-end pieces (historical data store, relational DB, & HTTP layer) go in `server` sub-folders.
3 changes: 3 additions & 0 deletions explorer/client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Sui Explorer Client

The front-end project goes here, along with a description of how to build it.
3 changes: 3 additions & 0 deletions explorer/server/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Sui Explorer Server

All pieces of the explorer that run on a server (history store, relational DB, HTTP layer) will have subprojects in here.