FIO Future Projects

This set of documents has been identified by the FIO Core Technology team as a candidate for attention in the 2022/2023 timeframe. These projects address areas that the core technology team has deemed critical to the “health and wellness” of the FIO Protocol, and which help to achieve the KPIs specific to the https://fioprotocol.atlassian.net/browse/DAO-49 worker proposal.

 

Project Areas of Focus -

 

Identify and address performance deficits in the present FIO design.

 

 

Permit the FIO Protocol to integrate and deploy releases more flexibly and rapidly.

 

 

Better Educate and inform the FIO community regarding all aspects of FIO operation and best practices.

 

 

Address critical deficit in (lack of security focus) Provide capabilities the FIO Protocol needs to observe, identify, and respond to security threats

 

 

Address Performance Deficits.

-Clean up state

Analyze the limits of FIOs state tables, understand when tables are getting close to limits, Create tools and processes that can be used to analyze the “state of state tables”. Create tools that can be used to clean tables. Stimulate discussion regarding what data should be cleaned and why.

 

create a set of projects for each major group of tables in FIO.

– Optimize size and complexity of FIO state model.

Analyze the limits of FIO state to better understand the functional limits of the protocol in relation to the amount of information that is contained in FIO state. Document options that will help the FIO Protocol to handle volume well beyond its' present functional limits.

 

Analyze the limits of the FIO read operations, Document options that might help the FIO Protocol to provide read access for integrators that functions well beyond FIOs present limits.

 

Analyze the overhead for block producers and community members regarding playbacks, snapshots, and other operations performed regularly by BPs. Document options that might be helpful to the FIO Protocol when significant load is experienced by the protocol

 

create a set of projects to analyze the identified areas (read performance, playback overhead, operational limits of state loading)

Provide more flexibility of project integration and deployment

make FIO more configuration oriented for

new contracts

new features

Soft forking changes to FIO repository

 

Modify contracts to ease contract deploy-ability

reduce number of contracts impacted by changes to common code.

reduce binary size of each FIO contract

 

Create release tools to aide in release management.

Create a release dashboard that can do the following

generate release MSIG commands and other necessary artifacts

aide in tracking and notification of BPs and other interested parties.

automate release manager operations for releases.

 

 

 

Encourage Community awareness and knowledge

Training, documentation, and best practices

For block producers.

For API node hosting

For exchange integration.

For contract development

For FIO (core C++) development

 

 

Provide a Security focus for the FIO Protocol

Address Deficits in Security processes and practices.

(see findings of Q’s playbook before making this project list)

 

 

 

 

 

 

 

 

 

 

 

For each project we will identify the following

Project Objective/Problem statement

background

motivations

detailed description

 

Note – all Risk, Cost, and Benefit analysis will attempt to identify and give a quantitive score in the terms of the strategic objectives of the FIO Protocol. These objectives are listed in the following document.

https://fioprotocol.atlassian.net/wiki/spaces/DAO/pages/487227447

Risks of not addressing project

perceived chances of each risk happening (as a percentage)

At what point do the risks come to a critical tipping point.

Impact analysis

include a rating for each KPI 1-5, where 1 is minor risk and 5 is maximum risk

try to describe, quantify, and measure the amount of risk that is taken on in the terms of KPIs.

Cost analysis of the project

Including rating 1-5,where 1 Is minimal and 5 is maximal.

List of costs

number/complexity of unknowns

total duration time

design complexity

implementation complexity

QA complexity

integration complexity

total financial cost rating

ability to deliver in phases

Benefit analysis of the project

Including rating 1-5,where 1 Is minimal and 5 is maximal.

Try to describe, quantify, and measure the amount of benefit that is gained in the terms of the KPIs.

 

List of Candidate projects

FIO State size analysis

This project will load the FIO protocol with a maximum number of records (number to be determined by this project) in all of the following categories at the same time. The goal is to understand the operational limits of large-scale adoption and use of the present FIO design. We will try to find the weak spots and identify these. Tables relating to the following areas will be examined.

domains/addresses

FIO requests.

staked tokens

locked tokens

voters

producers

tpids

 

 

Risks of not addressing

Percent chance that this project identifies terminal failures relating to number of records in state (100%).

Impact Analysis

FIO has discovered some read performance limitations early in the project WRT number of funds requests that can be maintained in state. The project will also try to determine the functioning limits of the protocol as state loads increase.

Performance

Transaction throughput (transactions per second). 4

Transaction response time (based on table and state size) 4

Read response time (based on table and state size) 4

 

Costs of this project

number/complexity of unknowns 3 this effort will discover items to be addressed by

follow on projects.

total duration time 3. (4 -6 weeks)

design complexity 2. design load scripts, capture snapshots, prototype solutions for each issue discovered.

implementation complexity 3

QA complexity 4

integration complexity 0

total financial cost rating 2

ability to deliver in phases High.

 

Benefits

This project will identify any critical throughput, or read oriented limitations of FIO and permit follow on projects to address these limits.

 

 

Create processes and tools for state maintenance/cleanup

This project will examine the contents of the FIO main net state tables. It will identify data that is candidate for removal from state. For each table the chief question is how can records be identified for removal. It will also identify processes and procedures to be used in performing ongoing cleanup over time. The following areas will be examined.

domains/addresses

FIO requests.

staked tokens

locked tokens

voters

producers

tpids

 

 

Risks of not addressing

The risks of not performing state cleanup regularly are that some tables (to be identified by the Fio State Size analysis) can become read limited as more and more records are entered into the table. Without cleanup procedures and tools the FIO protocol will have to reactively and emergently clean state.

Impact Analysis

Performance

Transaction throughput (transactions per second). 4

Transaction response time (based on table and state size) 4

Read response time (based on table and state size) 4

 

Costs of this project

number/complexity of unknowns 2

total duration time 2 (2-4 weeks)

design complexity 1 table analysis should be straight forward.

implementation complexity 2

QA complexity 3. records must be inserted to meet criteria of deletion on local dev env and test env.

integration complexity 0

total financial cost rating 1

ability to deliver in phases High each table can be analyzed separately.

 

Benefits

This project will identify ways in which the FIO state can be better maintained. It will establish BP and community processes that will serve FIO going forward.

 

 

BP hosting guidelines

API node hosting guidelines