[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

 

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