[FIP-46] Development - Spec
Links
FIP-46 PR
FIP-46 Dev branches
FIO Repo, parent is develop.
feature/FIP-46-fio-develop-01052023
fio.test Repo, parent is develop.
feature/BD-4245-fiotest-develop-01122023
FIP-46 development PRs
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
https://fioprotocol.atlassian.net/wiki/spaces/FD/pages/589725697
Dev checklist used
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.
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
the 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
none
Structs and ABIs
none
Tables
none
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.
Rollout/Release verification plan
verify domain access works as expected.
verify test net smoke tests complete without errors on test net.