mostro-web
mostro-web copied to clipboard
Mostro web client
Mostro Web
Super early version of a web client for the Mostro P2P System.
This project is a web interface that facilitates peer-to-peer bitcoin trading over the lightning network ⚡️ using nostr 🦩. The lightning network is a layer 2 scaling solution for bitcoin that enables fast and low-cost transactions.
Configuration - (Dev only 🧑💻)
Create a .env
file with these 3 environment variable defined:
RELAYS=<comma-separated-list-of-relay-urls>
MOSTRO_PUB_KEY=<public-key-of-your-mostro-instance>
SECRET_KEY=<the-user-secret-key>
Prerequisites
Polar
- Install Docker
- Install Polar
- If you're on Mac please follow Open a Mac app from an unidentified developer
- Create a new default network
- Add some funds to the nodes
Mostro
- Clone the Mostro App
- Install Rust
- Install the Rust SQL toolkit
cargo install sqlx-cli
- Install CMake
- Then run from the CMake GUI: "Tools->Install For Command Line Use"
- Create a new environment file by
cp .env-sample .env
- Copy the paths for LND cert file and MACAROON file from polar. You can find them in the polar UI under the node's settings > file paths.
Mostro Web
- Install Node latest LTS version
- Create a new environment file by
cp .env-sample .env
- Generate som
nsec
andnpub
keys using nostrtool or Rana and paste it in a new.env
file underMOSTRO_PUB_KEY
andSECRET_KEY
keys - Set RELAYS to
ws://localhost:7000
in the.env
file - Run
yarn install
You're now ready to go.
With docker
and polar
already running then do...
- In
mostro
folder$ ./init_db.sh $ cargo run $ cd relay $ docker compose up -d
- In
mostro-web
folder$ yarn dev
That's it! 🎉
Build Setup
# install dependencies
$ npm install
# Production build and version generation
# There's no need to run this every time, but run this at least once
# before running `npm run dev`
$ npm run build
# serve with hot reload at localhost:3000
$ npm run dev
# build for production and launch server
$ npm run build
$ npm run start
# generate static project
$ npm run generate
For detailed explanation on how things work, check out the documentation.
Features
- [x] Posts Orders (Buy & Sell)
- [x] Displays order list
- [x] Decodes DMs from mostro
- [x] Buy flow (maker / market rate)
- [x] Buy flow (maker / fixed price)
- [x] Sell flow (maker / market rate)
- [x] Sell flow (maker / fixed price)
- [x] Buy flow (taker / market rate)
- [x] Buy flow (taker / fixed price)
- [x] Sell flow (taker / market rate)
- [x] Sell flow (taker / fixed price)
- [x] Handling multiple relays
- [x] NIP-07 for key management
- [x] Persisting old events
- [ ] Direct message with peers
- [ ] Ephemeral identities
- [ ] Disputes
License
This project is licensed under the MIT License 📜. See the LICENSE
file for more information.