/
[FIP-27 NFT Signatures] Release Milestone Checklist

[FIP-27 NFT Signatures] Release Milestone Checklist

The milestone checklist tracks the release management tasks.

Task

Deliverables

Notes

Security

ย 

ย 

Code audit

Code audit of new contract or code

ย 

Vulnerability testing

Penetration, API, and logic vulnerability testing

Penetration testing will be done on Dashboard. N/A for contract.

Bug bounty

Bug bounty

ย 

Devnet

ย 

ย 

Fork test

Devnet fork test (Dev lead)

https://fioprotocol.atlassian.net/browse/BD-2867

  • Install Current Release (fio and fio.contracts) on Devnet

  • Update 6 nodes (1 cluster) to new release and ensure no forking occurs

  • Update 12 more nodes (remaining 2 clusters) to new release and ensure no forking occurs

  • Do NOT update remaining nodes to fio Bahamas

  • Update fio.contracts to new release using setcode and setabi

  • Run fio.test and ensure it runs cleanly (need to hit upgraded API node)

Performance test

Devnet performance test (Dev lead)

Capping performance for initial release. Eliminating task to speed up release to Testnet. Additional performance testing will be done on NFTs to determine the max size of mappings.

fio.contract

Run upgrade using set code and set abi (Dev lead)

https://fioprotocol.atlassian.net/browse/BD-2867

History node testing

Test against node with V1 History and confirm no errors in log file (add results to Dev Spec)

ย 

SDK and Wallet Testing

Run Typescript SDK regression tests against latest build, confirm new actions and getters are included in the tests
Run Kotlin SDK regression tests against latest build, confirm new actions and getters are included in the tests
Run GO SDK regression tests against latest build, confirm new actions and getters are included in the tests

ย 

Testnet

ย 

ย 

Communication

Socialize changes with all BPs on Testnet and the community and marketing
Monitor and coordinate the rollout with BPs

ย 

addaction and createfee

msig to set addaction and createfee for new actions
Encourage BPs to vote on new endpoint fee

Example:

createfee '{"end_point":"transfer_tokens_fio_add","type":"1","suf_amount":"958695652"}'

addaction '{"action":"trnsloctoks","contract":"fio.token","actor":"eosio"}'

addaction '{"action":"addnft","contract":"fio.address","actor":"eosio"}' addaction '{"action":"remnft","contract":"fio.address","actor":"eosio"}' addaction '{"action":"remallnfts","contract":"fio.address","actor":"eosio"}' addaction '{"action":"burnnfts","contract":"fio.address","actor":"eosio"}''

ย 

createfee '{"end_point":"add_nft","type":"0","suf_amount":"300000000"}' createfee '{"end_point":"rem_nft","type":"0","suf_amount":"100000000"}' createfee '{"end_point":"rem_all_nfts","type":"0","suf_amount":"100000000"}'

fio.test

Make sure there is a release/n.n.x_m.m.x branch for current production release
Create release/n.n.x_m.m.x branch from develop, confirm it runs against new release

fio.test release/2.5.x_3.1.x

fio.contract

Create pre-release (Testnet Release Candidate - FIO Contracts vx.x.x-rc1)
Update release notes
Create PR for hashes on fio.mainnet > releases-testnet.md
msig fio.contracts rc release

ย 

fio (chain)

Create pre-release (Testnet Release Candidate - FIO vx.x.x-rc1)
Update release notes
Generate .deb and .tgz build files using fio.package
Upload .deb and .tgz build files to AWS > S3 > fioprotocol > Mainnet for use with fio-docker
Track chain upgrade of BPs

Release Release - FIO v3.1.0 ยท fioprotocol/fio

SDK and Wallet Testing

Typescript Wallet: Build Edge Demo Testnet build and go through Wallet checklist
Kotlin Wallet: Can we get a regular build of a Testnet wallet? Mycelium?

TBD: need to create Edge wallet test checklist

Testnet validation

Run fio.test Testnet smoketest, confirm FIO Request getters still work
Confirm hashes of testnet
Confirm versions of testnet nodes (chain)

ย 

Mainnet

ย 

ย 

Mainnet prep

Create upgrade checklist of BPs and integration partners
Work with Emily to coordinate Mainnet rollout plan with the BP, wallet, and exchange community, watch over the execution and help to ensure rollout is completed in full.
Socialize release changes with all BPs and the community and marketing
Perform Testnet rollout verification and report findings

ย 

fio.test

Merge release/n.n.x_m.m.x branch to master, create vn.n.n_m.m.m tag
Run test tag against new release

ย 

addaction and createfee

msig to set addaction and createfee for new actions
Encourage BPs to vote on new endpoint fee

Example:

createfee '{"end_point":"transfer_tokens_fio_add","type":"1","suf_amount":"958695652"}'

addaction '{"action":"trnsloctoks","contract":"fio.token","actor":"eosio"}'

addaction '{"action":"addnft","contract":"fio.address","actor":"eosio"}' addaction '{"action":"remnft","contract":"fio.address","actor":"eosio"}' addaction '{"action":"remallnfts","contract":"fio.address","actor":"eosio"}'

ย 

createfee '{"end_point":"add_nft","type":"0","suf_amount":"300000000"}' createfee '{"end_point":"rem_nft","type":"0","suf_amount":"100000000"}'

fio.contract

Move pre-release to release (Release - FIO Contracts vx.x.x)
Create PR for hashes on fio.mainnet
msig fio.contracts release
Perform the rollout verification and report findings
Post msig links to main FIO Telegram channel so member can track progress

v2.5.0

fio chain

Move pre-release to release (Release - FIO vx.x.x)
Generate .deb and .tgz build files using fio.package
Upload .deb and .tgz build files to AWS > S3 > fioprotocol > Mainnet for use with fio-docker
BP mainnet node upgrade checklist is complete (BP spreadsheet, or create one in Jira)
Perform the rollout verification and report findings
Confirm BP upgrade: https://health.fioprotocol.io

v3.1.0

General

Move FIP status to Final and include release links; update master README index
Update Initiative and Epic status

ย 

FIO API Nodes

Upgrade Registration site API nodes (2 load balanced nodes)
Upgrade Analytics API node (single State History node)

ย 

SDK and Wallet Testing

Run Typescript SDK regression tests against latest build, confirm new actions and getters are included in the tests
Run Kotlin SDK regression tests against latest build, confirm new actions and getters are included in the tests
Run GO SDK regression tests against latest build, confirm new actions and getters are included in the tests

ย 

ย 

Related content