Name of Project: Consensus Visualization Tool
Proposal Category: app-dev
Proposal Type:* rfp
This document outlines Protofire’s (a sub-division of Altoros) proposition on providing a blockchain specialist developer team to build the Consensus Visualization Tool. We believe that we can build a robust solution and contribute with our experience to the Filecoin network community.
Protofire is a team of engineers that helps providers of decentralized protocols, infrastructures and developer platforms accelerate growth of their ecosystems. By providing hands-on coding and contributions, Protofire specializes in supercharging developer adoption and network usage. We ship applications, smart contracts, and developer tools (SDKs/APIs/sample apps), as well as assist you in improving performance/cost of oracles.
Having been interested in Filecoin, our team researched the network to get a deeper understanding of the structure, scalability, and security.
Having experience working with different protocols, networks and as specialists in developing blockchain technologies, we believe that our team qualifies as suitable for delivering the Consensus Visualisation tool.
#Consensus Visualization Tool
The objectives of this proposal is to develop an open-source blockchain consensus visualization tool that demonstrates Filecoin's Expected Consensus process. It must show the main chain and also other forks.
This proposal covers all the deliverables described in the RFP that is available by this link.
Additional deliverables are:
- Open source Github repository with public access
- Hosted application working with Testnet and Mainnet
- The tutorial with demo usage that will be published in the repo.
- Blog post that will be published on Protofire medium account and shared through linkedin, twitter and other platforms
- Updated estimates for milestones 2-4
Below you can find the table describing the milestones schedule, tasks and deliverables that are based on the the requirements stated in RFP.
Milestone | Tasks________________________________ | Deliverables & Outcome | Fund | Effort_____ |
#1 |
- Research, analysis
- Design mockups and final UI. - Endpoints definition - Architecture & infrastructure definition - Validation of scope and roadmap definition - Write backlog tickets |
Deliverables:
Outcomes: Definition of what and how the visual tool accomplishes the objective(s), alongside with a prioritization of them (scope and roadmap). This definition will be made up by the deliverables previously listed, so that the engineering team and stakeholders goals are aligned at the end of the feedback rounds and for the milestones ahead. |
30K | 3 weeks |
#2 |
- Organize sprints of 2 weeks each one
- Frontend
- Backend (if needed)
- Local/Develop and Cloud/Test environments setups - Demos per sprint - Feedback rework Sprint duration may be adapted according to team size and scope; as well as demos & feedback rework sessions. |
Deliverables:
Outcomes: Generate a working implementation that meets the objectives previously defined, and that is approved by stakeholders. |
TBD | 4 weeks (TBD) |
#3 |
- Improve documentation and support information (if needed): README, wikis, tutorials, etc. - Transfer ownership of CI/CD and services that support the architecture to Filecoin (if needed, use free/open source-based service when possible). - Move codebase/repos to Shipyard and adapt to meet Filecoin standards. - Work on feedback |
Deliverables:
Outcomes: Wrap up the project's codebase to add it to the Shipyard so it can be further modified or maintained by a Filecoin developer/community. The blogpost or tutorial may improve the understanding of how the project works and represents the consensus process (ideal to aid new people looking for understanding the consensus process) and, maybe, tell something cool about the development experience to improve community engagement. |
TBD | 2 weeks (TBD) |
#4 | Maintenance and Upgrades during Testnet and Mainnet | Deliverables:
Outcomes: Protofire team will support problems and bugs detected during the agreed period. |
TBD | 2 weeks (TBD) |
TOTAL (Milestone 1) | 30K | 3 weeks | ||
TOTAL (Full project) | TBD | ~11 weeks |
- Code will be hosted in the public Protofire Github repository
- Long term maintenance should be agreed with Filecoin
- We assume that API (Lotus) has all necessary endpoints and is well documented so that the visualization tool can consume the corresponding data and transform it into a graphical representation.
- We recommend starting with sprint 0 for the milestone 1, to define UI mockups and endpoints.
- The frontend and backend will be hosted by Filecoin
The proposed tool will adhere to the acceptance criteria defined here. Before starting the project we will make a detailed document with the acceptance criteria based on the final scope.
Protofire has delivered a network explorer for the Enigma Protocol that is similar to the Consensus Visualization Tool. Enigma Network Explorer demonstrates the Enigma Consensus process handling events and data for workers (nodes), epochs(rounds), tasks and users. Users can follow up on the status and statistical information of the network. This app works with complex architecture processing data from Ethereum and Enigma network.
We built a robust infrastructure behind the Dapp where we process the Ethereum data through building a subgraph, increasing the data access speed to the frontend and creating a backend API (NodeJs) in order to process statistical data and manage complex formulas to handle different events. The complete solution was developed using containers based on docker-compose that allowed for easy deployments on cloud services.
Our engineering team was responsible for the complete development process from business analysis, scope, data schema definition and UI/UX design to the development and QA. The development team focused on building a stable and robust backend while ensuring the strong user experience.
The main page intends to show a quick overview of the network status. All data of the network, progressive chart, Epocs boxes, and tasks are updated in real-time. The user has all the information on the screen and has a one-click access to further details. We have used React, Typescript, web3, material-ui, Apollo, Koajs+hapi, etc. |
The dashboard shows complete details of different entities and allows to organise information using a filter, a keyword search or sort out data by certain parameters, etc. Based on the subgraph + backend-API, we managed to provide faster access to blockchain data compared to solutions based on Web3 connection. |
Users have complete information on all entities: workers (nodes), tasks and users. All entities are synchronized and are linked to each other. |
Below are the roles proposed for the project implementation. Some staff members may take on multiple resource roles.
Role | Resource | Resource Description |
Product Manager | Cristian Malfesi |
Project Managers are responsible for overseeing the design & development teams. |
Technical Architect |
Franco Vitorio |
Technical architects are responsible for providing guidance and oversight on technical requirements for the product. |
Frontend Engineer |
Jorge Shirai |
FE engineers are responsible for developing the front end services for the product. Experts using React, Javascript, Typescript and related interactive visualization libraries (web3.js, d3.js apollo, web3, koajs, hapi, mongoose and much more) |
Backend Engineer |
Lisandro Corbalán |
BE engineers are responsible for developing the back end services for the product. Work with these technologies: NodeJs, API, GraphQL, SQL/NonSQL,CI/CD, etc.. |
QA and Reviewer |
Nicolás Dominguez |
QA engineers are responsible for ensuring the product is bug-free and meets client requirements. |
UI Designer |
Gabriel Rodriguez |
UI Designers are responsible for the development of a Design System which includes UI and UX. |
The Project Manager will be the primary Point of Contact for Filecoin. Work arrangements and communication plans include:
- Team will be working remotely across geographies and timezones.
- Shared Slack channel will be set up to maintain active dialogue with the Filecoing team.
- Slack webhooks will be set up from all project management tools for visibility on progress.
- Visibility will be ensured through weekly updates, demos, time and progress reports.
- Team will be working based on 2-week sprints and follow Agile methodologies (Scrum, Kanban).
- The project is organized through a board that allows daily monitoring. We recommend Zenhub.
This is a proposal for a fixed bid grant. Filecoin is requested to pay as follows:
- 50% upon start of the project (USD 15K) and 50% (USD 15K) upon project completion, with net15 payment terms.
- Any changes to the scope of work or overages to the price must be agreed in writing by the parties through a change request.
- All work is expected to be done remotely, with no travel required.
We have extensive experience in developing protocols, tooling, dApps, from PoCs and prototypes to MVPs, etc. To learn more, please visit our website.
Protofire works exclusively with entrepreneurs who are builders of decentralized infrastructure protocols, applications, and ecosystems.