What's left: Platform Development Update 13-December-2022
Tags: web3, opensource, blockchain, programming
Published: 2022-12-15 14:16:26

Hey fellow Dashers, this is a short wrap up of what happened with the Platform over the past few weeks. 

{% embed https://www.youtube.com/watch?v=zyth7eOBVDc&t=2276s %} 

## TenderDash

**Goals:** Same block execution
**Tasks:**
Stabilizing

- fix(consensus): proposer-based timestamp broken during backport **_in review_**
- fix(consensus): ProcessProposal executed twice for a block **_done_**
- chore(types)!: rename genesis.json quorum fields **_done_**
- refactor(consensus): consensus state to fix deadlock **_on hold_**
- fix(wal): improve WAL replay mechanism **_in review_**

Investigate deadlocks
- fix(statesync): statesync stops the node when light block request fails done
- fix(statesync): deadlock in peer up in progress
Other:

- Release v0.8.0

**What’s Left before Testing Phase**

- Stabilize same-block execution
- Update BLS library
- Adjust vote extensions for withdrawal transactions
- Improve seed node operations

## GroveDB

**Tasks:**

- Sum Trees merge **_done_**
- Costs for Sum Trees **_done_**
- Delete up tree worst case processing costs **_done_**
- Delete up tree average case processing costs **_done_**

Features:

- Deletion up tree in batches **_done_**
- Removal on Root Tree storage **_in review_**
- Inserts **_done_**
- Deletes **_done_**
- Batches **_in review_**
- Proofs **_in review_**
- Update of Costs **_in review_**

**What’s Left before Testing Phase**

- Light proof feature **_in progress_**

## JS SDK

**Goals:** Reorgs and consensus

**Tasks:**

- Updating grpc-web library **_done_**
- Fine tuning consensus rules **_in progress_**
- DashPay Web Extension
- 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:** V23 release, same block execution


Credit 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_**
- Indices from expired withdrawal transactions must be reused **_in progress_**

Same Block Execution

- Use proposed block execution context in State Repository **_done_**
- Update finalize block handler signature **_done_**
- Skip process proposal if prepare proposal is already called for this round **_done_**
- Safe single database transaction block processing **_done_**
- Comprehensive logging **_done_**
- Pass latest chain lock on init chain **_done_**

Other Protocol Tasks

- Identity v2 **_in progress_**
- Efficient Data Serialization **_in progress_**
- Integration of average case costs **_done_**
- Integration of GroveDB 0.7 (supports Sum Trees) **_done_**
- Release Platform v0.23 **_done_**
- Use FeeResult to collect block fees **_done_**
- Credit Refunds **_in progress_**

**What’s Left**

Major

- Fee Refunds **_in progress_**
- Accomplish and test withdrawals
- State Sync

Minor

- 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
- Add Sum Tree feature for Pool trees

## Rust Port Update

- Integrate Rust DPP into SDK, Drive, DAPI and test suite **_in progress_**
- Porting Consensus Errors Framework: 75/76 errors ported **_in progress_**
- Successfully run platform test suite and test for Drive and Dapi **_planned_**