Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

TODO

FIP-39 indicates a RAM increase of 2560 on fio.address (updcryptkey); Is there anything to do here?

FIP-39 createfee for update_encrypt_key has type 1 (in clio command); is this correct? Not sure when type 0 or type 1, etc.

FIP-40: No clearperm addaction, correct? why does fio.devtools have an addaction for this then?

FIP-40: validate setter on new fio.perms contract doesnt need abi/wasm.

FIP-42 indicates new fee for register_fio_domain_address, however, none is specified, what is default?

Overview

This document covers the upgrade to the FIO Protocol release of Fio 3.5 (core) and Fio.Contracts 2.9.

Examples

Fee: Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fiocreatefee

New Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioescrow2

Privileges: Testnet example: https://fio-test.bloks.io/msig/un3emex141fp/setpriv.a

Contract Update: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/updfiosys

Set contract on Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioesc

Marketplace Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/setmrkplcfg

Guidance

For this release, the BPs will execute the MSIGs in 3 parts, as noted by in the section headings: Batch #1, Batch #2, and Batch #3.

  • Batch #2 msigs can only be created after Batch #1 msigs are executed since they need the fio.perms account to exist in order to set the privilege and RAM limits.

Rollout Guides

FIP-36 Deployment and rollout guide : Fio (Core) Update (account public key)

...

[FIP-42] Deployment and rollout guide : Fio/Fio Contracts Update : fio.address, Actions: regdomadd(single trx handle and domain registration)

[FIP-43] Deployment and rollout guide : Fio Update (get_fee update)

[FIP-46] Deployment and rollout guide : Fio Update (new timeout for table lookupstable lookup performance update)

[FIP-47] Deployment and rollout guide : Fio Contracts Update (use regproducer to update info)

Add new actions (Batch #1)

./clio -u http://localhost:8889 push action eosio addaction '{"action":"newfioacc","contract":"eosio","actor":"eosio"}' --permission eosio

./clio -u http://localhost:8889 push action eosio addaction '{"action":"updcryptkey","contract":"fio.system, Actions: regproducer

Items of Interest:

TestNet mSig Proposals:

  • Capture from Telegram TestNet channel

Execution Notes:

  • BP may execute msig via links above

...

  • For addaction and createfee actions, view transaction (after execution)

    • View transaction details, click ‘Block Number’, then confirm that next block is produced by clicking ‘Next’

  • For contract deployment (set contract) validation, run fio.devtools “Contract Hashes” query to confirm ABI and contract hashes match.

  • Use Aloha EOS TestNet Producer Reliability Tracker to verify that no blocks are missed. Note, missed rounds will result in a post to the Telegram TestNet channel.

  • Use FioWatch tool to check transaction

Add new actions

Document new actions as well as validation here

[Example] ./clio.sh address","actor":"eosio"}' --permission eosio

./clio -u http://localhost:8889 push action eosio addaction '{"action":"addperm","contract":"fio.perms","actor":"eosio"}' --permission eosio

./clio -u http://localhost:8889 push action eosio addaction '{"action":"remperm","contract":"fio.perms","actor":"eosio"}' --permission eosio

./clio -u http://localhost:8889 push action eosio addaction '{"action":"clearperm","contract":"fio.perms","actor":"eosio"}' --permission eosio

./clio -u http://localhost:8889 push action eosio addaction '{"action":"listdomainregdomadd","contract":"fio.escrowaddress","actor":"eosio"}' --p permission eosio

Validation (Postman): Verify new actions exist using https://fiotestnet.greymass.com/v1/chain/get_actions

Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fioaddaction

Create the new fees

Document new fees as well as validation here

[Example] ./clio.sh push action g

Create the new fees (Batch #1)

./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"new_fio_chain_account","type":"0","suf_amount":"2000000000"}' --permission fio.fee@active

./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"update_encrypt_key","type":"1","suf_amount":"40000000000"}' --permission fio.fee@active

./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"add_fio_permission","type":"0","suf_amount":"3000000000"}' --permission fio.fee@active

./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"remove_fio_permission","type":"0","suf_amount":"1000000000"}' --permission fio.fee@active

./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"listregister_fio_domain_address","type":"0","suf_amount":"3048044021000000000"}' --p permission fio.feefee@active

Validation:

...

