OpenBazaar Server Daemon in Go
Go Python Protocol Buffer Other
Permalink
Failed to load latest commit information.
.travis Move to 32-bit and 64-bit libwinpthread.dll Jan 11, 2017
Godeps Add fetch profiles API endpoint Feb 16, 2017
api Return message ID on chat post Feb 24, 2017
bitcoin [DRY] Wallet cmd arguments preparation refactor Feb 23, 2017
core Return nil when updating index hashes if index doesn't exist Feb 24, 2017
docs Update bitcoind.md Feb 15, 2017
dummy TWEAK: Add a bot marker to dummy nodes. Feb 7, 2017
ipfs Fix identity test Jan 24, 2017
net Recalculate chat message ID Feb 21, 2017
parts/plugins Use a custom plugin to be able to build the snap with go 1.7 Jan 27, 2017
pb Fix marshalling on GET moderators and POST fetchprofiles calls Feb 22, 2017
qa Refactor smtp qa test Feb 21, 2017
repo add ws to initconfig Feb 23, 2017
storage Make storage options use Tor Jan 25, 2017
test Fix bug handling chat timestamp Feb 13, 2017
vendor Hash password for websocket authentication Feb 23, 2017
.gitignore REFACTOR: Extract compilation to its own sh script. Jan 24, 2017
.travis.yml Update the apt cache Dec 14, 2016
CONTRIBUTE.md Update CONTRIBUTE.md Oct 21, 2016
Dockerfile FEATURE: Add Dockerfile. Jan 24, 2017
LICENSE Create LICENSE May 1, 2016
Makefile FEATURE: Add Makefile with build/docker helpers. Jan 24, 2017
README.md Update options in README.md Feb 14, 2017
build.sh BUGFIX: Fix build artifacts. Jan 25, 2017
deploy.sh BUGFIX: Fix build artifacts. Jan 25, 2017
docker-compose.yml FEATURE: Add Dockerfile. Jan 24, 2017
openbazaard.go remove ws from openbazaard Feb 23, 2017
package.json Bump version number Feb 14, 2017
snapcraft.yaml Add libc6-dev as a build dependency Dec 14, 2016
test_compile.sh Set chat message max lengths Dec 27, 2016

README.md

openbazaar-go

banner OpenBazaar Server Daemon in Go

Build Status Coverage Status Go Report Card

This repository contains the OpenBazaar server daemon which handles the heavy lifting for the OpenBazaar desktop application. The server combines several technologies: A modified IPFS node, which itself combines ideas from Git, BitTorrent, and Kademlia. A lightweight SPV Bitcoin wallet for interacting with the Bitcoin network. And a JSON API which can be used by a user interface to control the node and browse the network. If you are looking for the OpenBazaar user interface code see here.

Table of Contents

Install

A typical install of OpenBazaar contains a bundle of the server daemon and user interface. If this is what you are looking for you can find an installer at https://openbazaar.org/download.html. If you are looking to run the server daemon by itself or to contribute to developement see below for instructions.

Install Pre-built Packages

The easiest way to run the server is to download a pre-built binary. You can find binaries of our latest release for each operating system here.

Build from Source

To build from source you will need to have Go installed and properly configured. Detailed instructions for installing Go and openbazaar-go on each operating system can be found in the docs package.

Dependency Management

We use Godeps with vendored third-party packages.

IPFS Dependency

We are using a fork of go-ipfs in the daemon. The primary changes include different protocol strings to segregate the OpenBazaar network from the main IPFS network and an increased TTL on certain types of DHT data. You can find the full diff in the readme of the forked repo. The fork is bundled in the vendor package and will be used automatically when you compile and run the server. Note that you will still see github.com/ipfs/go-ipfs import statements instead of github.com/OpenBazaar/go-ipfs despite the package being a fork. This is done to avoid a major refactor of import statements and make rebasing IPFS much more easy.

Updating

You can either pull in remote changes as normal or run go get -u github.com/OpenBazaar/openbazaar-go

Usage

You can run the server with go run openbazaard.go start

Options

Usage:
  openbazaard [OPTIONS] start [start-OPTIONS]

The start command starts the OpenBazaar-Server

Help Options:
  -h, --help                      Show this help message

[start command options]
      -p, --password=             the encryption password if the database is
                                  encrypted
      -t, --testnet               use the test network
      -r, --regtest               run in regression test mode
      -l, --loglevel=             set the logging level [debug, info, notice,
                                  warning, error, critical]
      -a, --allowip=              only allow API connections from these IPs
      -s, --stun                  use stun on µTP IPv4 [deprecated for now]
      -d, --datadir=              specify the data directory to be used
          --tor                   Automatically configure the daemon to run as
                                  a Tor hidden service and use Tor exclusively.
                                  Requires Tor to be running.
          --dualstack             Automatically configure the daemon to run as
                                  a Tor hidden service IN ADDITION to using the
                                  clear internet. Requires Tor to be running.
                                  WARNING: this mode is not private
          --disablewallet         disable the wallet functionality of the node
          --disableexchangerates  disable the exchange rate service to prevent
                                  api queries
          --storage=              set the outgoing message storage option
                                  [self-hosted, dropbox] default=self-hosted

Documentation

When ready we will put up a full documentation of the OpenBazaar protocol and the JSON API at https://docs.openbazaar.org

TODO

The server is currently under heavy development. Most of the underlying networking is complete and what remains is to build out the order/purchase flow. We expect to have a development release which will be capable of browsing the network in a few weeks.

Contributing

Contributions are definitely welcome! Please read the contributing guidelines before starting.

License

MIT