This set of documents contains one document for each project 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 going forward.
Motivation -
We are identifying and analyzing a set of projects that the FIO Protocol may choose to address. These projects relate to a variety of areas.
Address key deficits of the present FIO design.
clean up, optimization, and management of chain state.
performance limits of the present design.
on chain state size and complexity.
leveraging of existing EOSIO tech.
Address deficits of the present staffing profile.
Tech outreach and evangelism
Training and documentation of FIO , and which help to achieve the KPIs specific to the
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
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 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.
Risks of not addressing project
cost of doing the project (what does this cost to do this project)
cost of NOT doing the project. (what am I sacrificing by NOT doing this)
monetary measure of success for the completed project. (what $$$ bump do I get FOR doing this).
accepting multiple complex projects which need solved in a timely fashion.
monitoring and alerting the FIO community regarding a variety of attacks on the FIO Protocol.
performing regular security audits on all aspects of chain function.
cleanup and maintenance of the state model that makes up the FIO protocol
reducing the size and complexity of on chain state model.
...
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