[Shipped] Integrated finality information into RPC System

Objective : support finality information for RPC Request/Response.

Length : 1 month
Resources: @lam @0xkumi

Key results :
** All RPCs get user balance must have finality information and allow client to specify which state to retrieve data from.
** All RPCs get block/transaction must have finality information.
** All RPCs used to interact with another chain must process data from finalized information.

Timeline:
Review and Implementation by 21 August
Testcase for QC by 21 August
Testnet deploy by 31 August

Details:

  • When multiview version released, we expect our network at certain time will have fork block. While bitcoin/ethereum solves the finality by probability via number of confirmation, our block finality is deterministic. So that, we must give user the information of finality.

  • For example, user must know the current balance is final or not. In fork case, the balance could be reverted and affect user experience. It is also critical for our bridge application to know when money should be released.

  • In this proposal, we add finality into RPC system, so that client can take appropriate action according to the state of the information.

Reference
[A Multi-View Solution for PBFT Protocol ]

8 Likes

Proposal update:

  • Finality information has been added to all RPCs related to user balance.
  • Get block/transaction RPCs now have finality field.
  • All RPCs used to interact with another chain now use data from finalized state.
1 Like