Let’s say I want to build a decentralized clone of Uber using Cardano.
Is it the right platform for such an app? Where do I start?
How will data storage work?
How will authentication work?
How will reputation work?
How will real-time notifications work?
How will user interface work?
The end-to-end developer experience is not clear to me. Beyond simple escrow and gambling smart contracts, I have no idea how one should build a DApp on Cardano.
What would implementing a Uber clone on Cardano be like at a high-level (no need to mention specific APIs or tools, I don’t expect everything to be available or even designed yet).
since I already know from TG chat that you’re not really familiar with what Cardano does, I’ll just put a few points which will hopefully help you.
Cardano is a blockchain smart-contact platform. It’s not a Decentralized storage platform like Sia or Storj, it’s not a decentralized Web-platform like Substratum, this is a platform for all those projects to process their smart contracts.
Not every project can be or need to be fully decentralized. If we take your Uber example:
Are you going to build a new decentralized world map for it as well or just use Google maps?
Are you going to build your own Apple store and iOS as well or just going to utilize existing mobile stores (because your app can just be removed from Apple store)?
Where is that decentralization barrier where you can say “ok, I’m running a fully decentralized app!”?
As you can see you can’t just go fully decentralized and put everything on a blockchain, you still need to be connected to a real world and put apps into Apple store, for example.
What;s reasonable to put onto blockchain is just stuff which requires trust and verification. Like driver ratings, payments, and that can be processed via Cardano. If you really want you can make your Web-servers decentralized by putting them into Substratum network as well.
Yes, I believe the true use of dApps will be used to replace companies acting as middle-men. Uber, Paypal, ebay, Grub Hub, online casinos, etc will be put out of business. Simply, anyone who wants to work can work without needing to be “hired” by a centralized institution. There would only be money flowing from person A to person B, not person A - company X taking a massive cut off the profits - then person B. Isn’t this what crypto was designed for in the first place?
There would need to be a way for the original developer of these dApps to make a % of the money per transaction as incentive for developing the dApp in the first place. However, I would imagine those % fees would be very small.
The way I see an Uber app working is creating some kind of centralized website or application to pull down data from the block chain - locality of drivers to your location, their ratings, fees and an accept button for both parties which would put the money into escrow via the smart contract. Fees would be transferred upon completion of the ride.
However, the concern I have for developing such an app is the privacy of the deployed smart contract. Will it be public? If it’s public, what will stop someone else from simply copying it, undercutting the fees from the original contract and making their own cheaper version?
Second concern is what would stop some serial killer from suddenly joining as a driver? There would need to be a way to check a different block chain containing public background history of the drivers. This is what Uber does. Their centralized function is to check backgrounds of potential drivers to make sure criminals aren’t joining - and all of this is done manually. Automate this process and we now have a trusted and automated dApp that could be used globally without any centralized institutions - just agreements between two parties.