Subject: Re: [bitcoin-dev] I want to rebuild the GUI in JavaScript

From: Oscar Lafarga <[email-masked]>
Date: Sat, 23 Nov 2019 17:49:18 +0100

Hi MK,

I very much share your interests and curiosities here and actually don't
have an answer on whether it's been tried before.

One of the few things I am imagining is that given the security-focused
nature of the Bitcoin Core software, any vulnerabilities in the way NPM
handles the dependencies of the Electron app would be a very high priority
(see https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)

In NodeJS-land, my sense is that there is a "move fast and break things"
mentality that may have seeped into some practices that may be considered
standard. I have seen some recent developments over the past few years to
address these kinds of issues such as npm-audit (as of Node v6+) but I
would recommend doing some thorough research on this front to make sure
there is a secure dependency management solution in place for such a GUI.

Another comment I'd make is that if we consider the GUI as a layer that is
separate from the protocol layer, this mailing list may not be the best
place to fully discuss this. However I think if anyone here who has been
around longer can contribute info on past attempts at this, it could be
quite productive. This could technically exist as an independent client,
but I guess there's a conversation on whether this new Electron UI would
ever replace the Qt UI, but since it doesn't exist yet it could be far too
early for that.

Thanks,

On Sat, Nov 23, 2019, 2:17 PM M.K. Safi via bitcoin-dev <
[email-masked]> wrote:

> I’d like to try to rebuild Bitcoin Core GUI using the JavaScript Electron
> framework. My goal is to get a real world understanding of the pros and
> cons of moving from Qt to Electron.
>
> Before I start, I‘d like to know if this has been tried before or if there
> are ongoing efforts in this direction by anyone?
>
> I spent sometime looking into how to implement this. One approach could be
> for Electron to drive the UI by running bitcoind and communicating with it
> through RPC. But I don’t know if such implementation can achieve
> feature-parity with the Qt implementation. Qt has the advantage of direct
> access to Bitcoin Core code.
>
> Anyways, I just wanted to share these ideas before going further with
> them, so please let me know if you have any information on the above!
> --
> Sent from my iPhone
> _______________________________________________
> bitcoin-dev mailing list
> [email-masked]
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>