[FIP-46] Deployment and rollout guide

This document will contain the working instructions for deploying FIP-46. Any issues discovered will be included here.

 

this FIP delivers a new version of the FIO Core code which provides a new setting for the timeout for get table reads for secondary key information, this is set to 1 second in the proposed changes.

this should permit the limit and offset to be used across all FIO getters, and results should remain accurate when there are less than 20-40k rows per secondary index in a FIO state table.

for example get_fio_domains, this code fails to return accurate results with over 1500-2000 domains per account in versions before this change.

after the this change get_fio_domains will work as expected with up to 20-30k domains per account.

instructions should be provided to the node runner community as to how they can change the chain_plugin to provide longer walk times should they become necessary, this involves modifying the chain_plugin.hpp file and modifying the value of the SECONDARY_INDEX_MAX_READ_TIME_MICROSECONDS to provide more time for seconrday index reads. This involves a rebuild of the core code, and repacking of the node executable.

 

see the dev spec for dev branches used and PRs

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

 

Branches used in rollout testing

 

Actions added

none

 

Contracts for deployment

none

 

Hashes from local dev env

 

Instructions for contract rollout

none

Feature validation on Testnet and Mainnet

Using a fio Node that has upgraded to latest (3.5?):

  • Using an account that has a large number of domains:

    • confirm get_fio_domains returns all domains

    • Confirm bloks.io and EOS Authority explorer show all domains for that account.

Testnet: Not sure there is an account to test this…

Mainnet: Use account tw4tjkmo4eyd