Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Project level technical scope analysis

This section reviews the project management milestone checklist, and captures the logic and decision making surrounding the inclusion of checklist items in the deliveries for this FIP

Project checklist used[FIP-46] Project Management - Milestone Checklist

https://fioprotocol.atlassian.net/wiki/spaces/FD/pages/589725697

Dev checklist used[FIP-46] Development - Milestone Checklist

https://fioprotocol.atlassian.net/wiki/spaces/FD/pages/589725704

Excluded checklist items

item reason for exclusion. details

SDKs out of scope. project impacts nodeos exe only.

Dev stories identified.

FIP-46 complete detailed design

FIP-46 complete development and dev testing

RAM Bumps

RAM Bump is not a consideration of this effort since we are making changes in the FIO Core which pertain only to FIO getters. More specifically we propose changes only to FIO getters that use secondary indexes to produce results.

Fee Analysis

FIO fees are not a consideration of this effort since we are making changes in the FIO Core which pertain only to FIO getters.

Design

Summary of changes to fio and fio.contracts

  • Note files that will be updated

  • Note any changes to global functionalitythe config.hpp will be enhanced to contain two new max search time settings (one for secondary one for primary indices, primary will maintain the 100ms timeout, the secondary will be increased to 1 second.

  • the chain plugin get_table_rows for primary and secondary keys will be modified to use the new max time settings provided in the config.hpp

Actions and Endpoints

  • List new/updated actions and endpointsnone

Structs and ABIs

  • Note changes to structs and ABIsnone

Tables

  • Detail any table updates or migrations

Risks

  • Summary of risks, impacts and logistics analysis

SDK Requirements

  • Note functional updates needed for SDKs

Functional Testing

Design

  • Overview of test plan with high-level bulleted test cases

Results

  • Link to JS tests and description of which test sections were updated/added

  • Paste results of tests

Performance Testing

Design

  • Overview of test plan with high-level bulleted test cases

Results

  • Summary of performance tests that were run and results

Fork Testing plan

  • List all of the pertinent tests, required setup, and expected results.List all pertinent tests pertaining to testing with different versions of the core code.

  • List all pertinent tests pertaining to pre-contracts update and post contracts update

Rollout/Release plan

  • Make a comprehensive list of all necessary changes

  • Include (new actions, removed actions, MSIGs for all required operations, and step by step instructions.

Rollout/Release verification plan

  • Include step by set instructions for how to verify that the changes are on chain after rollout.

  • Bonus points if you make an automated script performing the verificationsnone

Risks

  • we propose setting the timeout for FIO secondary indices to become 10X the present setting. this may have un-expected impacts to node performance (NONE have been found yet)

  • it has been mentioned that the WALKTIME in the chain plugin has been put into place to help to protect against denial of service attacks. Analysis of node deployments shows that there is alot of opportunity for node operators to protect against denial of service attacks in the hosting and networking of nodes being operated. It also seems logical that even with the WALKTIME set to its previous values, this does not prohibit denial of service attacks as all that need be done is to increase the number of callers that are calling readers from the client side.

SDK Requirements

  • none

Functional Testing

Design

  • All FIO getters should be regression tested.

    • run regression tests on all feature/function of FIO. (dev testing will run the smoke tests).

  • test domains access with get_fio_domains for an account with 25k domains, a dev testing case is created for this in the fio.test branch.

Performance Testing

Design

  • perf testing is same as functional testing for get_fio_domains with one account owning 25k domains.

    • dev testing was completed for this test case using the file register-domains-one-account-max-load.js

Fork Testing plan

  • no fork testing is required.

  • this is not a forking change to the FIO Core.

Rollout/Release plan

  • documentation must be updated on dev hub for the new timeouts for primary and secondary indices.

  • new FIO nodeos version needs to be supplied to the community.

  • [FIP-46] Deployment and rollout guide

Rollout/Release verification plan

  • verify domain access works as expected.

  • verify test net smoke tests complete without errors on test net.