OpenBazaar 2.0 Server Daemon in Go
Switch branches/tags
Clone or download
placer14 Merge pull request #1352 from OpenBazaar/TS_fix_wallet_endpoints
BUGFIX: Update config for new nodes to use correct BB endpoints.
Latest commit 88866ef Dec 18, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis Update the dll for Windows builds Jul 14, 2017
Godeps Update multiwallet with zcash patches Dec 17, 2018
api [#1319] Lint fixes and missing method Nov 30, 2018
cmd Fix permissions on new repo user_agent file Dec 18, 2018
core Bump minor version number Dec 18, 2018
docs Merge pull request #1266 from allen-munsch/am_docs_ssl Oct 30, 2018
ipfs Merge pull request #1237 from rodkeys/master Oct 24, 2018
mobile Merge branch 'master' into multiwallet Nov 13, 2018
namesys Correct spelling Oct 19, 2018
net Merge branch 'master' into multiwallet Oct 30, 2018
pb Merge branch 'master' into multiwallet Nov 13, 2018
qa Merge branch 'master' into multiwallet Nov 13, 2018
repo Minor fixes on Migration016 Dec 18, 2018
schema BUGFIX: Update config for new nodes to use correct BB endpoints. Dec 18, 2018
storage Enable goimports linter rules Oct 19, 2018
test [#1004] Extract Utxo factory Nov 13, 2018
vendor Update multiwallet with zcash patches Dec 17, 2018
wallet Lint fix Dec 18, 2018
.dockerignore [#1292] Dockerfile.dev: Use bitcoind 0.16.3; Install from requirement… Nov 12, 2018
.gitignore Add multiwallet constructor Aug 20, 2018
.golangci.yml Merge branch 'master' into multiwallet Oct 24, 2018
.travis.yml CI: Lint code in CI. Aug 31, 2018
CONTRIBUTING.md DOCS: Rename CONTRIBUTE.md -> CONTRIBUTING.md. Sep 6, 2018
Dockerfile TWEAK: Optimize Dockerfile for cache utilization. Aug 22, 2018
Dockerfile.dev Merge branch 'master' into multiwallet Nov 28, 2018
LICENSE update year in license Oct 19, 2018
Makefile Remove arch requirement on make ios_framework task Oct 26, 2018
README.md Improve documentation of ob-go start flags Oct 30, 2018
build.sh BUGFIX: Fix build artifacts. Jan 25, 2017
deploy.sh BUILD: Make deploy.sh use build.sh. Aug 25, 2018
docker-compose.yml Dev Docker: Map service ports externally; Allow forked procs in delve May 1, 2018
openbazaard.go Merge branch 'master' into multiwallet Oct 24, 2018
package.json Bump minor version number Dec 18, 2018
test_compile.sh Add multiwallet constructor Aug 20, 2018

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 wallet for interacting with several cryptocurrency networks. And a JSON API which can be used by a user interface to control the node and browse the network. Find the user interface for the server at github.com/OpenBazaar/openbazaar-desktop.

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. If you are looking to run the server daemon by itself or to contribute to development, 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 easier.

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

Application Options:
  -v, --version                   Print the version number and exit

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]
                                  (default: debug)
      -f, --nologfiles            save logs on disk
      -a, --allowip=              only allow API connections from these IPs
      -s, --stun                  use stun on µTP IPv4
      -d, --datadir=              specify the data directory to be used
      -c, --authcookie=           turn on API authentication and use this specific cookie
      -u, --useragent=            add a custom user-agent field
      -v, --verbose               print openbazaar logs to stdout
          --torpassword=          Set the tor control password. This will override the tor password in
                                  the config.
          --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)
          --bitcoincash           use a Bitcoin Cash wallet in a dedicated data directory
          --zcash=                use a ZCash wallet in a dedicated data directory. To use this you must
                                  pass in the location of the zcashd binary.

Documentation

Documentation of the OpenBazaar protocol has not been formalized yet. If you would like to help, please reach out on Slack or via a new issue on GitHub.

openbazaar-go exposes an HTTP API which permits high-level interactions on the network and the internal wallet. Find the HTTP API documentation at https://api.openbazaar.org.

Contributing

Contributions are definitely welcome! Please read the Contributing Guidelines before starting.

License

MIT.