Skip to content
Snippets Groups Projects

0xfffc-2024Q2

Merged 0xFFFC requested to merge 0xFFFC0000/ccs-proposals:master into master
0xfffc-2024Q2.md 0 → 100644
+ 62
0
 
---
 
layout: fr
 
title: "0xFFFC full-time C++ development (3 months, May, June, July, 2024)"
 
author: 0xFFFC
 
date: 21 March 2024
 
amount: 45
 
milestones:
 
- name: 160 hours
 
funds: 30
 
done:
 
status:
 
- name: 160 hours
 
funds: 30
 
done:
 
status: unfinished
 
- name: 160 hours
 
funds: 30
 
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.
 
 
I have been experimenting with the idea of performance tests with Monero past few weeks ( [perf script](https://github.com/0xFFFC0000/monero-perf), [small C++ code to benchmark monero](https://github.com/0xFFFC0000/benchmark-project), [monero rpc test](https://github.com/0xFFFC0000/monero/pull/17) ). and I believe a RPC client that stress tests the daemon is the way to go. My intended goals first this CCS:
 
 
- 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:
 
 
- Implemented Read/Write lock mechanism for core blockchain implementation. [9181](https://github.com/monero-project/monero/pull/9181).
 
- Helped review multiple [PRs](https://github.com/monero-project/monero/pulls?q=is%3Apr+reviewed-by%3A%40me).
 
- 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)
 
 
### Funding
 
 
- 30xmr/mth * 3 months = 90xmr
 
- Schedule: 40hr/week * 12week
 
 
 
Freedom wins.
 
0xFFFC
 
\ No newline at end of file
Loading