From 037f0c4ef210913c5d5235ec32ca18de1991f814 Mon Sep 17 00:00:00 2001 From: SyntheticBird <syntheticbirdxmr@protonmail.com> Date: Wed, 19 Mar 2025 01:23:36 +0000 Subject: [PATCH] SyntheticBird Cuprate Arti integration and development (2 months) --- syntheticbird_cuprate_arti_2_months.md | 88 ++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 syntheticbird_cuprate_arti_2_months.md diff --git a/syntheticbird_cuprate_arti_2_months.md b/syntheticbird_cuprate_arti_2_months.md new file mode 100644 index 00000000..d262e9ba --- /dev/null +++ b/syntheticbird_cuprate_arti_2_months.md @@ -0,0 +1,88 @@ +--- +layout: fr +title: SyntheticBird Cuprate Arti integration and development (2 months) +author: SyntheticBird +date: March 9, 2025 +amount: 52.5 +milestones: + - name: April + funds: 50% (26 XMR) + done: + status: unfinished + - name: May and completion of Arti integration + funds: 50% (26.5 XMR) + done: + status: unfinished +payouts: + - date: + amount: + - date: + amount: +--- + +# Who + +I am [SyntheticBird](https://github.com/SyntheticBird45), Cuprate contributor. + +# What + +Cuprate is currently in alpha version and a lot of features are planned on the roadmap up to beta phase. One of the features present on this roadmap, and that was [originally presented when announcing Cuprate](https://github.com/Cuprate/cuprate/blob/fc9b077d946fe8b7746c45ae8b299a87b2014cbf/readme.md?plain=1#L57), is native support for Tor network. This CCS proposal intend to fulfill this milestone. + +I will work for an estimated 2 months, from April to end of May, on Cuprate with the goal of implementing native Tor support into `cuprated` through the `arti-client` crate and other miscellaneous improvements. +At the end of this CCS, testers will be able to: +- Bootstrap Tor network within Cuprate or use Tor system daemon. +- Use Tor for outbound clearnet connections. +- Natively connect to onion monero nodes. +- Generate an onion service for accepting inbound Tor connections. + +# Tasks + +The planned set of tasks to complete can be found at this Github gist: https://gist.github.com/SyntheticBird45/4c554d3c1e7ae6f8d237d7dd49c2d2f0 + +It is subject to change but overall the required work can be separated into 3 categories: + +### 1. Alternative network integration into P2P components. + +Currently, Some P2P components have limited support for alternative network rules. This will require modifying `AddressBook`, `Connector`, `HandshakeBuilder`, `cuprate-dandelion` crate and `cuprated`'s dandelion implementation, and others to be *anonymization-network-aware*. After this work, we will define a new `NetworkZone` called `Tor` to connect to onion monero nodes. + +### 2. Implementation of Arti and Tor Daemon support + +Implementing `arti-client` inside `cuprated` and `cuprate-p2p{-*}`. Configurations, initialization, bootstrapping and launching onion services if requested. System tor daemon will also be supported. + +### 3. Documentation + +Update [Architectural book](https://architecture.cuprate.org) and [User book](https://user.cuprate.org/) + +# Additional work + +In the event that all guaranteed items are completed before the 2 months, I will spend my remaining time assisting (Issues, PRs and Reviews) on whatever is agreed is highest priority, or working on the following items: + +- Custom Allocator support (Performance improvements for Musl based linux distributions and potentially minor improvements on other OSs) +- SOCKS5 proxy support for p2p +- Fjall database integration +- Related documentation + +# Milestones + +### 1. First month + +26 XMR + +### 2. Second Month and completion of main tasks + +26.5 XMR + +# Licensing + +All the works completed under this CCS will be delivered to the [`Cuprate/cuprate.git`](https://github.com/Cuprate/cuprate) github repository. This work will follow the current repository licensing: +- All work inside `/binaries` is licensed under `AGPL-3.0-only`. +- The rest of the root and crates are licensed under `MIT`. + +For more information about the Cuprate github organization, please [visit the organization page](https://github.com/Cuprate) + +# Funding + +I will be working 30 hours per week during 8 weeks at 45\$/hr - 205\$/XMR. +30×8=240 | 240×45=10800 | 10800÷205=52.5 + +Total: 52.5 XMR -- GitLab