Skip to content
A peer-to-peer network for sharing 0x orders
Go TypeScript Other
Branch: development
Clone or download
albrow Merge pull request #368 from 0xProject/fix/order-hash-logging
core: Force order hash to log as hex string instead of []byte
Latest commit 2e694cb Aug 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Separate wasm tests into browser and node environments Aug 20, 2019
cmd Update dockerfiles for mesh and mesh-bootstrap Aug 20, 2019
constants Move bootstrap peer list and connectToBootstrapPeers to p2p/bootstrap.go Jul 13, 2019
core Force order hash to log as hex string instead of []byte Aug 20, 2019
db Use in-memory storage for browser environments Aug 20, 2019
docs Add an overview section to README and clarify purpose of JSON-RPC API Aug 12, 2019
ethereum Separate wasm tests into browser and node environments Aug 20, 2019
examples Update beta_telemetry_node/docker-compose.yml Aug 20, 2019
expirationwatch Small formatting change Aug 12, 2019
keys Add tests for the keys package Aug 14, 2019
loghooks Update loghooks/key_suffix_hook.go Jul 18, 2019
meshdb Remove qunit based tests in the meshdb package Aug 20, 2019
p2p Use default ports for p2p instead of letting OS choose Aug 20, 2019
rpc Cache order hash calculations Aug 16, 2019
test-wasm Move GO_LICENSE and reference it where appropirate Aug 6, 2019
zeroex Cache order hash calculations Aug 16, 2019
.gitattributes Let Github know that TypeDoc MD files are auto-generated Jul 31, 2019
.gitbook.yaml Add initial .gitbook.yaml Jul 28, 2019
.gitignore meshdb: Add browser support Aug 6, 2019
.golangci.yml Enable linter in CircleCI Apr 25, 2019
.prettierrc Add .prettierrc to project and format all markdown correctly Jul 14, 2019
CHANGELOG.md Update CHANGELOG for PR #352 Aug 14, 2019
GO_LICENSE Move GO_LICENSE and reference it where appropirate Aug 6, 2019
Gopkg.lock Update version of go-ws-transport Aug 20, 2019
Gopkg.toml Update version of go-ws-transport Aug 20, 2019
LICENSE Add missing Apache 2 license Mar 29, 2019
Makefile Separate wasm tests into browser and node environments Aug 20, 2019
README.md Update README.md Aug 12, 2019
package.json Make qunit-puppeteer a dev dependency Aug 6, 2019
yarn.lock meshdb: Add browser support Aug 6, 2019

README.md

Version Docs GoDoc Chat with us on Discord Circle CI

0x Mesh

0x Mesh is a peer-to-peer network for sharing orders that adhere to the 0x order message format.

WARNING: This project is still under active development. Expect breaking changes before the official release.

Overview

0x Mesh has a lot of different use cases for different categories of users:

  • Relayers can use Mesh to share orders with one another and to receive orders from market makers. This allows them to increase the depth of their order books and provide a better user experience.
  • Market makers can use Mesh to reach a broader audience. Their orders will be sent throughout the network and are more likely to be filled.
  • Mesh allows for a new type of relayer called a "serverless relayer". In the serverless relayer model, each user runs Mesh in their browser and there is no backend server or database. Instead, peers share orders directly with one another. (There are pros and cons to this approach and it is probably not suitable for all markets).

0x Mesh is intended to be entirely automatic. It takes care of all the work of receiving, sharing, and validating orders so that you can focus on building your application. When you run a 0x Mesh node, it will automatically discover peers in the network and begin receiving orders from and sending orders to them. You do not need to know the identities (e.g., IP address or domain name) of any peers in the network ahead of time and they do not need to know about you.

Developers can use the JSON-RPC API to interact with a Mesh node that they control. The API allows you to send orders into the network, receive any new orders, and get notified when the status of an existing order changes (e.g. when it is filled, canceled, or expired). Under the hood, Mesh performs efficient order validation and order book pruning, which takes out a lot of the hard work for developers.

Deployment

The Deployment Guide will walk you through how to configure and deploy your own 0x Mesh node.

Usage

Once you have deployed a 0x Mesh node, the Usage Guide explains how to interact with it using the JSON-RPC API.

Development

We love receiving contributions from the community 😄 If you are interested in helping develop 0x Mesh, please read the Development Guide. If you are looking for a place to start, take a look at the issues page and don't hesitate to reach out to us on Discord.

Additional Background

You can’t perform that action at this time.