Please login or register.

MoneyBit GUI

MoneyBit GUI

About 2 months ago, I started developing an alternative GUI for Monero, and yesterday I published an alpha release.

Differences compared to the Official GUI (Monero-Core)

trait MoneyBit Monero-Core
Technology Web Application QT4 Desktop Application
Portability Windows, OSX, UNIX, Mobile in the future Windows, OSX, UNIX
External Dependencies libsodium, monero-wallet-cli, libwinpthread on Windows None, libmonero is integrated

Features:

  • MoneyBit already generates (and will soon read) QR codes
  • Monero-Core has a working transaction history system, MoneyBit's does not work yet
  • Mobile use is possible in MoneyBit by hosting the web application on your own network. However, it's not secure yet.
  • Monero-Core is far more secure than MoneyBit
  • MoneyBit wraps monero-wallet-cli, while Monero-Core uses libmonero, which is safer and less error-prone. Work will be done to replace monero-wallet-cli with libmonero in MoneyBit.

History

When I first started developing, I submitted a request here for funding. I was overwhelmingly supported, without the thread making it to FFS. I was provided 500 XMR to continue development. The terms were as follows:

  • Make the GUI "functional" by interfacing with monero-wallet-cli's JSON RPC - it should be able to read balances and send Monero.
    • incoming transactions have not been implemented yet - that is a difficult task to accomplish with the current 0.10.0 version of monero-wallet-cli. The next iteration will be much smother, but I'm racing the core devs still :)
  • It should be (as much as possible) a 1-click solution - no need to install node.js, wrangle dependencies, or anything along those lines. This initial release of MoneyBit requires only one dependency on Windows - MinGW / BASH (linux doesn't need anything).
  • The application should be an "App" - meaning the executable opens a window, and that window is the GUI client. Currently, MoneyBit is a web app - it opens a port, and you use your web browser to use the GUI over localhost. Work has been made to use Electron to turn the web app into an app, but currently it only works on linux, and is not a completely bundled executable.

The alpha release moderately achieves these goals - you can use it to send Monero, generate payment ids / integrated addresses, and check your balance. It is still very flakey, though - some errors are not reported properly, and there are a lot of moving parts I want to seize. But, this release does work.

(I also need to build a Mac version - this should be painless. I just don't have access to a OSX machine. I'm also working on an ARMv7 build for raspberry pis.)

Proposal

There are still some incomplete crucial components that I would like to complete:

  • Security: Right now there are a dozen security vulnerabilities that need to be resolved - plaintext passwords, no encryption, and a few shady details about using libsodium as a static library. This is my first objective, and the majority of the pieces needed to accomplish it are in place.
  • Error Reporting: There are still a few holes in the user experience - if monero-wallet-cli isn't installed, the GUI doesn't report it in a friendly way. For this task, I'll be eliminating the technical details the majority of users don't know about their operating system, and make it as user-friendly as possible.
  • Client Completeness: Incoming transactions and confirmations need to be implemented. This won't be terribly difficult; I should have this implemented before the next version of Monero is published.
  • User Experience: There's a list of other features MoneyBit should have - the ability to use a camera to read QR codes, better progress indication, better address/integrated/payment id parsing and validation, and a few quirks for better user understanding. Also, I would like to internationalize and cross-translate all of the prose in MoneyBit to all the various languages supported in Monero's mnemonic.
  • Bundling: The user should not need to install any dependencies to use MoneyBit. I'll need to statically link a few libraries (which might be more difficult than I expect), and need to use either Electron's automagical process, or use libchromiumcontent directly to complete the "Click - open window" experience.
  • Support: I'll be hosting a Slack channel and maintain involvement in the Monero community, updating MoneyBit to the latest Monero versions as soon as they come out, etc. I am also very interested in writing alternative monero-wallet-cli implementations and the like in pure Haskell, for reference implementations, but this isn't a priority.

Funding

I'm asking for 2,000 XMR. With this funding, I'll accomplish all of the goals, and will provide support for 6 months.

Expected hourly costs / abelian milestones:

  • Security: 100 hours
  • Error Reporting: 20 hours
  • Client Completeness: 40 hours
  • User Experience: 20 hours
  • Bundling: 40 hours
  • Support: 6 months and beyond

As an aside, please let me explain my personal situation; I'm living out of my car, which is broken down (head gasket blew, she's a gonner), and is gambling with impound. I've been a beggar for a really long time, but I write ridiculous software. The initial funding I was awarded was incredible, although I could only buy gift cards from Gyft. Now that I have a coinbase account, I can actually use this funding to fix my truck and get me off the street.

Replies: 7
antw081 edited 3 years ago Weight: 0 | Link [ - ]

I'll donate to this project.

P.S. - Sorry to hear about your personal situation.

rocco edited 3 years ago Replies: 2 | Weight: 0 | Link [ - ]

what are you doing better/different than the official gui? can you list a comparison of features where it would differ?

without answer to this questions i consider support of this proposal unwise.

Reply to: rocco
athan posted 3 years ago Weight: 0 | Link [ - ]

I'm writing an analytical comparison between the two right now, please stand by :)

Reply to: rocco
athan posted 3 years ago Weight: 0 | Link [ - ]

Updated.

Gingeropolous edited 3 years ago Replies: 2 | Weight: 0 | Link [ - ]

I'd donate to this project. This guy blasted this beta out in crazy fast time, and I think it'd be great to have another awesome and speedy developer hanging around. Sure, it would be more awesome if he did for the benefit of mankind, but people gotta eat.

@athan - I'm curious - in the SE, you mention "I've already found a few quirks about monero-wallet-cli that in my eyes shouldn't need to exist because I work at a higher level. " Could they be fixed?

In general, I think it'd be great to have multiple GUIs. I also just think its great to have multiple hard core coders hanging around and doing Monero related things.

Reply to: Gingeropolous
athan posted 3 years ago Weight: 0 | Link [ - ]

The bugs can definitely be fixed, but it's just a matter of finding them - that's one of the best things about type theory. Check out this report of CompCert vs. other C compilers: http://compcert.inria.fr/motivations.html

But as for 5k xmr being too pricey; I understand, but I can't really wait for the price to moon, that's the issue - I have to get this truck fixed asap, and will be spending a lot of the monero immediately. I also wanted to allocate that much so I would be able to dedicate months, if not years to monero in general. How much would you suggest I ask for?

Thank you for all your support @Gingeropolous :)

Reply to: Gingeropolous
athan posted 3 years ago Weight: 0 | Link [ - ]

Reset to 2k XMR