Your neighborhood Super Testnet is at it again. This time he created a decentralized uber using lightning escrow. What is it? Bull Run is ridesharing software powered by bitcoin payments and the lightning network.
Bull Run currently works for getting a ride to and from a destination for bitcoin. According to Super it will (hopefully) get better in time, but the amazing thing is it works right now!
💽 Bull Run is working rn
Open these two pages in two different browser tabs:
Start by picking a spot on the map in rider.html where you want to pay someone to take you.
Confirm your choice and a set of popups should ask you how much you want to pay for this ride and what name to use.
Fill that out and then go to driver.html. It should ask you basic information about your name and vehicle info.
Then a set of one or more popups should show you all the ride requests that came in during the last 5 minutes. (Eventually this will be geographically limited so you don't see requests from the other side of the country, but that's not implemented yet. It also currently shows you ride requests from people who already accepted a driver; maybe someday I'll fix that too.)
You'll also see a box that asks you to enter your lnd endpoint and macaroon. Do that (the endpoint must start with http or https and it must not have a trailing slash at the end)
If you accept the ride request you broadcasted in rider.html, go back to rider.html
- A popup should give you basic information about the driver who said they'd pick you up and ask if you want to accept this driver.
- If you accept them, you should see a lightning invoice below the map that asks you to pay it.
- Pay it and a popup should tell you not to show your driver his preimage til your ride is done. It also says you can track your driver on the map, which should update every 10 seconds with the location of your driver.
- Your app is now tracking your location and checking every few seconds to see if you are within 100 feet of your destination.
- If you are, it should automatically send your preimage to driver.html, which should automatically use it collect the money and deposit it into your node.
Eventually Super wants a driver.html to optionally scan the preimage from the user's phone in case they get the user where they want to go.
💻 How to run the backend
Expose LND on a port somewhere, create a nodejs directory for bullrun, install these dependencies: npm install bitcoinjs-lib bolt11 vm2 ws browserify-cipher noble-secp256k1 request, download the files from this github and put them into your bullrun directory, modify index.js to point to your exposed LND endpoint and put in your macaroons, run index.js using nodejs, expose it on some endpoint, modify rider.html and driver.html to change all instances of https://app9.lightningescrow.io to whatever endpoint you're exposing index.js on, and then open both rider.html and driver.html in separate tabs.
Super Testnet has been on a roll as of late. He spoke about what drives him in his "Tenacity" speech during bitcoin++, which really lends to the mantra he lives by.
You've got to keep trying
- Huge technological achievements are not usually easy
- Fixing the money is more important than telegraphs, airplanes and electric lights
- It took inventors thousands of experiments and sometimes decades to make those technologies work
- Don't quit when you get tired of banging your head on a wall
Be tenacious and work on it. - Super Testnet
🕊 Personally as a pleb it is truly inspiring to watch.