Skip to content

MostroP2P/mostro-web

Repository files navigation

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

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 and npub keys using nostrtool or Rana and paste it in a new .env file under MOSTRO_PUB_KEY and SECRET_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...

  1. In mostro folder
    $ ./init_db.sh
    $ cargo run
    $ cd relay
    $ docker compose up -d
  2. 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

  • Posts Orders (Buy & Sell)
  • Displays order list
  • Decodes DMs from mostro
  • Buy flow (maker / market rate)
  • Buy flow (maker / fixed price)
  • Sell flow (maker / market rate)
  • Sell flow (maker / fixed price)
  • Buy flow (taker / market rate)
  • Buy flow (taker / fixed price)
  • Sell flow (taker / market rate)
  • Sell flow (taker / fixed price)
  • Handling multiple relays
  • NIP-07 for key management
  • 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.