/openmarket

A free, decentralized bitcoin-based marketplace

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

==================

OpenMarket — A free, decentralized bitcoin-based marketplace.

Currently alpha testing on the bitcoin test network

OpenMarket is an open-source, decentrally-hosted marketplace, like amazon or etsy, where you can sell anything in exchange for bitcoin.

The network and website uses the raft protocol, and is hostable by any seller running software installed from this page. Buyers do not have to install anything; they can just type a URL into their browser.

It comes with a local-only, integrated BitcoinJ-based Bitcoin wallet so you can immediately start accepting payments for items without having to go through an intermediary service like coinbase or bitpay. This is the first fully decentralized bitcoin marketplace.

To see what its all about, check out a sample testing OpenMarket website.

Suggest features or post bugs here, or on the subreddit r/openmarket_net.

Features include

  • A complete web store akin to etsy including product reviews, ratings, wishlists, shipping tracking urls, feedback, categories, etc.
  • A decentralized raft-based database, built atop rqlite.
  • A fully portable webservice and website built with java Spark. No web server required
  • An offline bitcoin wallet that uses BIP70.

Screenshots:

Installation (only necessary for sellers)

Requirements

  • Java 8
  • Go (version at least 1.4)
    • GVM is the best way to install go.
  • If behind a router, make sure ports 4566-4570 are correctly forwarded to your local ip address.

Download the jar, located here

To help test, use this command to join an existing test node that uses the bitcoin testnet:

java -jar openmarket.jar -testnet -join 104.236.98.130:4570

General usage:

java -jar openmarket.jar [parameters]
parameters:
 -deleteDB     : Delete the sqlite DB before running.(WARNING, this deletes
                 your wallet)
 -join VAL     : Startup OpenMarket joining a master nodeIE, 127.0.0.1:4001
 -loglevel VAL : Sets the log level [INFO, DEBUG, etc.]
 -port N       : Startup your webserver on a different port(default is 4567)
 -rqlport N    : Startup rql on a different port(default is 4570)
 -testnet      : Run using the Bitcoin testnet3, and a test DB
 -uninstall    : Uninstall OpenMarket.(WARNING, this deletes your wallet)


A browser window will load the page at http://localhost:4567/, and make sure you complete the signup from there.

Building from scratch

To build OpenMarket, run the following commands:

git clone https://github.com/openmarket/openmarket
cd openmarket
chmod +x deploy.sh

# This script does a git pull, maven install, and java -jar command
./deploy.sh -testnet -join 104.236.98.130:4570

and access http://localhost:4567/

Support

If you'd like to help fund me to keep developing openmarket, you can either post bounties for desired features on BountySource, or donate directly here:

bitcoin:17N2wDi8Y6Cnrnrbzq5JsRcdjnW9DVyVhL

bitcoin:17N2wDi8Y6Cnrnrbzq5JsRcdjnW9DVyVhL

Bugs and feature requests

Have a bug or a feature request? If your issue isn't already listed, then open a new issue here.

Contributing

Start with getting familiar with the schema first, then create some issues and we can start working on them.

Thanks

  • Special thanks to Mike Hearn and Andreas Schildbach for their assistance with BIP70 and refunding orders.

Feature requests / todos