Versions Compared

Key

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

Problem: Update architecture for FIP-1 to include the ability to page and cache data on wallets

...

This new contract update will be proposed via msig to the protocol. This will finalize all necessary changes to complete the transfer of FIO domains and addresses while maintaining request integrity. 

New Structure Notes 11/24/20 -

During the development of the above structure, some limitations arose that would hinder the scaling of account with large amounts of requests and obt actions. The following changes were made to better allow for searching payer and payee by status and account name.

  • Removal of the Ledger

    • The purpose of this ledger was to quickly search ids but this limited CPU processing time for high volume users when needing to append or modify the vector container due to serialization.

  • Additional searchable indexes inside the fiotrxts table.

    • Image Added

      These index searches allow for multiple queriable conditions inside a single, bit shifted operation. This also allows future development to search by status(es).

    • New global data member, STATUS_MULTIPLIER is used for shifting operations.

  • New time index search inside fiotrxts table.

    • Image Added

      This will allow time-based state cleanup in the future.

Migration Release Plan

Release 1 - fio.contracts (Bravo-c1)

After this update and the initial call to migrtrx, new Request and OBT data coming in will be entered into both the old and new tables.

Step 1 introduces the new table structure and adds a new “temporary” action call called migrtrx. This action enables the top 21 block producers to start migrating existing data over to the new formatted index tables.

...

[FIP-1.b] Step 1: Add continuous migration of request and obt data (FIO #182)

The complete migration of data has to happen before fio chain is released. An off chain validation should be done to confirm this.

Release 2 - fio chain (Bravo-chain)

...

Release 3 - fio.contracts (Bravo-c2)

All fio chain nodes should be upgraded prior to rolling out Contract Step 2.

Step 2 does two things:

  • Modifies the Request code to stop updating the old tables. After this release, only the new tables will get updated.

  • Modifies the  migrtrx call. It will now remove data from the old tables.

...

[FIP-1.b] Step 2: Remove old data from index table (FIO #185) All fio chain nodes should be upgrade prior to rolling out Contract Step 2.

Once the data has been deleted, wallets pointing to nodes that have not upgraded:

...