Skip to content

5. Productizing the wallet

nicolasburtey edited this page Jul 8, 2021 · 1 revision

To go from 1 to n deployed wallets, this are the main items that needs some work:

Better deployment infrastructure

There is currently a full CI/CD pipeline and every PR merged to main is typically being deployed on testnet and then into mainnet. But our current architecture only work/scale to one instance.

We need to be able to run n deployments concurrently to be able to deploy into different entities. Instead of CircleCi we will be using concourse for our CI pipeline, and terraform to be able to recreate the whole cloud infrastructure (currently many settings has been set with the command line or with the console without an obvious way to reproduce/sync across different project and also different cloud provider).

We also need versioning to handle proper deployment. Currently there is no version management at the app level for the main galoy repository (there is versioning for our dependency, as seen in our charts repo).

Versioning is also mandatory if we want other communities to deploy on their own without us being involved.

bodymindarts is taking the lead on this. This will get consolidated into the galoy-infra repo

Mobile wallet

Our mobile wallet is currently deeply tight to BitcoinBeach. To have other mobile wallet deployment, we would first need to:

  • refactor the application to: 1/ consolidate the styling in a single/few css files 2/ refactor most of the screen and extract generic reusable components some research would be needed to understand for instance how software company in the banking space who are deploying banking software for small/union banks are managing this at scale. the biggest issue being how to maintain different wallet if some want to fork to add some specific features.
  • create a generic wallet under the Galoy brand, not attached to any particular brand, that could be easily connect to any backend (maybe it could be by scanning a QR code to load the backend url. or the url could simply be pasted in a form, like it's currently done in BlueWallet with their lndhub backend). The goal of this wallet would be to ease integration with new entities that eventually want their own mobile wallet. They could start by using this generic wallet to deploy their own backend, and in parallel/afterwards deploy their own mobile wallet.