Openbazaar-go - OpenBazaar Server Daemon in Go

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.

Run via Docker image

You can also use our Docker Hub image to run openbazaar-go. latest points to the latest release, but you can run any other version by matching the release tag to the Docker image tag.

docker run -it openbazaar/server:latest [OPTIONS] start [start-OPTIONS]

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. Ensure you are using at least version 1.10 of Golang, otherwise you might get errors while running.

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
          --forcekeypurge         repair test for issue OpenBazaar/openbazaar-go#1593; use as instructed only

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.docs.openbazaar.org.

Contributing

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

License

MIT.

Similar Resources

Kubernetes Reboot Daemon

Kubernetes Reboot Daemon

kured - Kubernetes Reboot Daemon Introduction Kubernetes & OS Compatibility Installation Configuration Reboot Sentinel File & Period Setting a schedul

Jan 3, 2023

cod is a completion daemon for bash/fish/zsh

Cod is a completion daemon for {bash,fish,zsh}. It detects usage of --help commands parses their output and generates auto-completions for your shell.

Dec 25, 2022

a go daemon that syncs MongoDB to Elasticsearch in realtime. you know, for search.

monstache a go daemon that syncs mongodb to elasticsearch in realtime Version 6 This version of monstache is designed for MongoDB 3.6+ and Elasticsear

Dec 28, 2022

MySQL replication topology manager - agent (daemon)

orchestrator-agent MySQL topology agent (daemon) orchestrator-agent is a sub-project of orchestrator. It is a service that runs on MySQL hosts and com

Mar 8, 2022

A tiny cli command/daemon for syncing toggl time entries with Jira

toggl-sync A tiny cli command/daemon for syncing toggl time entries with Jira Installation Install the app via brew package manager. brew tap timemate

Nov 30, 2021

Go daemon 微服务架构前期 ,服务高可用解决方案

Go daemon 微服务架构前期 ,服务高可用解决方案

简介 配置 config.yaml services.json API 服务配置 获取服务配置列表 获取单个服务配置 更新或者增加服务配置 删除单个服务配置 任务配置 获取任务列表 获取单个任务 更新或者增加任务 删除任务 运行 简介 微服务架构前期 ,服务高可用解决方案。 服务名称: 配置 con

Nov 23, 2021

Minimalistic paste daemon written in golang

Minimalistic paste daemon written in golang

Dec 4, 2022

daemon for removing torrents from deluge after a specified timeframe

deluge-remove-after -- daemon for removing torrents from deluge after a specified timeframe Table of Contents Why Installation Docker Build from sourc

Jul 10, 2022

shoutrrr daemon

shoutrrr daemon Orginal repositories: shoutrrr repository shoutrrr documentation Installation & Configuration Create a services.yaml with the followin

Dec 12, 2021

Secure Time Sync Daemon

stsd - Secure Time Sync Daemon ============================== Set system date based on HTTP 'date' headers over TLS. Inspired by Whonix's sdwdate, an

Dec 15, 2021

Aidos Kuneen (v2 network) daemon program that is controlled through the command line and remotely via RPC calls

adk-daemon: aidosd.v2 aidosd (v2) is a deamon which acts as bitcoind for adk. This version has been built specifically for network mesh version 2+ For

Dec 1, 2021

Golang daemon to update i3 workspace icons

i3-icons-daemon Is a lightweight golang daemon service that updates your i3 workspace based on the programs that are running in your workspace's windo

Jul 29, 2022

A daemon that has the purpose of installing and removing policies as they are laid in a specific directory

selinuxd This a daemon that has the purpose of installing and removing policies as they are laid in a specific directory. This directory is /etc/selin

Dec 14, 2022

gofrrsockets is a client library used to interact with FRR's daemon UNIX sockets

gofrrsockets gofrrsockets is a client library that can be used to send commands to FRR's daemon UNIX sockets. The library provides a safer (forking cm

Jun 13, 2022

Namecoin calendar notification daemon (ICS, CalDAV)

nccald nccald is a simple daemon to provide calendar notifications for Namecoin name expirations. The daemon periodically queries a Namecoin Core inst

Dec 11, 2021

DNS synchronization daemon for the AIRE project.

dns-sync Database structure: { "name": "example-host.example.com", "content": "127.1.33.7" } ENV parameters: DEBUG: true|false DNS_FILTER: Reg

Dec 20, 2021

Bastionzeros Agent and Daemon!

Bzero Bastionzero Bastionzero is a simple to use zero trust access SaaS for dynamic cloud environments. Bastionzero is the most secure way to lock dow

Oct 12, 2022

NDP Proxy + Responder daemon

PNDPD - NDP Responder + Proxy Features Efficiently process incoming packets using bpf (which runs in the kernel) Respond to all NDP solicitations on a

Dec 23, 2022

A proof-of-concept project that makes accessible buildkitd daemon from macOS

buildkit-machine buildkit-machine allows you to make buildkitd daemon accessible in your macOS environment. To do so, it uses lima, which is a Linux s

Dec 21, 2022
Build a local copy of Known Exploited Vulnerabilities Catalog by CISA. Server mode for easy querying.

go-kev go-kev build a local copy of Known Exploited Vulnerabilities Catalog by CISA. Usage $ go-kev help Go Known Exploited Vulnerabilities Usage:

Oct 30, 2022
A smart Hub for holding server stat
A smart Hub for holding server stat

Stat Hub A smart Hub for holding server stat 中文说明 | English README Overview Stat Hub is a service for collecting and displaying servers stat. Stat Hub

Aug 29, 2020
A project that addresses the creation of RPC (Server-Client) and execute a CRUD in database

RPC - Server/Client A project that addresses the creation of RPC (Server-Client)

Dec 24, 2021
Signature-server - stores transaction blobs and uses predefined secret key to sign and verify those transactions

Signature Server Signature server stores transaction blobs and uses predefined s

Feb 14, 2022
A modern IRC server (daemon/ircd) written in Go.
A modern IRC server (daemon/ircd) written in Go.

Oragono is a modern IRC server written in Go. Its core design principles are: Being simple to set up and use Combining the features of an ircd, a serv

Dec 31, 2022
Daemon based on liblxc offering a REST API to manage containers
Daemon based on liblxc offering a REST API to manage containers

LXD LXD is a next generation system container and virtual machine manager. It offers a unified user experience around full Linux systems running insid

Jan 9, 2023
An autocompletion daemon for the Go programming language
An autocompletion daemon for the Go programming language

An autocompletion daemon for the Go programming language VERY IMPORTANT: this project is not maintained anymore, look for alternatives or forks if you

Jan 7, 2023
dyndns client daemon

README for dyndnscd =================== dyndnscd is the dyndns client daemon. It is a daemon that continually polls for IP address changes an in the

Sep 29, 2021
Resolver (DNS) cache daemon.
Resolver (DNS) cache daemon.

RESCACHED(1) Manual Page NAME rescached - DNS resolver cache daemon. Table of Contents SYNOPSIS OPTIONS DESCRIPTION FEATURES BEHIND THE DNS HOW CACHE

Nov 17, 2022
A simple daemon which will watch files on your filesystem, mirror them to MFS, automatically update related pins, and update related IPNS keys.
A simple daemon which will watch files on your filesystem, mirror them to MFS, automatically update related pins, and update related IPNS keys.

ipfs-sync is a simple daemon which will watch files on your filesystem, mirror them to MFS, automatically update related pins, and update related IPNS keys, so you can always access your directories from the same address. You can use it to sync your documents, photos, videos, or even a website!

Dec 30, 2022