-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XUD UI Project #656
Comments
There are three projects we could look for inspiration: Lightning Polar, Sparkswap, and Zap Desktop. All of these projects use Electron with ReactJS for cross platform desktop app support. Additional TypeScript use will help increase productivity. So I propose a generalised tech stack of Electron + ReactJS + TypeScript. The frontend dev could choose either Redux, ReactN, or Easy Peasy for local and global state management. In case, React Hooks serves the purpose, third party state management can be discarded. It's important that the app uses Vercel's Hazel for pushing updates, as there will inevitably be critical hotfixes that would be required on already installed versions. End to end testing with Jest, TestCafe, or Cypress is also recommended before release. Just like lightning polar, there would be setup dependencies necessary to run the GUI, For windows and Mac - Docker Desktop will do the trick. For Linux, Docker Server and Docker Compose will have to be installed separately. The GUI will only support the XUD light setup. Since the prod version will deal with mainnet assets, XUD docker needs to be hardened with best practices. Just like Lightning Polar, The XUD Docker GUI app will create a docker image from XUD dockerFile, and then build that image. Sparkswap has a similar dockarised LND engine that encapsulates, BTCD, LTCD, and, forked LND-BTC and LND-LTC nodes. They then pull that LND-engine as a dependency on the Electron powered desktop frontend. The architecture and GUI connection logic in our case can be exactly the same. Zap Desktop can be referenced on how to deal with Neutrino, in case that is required. |
I'm looking forward to try Electron. @kilrau And they got autoUpdater API which I'm struggling to fix recently in xud-docker :P |
@peartobear and I started a PRD, keep you posted. |
Update: we decided to go for a web-based basic UI for market makers first instead of a standalone UI since the target user for such remains somewhat unclear. Closing here for now. |
Original issue: ExchangeUnion/xud#471.
We want to revive this as a native GUI project for market makers, sitting atop the current xud-docker. The setup UX should be similar to https://lightningpolar.com/, a native GUI connecting to docker in the background:
If docker is not installed, it helps installing it. Target platforms:
Step 1: agree on the setup concept (how GUI and xud-docker connect) & tech for the UI to achieve above cross-platform support. xud-docker will remain a CLI-first project just like all other bitcoin/lightning projects out there (meaning some features might be accessible via cli only, never vice versa) since we are optimizing for technical market makers running this on an "unattended" setup. It is also ok for the GUI to use xud-docker specific features. Goal is to run xud-docker under the hood as-is.
Step 2: select GUI features, wireframing, UI design
Step 3: development 🎉
The text was updated successfully, but these errors were encountered: