mirror of
https://repo.getmonero.org/monero-project/ccs-proposals.git
synced 2024-12-24 23:19:28 -05:00
77 lines
4.6 KiB
Markdown
77 lines
4.6 KiB
Markdown
|
---
|
||
|
layout: fr
|
||
|
title: "0xfffc full-time C++ development (3 months, Sep, Oct, Nov, 2024)"
|
||
|
author: 0xfffc
|
||
|
date: 14 Aug 2024
|
||
|
amount: 111
|
||
|
milestones:
|
||
|
- name: 160 hours
|
||
|
funds: 37
|
||
|
done:
|
||
|
status: unfinished
|
||
|
- name: 160 hours
|
||
|
funds: 37
|
||
|
done:
|
||
|
status: unfinished
|
||
|
- name: 160 hours
|
||
|
funds: 37
|
||
|
done:
|
||
|
status: unfinished
|
||
|
payouts:
|
||
|
- date:
|
||
|
amount:
|
||
|
- date:
|
||
|
amount:
|
||
|
- date:
|
||
|
amount:
|
||
|
---
|
||
|
|
||
|
### What
|
||
|
|
||
|
The bulk of my focus will be on opportunities related to performance improvement. To find out performance improvement opportunities a performance test suite is necessary for the Monero project. Here is a list of tasks I have on my todo list:
|
||
|
|
||
|
- Dynamic BSS: The issue is dynamic BSS (block-sync-size) size. If BSS goes over a threshold, then we hit the packet limit size (100mb). I expect to hit the serialization limit (https://github.com/monero-project/monero/pull/9433) too at some point if we fix the packet size limit. This one hopefully will be solved by the time this CCS kicks in.
|
||
|
|
||
|
- Bandwidth-Efficent Transaction Propagation Usage: Work on the @boog900 proposal ( https://github.com/monero-project/monero/issues/9334 ). And reduce the communication load between peers when syncing. The final goal is to merge a PR that uses this mechanism in Monero P2P subsystem.
|
||
|
|
||
|
- OOM: Spend time on finding the root cause of OOM. Report to community and eventually submit PR fixing it.
|
||
|
|
||
|
- Exclusive incoming ip: --exclusive-incoming-ip flag: (a) Require --add-exclusive-node to be set. (b) Be able to be set multiple times.
|
||
|
|
||
|
- Cleanup the sleepwait: Remove this _sleep_wait_ and change it to condition variable: https://github.com/monero-project/monero/blob/cc73fe71162d564ffda8e549b79a350bca53c454/src/daemon/daemon.cpp#L198
|
||
|
|
||
|
- Sync time estimation: When calculating how long it will take to finish the sync, is uses a number of blocks. Example: 200 blocks remaining, synced 20 blocks in 1 min = 10 mins remaining. It should use the size, instead of the block number.
|
||
|
|
||
|
- Performance benchmarks. The performance benchmark test I am working on right now is stress testing Monerod under an intense load that tries to mimic a real-world heavy node. Right now it is in very early shape. The end goal is to mimic real-world wallet usage on the Monero daemon.
|
||
|
|
||
|
- Completion of Read/Write Lock PR [#9181](https://github.com/monero-project/monero/pull/9181). PR 9181 is a huge change to the core of the blockchain implementation of the Monero project. It requires a lot of careful analysis and testing. Task 1 and Task 2 are kind of depend on each other. I use benchmarking results from task 1 to test/improve/debug 9181. @jeffro256_ has implemented an important and sensitive part of the 9181 code and has improved the PR with his suggestions.
|
||
|
|
||
|
- Seraphis wallet LMDB storage. Based on our discussion in the IRC #monero group, it seems porting the entire wallet2 storage to LMDB at this point is not a wise decision. Instead of that, we should start implementing the Seraphis wallet cache with LMDB. Once I am finished with Task 1 and 2, my next big goal is to start focusing on this task. The target of this task is to have Seraphis wallet only using LMDB as its cache/storage engine.
|
||
|
|
||
|
- Static analysis. This task hasn't been finished from my previous CCS by the time I am submitting this CCS. I am hopeful I will finish it before the end of my previous CCS. But in case I am not able to finish it, this is one of the tasks I have on my todo list: "Analyze existing static analyzers (clangd-based analyzer, NASA/ikos, Facebook/infer, etc) and report to @selsta about the possibility of adding one of them as a workflow to our GitHub repository. Target will be running static analysis on submitted PR as workflow."
|
||
|
|
||
|
### Who
|
||
|
|
||
|
I have been contributing to the Monero core repository for the past few months with a total of multiple ([PRs]( https://github.com/monero-project/monero/pulls?q=is%3Apr+author%3A0xFFFC0000+)) merged commits thus far. Some ongoing contributions:
|
||
|
|
||
|
- Helped review multiple [PRs](https://github.com/monero-project/monero/pulls?q=is%3Apr+reviewed-by%3A%40me).
|
||
|
- Implemented Read/Write lock mechanism for core blockchain implementation. [9181](https://github.com/monero-project/monero/pull/9181).
|
||
|
- Helped to review and fix multiple HackerOne reports with @selsta.
|
||
|
|
||
|
A special thanks to all community members who are always available to help me with technical questions.
|
||
|
|
||
|
Previous Proposals:
|
||
|
|
||
|
- [429](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/429)
|
||
|
- [438](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/438)
|
||
|
|
||
|
### Funding
|
||
|
|
||
|
- 37xmr/mth * 3 months = 111xmr
|
||
|
|
||
|
- Schedule: 40hr/week * 12week
|
||
|
|
||
|
|
||
|
Freedom wins.
|
||
|
0xFFFC
|