fioprotocol / fips

FIO Improvements Proposals

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FIP-12 Action Whitelisting

ericbutz opened this issue · comments

Tracks fixes to action whitelisting update: https://github.com/fioprotocol/fips/blob/master/fip-0012.md

FIP-12 is dev complete and in QA. Working with the BPs to reset Testnet to v1.0.5. Once that is complete, we will roll out FIP-12 and the "gemini" chain code which will be a hard fork update.

Testing Plan

The following  development testing plan has been completed for these changes.

* A 21 node private test net was created with 3 nodes in the boot cluster, and then 6 nodes in each of the 3 test node clusters. A detailed description of the Dapix private test net and the automated operations which it supports can be provided if this is desirable. The implementation is presently available in the dapixio/dev-net repository on the github.

* The entire 21 node test net was initially brought up with contracts and core code at FIO v1.0.5.
* Java script tests have been developed for 1.0.5 and these were run as indicated.
* First the forking block time was set to 3pm MST on the day of the tests. (this is the version of the code used in testing)
* The tests were run.
* 6 of the test nodes (cluster A) were upgraded to the gemini code version.
* The tests were run.
* 6 more of the test nodes (cluster C) were upgraded to the gemini code version.
* The tests were run.
* 6 more of the test nodes (cluster B) were upgraded to the gemini version.
* The tests were run.
* The set code was executed to add the addaction and removeaction for whitelisting to the FIO system contract.
* a script was used to call add action for all but 16 of the actions presently permitted by the FIO protocol
(this was done so that we can call one of the actions not yet set after the forking deadline and prove the new logic is being used).
it was observed that the boot cluster (which was not upgraded) "forked out" when the script was run, this was expected.
* we executed the action (not yet added by addaction, regaddress) before the forking deadline arrived, we noted that the transaction executed as expected because before the forking deadline we are using the action mapping coded into the core code.
* testing continued (we waited for the forking deadline of 3pm to pass).
* after the forking deadline we invoked one the action again not yet set by addaction
it was observed that this resulted in an error "unknown action in contract".
* we then ran a script to set the remaining actions using addaction.
* we then invoked the action again, it was observed the transaction executed as expected.
* we then ran the javascript tests one last time.
(please note -- all javascript tests passed as expected).