Create account and set permissions (

...

Batch #1)

(Part 1 This must be done before Part 2 msigs can be Batch #2 msigs are created)

First, create a file called “payload.json” with the following permissions:

Code Block
{
   "creator": "eosio",
   "name": "fio.escrowperms",
   "owner": {
      "threshold": 1,
      "keys": [],
      "accounts": [{
         "permission": {"actor": "eosio", "permission": "active"},
         "weight": 1
      }],
      "waits": []
   },
   "active": {
      "threshold": 1,
      "keys": [],
      "accounts": [{
         "permission": {"actor": "eosio", "permission": "active"},
         "weight": 1
      },
      {
         "permission": {"actor": "fio.escrowperms", "permission": "eosio.code"},
         "weight": 1
      }],
      "waits": []
   }
}

Next create a new account with those permissions.

[Example] ./clio .sh -u http://localhost:8889 push action -j -s -d eosio newaccount newaccount _ payload.json -p eosio@active

Validation:

  • View account Insert Account Creation mSig here and compare to FIO System account (specifically permissions)

  • System account may be retrieved via Postman at https://fiotestnet.greymass.com/v1/chain/get_account

...

Create account to be privileged and set RAM limits. (

...

Batch #2)

Set the account to be privileged.

[Example] ./clio .sh -u http://localhost:8889 push action eosio setpriv '["fio.escrowperms",1]' -p eosio@active

Validation:

  • Postman

    • https://fiotestnet.greymass.com/v1/chain/get_account

      • account = fio.oracleperms

      • Expected Result: "privileged": true

Remove RAM limits on the new account, this may be called by eosio, and fio.system only!

[Example] ./clio .sh -u http://localhost:8889 push action eosio setnolimits '{"account":"fio.escrowperms"}' --permission eosio@active

Validation:

...

Deploy EOSIO system contract

...

(Batch #3)

./clio .sh -u http://localhost:8889 set contract -j eosio /opt/FIO/bin/Contracts/last/fio.system / -p eosio

Validation: See Validation Notes for contract validation

Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/updfiosys

...

fio.system.wasm fio.system.abi -p eosio@active

Deploy any new system contracts and set each contract on the new account

...

(Batch #3)

./clio .sh -u http://localhost:8889 set contract -j fio.escrow perms /opt/FIO/bin/Contracts/last/fio.escrow/ perms -p fio.escrowperms@active

Validation: See Validation Notes above for contract validation

Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioesc

Set all other contracts

[Example] ./clio.sh set contract fio.address

Set all other contracts (Batch #3)

./clio -u http://localhost:8889 set contract -j fio.address /opt/FIO/bin/Contracts/last/fio.address fio.address.wasm fio.address.abi -p fio.address@active

./clio -u http://localhost:8889 set contract -j fio.reqobt /opt/FIO/bin/Contracts/last/fio.reqobt fio.reqobt.wasm fio.reqobt.abi -p fio.reqobt@active

./clio -u http://localhost:8889 set contract -j fio.token /opt/FIO/bin/Contracts/last/fio.token fio.token.wasm fio.token.address/ abi -p fio.addresstoken@active

Validation: See Validation Notes above for contract validation

Initialize the Marketplace Account (must be done after escrow contract is set)

This initializes the marketplace TESTNET admin account. Thomas will need to create a Mainnet account as well.

TESTNET: ./clio.sh push action fio.escrow setmrkplcfg '{"actor":"p325sqluvj4u", "listing_fee": "5000000000", "commission_fee": 3, "max_fee": "1000000000", "e_break": 0}' -p eosio@active

MAINNET: ./clio.sh push action fio.escrow setmrkplcfg '{"actor":"q3k31xlj413z", "listing_fee": "5000000000", "commission_fee": 3, "max_fee": "1000000000", "e_break": 0}' -p eosio@active

Validation: check fio.escrow mrkplconfigs table to confirm account was added

Testnet example:https://fio-test.bloks.io/msig/bsbdk2lectan/setmrkplcfg

TODO: Remove once script is finalized.

Examples

Fee: Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fiocreatefee

New Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioescrow2

Privileges: Testnet example: https://fio-test.bloks.io/msig/un3emex141fp/setpriv.a

Contract Update: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/updfiosys

Set contract on Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioesc

Marketplace Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/setmrkplcfg

Items of Interest:

TestNet mSig Proposals:

  • Capture from Telegram TestNet channel

Execution Notes:

  • BP may execute msig via links above

Validation Notes:

Anchor
Validation-Notes
Validation-Notes

  • For addaction and createfee actions, view transaction (after execution)

    • View transaction details, click ‘Block Number’, then confirm that next block is produced by clicking ‘Next’

  • For contract deployment (set contract) validation, run fio.devtools “Contract Hashes” query to confirm ABI and contract hashes match.

  • Use Aloha EOS TestNet Producer Reliability Tracker to verify that no blocks are missed. Note, missed rounds will result in a post to the Telegram TestNet channel.

  • Use FioWatch tool to check transaction