Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

timwu20: retain at rank 1 #76

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions evidence/timwu20/0002-timwu20-2024-Q3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Evidence-0000: Retention at Rank 1
timwu20 marked this conversation as resolved.
Show resolved Hide resolved

| | |
| --------------- | ------------------------------------------------------------------------------------------- |
| **Report Date** | 2024-10-16 |
| **Submitted by**| Timothy Wu |


## Member details

- Matrix username: @timwu20:matrix.org
- Polkadot address: 1RaxuqWvyd6sdAEiansxmtget47PVcsSR38d9V2uPzKu2vo
- Current rank: 1
- Date of initial induction: Seeding
- Date of last report: 2024-07-02
- Area(s) of Expertise/Interest: Alternative client, Consensus protocols, WASM, SCALE, Trie


## Reporting period

- Start date: 2024-07-02
- End date: 2024-10-16


## Evidence

Continued working on GRANDPA integration within Gossamer. We merged the standalone finality-grandpa package [(PR)](https://github.com/ChainSafe/gossamer/pull/4126) to development and is now used partially when verifying GRANDPA justifications while syncing [(PR)](https://github.com/ChainSafe/gossamer/pull/4144).

Shifted focus in the last quarter to the integration of our version of [`TrieDB`](https://github.com/ChainSafe/gossamer/tree/development/pkg/trie/triedb), which is our version of the lazy loaded, ephemeral trie that supports caching and node recording. This will greatly reduce memory usage in Gossamer, as well as drastically reduce the node startup time. My focus is currently on reworking our entire block storage and providing caches to `TrieDB` based on state root. It was determined that there are changes required for `TrieDB` which I addressed recently.

First was to implement Go generic support within `TrieDB` to support any hash implementation, where the interface aligns with primitives we've introduced into Gossamer. As well as rework how we handle nibble keys and revise the iterator for integration into future work [(PR)](https://github.com/ChainSafe/gossamer/pull/4221).

The second change is the implementation of node level caching within `TrieDB` [(PR)](https://github.com/ChainSafe/gossamer/pull/4239). Given that we are moving away from the full in-memory trie within Gossamer to this lazy loaded, ephemeral trie provided by `TrieDB`, we thought it was prudent to have the same decoded node caching mechanism that is found in the [parity trie-db](https://github.com/paritytech/trie/tree/master/trie-db) implementation to maintain similar levels of performance to the full in-memory trie. We will be benchmarking the node to know how far performance has degraded.

## Voting record
*Provide your voting record in relation to required thresholds for your rank.*

| Ranks | Activity thresholds | Agreement thresholds | Member's voting activities | Comments |
|---|---|---|---|---|
|I |90% |N/A | Missed voting on #150 | I will be actively monitoring members track referenda moving forward. |
|II |80% |N/A | | |
|III|70% |100% | | |
|IV |60% |90% | | |
|V |50% |80% | | |
|VI |40% |70% | | |


## Misc

- [ ] Question(s):

- [ ] Concern(s):

- [ ] Comment(s):