---
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| | |
| 1a | Fork EthVM (recommended) | $35,000 | 250-350hrs |
| ~~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**
