Rococo Testnet Explorer and PLO dashboard
Background
Rococo, as a testnet, is used to test the working method and connection process of Parachain. Up to now, Polkadot has released the access method and some interfaces for test, and the projects are connecting in an orderly manner as planned. As an experimental base for officially accessing Kusama/Polkadot network, we believe the states of Rococo network are important for users.
As a high-precision Web3 explorer that aggregates the Substrate ecological network, Subscan has integrated with 11 main nets and 8 test nets within the Polkadot ecosystem and has a strong technical accumulation for supporting new networks and Parachain features. One of Subscan's current goal is to provide a full range of explorer support for Parachain features. Based on our experience in the last 2 years, we are very confident that we can complete this task.
In order to achieve this, we will provide a program with the complete Parachain support, which can be summarized as follows:
- Explorer support for Rococo test net
- PLO Dashboard
- Open API, data analysis charts, and other data support
- Data interaction between Parachain and relay chain
These functions will be applied to Rococo network first and will be gradually applied to Kusama and Polkadot networks in conjunction with the PLO plan in the future.
According to the development process of the Parachain features, we divided this work into 2 Phases.
Features List
**Phase 1: **
Part of the work mentioned in this application has been completed or is in progress. The work of Phase 1 is expected to be completed before** April 15**.
Support Rococo network:
- Chain data query and display, such as blocks, extrinsics, events, and accounts
- UI costomization
- Data analysis: charts with visualize data presentation
- Compatibilities with Rococo runtime upgrades
- Open API
PLO dashboard:
- Candidate project introduction: including project introduction, social media, token issuance, para-drop rules, and other off-chain data.
- Auction rules and procedures: introduction of candle auction, the status of each stage of the auction, start/end time, etc.
- Auction details: display candidate project, Crowdloan details, current rankings, etc. The data will keeps up-to-date in real-time.
- Tools for participating in auctions and Crowdloan: Users can submit on-chain transactions in this tool by polkadot.js extension to participate in Crowdloan of Parachain.
- Auction result: Record the voting snapshot, winner, slot number/time, etc. of each block in the ending period.
Phase 2: (In Plan)
Currently, this part temporarily lacks the prerequisites for development, so the estimated development time is temporarily unavailable. We will evaluate it after the completion of phase 1 work.
The detailed work plan of Phase 1
Product and UI design
- Logic research and user requirement research on Parachain.
- Decomposition and arrangement of Parachain related functions.
- Product requirement documents and interactive prototype diagrams.
- UI design.
Frontend
- Add rococo network config, including:
UI assets
SS58 address format
metadata
token
etc. - Add PLO dashboard route module:
show info on the corresponding sub page
intros of the candidate projects
intros of the auction
the auction progress and result - Import @polkadot.js packages:
build tools to participate in auction and Crowdloan
submit extrinsics on chains and show executed result
Backend
- Support runtime Slot module. (https://github.com/paritytech/polkadot/blob/400ecc581a31a653a9e00d4057c11114d69906db/runtime/common/src/slots.rs)
Store storage, event, extrinsic, etc. (auction related data) into the relational database. - Support runtime Crowdloan module (https://github.com/paritytech/polkadot/blob/400ecc581a31a653a9e00d4057c11114d69906db/runtime/common/src/crowdloan.rs)
- Obtain the storage, event, and extrinsic data of Parachain related data (such as Crowdloan, contribution, withdraw) from blockchain and save to a relational database.
- Provide Parchain, auction, Crowdloan related data to the frontend via HTTP APIs
API documentation.
DevOps
- Compile Polkadot network node including Slot and Crowdloan module for development and production environments
- Continuous integration and deployment of Rococo network backing:
https://rococo.subscan.io/
- Run a test relay chain and use it to simulate the auction process - Black-box and white-box monitoring of Subscan Rococo API endpoint
Test
- Unit tests and integration tests for all modules
- Test the entire PLO process through the test relay chain - UI complies with design standards and product requirements
- UX interaction tests
Cost of Phase1
Engineering costs:
- 1 product manager * 2.5 weeks($1500 per * week)
- 1 designer * 1.5 weeks($1300 per * week)
- Developer: 32 weeks ($1700 per * week)
· Invest 2 back-end developers:
4 weeks for developing and 2 weeks for writing unit tests (sum = 12 weeks)
· Invest in 2 front-end developers:
4 weeks for developing and 2 weeks for writing unit tests (sum = 12 weeks)
· Invest in 1 DevOps engineer
2 weeks for the assistance with other engineers to deploy and test the product and 2 weeks for follow-up occasional maintenance and operations (sum = 4 weeks)
· Invest 1 QA engineer, 4 weeks
Operation and maintenance costs for Rococo network:
Google Cloud Platform - Computing Engine
Google Cloud Platform - Cloud SQL instances
Google Cloud Platform - Operation Suite (Logging and Monitoring)
Misc (Storage, Network Egress, Cloudflare, etc.)
$400 per * month
From January to March 2021:
$400*3=$1200
Total costs: $61300
How to verify Phase 1
- https://rococo.subscan.io/
- Based on Rococo's code, run a relay chain and simulate the auction process, we will invite multiple projects to participate in verifying this function.
- We will post video demonstrations on Youtube.
Comments (4)
Comments (4)
Thank you for sharing this.
A few comments and questions on my side: Costs of phase 1:
-
What is the reason for 8 weeks development costs but 2.5 weeks for product manager?
-
It seems to me the backend efforts are heavier on this phase than the frontend efforts: I’d like to see this balanced in the budget, especially given the dashboard will most likely be integrated to the current Subscan explorer.
-
The price for developers seems a bit high (maybe I am wrong): could you clarify how these devs will be distributing tasks among each other?
-
What DOT rate are you planning to use for submission? It is recommended to use an avg that does not take into account great price fluctuations, usually for a 30 day period.
5. Once this project is developed, the know-how on this can be useful for Kusama and Polkadot interrogations to the dashboard: does this allocation also covers the integration of these chains?
6. Could you mention which tasks from phase 1 are completed? I’d like to discount throw the idea of discounting the price for the completed ones, as they might have been covered by other submissions to the networks.
Regarding operation costs:
1. There is an agreement between Subscan and Polkadot / Kusama regarding maintenance costs: I would like to see the maintenance costs for Rococo included in those submissions instead (maybe half each).
Reporting:
- Video demos seems the right way to go for regular reporting: how often will you be publishing these and could you publish on the motion post in Polkassembly and on the Direction channel?
- I'd like to understand if this will be fully open-sourced as well: there is no mention of this currently.
All in all:
The proposal is good, but seems to lack a bit of granularity to assess the amount of work, maybe this is why I am thinking price is a bit high. As you mentioned, some of the tasks are already up and running: maybe we could discount this from the total price submitted.
I am definitely in favor of this. I think having dashboards from trusted interfaces like Subscan will be critical to protecting users from scams around crowdloans. My main question is, Subscan has so far been a data provider, but this is a change in the service's model where it connects to a wallet and allows users to interact with the chains for which Subscan provides data. I don't know of other block explorers that do this. What is your motivation for this direction and how do you see it impacting maintenance of the core product?
Thank you for sharing this.
A few comments and questions on my side: Costs of phase 1:
What is the reason for 8 weeks development costs but 2.5 weeks for product manager?
It seems to me the backend efforts are heavier on this phase than the frontend efforts: I’d like to see this balanced in the budget, especially given the dashboard will most likely be integrated to the current Subscan explorer.
The price for developers seems a bit high (maybe I am wrong): could you clarify how these devs will be distributing tasks among each other?
What DOT rate are you planning to use for submission? It is recommended to use an avg that does not take into account great price fluctuations, usually for a 30 day period.
5. Once this project is developed, the know-how on this can be useful for Kusama and Polkadot interrogations to the dashboard: does this allocation also covers the integration of these chains?
6. Could you mention which tasks from phase 1 are completed? I’d like to discount throw the idea of discounting the price for the completed ones, as they might have been covered by other submissions to the networks.
Regarding operation costs:
1. There is an agreement between Subscan and Polkadot / Kusama regarding maintenance costs: I would like to see the maintenance costs for Rococo included in those submissions instead (maybe half each).
Reporting:
All in all:
The proposal is good, but seems to lack a bit of granularity to assess the amount of work, maybe this is why I am thinking price is a bit high. As you mentioned, some of the tasks are already up and running: maybe we could discount this from the total price submitted.
I am definitely in favor of this. I think having dashboards from trusted interfaces like Subscan will be critical to protecting users from scams around crowdloans. My main question is, Subscan has so far been a data provider, but this is a change in the service's model where it connects to a wallet and allows users to interact with the chains for which Subscan provides data. I don't know of other block explorers that do this. What is your motivation for this direction and how do you see it impacting maintenance of the core product?