xiphon-part-time.md 3.24 KB
Newer Older
xiphon's avatar
xiphon committed
Diego Salazar's avatar
Diego Salazar committed
layout: wip
xiphon's avatar
xiphon committed
3 4 5 6 7 8 9
title: xiphon part time coding (3 months)
author: xiphon
date: 5 April, 2019
amount: 111
  - 1st-month:
    funds: 33% (37 XMR)
10 11
    done: June 18, 2019
    status: finished
xiphon's avatar
xiphon committed
12 13 14 15 16 17 18 19 20
  - 2nd-month:
    funds: 33% (37 XMR)
    status: unfinished
  - 3rd-month:
    funds: 33% (37 XMR)
    status: unfinished
21 22
  - date: June 22, 2019
    amount: 37 XMR
xiphon's avatar
xiphon committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
  - date:
  - date:

# What

Part time Monero coding for 3 months. Have a couple of distinct things i want to address and start working on first:

1. Decentralized remote node scanning/selection for both CLI and GUI wallets  
Provide an easy to use option for Monero remote node users. A feature to sync the wallet and send transactions without relying on any centralized service or specific remote node.

2. Improving GUI requests processing to prevent GUI unresponsiveness and lagging.  
Improve communication between GUI wallet and the daemon, hardware wallets.  
Is an important issue that affects UX and overall product quality.

3. Additionally will be working on the GUI and CLI code, submitting bug fixes and addressing the ongoing issues, putting my efforts where it is appropriate

# Who

I'm Xiphon, pretty familiar and contributed to Monero core and GUI codebase, helped to implement subaddress support and other missing parts in CCS backend.

Feel free to check the following links to inspect my Monero-related commits:  
- https://github.com/monero-project/monero/commits?author=xiphon  
- https://github.com/monero-project/monero-gui/commits?author=xiphon  
- https://repo.getmonero.org/monero-project/ccs-back/commits/master
- https://github.com/bisq-network/bisq/pull/2422 (Monero address validator for Bisq)

# Proposal

10 hours per week at 55 USD/hour rate for a total of 111 XMR. XMR/USD rate is based on the 14-day moving average exponential on Kraken from 5 April 2019, which is approximately 59.36 XMR/USD.

## Decentralized remote node scanning/selection for both CLI and GUI wallets  

As a part of this approach I've implemented `--public-node` (already merged) mode. Once it is enabled user's daemon starts to advertise its public RPC port to others through P2P.  
And also committed `--no-sync` cli switch that optionally prevents a daemon from downloading the blockchain.

Regarding the proposal I plan to introduce `--bootstrap-daemon auto` mode that will lookup for available public nodes (collect the list over P2P) and then proxify (utilizing current `--bootstrap-daemon` implementation) any incoming RPC request to automatically selected remote node.

Both used in conjunction `--no-sync --bootstrap-daemon auto` on the wallet side and having enough volunteers running their nodes in `--public-node` mode will achieve the specified goal (CLI wallet).

Finally, I will integrate it into GUI wallet to enhance the Simple Mode.

## Improving communication between local daemon and GUI wallet

Current GUI wallet lags and UI becomes unresponsive for quite a noticeable and annoying time during wallet operations. Hardware wallet communications (Ledger/Trezor) freeze the UI as well.

Will locate the code parts that block the UI in order to implement background and/or kind of async requests processing. Might involve some related optimizations and speedups.