# Evidence-0001: Promotion to Rank 2
| | |
| ---------------- | ------------------------------- |
| **Report Date** | Date of submission (YYYY/MM/DD) |
| **Submitted by** | Name of the proposer |
## Member details
- Matrix username: @eclesiomelo:matrix.org
- Polkadot address: 14Ak9rrF6RKHHoLLRUYMnzcvvi1t8E1yAMa7tcmiwUfaqzYK
- Current rank: 1
- Date of initial induction: Seeding
- Date of last report: N/A
- Area(s) of Expertise/Interest: Alternative Client, Polkadot Spec, Network Syncronizathion, Consensus Layer, Virtual Machines
## Reporting period
- Start date: 2023/07/01
- End date: 2024/06/30
## Evidence
Hello everyone, My name is Eclesio and I have been a Gossamer Core Developer from almost 3 years. Since last year my challenge is to make Gossamer a stable node and make it sync to the Westend network tip. Along this path I was able to understand a lot of the Polkadot internals, how pallets works and are composed.
As one requirement for promote to rank 2 I've also written a long-form post explaining how Polkadot epochs works from the host point of view (there is a small explanation on how it works on the runtime side): https://hackmd.io/q5O1XJ2YRw2UbU-xHEpK5g
| Areas of Contribution | Tasks | Links |Notes |
|---|---|---|---|
| Gossamer BABE | Fix a Timestamp must match CurrentSlot bug in the BABE pkg | https://github.com/ChainSafe/gossamer/pull/3133 | |
| Block Verification | Cache slots to data header decreases the equivocation check from 18s to 3s | https://github.com/ChainSafe/gossamer/pull/3364 | |
| Network Sync | Fix Gossamer sync by changing a round and set id validation given that in Westend there are a lot of weird cases that lead to rounds being messed up in the same set id | https://github.com/ChainSafe/gossamer/pull/3167 | |
| Gossamer Runtime Layer | Reduced the number of in memory runtime instances in Gossamer | https://github.com/ChainSafe/gossamer/pull/3151 ||
| Trie Package | Fixing the correct state trie V1 root hash calculation, allowing Gossamer to execute blocks when the new trie was introduced in the relay chain | https://github.com/ChainSafe/gossamer/pull/3739 ||
| Gossamer Runtime Layer | Introduces nested transactions | https://github.com/ChainSafe/gossamer/pull/3670 ||
| Gossamer Runtime Allocator | Refactored Gossamer Freeing Bump Heap Allocator | https://github.com/ChainSafe/gossamer/pull/3570 ||
| Gossamer Runtime Layer | Doing the correct page type cast to uint32 | https://github.com/ChainSafe/gossamer/pull/3588 |This task required a some investigations on Wazero Go library|
| Gossamer Runtime Layer | panic while executing a block `wasm error: out of bounds memory access` | https://github.com/ChainSafe/gossamer/issues/3774 | With this task we were able to introduce Compiled Runtime Cache that enables Gossamer to bootstrap a runtime quickly when |
## Additional Note
Contributed with Substrate by identifying a bug in the peer reputation management where spamming Grandpa: Neighbor message increases reputation - https://github.com/paritytech/substrate/issues/12191