Table of Contents |
---|
...
Epic – FIO staking
Stories
Produce design spec, and revise FIP-21. (1 week Complete)
review internal, and community.
FIO Staking Development (3 weeks In progress 85% complete)
implement the solution as per FIP-21 and detailed development spec.
Started work March 29
constants implemented
staking global state implemented
account staking implementation implemented
port existing work to new contract fio.staking, completed
make shell of the new contract and integrate into the build.
integrate all table implementations for staking into fio.staking contract.
integrate stake and unstake shell into fio.staking contract.
Develop new logic to permit new contracts and system accounts to be added to the FIO protocol without mandatory core upgrades (completed, in QA for Bahamas)
implement and test actions to update global state for staking. In progress (100% completed)
implement stakefio (completed)
implement unstakefio (completed)
implement modified locking mechanism to support unstakefio (completed)
impelement and test incgrewards
implement and test
clrdrewards
implement and test
recorddaily
adapt usable balance logic
adapt voting power logic
transfer
transfer using pub key
modify fee collection logic
process_rewards
processbucketrewards
processrewardsnotpic
bpclaim
bpclaim
implement the removal of expired periods during lock adaptation on unstaking.
implement the use of an existing period if there is a period in this same day during unstaking
Implement new model for general locks, place SUF amount instead of percent.
retire old lock tokens and replace with locktokensv2 table.
integrate new table throughout contracts and chain_plugin.
Dev test. (30% completed)
Regression testing (runs of fio.test) completed
dev test cases
pre existing main net locks (test all unlocking periods using transfer and vote producer) (manual testing completed)
pre existing main net locks (test staking and transfer before and after first unlock period) (javascript fio.test integrated testing completed)
modify all general locks tests to run with the new v2 general locks table.
no pre-existing locks
pre existing general locks
use existing main net locked account to create general lock
pre existing main net AND general locks
develop tests matching test plan in design spec.
internal code review
internal testing review.
perform QA and resolve all issues (comprehensive QA analysis)
Acceptance testing review by product owner.
FIO staking – Security/Performance testing (dev net) (1 week)
develop tests to load system and drive volume of requests (we desire a max stakes test, and also a volume of staking unstaking requests once loaded maximally) performance test plan is still TBD.
Rollout testing (dev net) (2 days)
load previous version of contracts, perform contract MSIGs, repeat load testing.
Test net testing – (1 week)
roll out msigs, perform subset of functional tests on test net (tests to be performed are TBD)
Main net rollout (2 days)
roll out MSIGs, perform minimal success testing to verify deployment (tests to be performed are TBD).
security of the new locking actions will require relatively complete QA testing (a test plan will be published).
...
Update all SDKs to include new endpoints for staking.
FIOSdk_typescript
integrate stakefio into SDK (6 hours) (completed)
expand tests to cover stakefio in SDK (4 hours)
Integrate unstakefio into SDK (6 hours)
expand tests to cover unstakefio (4 hours)
integrate changes to get_balance (4 hours)
integrate get_staked_info into SDK (6 hours)
expand tests to cover get_staked_info (4 hours)
FIOSdk_Kotlin
integrate stakefio into SDK (6 hours)
expand tests to cover stakefio in SDK (4 hours)
Integrate unstakefio into SDK (6 hours)
expand tests to cover unstakefio (4 hours)
integrate changes to get_balance (4 hours)
integrate get_staked_info into SDK (6 hours)
expand tests to cover get_staked_info (4 hours)
FIOSdk_IOS
integrate stakefio into SDK (6 hours)
expand tests to cover stakefio in SDK (4 hours)
Integrate unstakefio into SDK (6 hours)
expand tests to cover unstakefio (4 hours)
integrate changes to get_balance (4 hours)
integrate get_staked_info into SDK (6 hours)
expand tests to cover get_staked_info (4 hours)
...