---
# System prepended metadata

title: IPLD Block Explorer - Proposal
tags: [Raid]

---

---
tags: Raid
---

# IPLD Block Explorer - Proposal

## Context
Despite the foundation and ethos of decentralization within the Ethereum network, many user-facing Ethereum applications depend on centralized services -- such as Etherscan and Infura -- to deliver relevant data and contextual information to users. These centralized services follow traditional web2 models where users either pay money for upfront subscriptions to artificially-gated data/features (e.g., Infura, Blocknative) or spend attention & personal info in exchange for "free" services (e.g., Etherscan).

There is a general need to decrease the ecosystem's reliance on these centralized services and enable protocols, applications, and users to access Ethereum data in a p2p, privacy-preserving, verifiable, and scalable manner.

Vulcanize has developed several technologies to help power this new paradigm.

## Project Goals
With this project, Vulcanize looks to create a functioning decentralized block explorer, with the following objectives:

1. Drive the development of the end-to-end Ethereum IPLD data access stack
2. Establish a foundation on top of which to make subsequent improvements and optimizations of that stack
3. Demonstrate the viability of that stack to application developers
4. Provide a reference implementation for application developers to work from when creating their own applications
5. Seed an ecosystem of decentralized data access and developer tools

## Project Components
1. Browser Watcher
    - stores data in a browser-level RDBMS
    - queries IPLD postgraphile and can share ABIs, CARs and slices via P2P communication
    - parses IPLD-indexed state via an ABI and serves data to frontend via browser postMessage interface

2. Watcher Service
    - is initialized by a manifest and ABI (though ABI is not necessarily needed directly by the watcher node. It's meant to be shared with the browser watchers via P2P)
    - can share ABI, CARs and slices via P2P communication
    - re-serves state via postgraphile to browser watchers

3. Block Explorer Frontend
    - includes all agreed-upon views

> See [this diagram](https://miro.com/app/board/o9J_leWWrsA=/) for an overview of our current architectural approach and user-facing application components

## Key Assumptions
- Vulcanize stands up enough seeded watchers and indexers to allow the backend to track chain HEAD
- Forking the ethVM front end (see linked budget spreadsheet for alternative quote)
- Transformations occur outside of the watcher and within the browser

## Out of Scope
* documentation on decentralized data access and developer tools
* p2p payment market-making
* mainnet-level performance

## Signoff Criteria
- Sign Off Process:
    - block explorer stack stood up on a testnet and the frontend is functional
    - nodes are tested in [TestGround](https://docs.testground.ai/) together to verify that data is propagated successfully. Benchmarks will be provided for informational use at this point, since peers will be direct-dialing specific nodes to get data in production.


- Sign Off Criteria:
    - frontend successfully tracks the head of the chain on testnet
    - benchmark of some sort for success of P2P network (successfully tracks BASED's token contract minimally, and a stretch/performance goal would be UNI)

## Structure of Milestones
1. Browser Frontend
2. Watchers pure GraphQL interfaces
3. P2P functionality
    - graphQL over webRTC that direct-dials peer nodes in production
    - experimental P2P functionality that basically extends the existing Kitsunet implementation

### Budget for Milestones



| Milestone | Description | Budget | Hours range |
| -------- | -------- | -------- | -------- |
| 1   | Block Explorer Frontend|      |     |
| &nbsp; 1a     | Fork EthVM (recommended)     | $35,000     |  250-350hrs    |
| &nbsp; ~~1b~~     | ~~Custom~~     | ~~$60,000~~     |     |
| 2    | Watchers (browser and node)     | $25,500     | 170-255hrs    |
| 3     | P2P Comms for Watchers     | $11,600     | 85-115hrs    |
    
**Total Budget (using EthVM):** $72,100

> See our [budgeting spreadsheet](https://docs.google.com/spreadsheets/d/1DypPzOmTxsQfMDknCXjVeFelIEKNi5zqccOnFE0q6f0/edit) for more detail/context

### Payment Schedule

**Start Date:** TBD - approximately January 2021

**Expectation:** Milestones 1 and possibly 2 should be delivered before **Q2 2021**

Half of each [milestone](#Structure-of-Milestones)'s total budget is due at the beginning of work. The second half is due upon delivery of the milestone in accordance with the [signoff criteria](#Signoff-Criteria).

Work on Milestones 1 and 2 will commence at p    roject kickoff. Milestone 3 will commence upon completion of Milestone 2.

1/2 Milestone 1: $17,500
1/2 Milestone 2: $12,750

**Total Due at Kickoff: $30,250**








![RaidGuild Emblem](https://i.imgur.com/NTP6FC5.png)