The webapp hosted at earthbucks.com runs on every platform, including mobile and
desktop. However, there is a problem with the webapp when building and launching
the peer-to-peer (P2P) network:
each mine and each wallet will have a separate UI, which will divide the user
experience, development efforts, and marketing efforts across a heterogeneous
field of front-ends that will be difficult for end-users and the company to
manage.
I believe the best solution is to build a desktop app first and a native mobile
app second. The webapp hosted at earthbucks.com will continue to exist but will
be regarded as the easiest entry point for new users, while the ideal user
experience will actually happen on desktop (and mobile for users on the go).
Solving Problems with a Desktop App
The desktop app solves the following problems:
- Mining on multiple mines simultaneously: Right now, there is only one mine
hosted at earthbucks.com. When the other mines launch at compucha.com,
ninjabutton.com, and others, it will be very cumbersome for users to switch
mines. Putting the mine client into a desktop app will allow easily switching
from one mine to another with a simple drop-down box.
- More reliable mining app: Although the first desktop app will use WebGPU,
just like the webapp, long-term, using a desktop app fundamentally enables any
technology to be used for mining, such as CUDA directly on Windows or Linux.
- Real decentralization: By building a real client-side application, the
user will be able to seamlessly switch from mine to mine and wallet provider
to wallet provider all within the same desktop app, proving real
decentralization of the EarthBucks network. So long as the app is tied to a
domain name like earthbucks.com, like the current webapp, that’s not possible.
Liberating the client-side app from any particular domain name is maximal
decentralization.
- Many assets: Instead of forcing every mine to support EBX and other assets
such as BCH, BTC, LTC, etc., protocols can be created to enable the desktop
wallet to use any “blockchain service provider” with plugins, thus
theoretically enabling the client-side desktop app to support any digital
asset without requiring every server to support everything.
- Decentralized exchange: A true decentralized exchange can be built this
way where the user can hold, for example, both BCH and EBX in the same
client-side desktop wallet and then access a distributed order book on the
EarthBucks blockchain to engage in trade. A desktop app is the best way to do
this because it is the best way for an app to “stay online” and sign messages
when necessary, such as signing and sending a transaction when a trade is
made.
- Client-side reliability: If one server goes down for any reason, many
functions will seamlessly transition to another server, or will already be
using many servers (such as querying headers), and the user will not even
notice the difference. Some functions can’t be done automatically (like moving
keys), but they can be done with a few clicks. This enables true custody of
client-side assets, unlike a webapp which always depends on the existence of a
particular server.
- Fleshing out the API for apps: By building all the core features into an
open-source desktop app, I will have to create all APIs necessary not only for
my own apps but also for third-party apps as well. This means all the APIs
needed for exchanges like Binance and wallets like Exodus will be created,
making it possible for third parties to begin integrating EarthBucks, or to
begin building new businesses from scratch that leverage the EarthBucks
network.
- The appearance of decentralization: Not only does the desktop app have
some superior decentralized properties, such as independence from any
particular domain name, it also provides a greater appearance of
decentralization, which will be helpful to prove to new users that EarthBucks
is not just an app hosted at earthbucks.com, but is a truly decentralized
network. It will also enable companies to build alternatives or complements to
the main desktop app.
Experimenting with Electron
I will be building the desktop app using
Electron. I have never built an app with Electron
before, so this will be an experiment. However, based on my research, it should
work flawlessly. There will be a testnet blockchain with the new desktop app
first, and if all goes well, I will switch the network over to use the new P2P
protocol. From that point forward, the desktop app will be the primary app (the
webapp, which works on desktop and mobile, will continue to exist, but the
desktop app will have more features).
The Coming EarthBucks Network
The new desktop app will be both a mining app and a Simplified Payment
Verification (SPV) wallet as described in the
original Bitcoin white paper. The app will
use a new tRPC-based P2P network that works over the web, where the most
foundational difference with the web is that every mine and wallet provider must
have a domain name in order to act as a node on the network.
In building the P2P network, the following features of the API for mines will be
implemented:
- Querying all block headers
- Querying blocks and transactions
- Submitting new blocks and transactions
- User registration and settings such as avatar
The desktop app will provide a unified experience for managing your identities
across every mine and wallet provider and fulfill the vision of a scalable
client-side SPV wallet for end-users, while leaving mine operations to
professional businesses.
A Vision for a Mobile App
Many users, perhaps most, spend more time on a mobile phone than on a desktop or
laptop computer. It is imperative, long-term, to have a native mobile app for
sending and receiving EarthBucks and tokens. However, building a mobile app is a
completely different technology stack than building a desktop app. The desktop
app will be built first, and the mobile app will be built second.
Conclusion
The desktop app will be the primary app for EarthBucks, and the webapp will be
the easiest entry point for new users. The desktop app will be the most
feature-rich and reliable way to use EarthBucks and will be the primary way to
mine and use the network. A mobile app is also very important, but that requires
completely different technology to build, so it will come second.