Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • monero-project/ccs-proposals
  • rehrar/ccs-proposals
  • DSal/ccs-proposals
  • el00ruobuob/ccs-proposals
  • TONGZHENGSHIJIE/ccs-proposals
  • SarangNoether/ccs-proposals
  • pwrcycle/ccs-proposals
  • onosendai/ccs-proposals
  • xeagu/ccs-proposals
  • b-g-goodell/ccs-proposals
  • xmrhaelan/ccs-proposals
  • moneromooo-monero/ccs-proposals
  • AcceptThisYouCensors/ccs-proposals
  • Needmoney90/ccs-proposals
  • erciccione/ccs-proposals
  • knueffelbund/ccs-proposals
  • xiphon/ccs-proposals
  • dsc/ccs-proposals
  • Codivorous/ccs-proposals
  • serhack/ccs-proposals
  • sgp/ccs-proposals
  • Kukks/ccs-proposals
  • gingeropolous/ccs-proposals
  • hyc/ccs-proposals
  • saumyabratadutt/ccs-proposals
  • kayront/ccs-proposals
  • rellis/ccs-proposals
  • Avantpay19/ccs-proposals
  • lazaridiscom/ccs-proposals
  • omani/ccs-proposals
  • JackBlack/ccs-proposals
  • Kyoto/ccs-proposals
  • Endogen/ccs-proposals
  • sri346/ccs-proposals
  • asymptotically/ccs-proposals
  • Avis/ccs-proposals
  • Monero/ccs-proposals
  • jtgrassie/ccs-proposals
  • Fudin/ccs-proposals
  • helloworld9998/ccs-proposals
  • lalanza808/ccs-proposals
  • TheCharlatan/ccs-proposals
  • atoc/ccs-proposals
  • randybrito/ccs-proposals
  • Ministo/ccs-proposals
  • objectorange/ccs-proposals
  • adrelanos/ccs-proposals
  • mj/ccs-proposals
  • MoneroAddict/ccs-proposals
  • h4sh3d/ccs-proposals
  • paulshapiro/ccs-proposals
  • pricode/ccs-proposals
  • naijaminer/ccs-proposals
  • niyiajayi/ccs-proposals
  • cryptosourov/ccs-proposals
  • Drowxes/ccs-proposals
  • Mon_icp/ccs-proposals
  • Madbu221b/ccs-proposals
  • suyash67/ccs-proposals
  • kdavid2008/ccs-proposals
  • xmrLovera/ccs-proposals
  • lh1008/ccs-proposals
  • jatinajwani/ccs-proposals
  • normoes/ccs-proposals
  • Wobole/ccs-proposals
  • lederstrumpf/ccs-proposals
  • AlexAnarcho/ccs-proposals
  • readifugly/ccs-proposals
  • binaryFate/ccs-proposals
  • oeAdgK01/ccs-proposals
  • nio21/ccs-proposals
  • michaelizer/ccs-proposals
  • janowitz/ccs-proposals
  • fleaw/ccs-proposals
  • gusan/ccs-proposals
  • Leo27/ccs-proposals
  • tobtoht/ccs-proposals
  • anon/ccs-proposals
  • panagot12/ccs-proposals
  • kysn/ccs-proposals
  • monerotesla/ccs-proposals
  • sahil07/ccs-proposals
  • xmronadaily/ccs-proposals
  • ClaytonBHooverIII/ccs-proposals
  • txstreet/ccs-proposals
  • Aron/ccs-proposals
  • jklein/ccs-proposals
  • wtii/ccs-proposals
  • alynoe/ccs-proposals
  • selsta/ccs-proposals
  • johnfoss67/ccs-proposals
  • benevanoff/ccs-proposals
  • op/ccs-proposals
  • cirocosta/ccs-proposals
  • ragazzo/ccs-proposals
  • 888/ccs-proposals
  • elibroftw/ccs-proposals
  • amr-monero/ccs-proposals
  • behash/ccs-proposals
  • AnonDev/ccs-proposals
  • Rucknium/ccs-proposals
  • rating89us/ccs-proposals
  • AdorableTanuki/ccs-proposals
  • neat/ccs-proposals
  • plowsoff/ccs-proposals
  • xmr_sale/ccs-proposals
  • escapethe3RA/ccs-proposals
  • DouglasTuman/ccs-proposals
  • Bl5ckj5ck/ccs-proposals
  • j-berman/ccs-proposals
  • CrypticEntertainments/ccs-proposals
  • Geroser/ccs-proposals
  • ava_haidang/ccs-proposals
  • pluja/ccs-proposals
  • msvblab/ccs-proposals
  • monerokage/ccs-proposals
  • noot/ccs-proposals
  • RogueMaven/ccs-proposals
  • xmrman/ccs-proposals
  • moneronews/ccs-proposals
  • spirobel/ccs-proposals
  • winstonsthiccbooty/ccs-proposals
  • help.ukraine/help-ukraine-to-use-monero
  • dangerousfreedom/ccs-proposals
  • moneroist/ccs-proposals
  • anon_/ccs-proposals
  • agustincruz/3-d-metal-printer-project
  • savandra/ccs-proposals
  • willk/ccs-proposals
  • max.zab/ccs-proposals
  • rimuru/ccs-proposals
  • CryptoMorpheus_/ccs-proposals
  • jeffro256_/ccs-proposals
  • m0n3r0d1c3/ccs-proposals
  • leonerone/ccs-proposals
  • marjorie69/ccs-proposals
  • monero_archive/monero-archive
  • forgotsudo/ccs-proposals
  • mikigrey321/ccs-proposals
  • anhdres/ccs-proposals
  • thelefterisjp/ccs-proposals
  • lescuer971/ccs-proposals
  • MoneroBro/ccs-proposals
  • rayatina/ccs-proposals
  • HoudiniSwap/ccs-proposals
  • nightwolf361/ccs-proposals
  • z00t/ccs-proposals
  • markofdistinction_/ccs-proposals
  • busyboredom/ccs-proposals
  • Mitchellpkt/ccs-proposals
  • Fierfek/p-2-p-publisher-monerotopia-mexico-city
  • BigmenPixel/ccs-proposals
  • cmiv/ccs-proposals
  • VOSTOEMISIO/ccs-proposals
  • valldrac/ccs-proposals
  • Titus/ccs-proposals
  • C0mradeBlin/ccs-proposals
  • kayabaNerve/ccs-proposals
  • Boog9001/ccs-proposals
  • 4rkal/ccs-proposals
  • binarybaron2/ccs-proposals-bb
  • ajs/ccs-proposals
  • sacatunquetun/ccs-proposals
  • vtnerd/ccs-proposals
  • 0xFFFC0000/ccs-proposals
  • Clodagh/ccs-proposals
  • mrcyjanek/ccs-proposals
  • detheforxmr/ccs-proposals
  • r4v3r23/ccs-proposals
  • janaka303/ccs-proposals
  • eyedeekay/ccs-proposals
  • Secrecy1337/ccs-proposals
  • rohanrhu/ccs-proposals
  • baldeagle/ccs-proposals
  • fengzie_mbz/mobazha-with-monero-in-privacy-ecommerce
  • freeross/ccs-proposals
  • DiosDelRayo/ccs-proposals
  • omnedeus/ccs-proposals
  • geonic/ccs-proposals
  • untraceable/ccs-proposals
  • ki9/ccs-proposals
  • monerobullgitlab/ccs-proposals
  • sybann/ccs-proposals-bb
  • hinto/ccs-proposals
  • HardenedSteel/ccs-proposals
  • Kewbit/ccs-proposals
  • plowsofff/ccs-proposals
  • mainnet-pat/ccs-proposals
  • SimplifiedPrivacy/ccs-proposal-carrot-animated-video
  • SimplifiedPrivacy/ccs-proposal-carrot-animated-video-b
  • SNeedlewoods/ccs-proposals
  • midipoet/ccs-proposals
  • soufiane/ccs-proposals
  • geonic1/ccs-proposals
  • v1docq47/ccs-proposals
  • fullmetalScience/ccs-proposals
  • FiatDemise/xmrchat
  • dadybayo/ccs-proposals
  • rottenwheel/ccs-proposals
  • napoly/ccs-proposals
  • techpopulus/marketplace-monero-techdaddi
  • hbs/ccs-proposals
  • acx/ccs-proposals
  • wallet-verse/ccs-proposals
  • N1co1asB1ancon1/monero-contract-system
  • SyntheticBird/ccs-proposals
