Skip to content

Latest commit

 

History

History
391 lines (311 loc) · 13.8 KB

rfp-consensus-visualization-tool2.md

File metadata and controls

391 lines (311 loc) · 13.8 KB

RFP: Consensus Visualization Tool

Name of Project: Consensus Visualization Tool

Proposal Category: app-dev

Proposal Type:* rfp

Summary

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.

Who we are

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

Objetives

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.

Deliverables

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

Scope of Work

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
  • Install Lotus (Node+Miner)
  • Install Go-Filecon and analyze heartbeats
  • Learn the process and details about nodes and consensus is represented

- Define UI requirements
  • Information
  • Charts
  • Nodes and network data

- Design mockups and final UI.

- Endpoints definition

- Architecture & infrastructure definition

- Validation of scope and roadmap definition

- Write backlog tickets

Deliverables:
  • Document with defined scope
  • UI mockups designs
  • Infrastructure design
  • API endpoint definitions
  • Roadmap document and completed Backlog
  • Updated estimates for milestones 2-4

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

  • Setup
  • UI layout design
  • Dev React components
  • Data connection to backend
  • Unit tests
  • CI

- Backend (if needed)

  • Setup
  • API endpoints unit tests
  • New endpoints
  • Unit Tests
  • CI

- 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:
  • Consensus Visualization Tool Dapp
  • Dapp based on React+Typescript and interactive visualization libraries (d3.js, Highcharts, Nvd3, rechart, etc) and other libraries
  • Dapp displays new messages, blocks, tipsets, ancestors, forks, miners and related information via live updates
  • Additional tools, infrastructure or backend if it's defined
  • Tests: Apply units tests, CI and manual QA

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:
  • Changes and improvements from feedback
  • Well-documented, human-readable codebase
  • Blog post and/or tutorial with demo usage

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:
  • Feedback: changes and improvements

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

Assumptions

  • 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

Acceptance Criteria

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 Relevant Experience

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.

Key Personnel and Roles

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

Link to CV

Project Managers are responsible for overseeing the design & development teams.
Technical Architect

Franco Vitorio

Link to CV

Technical architects are responsible for providing guidance and oversight on technical requirements for the product.
Frontend Engineer

Jorge Shirai

Link to CV

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

Link to CV

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

Link to CV

QA engineers are responsible for ensuring the product is bug-free and meets client requirements.
UI Designer

Gabriel Rodriguez

Link to CV

UI Designers are responsible for the development of a Design System which includes UI and UX.

Project Management

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.

Grant Payment Terms

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.

Capabilities of our team and related experience

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.

Our services, customers and works

About Protofire