What's left: Platform Development Update 29-November-2022
Tags: web3, opensource, blockchain, programming
Published: 2022-12-01 18:26:47

Here's another portion of updates on what's left to do before final Platform testing.
{% embed https://www.youtube.com/watch?v=X9AvDv-G8Gs %}

## TenderDash
**Goals:** Same block execution

**Tasks:**

Integration of same-block execution with Drive in progress

- Released v0.10.0-dev.5 done
 
Stabilizing

- fix(wal): improve WAL replay mechanism **_in progress_**
- fix(e2e): catchup round number is not correct **_done_**
- refactor: make all genesis-doc fields (except chain_id) optional **_done_**
- feat(abci): put full block in RequestFinalizeBlock **_done_**

Investigate deadlocks
- refactor(consensus): consensus state to fix deadlock **_in progress_**
- Test: add deadlock detection with go-deadlock **_done_**
- fix(statesync): statesync stops the node when light block request fails **_in progress_**
-  fix(statesync): deadlock in peer up **_in progress_**
-  fix(consensus): commits received during state sync are lost #1867 **_done_**

**What’s Left before Testing Phase**

- Stabilize same-block execution
- Update BLS library
- Adjust vote extensions for withdrawal transactions
- Drive integration

## GroveDB

**Tasks:**

- Sum Trees merge **_in review_**
- Fix batch not properly propagating child root hash **_done_**
- Average case processing costs **_done_**

**What’s Left before Testing Phase**

Major

- ~~Sum Trees merge~~ **_in review_**

Minor

- ~~Average case processing costs~~ **_done_**
- Some code polishing
- Light proof feature


## SDK
**Goals:**
Rework chain synchronization process (SPV)

**Tasks:**

- Reworking chain synchronization process **_done_**
- Manual QA **_done_**
- Stabilizing Platform related workflows (Platform Test Suite) **_done_**
- Updating grpc-web library **_in progress_**

DashPay Web Extension

- Wallet balance in USD **_done_**
- Create/Reset/Backup Wallet flows **_done_**
- Migrating extension from Manifest V2 to Manifest V3 **_in progress_** (needed for publishing to Chrome Store)

**What's next**

- Reorgs handling and consensus rules fine tuning
- Secure keychain storage

## Protocol
**Goals:** Same block execution, fees and withdrawals

**Tasks:**

Fee finalization (v23) in JS Drive and DPP **_done_**

Withdrawals:
- Introduce withdrawals data contract **_in review_**
- Implement the pooling process (type 0 only) for withdrawals **_in review_**
- Update status of withdrawals after broadcasting **_in review_**
- Add revision logic to IdentityCreditsWithdrawal transition **_in review_**

Same Block Execution:
- Use multiple database transactions for block processing **will not be implemented**
- Provide signature and block time in query handlers **_done_**
- Fix for Reconnect logic in DAPI **_done_**
- contactRequest documents allow invalid toUserIds **_done_**
- Identity v2 **_in progress_**
- Efficient Data Serialization **_in progress_**
- Integration of average case costs **_in progress_**
- Integration RS-Platform into Platform **_done_**

**What's left:**

Major

- Fee Refunds
- Accomplish and test withdrawals

Minor

- Logging of same block execution
- Use block candidate context in State Repository
- Deal with situation where fees are higher than Balance
- Verify fee processing costs
- Asset Lock and Unlock transactions integration
- BLS library rust binding
- Masternode reward distribution

## Rust Port Update
**Tasks:**

- Integrate Rust DPP into SDK, Drive, DAPI and test suite **_in progress_**
- Initial glue figured out, DPP tests ported 159(68+91)/1174 **_in progress_**
- Porting Consensus Errors Framework: 30/76 errors ported **_in progress_**
- Successfully run platform test suite and test for Drive and Dapi **_planned_**
- Integrating working BLS scheme into Rust DPP **_done_**