206 results
Show changes
Showing
with 1021 additions and 61 deletions
---
layout: cp
title: hinto-janai full-time work on Cuprate (3 months)
author: hinto-janai
date: May 5, 2024
amount: 264
milestones:
- name: RPC server design
funds: 20% (52.8)
done: 5 June 2024
status: finished
- name: JSON RPC interface
funds: 40% (105.6)
done: 9 August 2024
status: finished
- name: Binary/other RPC interface + other work
funds: 40% (105.6)
done: 9 August 2024
status: finished
payouts:
- date: 18 June 2024
amount: 52.8
- date: 12 August 2024
amount: 211.2
---
## What
[Cuprate](https://github.com/Cuprate/cuprate) is an alternative Monero node implementation, currently worked on by me and [Boog900](https://github.com/boog900).
The next large section that needs work is the RPC server. Another contributor, [yamabiiko](https://github.com/yamabiiko), is also interested in working on the RPC server, although they currently have limited time, so I'll be starting on it alone for now (with much help from Boog900).
## Who
I'm [hinto-janai](https://github.com/hinto-janai).
Past CCS: https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/422.
## RPC server
yamabiiko has started a discussion on the design for the RPC server [here](https://github.com/Cuprate/cuprate/issues/106), and Boog900 has suggested some changes.
The first milestone's time will be spent on:
- Fleshing out the current proposal or potentially finding better alternatives
- Preparing an initial design document, similar to [`database/`](https://github.com/Cuprate/cuprate/pull/35)
The current design for the database was spread out across several months, although, the design for the RPC server should take much less time.
After a design is set, the second/third milestone will start on the RPC interface library - the timeline for this is by the end of this CCS. This includes testing, documentation, etc. The current plan is to separate the interface from the inner RPC handler. After the interface is finished, the internal handler(s) will be finished in another CCS (potentially split between contributors).
By the end of this CCS, the initial design document will be polished to reflect the implementation, similar to [here](https://github.com/Cuprate/cuprate/blob/main/database/README.md), and user documentation will also be finished (again, like `database/`).
The resulting design document will be added to [Cuprate's architecture book](#cuprates-architecture-book) (see below).
## Other work
There's also other work that I believe would be beneficial to start on earlier rather than later.
These will be started on during this CCS:
- Cuprate's architecture book
- Persistent transaction pool
- `monero-core` RPC PRs
- Benchmarking suite
- Project lints
The persistent transaction pool will be finished within this CCS, the rest will grow alongside the project.
### Cuprate's architecture book
This is a book similar to [Cuprate's protocol book](https://monero-book.cuprate.org), although it will be for Cuprate's implementation. The RPC design will be documented in this book (along with every other component) as they are implemented. The current [database document](https://github.com/Cuprate/cuprate/blob/main/database/README.md) will be ported to the book as well.
Current rough draft: https://hinto-janai.github.io/cuprate-architecture
Expected included items are:
- Relational map of components (RPC, DB, block downloader, verifier, etc)
- Component designs
- Thread model (when/where/how many threads get spawned? for what purpose?)
- Resource model (files, sockets, memory usage)
- Instrumentation (logging, data collection methods)
- Known inefficiencies/tradeoffs, their reasoning
### Persistent transaction pool
Considering RPC implementation will take a while, implementing a persistent transaction pool sooner rather than later would be preferred; another option Cuprate has is to create an in-memory only transaction pool, although this would only be a stop-gap and would take more work in the long run, thus this work will be done now.
### `monero-core` RPC PRs
As I'll be going through all of `monerod`'s RPC methods/objects and [`getmonero.org`](https://www.getmonero.org/resources/developer-guides/daemon-rpc.html) documentation, I will open PRs to `monero-core` or create an issue if I notice any discrepancies.
### Benchmarking suite
Creating a benchmarking suite for Cuprate's components would allow for collecting and storing information on code execution time. This data can be used later on to detect performance regressions as well as measuring optimizations.
Creating a bespoke benchmarking tool would be a project of its own, so Cuprate is planning to use the [Criterion](https://bheisler.github.io/criterion.rs/book/criterion_rs.html) project.
### Project lints
Lints cause compiler warnings to become hard errors, blocking compilation. An example: [`serai-dex`](https://github.com/serai-dex/serai/blob/21123590bb600323aa424f64ffaa5d321b1b22ed/Cargo.toml#L135-L184).
Cuprate's CI already fails on warnings (among other pedantic things), although there are many additional lints we could add. Selecting the lints that make sense for Cuprate sets higher code standards for the project. Setting this up and fixing current code should not take too much effort, but it will be drawn out over time.
## Funding
I am asking for a rate closer to market rates, please read [here](https://gist.github.com/hinto-janai/8ce1d4847f51304aa4d71c3614408d7f).
I am asking for $65 + 0.05 XMR per hour for 480 hours at $130/XMR. This gives 264 XMR.
Recent activity has shown that `monerod` does not handle load well. Furthermore, there is little system-level documentation; changes needed to fix issues like this are more difficult than necessary. I do not believe this has to be repeated.
I believe this is a fair rate for creating well documented and maintainable infrastructure. I am also asking for less hours than before as I don't believe I can continue at my current pace long-term.
\ No newline at end of file
---
layout: fr
layout: cp
title: hinto-janai full-time work on Cuprate (3 months)
author: hinto-janai
date: Nov 6, 2023
......@@ -7,23 +7,21 @@ amount: 153
milestones:
- name: Internals
funds: 33% (51)
done:
status: unfinished
done: 13 March 2024
status: finished
- name: API
funds: 33% (51)
done:
status: unfinished
done: 5 May 2024
status: finished
- name: Integration + 3 months of work
funds: 33% (51)
done:
status: unfinished
done: 5 May 2024
status: finished
payouts:
- date:
amount:
- date:
amount:
- date:
amount:
- date: 9 April 2024
amount: 51
- date: 14 May 2024
amount: 102
---
## What
......
---
layout: cp
title: hinto-janai full-time work on Cuprate (3 months)
author: hinto-janai
date: August 9, 2024
amount: 221
milestones:
- name: JSON RPC handlers
funds: 40% (88.4)
done: 25 December 2024
status: finished
- name: Binary/other RPC handlers
funds: 40% (88.4)
done: 25 December 2024
status: finished
- name: Other work
funds: 20% (44.2)
done: 4 November 2024
status: finished
payouts:
- date: 12 November 2024
amount: 44.2
- date: 21 January 2024
amount: 176.8
---
## What
[Cuprate](https://github.com/Cuprate/cuprate) is an alternative Monero node implementation.
The next section that needs work is the RPC handlers. The design, interface, routing, types, and (de)serialization were completed in my previous CCS, see here:
- Past CCS: https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/456
- RPC interface tracking issue: https://github.com/Cuprate/cuprate/issues/183
- RPC book: https://architecture.cuprate.org/rpc/intro.html
This CCS is for the handlers, i.e. the functions that turn requests into responses.
Once the handlers are complete, Cuprate will have a working RPC stack that [mostly](https://architecture.cuprate.org/rpc/differences/intro.html) mirrors `monerod`.
## Who
I'm [hinto-janai](https://github.com/hinto-janai).
## RPC handlers
The 1st/2nd milestones are for the RPC handlers. This is the majority of the work.
This includes:
- JSON RPC handlers (methods behind `/json_rpc`)
- Binary RPC handlers (binary endpoints, e.g. `/get_blocks.bin`)
- Other handlers (other JSON endpoints, e.g. `/get_height`)
The RPC handlers will most likely be in its own library/section, built on-top of the RPC libraries Cuprate has so far. The current RPC interface library ([`cuprate-rpc-interface`](https://github.com/Cuprate/cuprate/tree/main/rpc/interface)) allows for custom handlers, as in, the mapping of `request` -> `response` can be customized. The handler created in this CCS will be a standard implementation that (mostly) follows `monerod`'s behavior, i.e. request comes in, get some data from the database and such, return a response. Although, other implementations are possible, such as an RPC handler that caches blocks, as mentioned in [this meeting](https://github.com/monero-project/meta/issues/996#issuecomment-2086710102).
Testing, [crate (library) documentation](https://doc.cuprate.org), and [architecture book](https://architecture.cuprate.org) sections will also be written.
### Binary strings
There are a few RPC methods that require further discussion before implementation in Cuprate, see the [binary strings proposal](https://github.com/monero-project/monero/issues/9422).
If the above proposal finds consensus on future `monerod` behavior, this CCS will implement that behavior.
If more time is required for the proposal, the related endpoints/methods will be left in a semi-unfinished state until behavior is agreed upon, where after Cuprate will implement that behavior.
If the proposal does not move forward, Cuprate is planning to fallback to implementing `monerod`'s current behavior.
## Other work
The 3rd milestone is for any miscellaneous work that needs to be done for Cuprate, but also, these 2 concrete things:
- Lints
- Benchmarking
I'd like to focus on these as:
- If they're always pushed to the side, they'll never get done
- I believe it's important to establish these early on in the project
I started integrating lints & benchmarks into Cuprate last CCS, this CCS will finish integrating them for all the libraries I've written so far, and [other libraries](https://architecture.cuprate.org/appendix/crates.html) if time allows.
The issues tracking the progress of these two can be found here:
- https://github.com/Cuprate/cuprate/issues/207 (lints)
- https://github.com/Cuprate/cuprate/issues/208 (benchmarks)
## Funding
I am asking for $65 + 0.05 XMR per hour for 480 hours at $158/XMR. This gives 221 XMR.
---
layout: wip
title: hinto-janai full-time work (3 months)
author: hinto-janai
date: February 7, 2025
amount: 186
milestones:
- name: Month 1
funds: 62 XMR
done:
status: unfinished
- name: Month 2
funds: 62 XMR
done:
status: unfinished
- name: Month 3
funds: 62 XMR
done:
status: unfinished
payouts:
- date:
amount:
- date:
amount:
- date:
amount:
---
## What
Work full-time for 480 hours on:
- Cuprate
- Alpha release cycle [1](https://github.com/Cuprate/cuprate/issues/371) [2](https://github.com/Cuprate/cuprate/issues/374)
- User book [1](https://user.cuprate.org) [2](https://github.com/Cuprate/cuprate/pull/165) [3](https://hinto-janai.github.io/cuprate-user-book)
- Project roadmap Q1/Q2 goals [1](https://github.com/Cuprate/cuprate/issues/376) [2](https://github.com/Cuprate/cuprate/pull/369) [3](https://github.com/Cuprate/cuprate/pull/370)
- Misc. review work
- Monero
- FCMP++ related review [1](https://github.com/monero-project/monero/pull/9440) [2](https://github.com/monero-project/monero/pull/9436) [3](https://github.com/monero-project/monero/issues/9422#issuecomment-2504037485)
Cuprate is preparing its first alpha release, with a 4-week cycle. A progress report for 2024 is [here](https://www.reddit.com/r/Monero/comments/1ij2sw6/cuprate_2024_progress_report), the roadmap for 2025 is [here](https://github.com/Cuprate/cuprate/issues/376). I will be buying/renting a variety of hardware for testing/development and will post receipts for all hardware acquired at the time of exchange within this CCS.
If developer resources becomes a bottleneck for FCMP++ activation on `monerod`, I will switch priority when/where possible. This was discussed [here](https://github.com/monero-project/meta/issues/1137). Otherwise, I will continue working on Cuprate Q1/Q2 goals noted in the project roadmap, specifically: user book, release cycle, RPC integration [1](https://github.com/Cuprate/cuprate/issues/379).
## Who
[hinto-janai](https://github.com/hinto-janai)
Previous proposals:
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/422
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/456
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/484
## Funding
186 XMR.
$65 + 0.1 XMR per hour for 480 hours at $225/XMR.
---
layout: wip
layout: cp
title: j-berman full-time development (3 months)
author: j-berman
date: December 18, 2023
......@@ -7,23 +7,23 @@ amount: 211 Monero
milestones:
- name: Month 1
funds: 33% (70.3 Monero)
done:
status: unfinished
done: 23 February 2024
status: finished
- name: Month 2
funds: 33% (70.3 Monero)
done:
status: unfinished
done: 4 April 2024
status: finished
- name: Month 3
funds: 33% (70.4 Monero)
done:
status: unfinished
done: 1 May 2024
status: finished
payouts:
- date:
amount:
- date:
amount:
- date:
amount:
- date: 4 March 2024
amount: 70.3
- date: 9 April 2024
amount: 70.3
- date: 14 May 2024
amount: 70.4
---
## What
......
---
layout: cp
title: j-berman full-time development (3 months)
author: j-berman
date: May 2, 2024
amount: 376 Monero
milestones:
- name: Month 1
funds: 33% (125.3 Monero)
done: 25 May 2024
status: finished
- name: Month 2
funds: 33% (125.3 Monero)
done: 10 July 2024
status: finished
- name: Month 3
funds: 33% (125.4 Monero)
done: 16 August 2024
status: finished
payouts:
- date: 17 June 2024
amount: 125.3
- date: 17 July 2024
amount: 125.3
- date: 30 August 2024
amount: 125.4
---
## What
Work full-time 3 months on:
- Integrating [full-chain-membership proofs](https://ccs.getmonero.org/proposals/fcmp++-development.html) into Monero under RingCT.
- As part of this CCS, I will submit PR's to the core Monero repository that do the following:
- Implements the tree in C++ described in section 6.1 ([paper](https://github.com/kayabaNerve/fcmp-ringct/blob/develop/fcmp%2B%2B.pdf), [reference commit](https://github.com/kayabaNerve/fcmp-ringct/blob/221e8c0e155d5fe526080c6e56c6418e0433177d/fcmp%2B%2B.pdf))
- Implements the `grow` and `trim` algorithms (sections 6.1.1 and 6.1.2)
- Implements tree initialization with existing cryptonote outputs on boot (section 6.2.1)
- Implements growing the tree as the node syncs (section 6.2.2 and 6.2.3)
- Implements the transaction class containing FCMP's (part of sections 6.3 - 6.6)
- I will probably extend `cryptonote::transaction` to do this.
- The following tasks from the rest of section 6 are necessary to complete the integration; I'm happy to divide and conquer if someone wants to work on this as well:
- Implement transaction construction with FCMP's (sections 6.3 - 6.6)
- A pre-requisite for this is implementing the transaction class above.
- Implement transaction verification (section 6.7)
- Implement RPC route to return a path for outputs (section 6.9)
- Implement unifying the distribution of {coinbase, pre-RCT, RCT} outputs and use it to select decoys paths (section 6.10)
- Implement changes for multisig (section 6.11)
- Continuing Seraphis wallet library work.
- My next task on this front is to bring the Serpahis lib async scanner into the current wallet API.
- To be clear, this is not implementing the Seraphis upgrade; it is bringing the Seraphis wallet **library**, which supports scanning today's blockchain, into the core Monero repository. This would speed up wallet scanning **today**, and is part of an effort to deprecate wallet2 and its technical debt, and replace it with the Seraphis lib ([source](https://github.com/seraphis-migration/wallet3/issues/64#issuecomment-2067030930)).
- The async scanner is currently under review ([source](https://github.com/UkoeHB/monero/pull/23))
- In the latest round of benchmarks, I observed scanning speed-ups of 50-60% with a clearnet remote node, 40-45% with a tor node, 25-35% with a local node, all running the **current chain** (not Seraphis).
- To be usable in the wallet API today, the following still needs to be implemented (I'm also happy to divide and conquer here):
- Pre-RCT index handling (needs [source](https://github.com/UkoeHB/monero/pull/23))
- A mutable subaddress lookahead ([source](https://github.com/UkoeHB/monero/pull/23#issuecomment-2036086371))
- Pool scanning ([source](https://github.com/UkoeHB/monero/issues/41))
- A clean way to save tx metadata ([source](https://github.com/UkoeHB/monero/issues/48))
- Complete p2p SSL review ([source](https://github.com/monero-project/monero/pull/8996)).
- Misc. review, debugging, etc.
## Who
j-berman on github / jberman on matrix / IRC
Past CCS's:
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-6.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-5.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-4.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-3.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-2.html
- https://ccs.getmonero.org/proposals/j-berman-3-months-full-time.html
## Proposal
376 XMR
480 hours, 0.25 XMR/hr + $65/hr, $122/XMR from coingecko
I'm requesting a siginificant raise from my past CCS (0.16 XMR/hr -> 0.25 XMR/hr, $48/hr -> $65/hr) because I believe I have demonstrated improved performance, and believe the recent donations to CCS proposals demonstrate the community is capable of paying strong Monero contributors market / above-market rates. I believe paying market / above-market rates for strong contributors is a stronger strategy for Monero to attract and retain strong talent.
---
layout: cp
title: j-berman full-time development (3 months)
author: j-berman
date: August 26, 2024
amount: 317 Monero
milestones:
- name: Month 1
funds: 33% (105 Monero)
done: 14 October 2024
status: finished
- name: Month 2
funds: 33% (106 Monero)
done: 11 November 2024
status: finished
- name: Month 3
funds: 33% (106 Monero)
done: 12 December 2024
status: finished
payouts:
- date: 20 October 2024
amount: 105
- date: 19 November 2024
amount: 106
- date: 12 January 2025
amount: 106
---
## What
Work full-time 3 months on:
- Integrating full-chain membership proofs++ into Monero under RingCT.
- As part of this CCS, I will prioritize and guarantee completion of the following in this PR: https://github.com/monero-project/monero/pull/9436
1. Trim the tree on reorgs and when popping blocks.
2. Key image migration.
3. Optimize tree building where possible.
- Multithreaded output conversion to leaves.
- Multithreaded hashing.
- Batched inversion.
4. Construct fcmp++ transactions.
- I anticipate updating `cryptonote::construct_tx_and_get_tx_key` for this, and not touching wallet2 in this proposal.
- By the end of this proposal, there will be a modular function wallets can use to construct fcmp++ txs, but I may not have an end-to-end functioning wallet that can construct fcmp++ txs implemented by the end of this proposal.
5. Verify fcmp++ transactions.
6. Consensus changes for fcmp++.
- New unlock time logic.
- Allowing new fcmp++ RCT type.
- Implement a grace period for current tx types in the pool at the fork to make it into the chain.
- Misc. necessary changes.
- Work together with @dangerousfreedom on full wallet scanning.
- The remaining integration tasks that I would also work on if time permits and someone else doesn't:
- Construct fcmp++ transactions in a fully functional wallet.
- Pre-requisites: modular function to construct fcmp++ transactions and full wallet scanning.
- Implement the RPC route for light wallets to query for paths in the curve trees tree.
- Wallet changes for background syncing.
- Multisig.
- Continuing Seraphis wallet library work.
- Making it clear up front: I anticipate not making much progress on the Seraphis wallet library work in this CCS. I plan to prioritize fcmp++. If time permits, I would work on bringing the Seraphis wallet library to production.
- To be clear, working on the Seraphis wallet library is not implementing the Seraphis upgrade; it is bringing the Seraphis wallet library, which supports scanning today's blockchain, into the core Monero repository. This would speed up wallet scanning today, and is part of an effort to deprecate wallet2 and its technical debt, and replace it with the Seraphis lib ([source](https://github.com/seraphis-migration/wallet3/issues/64#issuecomment-2067030930)).
- Next I plan to resolve merge conflicts in the current open PR's, and open all piecemeal PR's to the core Monero release branch to prepare Monero daemons/wallets and reduce the size and scope of the async scanner PR.
- Misc. review, debugging, etc.
## Who
j-berman on github / jberman on matrix / IRC
Past CCS's:
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-7.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-6.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-5.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-4.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-3.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-2.html
- https://ccs.getmonero.org/proposals/j-berman-3-months-full-time.html
## Proposal
317 XMR
480 hours, 0.25 XMR/hr + $65/hr, $158/XMR from coingecko
---
layout: wip
title: j-berman full-time development (4 months)
author: j-berman
date: December 16, 2024
amount: 360 Monero
milestones:
- name: Month 1
funds: 25% (90 Monero)
done: 21 January 2025
status: finished
- name: Month 2
funds: 25% (90 Monero)
done: 24 February 2025
status: finished
- name: Month 3
funds: 25% (90 Monero)
done:
status: unfinished
- name: Month 4
funds: 25% (90 Monero)
done:
status: unfinished
payouts:
- date: 4 February 2025
amount: 90
- date: 19 March 2025
amount: 90
- date:
amount:
- date:
amount:
---
## What
Work full-time 4 months on:
- Work towards a test network that includes Full-Chain Membership Proofs++.
- Continue optimizing building the FCMP++ curve tree to improve sync time both in the daemon and wallet.
- Construct FCMP++ transactions via the CLI/RPC/GUI.
- Verify FCMP++ transactions in the daemon.
- Implement all consensus changes needed for FCMP++.
- New unlock time logic.
- Allowing new FCMP++ RCT type.
- Implement a grace period for current tx types in the pool at the fork to make it into the chain.
- Misc. necessary changes.
- Update the cold wallet <> hot wallet integration and background syncing for FCMP++.
- Misc. high priority tasks as they arise.
## Who
j-berman on github / jberman on matrix / IRC
My open PR for the WIP FCMP++ integration: https://github.com/monero-project/monero/pull/9436
My branch that includes the wallet sync integration: https://github.com/j-berman/monero/commits/fcmp%2B%2B-tree-sync-dev/
Past CCS's:
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-8.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-7.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-6.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-5.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-4.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-3.html
- https://ccs.getmonero.org/proposals/j-berman-3months-full-time-2.html
- https://ccs.getmonero.org/proposals/j-berman-3-months-full-time.html
## Proposal
360 XMR
640 hours, 0.25 XMR/hr + $65/hr, $208/XMR from coingecko
---
layout: wip
layout: cp
title: jeffro256 full-time development 2023Q4
author: jeffro256
date: Oct 25, 2023
......@@ -11,8 +11,8 @@ milestones:
status: finished
- name: Month 2
funds: 33% (47.0)
done:
status: unfinished
done: 29 January 2024
status: finished
- name: Month 3
funds: 33% (47.0)
done:
......@@ -20,10 +20,10 @@ milestones:
payouts:
- date: 6 January 2024
amount: 47.8
- date:
amount:
- date:
amount:
- date: 23 February 2024
amount: 46.2
- date: 4 March 2024
amount: 53
---
## What
......
---
layout: cp
title: jeffro256 full-time development 2024Q2
author: jeffro256
date: Feb 27, 2024
amount: 171
milestones:
- name: Month 1
funds: 33% (57.0)
done: 7 April 2024
status: finished
- name: Month 2
funds: 33% (57.0)
done: 12 May 2024
status: finished
- name: Month 3
funds: 33% (57.0)
done: 13 June 2024
status: finished
payouts:
- date: 9 April 2024
amount: 57
- date: 18 May 2024
amount: 57
- date: 18 June 2024
amount: 57
---
## What
I plan to continue work full-time moving towards a Seraphis testnet (and wallet if I have time). These next dev cycles will likely be spent on writing production-ready serialization code, adding support for validating Seraphis transactions to the Cryptonote core, adding database backing support for these transactions, etc (generally weaving the Seraphis library into the core codebase in a way that makes it active). I have already began expanding Seraphis transaction support by beginning work on a transaction class and paired serialization code which will let us capture all possible Monero-compatible transaction forms and handle them in the codebase (expanded on below).
## Who
I have been contributing to the Monero core repository for [just over two years](https://github.com/monero-project/monero/pulls?page=2&q=is%3Apr+author%3Ajeffro256) with a total of [57 merged commits to master](https://github.com/monero-project/monero/commits?author=jeffro256) thus far. I also began working on the Seraphis migration project, so you can see some of my contributions [here](https://github.com/seraphis-migration/monero/pulls?q=is%3Apr+author%3Ajeffro256) and [here](https://github.com/UkoeHB/monero/pulls?q=is%3Apr+author%3Ajeffro256). Some more notable contributions from this last quarter:
- Polished [Jamtis changes draft PR](https://github.com/UkoeHB/monero/pull/26) and wrote up changes to the "Implementing Seraphis" paper, which were [approved by @UkoeHB](https://github.com/UkoeHB/Seraphis/pull/6).
- Began work on creating a [transaction type](https://github.com/jeffro256/monero/tree/monero_tx_variant) that encapsulates all past and Seraphis future transaction forms: cryptonote v1, v2, coinbase, Seraphis squashed, coinbase, with serialization that is backwards compatible. Along this same line, I wrote a [PR](https://github.com/monero-project/monero/pull/9174) that would help the LMDB backend code transition to Seraphis transactions.
- Wrote a [PR](https://github.com/monero-project/monero/pull/9135) that reduces hard disk usage for nodes.
- Reviewed @j-berman's [background sync PR](https://github.com/monero-project/monero/pull/8619).
Previous Proposals:
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/319
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/390
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/421
## Payment
I propose to work 40 hours/week for 3 months so `40 (hours/week) * 3 (months) * weeks_per_month = 40 (hours/week) * 3 (months) * (365 / 12 / 7) (weeks/month) = 521` hours total on-paper, though I usually work more than that. The proposal is broken into 3 milestones, one for each month. I am setting my hourly rate at 45 USD/hour (+1 USD/hour higher than last quarter), and at a market price of 136.88 USD/XMR, that makes for a total of 171 XMR. Price was calculated as 14-day simple average of opening prices on [CoinGecko](https://www.coingecko.com/en/coins/monero/historical_data) from 2024-02-23 to 2024-03-07 (day of writing).
---
layout: cp
title: jeffro256 full-time development 2024Q3
author: jeffro256
date: June 14, 2024
amount: 146
milestones:
- name: Month 1
funds: 33% (48.0)
done: 16 July 2024
status: finished
- name: Month 2
funds: 33% (49.0)
done: 11 August 2024
status: finished
- name: Month 3
funds: 33% (49.0)
done: 14 September 2024
status: finished
payouts:
- date: 17 July 2024
amount: 48
- date: 14 August 2024
amount: 49
- date: 27 September 2024
amount: 49
---
## What
In the last three months, the likely direction of the future of the Monero protocol changed
drastically with all the work done to bring FCMPs to RingCT. At my last CCS proposal, I
proposed that I would be working on the Seraphis wallet and consensus integrations. Then
I shifted gears to implementing [Jamtis-RCT](https://gist.github.com/tevador/d3656a217c0177c160b9b6219d9ebb96#).
I propose to refine this codebase and produce and LWS-client demo, in order to have these
set of features complete before the FCMP++ upgrade, assuming all goes well. This codebase
can currently construct `cryptonote::transaction`s with Jamtis info encode in the `extra` field,
and then successfully scan that data. Here is a non-exhaustive list of points that need
work with this library:
- Legacy address integration and testing
- Optimization: post-primary-view-tag scanning is about 20% slower than expected
- Testing against actual FCMP++ composition proofs
- Multi-threaded compute
- A live, over-the-wire LWS demo for evaluating the filter-assist/hidden enote trade-offs
I would also like to work on replacing `wallet2` internals with the Seraphis library 'legacy handling'
code, as discussed at this Github issue: https://github.com/seraphis-migration/wallet3/issues/64. A few people
are already working on it, but it will need a lot of manpower to bring it to fruition.
## Who
I have been contributing to the Monero core repository for [over two years](https://github.com/monero-project/monero/pulls?page=2&q=is%3Apr+author%3Ajeffro256) with a total of [68 merged commits to master](https://github.com/monero-project/monero/commits?author=jeffro256) thus far. I also began working on the Seraphis migration project, so you can see some of my contributions [here](https://github.com/seraphis-migration/monero/pulls?q=is%3Apr+author%3Ajeffro256) and [here](https://github.com/UkoeHB/monero/pulls?q=is%3Apr+author%3Ajeffro256). Some more notable contributions from this last quarter:
- Implemented [Jamtis-RCT](https://gist.github.com/tevador/d3656a217c0177c160b9b6219d9ebb96#) into the Seraphis library [here](https://github.com/jeffro256/monero/tree/jamtis_rct). This branch provides support for storing Jamtis scanning data into `tx_extra`, and performs a unit test where a pruned transaction is constructed addressed to Jamtis payment proposals, and then successfully scanned for both plain and self-send enote types. The way this branch was written merges the code paths for doing Jamtis on RingCT and Seraphis together. It could use some cleaning up, and the Seraphis multisig tests need to be updated, but otherwise all Seraphis tests are passing.
- Some other Seraphis stuff including a unified transaction format for Cryptonote, RingCT, and Squashed-Seraphis transactions.
Previous Proposals:
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/319
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/390
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/421
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/436
## Payment
I propose to work 40 hours/week for 3 months so `40 (hours/week) * 3 (months) * weeks_per_month = 40 (hours/week) * 3 (months) * (365 / 12 / 7) (weeks/month) = 521` hours total on-paper, though I usually work more than that. The proposal is broken into 3 milestones, one for each month. I am setting my hourly rate at 46 USD/hour (+1 USD/hour higher than last quarter), and at a market price of 163.97 USD/XMR, that makes for a total of 146.2 XMR. Price was calculated as 14-day simple average of opening prices on [CoinGecko](https://www.coingecko.com/en/coins/monero/historical_data) from 2024-06-01 to 2024-06-14 (day of writing), same as last quarter.
---
layout: cp
title: jeffro256 full-time development 2024Q4
author: jeffro256
date: September 16, 2024
amount: 144
milestones:
- name: Month 1
funds: 33% (48.0)
done: 9 November 2024
status: finished
- name: Month 2
funds: 33% (48.0)
done: 12 December 2024
status: finished
- name: Month 3
funds: 33% (48.0)
done: 14 January 2025
status: finished
payouts:
- date: 12 November 2024
amount: 48
- date: 12 January 2025
amount: 48
- date: 23 January 2025
amount: 48
---
## What
The last quarter I began implementing [Jamtis-RCT](https://gist.github.com/tevador/d3656a217c0177c160b9b6219d9ebb96), as written by tevador. However, with the FCMP++ integration PR opened against master, and upon discussion of the general health of wallet development in the broader ecosystem, it became readily apparent that the way to move forward is to initially support existing Monero addresses in a way that would be indistinguishable on-chain from Jamtis-RCT, adding full Jamtis-RCT support later. As such, I formulated the [Carrot specification](https://github.com/jeffro256/carrot/blob/master/carrot.md), which expanded upon the legacy address section in tevador's original Jamtis-RCT proposal. I contacted and conducted meetings with auditors in regards to auditing this spec, which culminated in several proposals. I also implemented transaction scanning code and transaction construction code for Carrot. I would like to continue this work for the next few months ahead of the hardfork. The main things to work on for Carrot at this point are 1) persistent enote stores for both legacy and Carrot scan types together, 2) integration into the main wallet codepaths, 3) hardware device support, and 4) picking and organizing an auditor to move forward with. Ideally, there should also come a point in the near future where the implementation is reviewed against the audited specification. I wish the development of Carrot generally to be swift, in order not to impede the release date of the FCMP++ consensus protocol. It should be noted that if the current addressing protocol is not modified, then users' transactions will *not* be afforded conditional forward secrecy. This would mean that a potential future adversary with the ability to solve the decisional Diffie-Helman problem (e.g. a usable quantum computer) would be able to retroactively reveal the transaction graph without any obfuscation. Carrot, like Jamtis-RCT, leverages the forward secrecy property of FCMP++ while also tackling other issues like the burning bug, Janus attacks, etc. If all goes well, the adoption of Carrot will seamlessly move Monero users into the full realization of the privacy and security that the FCMP++ proving system has to offer.
To recap, here is a list of things I will attempt to work on this quarter, in rough order of execution:
- Finalize Carrot spec audit
- Implement Carrot enote store
- Implement Carrot hardware device support
- Integrate Carrot into main wallet codepaths
- Begin soliciting Carrot implementation audit
P.S. To all the generous supporters of my previous proposals, I apologize that the direction of my work has shifted so significantly and so frequently in the past. So many developments have occurred within the last year that it makes my head spin, which in the end will no doubt be a good thing. So while a lot of previous goals have been abandoned, and a lot of previous work put on ice indefinitely, things seem to be finally solidifying towards a forseeable, readily-achieveable outcome in regards to the upcoming hardfork, thanks to many hard-working contributors. Hopefully, all of the work for this quarter will actually see the light of day in the short to medium term. Thanks for your patience. I am very grateful for it.
## Who
I have been contributing to the Monero core repository for [over two years](https://github.com/monero-project/monero/pulls?page=2&q=is%3Apr+author%3Ajeffro256) with a total of [76 merged commits to master](https://github.com/monero-project/monero/commits?author=jeffro256) thus far, with many open PRs. I also began working on the Seraphis migration project, so you can see some of my contributions [here](https://github.com/seraphis-migration/monero/pulls?q=is%3Apr+author%3Ajeffro256) and [here](https://github.com/UkoeHB/monero/pulls?q=is%3Apr+author%3Ajeffro256). Additionally, as I mentioned, last quarter I wrote up the [Carrot specification](https://github.com/jeffro256/carrot/blob/master/carrot.md) for formal auditing, which will be the main addressing protocol post-FCMP++ if all goes according to plan.
Previous Proposals:
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/319
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/390
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/421
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/436
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/467
## Payment
I propose to work 40 hours/week for 3 months so `40 (hours/week) * 3 (months) * weeks_per_month = 40 (hours/week) * 3 (months) * (365 / 12 / 7) (weeks/month) = 521` hours total on-paper, though I usually work more than that. The proposal is broken into 3 milestones, one for each month. I am setting my hourly rate at 47 USD/hour (+1 USD/hour higher than last quarter), and at a market price of 170.37 USD/XMR, that makes for a total of 143.7 XMR. Price was calculated as 14-day simple average of opening prices on [CoinGecko](https://www.coingecko.com/en/coins/monero/historical_data) from 2024-09-04 to 2024-09-17 (day of writing), same as last quarter.
---
layout: wip
title: jeffro256 full-time development 2025Q1
author: jeffro256
date: January 27, 2025
amount: 114
milestones:
- name: Month 1
funds: 33% (38.0)
done: 18 February 2025
status: finished
- name: Month 2
funds: 33% (38.0)
done:
status: unfinished
- name: Month 3
funds: 33% (38.0)
done:
status: unfinished
payouts:
- date: 24 February 2025
amount: 38
- date:
amount:
- date:
amount:
---
## What
The last quarter I implemented the core cryptography for [Carrot](https://github.com/jeffro256/carrot/blob/master/carrot.md). I will note that preliminary performance tests put Carrot scanning at about 30% faster on CPU usage versus scanning today, mostly thanks to the use of the X25519 ECDH library [mx25519](https:://github.com/tevador/mx25519). I also implemented pruned `cryptonote::transaction` [construction and scanning](https://github.com/monero-project/monero/pull/9697) for Carrot. The FCMP++ integration and Carrot integration are finally meeting ends and are almost ready for hot path integration. This next quarter, I want to continue this work to get a testnet out ASAP.
To recap, here is a list of things I will attempt to work on this quarter, in rough order of execution:
- Integrate Carrot scanning/transaction construction into main wallet codepaths
- Provide support to existing hardware wallet manufacturors on how to securely support Carrot outputs
- Use benchmarkings and static analysis to inform MRL decisions on transaction weight discussions etc
- Begin soliciting Carrot core implementation audits
- Provide Rust implementation of Carrot for Serai/Cuprate
- Solicit help for multisig implementations of Carrot
- Help out with the FCMP++ integration wherever I can
## Who
I have been contributing to the Monero core repository for [over two years](https://github.com/monero-project/monero/pulls?page=2&q=is%3Apr+author%3Ajeffro256) with a total of [84 merged commits to master](https://github.com/monero-project/monero/commits?author=jeffro256) thus far, with many open PRs. Over the last few months, I wrote up the [Carrot specification](https://github.com/jeffro256/carrot/blob/master/carrot.md), organized []auditing](https://github.com/cypherstack/carrot-audit), for which the community graciously funded, and [began](https://github.com/monero-project/monero/pull/9559) [implementing](https://github.com/monero-project/monero/pull/9697) it. Carrot will be the main supported addressing protocol post-FCMP++ if all goes according to plan. I also worked on the Seraphis migration project in 2023/2024.
Previous Proposals:
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/319
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/390
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/421
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/436
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/467
- https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/504
## Payment
I propose to work for 3 months at a rate of 38 XMR per month.
---
layout: wip
layout: cp
title: Retroactive funding for work on full-chain membership proofs
author: Luke Parker (kayabaNerve)
date: July 24, 2023
......@@ -7,29 +7,23 @@ amount: 310 XMR
milestones:
- name: Implementation of Bulletproofs+
funds: 150 XMR
done:
status: Finished
done: 23 June 2023
status: finished
- name: Implementation of Curve Trees
funds: 100 XMR
done:
status: Finished
done: 23 June 2023
status: finished
- name: Application of elliptic curve divisors for multiple times faster proofs
funds: 50 XMR
done:
status: Finished
done: 23 June 2023
status: finished
- name: Implementation of COPZ's efficient cross-group discrete log equality proof
funds: 10 XMR
done:
status: Finished
done: 23 June 2023
status: finished
payouts:
- date:
amount:
- date:
amount:
- date:
amount:
- date:
amount:
- date: 21 March 2024
amount: 310
---
Prior to Monerokon, I spent a month and a half working on full chain membership proofs for Monero. This is the product of
......
......@@ -11,23 +11,23 @@ milestones:
status: unfinished
- name: 3 month maintenance
funds: 1.63
done:
status: unfinished
done: 2 April 2024
status: finished
- name: 3 month maintenance
funds: 1.63
done:
status: unfinished
done: 2 April 2024
status: finished
- name: 3 month maintenance
funds: 1.63
done:
status: unfinished
done: 2 April 2024
status: finished
- name: 3 month maintenance
funds: 1.63
done:
status: unfinished
done: 2 April 2024
status: finished
payouts:
- date:
amount:
- date: 9 April 2024
amount: 6.52
- date:
amount:
- date:
......
---
layout: wip
title: "From Prototype to Marketplace: Maturing the XMR-BTC Atomic Swaps Ecosystem"
author: "binarybaron and einliterflasche"
date: July 9, 2024
amount: 729
milestones:
- name: 1st month
funds: 121.5
status: finished
done: 15 October 2024
- name: 2nd month
funds: 121.5
status: finished
done: 26 November 2024
- name: 3rd month
funds: 121.5
status: finished
done: 21 January 2025
- name: 4th month
funds: 121.5
status: unfinished
done:
- name: 5th month
funds: 121.5
status: unfinished
done:
- name: 6th month
funds: 121.5
status: unfinished
done:
payouts:
- date: 19 October 2024
amount: 121.5
- date: 6 December 2024
amount: 121.5
- date: 3 February 2025
amount: 121.5
- date:
amount:
- date:
amount:
- date:
amount:
---
![https://i.ibb.co/3NvpYp2/upload-398781d371d354427bb455356731258c.png](https://i.ibb.co/3NvpYp2/upload-398781d371d354427bb455356731258c.png)
![https://i.ibb.co/wgYK9FF/generated-gif-2.gif](https://i.ibb.co/wgYK9FF/generated-gif-2.gif)
### Who
We (binarybaron and einliterflasche) are two Monero enthusiasts from Berlin and both computer science students. We have been excited about XMR<>BTC atomic swaps since the COMIT team started development of their prototype. binarybaron has contributed to the project since its early stages while einliterflasche joined later on.
### What is this project anyway?
The project mostly consists of four parts:
1. A command-line utility ([ASB](https://github.com/comit-network/xmr-btc-swap/blob/master/docs/asb/README.md)) that enables individuals to operate a 'swap provider' service. These swap providers offer to sell Monero in exchange for Bitcoin.
2. A command-line interface ([CLI](https://github.com/comit-network/xmr-btc-swap/blob/master/docs/cli/README.md)) that allows users to connect with swap providers and exchange their Bitcoin for Monero.
3. A graphical user interface ([GUI](https://github.com/UnstoppableSwap/unstoppableswap-gui/)) that utilizes the CLI behind the scenes, making the swap process way more user-friendly.
4. A command-line utility for hosting a [rendezvous point](https://github.com/comit-network/rendezvous-server) in the decentralized discovery network. Swap providers can register at these nodes to make themselves known to the network. CLI users can retrieve a list of swap providers.
### What we have been working on over the last 2 years:
- Developed an early web interface to simplify XMR<>BTC swaps. This project has since been deprecated and replaced with a desktop GUI.
- Stepped in as maintainers for the [xmr-btc-swap](https://github.com/comit-network/xmr-btc-swap) project which includes the ASB and CLI applications. We have become the main developers fixing issues, implementing new features and pushing out releases.
- Developed the [GUI](https://github.com/UnstoppableSwap/unstoppableswap-gui/). Last year alone, more than 3,000 swaps were completed using our GUI. Since we completed our second CCS from May 2022, we worked on the project during our free time. This is also the reason we weren't able to dedicate as much time to the project as we'd like to and, frankly, as it deserves.
- Running a mainnet swap provider to kickstart adoption that has performed over a thousand swaps with users. This has been put on pause for now as more swap providers have emerged.
- We have also been hosting, and developing publicely accessible infrastructure
- An API service that gathers a list of all known swap providers. This can be used in the GUI and also by others in the community (e.g [OrangeFren](https://orangefren.com/)) in addition to rendezvous points.
- A reliable rendezvous point
- As part of our efforts to make atomic swaps accessible to the general public we have have been writing [documentation](https://docs.unstoppableswap.net/) for atomic swaps in general as well for the GUI and CLI applications.
### Proposal:
We're excited to keep working on atomic swaps. While swaps work realiably under optimal conditions, there are still many imperfections. We are confident that given a few months time to fully dedicate to the project, we can transform the ecosystem from more of a proof of concept into a mature marketplace.
We are asking the community for funding in order to be able to focus our efforts on improving the atomic swaps ecosystem.
We request 729 XMR for continued development for 6 months. At the end of each month 121.5 XMR will be paid out. We will dedicate 35 hours of focused work per week per person. Our hourly rate is 60 EUR. We're calcuating these amounts at a current average price of 138 EUR/XMR.
We will be providing monthly detailed updates in the comment section.
### What we will be working on
We will continue to maintain both the GUI and the underlying CLI/ASB by:
- Planning, coordinating and implementing new features and bug fixes,
- Coordinating releases,
- Keeping in touch with users and the community as a whole as well as offering a built-in feedback system in the GUI.
Furthermore, we will continue to manage some community infrastructure:
- We host a [webpage](https://unstoppableswap.net/) for the GUI as well as [documentation](https://docs.unstoppableswap.net/).
- We maintain both a public registry of swap providers as well as a reliable node in the decentralized discovery network.
For the CLI and ASB, which form the backbone of the GUI and swap provider infrastructure respectively, our focus will be to improve overall reliability. While swaps work consistently under optimal conditions, there are many moving parts, leading to various challenges in practice. These challenges include:
- Reliably staying in sync with both the Bitcoin and Monero blockchains,
- Completing swaps amid connectivity issues,
- Discovering peers in the network,
- Maintaining backwards compatability between peers (network protocols),
- Handling concurrent swaps,
- Accounting for blockchain congestion,
- Stringently enforcing protocol compliance,
- Ensure fail safety when swaps can't be completed,
- Minimizing the manual intervention required (e.g having to manually refund in some edge cases),
- ...
For the ASB daemon specifically, our focus will be on enhancing its ability to handle large amounts of liquidity reliably. We will also make it easier for a wider range of individuals to become a swap provider and sell their Bitcoin for Monero. This will improve competition and in turn lead to lower markup rates. Our work will include:
- Developing user-friendly tooling to simplify the setup and operation of the ASB and its accompanying services.
- Improving ASB extensibility and automatability by implementing an JSON-RPC server:
- Swap providers can connect to their ASB using a standardized OpenRPC protocol
- This will enable providers to:
- Dynamically adjust their exchange rate based on current conditions and market assessment
- Flexibly set maximum and minimum swap amounts according to their risk tolerance
- Automate access to internal Bitcoin and Monero wallets for fund management
- Listen for all kinds of events
- Enabling anyone to automate their ASB service to their liking by developing easy-to-use connector libraries for popular programming languages (e.g. Python, TypeScript, Rust, Java).
Integrating the RPC server and developing client libraries will take a lot of work and large refactors, but it will be worth the effort. It will enable the creation of custom applications and scripts built on top of the ASB. This will open basically unlimited possibilities but the most obvious use cases include:
- Complete access to statistics and internal data and logging
- Adjust exchange rate and minimum swap amount based on current Bitcoin transaction fees
- Listening for specific events and executing custom actions e.g. sending notifications or replenishing funds by executing trades on other platforms
- Integration of Bitcoin privacy protocols (e.g., CoinJoin, Whirlpool) for received funds
For the GUI itself our focus will be to:
- Make the GUI more accessible to non technical users (e.g. tooltips, explanations, ...),
- Provide documentation for end users as well as technical documentation to improve transparency and attract new developers,
- Work on migrating the GUI framework (from Electron to Tauri) to simplify the architechture,
- Release an Android (and possibly iOS) version of the GUI.
- _(We are also looking into a web version, powered by WebAssembly, which can run in browsers. This may not be possible and will require extensive refactors in the code base.)_
- Build a new UI for hosting and managing the ASB from inside the GUI. Thereby enabling selling Monero for Bitcoin.
### Why
We want to enable anyone to reliably acquire Monero by building an anonymized, decentralized and trustless market that is resiliant to censorship. We believe that by realizing the potential of this project we can bring this to reality.
A mature ecosystem will attract more users and swap providers. This will lead to increased liquidity and competition and thus make atomic swaps a viable alternative to centralized exchanges.
---
layout: wip
title: Audit monero-serai and monero-wallet
author: kayabaNerve
date: October 11, 2024
amount: 1050 XMR
milestones:
- name: Audit of monero-[serai, wallet], including the FROST-inspired multisig protocol
funds: 1050 XMR
done:
status: unfinished
payouts:
- date: 3 December 2024
amount: 1050
---
monero-serai and monero-wallet are public-good libraries built by myself as part of my work on Serai DEX. Despite the "-serai" name, both libraries have always been intended to be usable and actually used by the Monero community as a whole. Development has been ongoing for over two years. During that time, I have hired developers to work on and review it (including j-berman who truly needs credit and acknowledgement for their contributions), yet have never seeked community funding for my work. Now that monero-serai and monero-wallet are ready for their 1.0 release, meaning they have reached the necessary milestone to be considered sufficiently developed and meaningful, I have decided to request the community's support for their audits.
monero-serai is a from-scratch reimplementation of the Monero transaction protocol in Rust. It originally also
included wallet functionality yet that was split out into the monero-wallet library to offer greater
flexibility to consumers.
monero-serai is used by Cuprate[[1]](
https://github.com/Cuprate/cuprate
)[[2]](
https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/405
)[[3]](
https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/422
)[[4]](
https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/431
)[[5]](
https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/456
)[[6]](
https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/469
)[[7]](
https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/484
) for its parsing/handling/stateless verification of Monero transactions. Specifically, included is:
- An implementation of v1 and v2 transactions
- Cryptonote ring signature, MLSAG, and CLSAG verification
- Borromean, Bulletproofs, and Bulletproofs(+) verification
monero-serai also underpins monero-wallet, a Rust library for sending and receiving Monero. It's intended to have a clean, high-level API, be usable in a variety of contexts (from desktops to embedded devices to web browsers), and support everything from traditional wallets to more novel use cases (such as atomic swaps). As part of this, it offers:
- Proving CLSAG, Bulletproofs, and Bulletproofs(+)
- Honest-sender outgoing view keys (deterministically derived transaction keys to simplify payment proofs and allow verifying transactions match an intent)
- A FROST-inspired multisig which has O(1) per-signer upload complexity and O(n) computational complexity, compared to Monero's multisig which has O(n!) complexity (where n is the amount of signers)
Potentially of most note is the work on multisig. FROST is a widely regarded, [IRTF standardized](https://datatracker.ietf.org/doc/rfc9591/) multisignature protocol for Schnorr signatures which I've applied to Monero's CLSAG (caveats apply). The application to CLSAG is built upon [modular-frost](https://github.com/serai-dex/serai/tree/develop/crypto/frost), a FROST implementation I wrote for Serai and have already [prior audited](https://github.com/serai-dex/serai/tree/develop/audits/Cypher%20Stack%20crypto%20March%202023).
Monero has historically had issues with its multisig which has a novel high-complexity DKG and a signing protocol which isn't formalized (though is currently Musig2-inspired). monero-wallet represents an opportunity to step forth with a formalized, proven, and audited multisignature implementation. One idea occassionally brought up has been to remove multisig from Monero proper, placing it in its own distinct repository, in order to not have multisig burden Monero. With the work done on monero-wallet, and the audit being funded here, completely deferring multisig to it would become a viable option.
monero-wallet has also been checked to have a matching decoy selection algorithm (specifically, a matching distribution of selected decoys), fee algorithm, and various other properties (such as TX extra) to ensure its transactions won't be fingerprintable.
There is interest by multiple wallets to use monero-wallet, and it's already being developed on top of by Serai, a user-facing multisignature use case, and an application premised on web technology (which compiles monero-wallet to WASM).
This CCS is to fund the formalization of the implemented CLSAG multisig protocol (already outlined), provide the necessary security proofs (derived from FROST), and audit monero-[serai, wallet]. The audit will be done by Cypher Stack (their quoted amount being the amount requested). The one milestone is to be paid directly, immediately, and in full, to Cypher Stack for their work.
After the audit, the plan is to transfer monero-serai into the newly created [monero-oxide](https://github.com/monero-oxide/monero-oxide) organization (head by myself and boog900 from Cuprate). This is to help ensure it stands as a public good and doesn't solely service a single project's needs. Additional discussions are ongoing regarding the future governance of monero-wallet.
---
layout: cp
title: "monerobull for website workgroup"
author: monerobull
date: 5 July 2024
amount: 30
milestones:
- name: 2 meetings + hours worked
funds: 10 XMR
done: 1 January 2025
status: finished
- name: 2 meetings + hours worked
funds: 10 XMR
done: 1 January 2025
status: finished
- name: 2 meetings + hours worked
funds: 10 XMR
done: 1 January 2025
status: finished
payouts:
- date: 30 January 2025
amount: 30
---
# Who, what, when, where?
Hi, I'm monerobull. I run monero.town & monerosupplies.com. I also never did any paid work for Monero before.
I was recently mentioned in a CCS proposal by geonic, famous Monero movie director. There's a lot of opportunity for improvement in the non-dev areas of the project, and not always enough hands to get it done. It was agreed upon that, were this to happen, this would be done through my own CCS proposal rather than through geonics. This moves me from being accountable to nobody, to accountable to the community.
A quick summary of what I'd be working on:
- Setting up / managing a Monero Website Workgroup, keep it up to date (our roadmap still mentions triptych)
- Joining the moderator teams for Matrix and helping along with discord
- Being a supportive figure in the Monero Community workgroup and helping that along as needed
- Keeping a finger on the "pulse of the community" in the various chat rooms and platforms (Telegram, Discord, not IRC, Matrix, Reddit, etc.)
- Aiding and assisting in event work as needed (part of Monerokon team since MK3)
# Why?
There's lots of non-dev stuff to do, and not so many people to do it. I am mostly capable and willing.
# How long? How much?
30 XMR for three months for half time work. Possibility of renewal depending on community sentiment.
# Deliverables
I will do all of the above in the beginning section, and give a monthly report to the community on what's been done, and tasks accomplished. Luigi does a lot of work, I'd like to take on some of that.
# COI
I would have never made this proposal without geonics preceding yolo proposal. In the past I've tried to stay away from the CCS due to all the drama surrounding it. This very proposal was born out of CCS drama.
---
layout: wip
layout: cp
title: MoneroKon 2023 CCS-1
author: ajs-xmr
date: December 12, 2022
......
---
layout: wip
title: Monerotopia 2024 Marketing and Publicity
author: geonic
date: November 6, 2024
amount: 36.68
milestones:
- name: Payment to Estrategia Blue PR
funds: 36.68
status: unfinished
done:
payouts:
- date:
amount: 36.68
---
# Monerotopia 2024 Marketing & Publicity
Hi! As discussed in the [previous community meeting](https://libera.monerologs.net/monero-community/20241026#c451916), I am proposing that we [spend the unused funds](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/70#note_26878) from the last Monero Outreach CCS on marketing & publicity for Monerotopia 2024, which starts next Thursday. I would be the key point of contact for the PR firm and will provide a final report on what's been achieved.
Our events are the perfect opportunity to publicize/advertise Monero and so far we haven't done a good job at that. This proposal is a first step in changing that.
**Estrategia Blue PR**, a leading publicity firm in Mexico, has made a [proposal](https://github.com/geonic1/geonic/blob/master/Monerotopia%20Proposal.pdf) and they are ready to start today. We need to engage them ASAP. Vik Sharma has agreed to handle the payment and receive the XMR at no surcharge. The proposed budget (~$5500) is within the remaining amount (36.68 XMR or ~$6000), which we intend to spend in full with more (or less) media buys, depending on the actual amount received by the firm.
As the only remaining, active member of Monero Outreach, I believe this is a good use of the funds and in the spirit of what the donors wished to support.
Cheers!
geonic