Skip to content
Snippets Groups Projects
busyboredom-standalone-acceptxmr.md 4.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • Charlie Wilkin's avatar
    Charlie Wilkin committed
    ---
    
    Charlie Wilkin's avatar
    Charlie Wilkin committed
    title: Standalone AcceptXMR
    author: busyboredom
    date: February 31, 2023
    amount: 14
    milestones:
      - name: Maintenance
        funds: 14
        done:
        status: unfinished
    payouts:
      - date:
        amount:
    ---
    
    # Standalone AcceptXMR
    Another payment gateway CCS proposal.
    
    ## Summary
    I would like to create a standalone, dockerized, AcceptXMR-based payment gateway with wordpress
    support.
    
    AcceptXMR ([demo](https://busyboredom.com/projects/acceptxmr),
    [docs](https://docs.rs/acceptxmr/latest/acceptxmr/),
    [repo](https://github.com/busyboredom/acceptxmr/)) is a payment gateway library (or crate, in rust
    lingo) I wrote as a hobby project and have made available to the community. While my library serves
    its purpose well, I understand that most merchants are not programmers therefor cannot use
    AcceptXMR.
    
    This proposal aims to make AcceptXMR usable for anyone capable running a docker container and
    installing a wordpress plugin.
    
    ## Why AcceptXMR
    Lots of reasons!
    * View pair only, no hot wallet.
    * Subaddress based (as opposed to the older integrated addresses).
    * Pending invoices can be stored persistently, enabling recovery from power loss.
    * Ignores transactions with non-zero timelocks.
    * Zero-conf works out of the box.
    * No local node, wallet RPC, or block explorer needed. Just pick a public remote node.
    
    And of course, I am already intimately familiar with it.
    
    ## How It'll Happen
    I will dedicate a portion of my weekends (you can expect about 10 hours a week on average) to
    completing the following milestones. There will be some weeks with more progress and others with
    less, but that's the average I'll be aiming for.
    
    ### Dockerize AcceptXMR
    _14 XMR from xmrSale's abandoned funding._
    
    This is the largest milestone. I'll be taking the webserver and frontend work you see in my demo,
    cleaning it up significantly to bring it up to production standards and dockerizing it for easy
    setup. I will also provide documentation on how to perform that setup.
    
    ### Wordpress Plugin
    _10 XMR from xmrSale's abandoned funding._
    
    Wordpress is popular, and it has a plugin system that supports custom payment gateways. I will write
    a wordpress plugin for the freshly dockerized AcceptXMR implementation. I will also provide
    documentation on how to use the plugin.
    
    ### Maintenance for 1 Year
    _20 XMR total, with 6 XMR coming from xmrSale's abandoned funding and the remaining 14 XMR coming
    from this CCS proposal._
    
    Both rust and monero have rapidly changing ecosystems. Left alone, my work would likely be out of
    date by the end of the year due to breaking changes in my library's dependencies if nothing else.
    Keeping AcceptXMR up-to-date and functional is something I currently do for free, but building out a
    full standalone gateway adds overhead. For this reason, I've bookmarked 20 XMR for maintenance for 1
    year from the funding date.
    
    I am hesitant to provide target dates for first  two milestones above, but I have been maintaining
    AcceptXMR for over a year now and I don't plan on ghosting on it now.
    
    ## Stretch Goals / Future work
    I'm not promising any of the following happens, but I'm putting it here to let the community know
    it's on my radar and I want to do it if I get the opportunity:
    * TOR support for the daemon RPC connection.
    * A no-JS frontend. I have an example with this implemented on github, but I'll have to clean it up
    a bit and integrate it into the new dockerized setup.
    * ZMQ support as a more performant alternative to polling the remote node.
    
    ## Prerequisites
    Before I start work on this CCS, I'll need to wrap up changes I'm making with v0.12.0 of AcceptXMR.
    I'm not charging for that work, I'm just disclosing here that I need to resolve the issues in that
    milestone before I start work on this CCS.
    
    ## License
    AcceptXMR is dual-licensed under the MIT and Apache 2.0 licenses. I am not planning on changing the
    license. It will always be under a permissive license.
    
    ## About Me
    Busyboredom is _not_ an anonymous alias, you can see my minimally-redacted resume on my personal
    website [busyboredom.com](https://busyboredom.com).
    
    Proposal Expiration: January 1st, 2025.
    
    Note: This CCS was originally intended to be funded entirely by the 30 XMR leftover from the abanoned
    xmrSale project. At the request of the community, I have extended my maintenance commitment and
    increased the maintenance budget by 14 XMR. This change allows CCS donors to act as a final check on
    whether this proposal goes forward.