What's left: Platform Development Update 10-January-2023
Tags: web3, opensource, blockchain, programming
Published: 2023-01-11 19:02:23

Happy New Year, fellow Dashers! 
This is our first Platform Update in 2023. Lots of things have been done. Let's see what's left before testing!
{% embed https://www.youtube.com/watch?v=e0UiWqqOPeo %}

## TenderDash
**Task:** Stabilization

**What We Planned**

Stabilizing

- updated dependencies (actions/stale, setup-go,buf-setup-action, goreleaser-action) **_done_**
- refactor: use logger for log printing **_done_**
- refactor: blocksync.bpRequester should stop procedure if block was received **_done_**
- feat!: verify next consensus params between nodes **_done_**
- build: enable deadlock detection on -dev docker images **_done_**
- build(github): use ubuntu 20.04 in github workflows **_done_**
- fix: flaky TestReactor_Backfill test **_done_**
- fix: improve flaky TestWALRoundsSkipper **_done_**

Investigate deadlocks

- refactor(consensus): consensus state to fix deadlock **_in progress_**

**What’s Left before Testing Phase**

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

---

## GroveDB
**Tasks**

- Deterministic loaded bytes **_done_**
- Optional Merk caching **_done_**
- Better path query merge **_in progress_**
- Merging of conditional path queries **_done_**
- Intersection and disjointed union of query items **_done_**
- Query Item Comparison **_done_**
- Proof of mixed levels **_in progress_**

**What’s Left before Testing Phase**

Major

- ~~Sum Trees merge **_done_**~~

Minor

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

---

## Protocol
**Task:** Identity v2
**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 review_**

**Other Protocol Tasks**

- Identity v2 **_in progress_**
- Total credit balance verification **_in progress_**
- Calculate expected total credits amount **_in progress_**
- Efficient Data Serialization **_in progress_**
- Add support for core 18.2 **_done_**
- Do not switch to validator quorum which will be removed soon **_done_**
- ABCI context logger **_in review_**
- Fix for non deterministic processing fees **_done_**

**What’s Left before Testing Phase**
Major

- ~~Fee Refunds~~
- Accomplish and test withdrawals
- State Sync

Minor

- ~~Logging of same block execution~~
- ~~Use block candidate context in State Repository~~
- Deal with situation where fees are higher than Balance **_in progress_**
- Verify fee processing costs
- Asset Lock and Unlock transactions integration
- BLS library rust binding
- Masternode block reward distribution
- Add Sum Tree feature for Pool trees **_in progress_**

---

## Rust Port Update

**What We Planned**

- Integrate Rust DPP into SDK, Drive, DAPI and test suite **_in progress_**
- Successfully run platform test suite and test for Drive and Dapi **_planned_**
- ConsensusError **_done_**
- ProtocolError **_in progress_**

**State Transitions**

DataContract

- ~~Create~~
- ~~Update (Changed)~~

Identity

- ~~Asset lock proof~~
- ~~Create~~
- TopUp **_(Integration is in progress)_**
- Update **_(Integration is in progress)_**

Document

- ~~Batch~~