--- 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** ![RaidGuild Emblem](https://i.imgur.com/NTP6FC5.png)