browserbook-mesh

command module
v0.0.0-...-613d1fa Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

README

Version Docs 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.

Project status

We have reached the point where Mesh is being used by some teams in production. We feel that for many use cases, Mesh is stable enough for production. However, we caution that there are some issues and shortcomings in its current state, which generally fall into two categories:

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 picked up by many trading venues and are therefore 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).

Both Relayers and Market makers can use Mesh to watch a set of 0x orders for changes in fillability (e.g., cancellations, fills, expirations, etc...).

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 GraphQL API to interact with a Mesh node that they control. The API allows you to send orders into the network, query for existing orders, and get notified when an order is added or 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.

Documentation

You can find documentation and guides for 0x Mesh at https://0x-org.gitbook.io/mesh.

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

Documentation

Rendered for js/wasm
The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
NOTE(jalextowle): This file contains utilities used by browser based mesh nodes that need to be tested and would cause cyclic dependencies if they were moved to jsutil.
NOTE(jalextowle): This file contains utilities used by browser based mesh nodes that need to be tested and would cause cyclic dependencies if they were moved to jsutil.
cmd
mesh
package mesh is a standalone 0x Mesh node that can be run from the command line.
package mesh is a standalone 0x Mesh node that can be run from the command line.
mesh-bootstrap
mesh-bootstrap is a separate executable for bootstrap nodes.
mesh-bootstrap is a separate executable for bootstrap nodes.
mesh-bridge
mesh-bridge is a short program that bridges two Mesh nodes.
mesh-bridge is a short program that bridges two Mesh nodes.
mesh-keygen
mesh-keygen is a short program that can be used to generate private keys.
mesh-keygen is a short program that can be used to generate private keys.
common
types
Package types holds common types that are used across a variety of interfaces.
Package types holds common types that are used across a variety of interfaces.
Package core contains everything needed to configure and run a 0x Mesh node.
Package core contains everything needed to configure and run a 0x Mesh node.
ordersync
Package ordersync contains the ordersync protocol, which is used for sharing existing orders between two peers, typically during initialization.
Package ordersync contains the ordersync protocol, which is used for sharing existing orders between two peers, typically during initialization.
db
Package jsutil contains various utility functions for working with JavaScript and WebAssembly
Package jsutil contains various utility functions for working with JavaScript and WebAssembly
p2p
package p2p is a low-level library responsible for peer discovery and sending/receiving messages.
package p2p is a low-level library responsible for peer discovery and sending/receiving messages.
validatorset
Package validatorset offers a way to combine a set of libp2p.Validators into a single validator.
Package validatorset offers a way to combine a set of libp2p.Validators into a single validator.
packages
mesh-browser/go/browserutil
NOTE(jalextowle): This file contains utilities used by browser based mesh nodes that need to be tested and would cause cyclic dependencies if they were moved to jsutil.
NOTE(jalextowle): This file contains utilities used by browser based mesh nodes that need to be tested and would cause cyclic dependencies if they were moved to jsutil.
mesh-browser/go/jsutil
Package jsutil contains various utility functions for working with JavaScript and WebAssembly
Package jsutil contains various utility functions for working with JavaScript and WebAssembly
mesh-browser/go/providerwrapper
Package providerwrapper wraps a web3 provider in order to implement the RPCClient interface.
Package providerwrapper wraps a web3 provider in order to implement the RPCClient interface.
Package providerwrapper wraps a web3 provider in order to implement the RPCClient interface.
Package providerwrapper wraps a web3 provider in order to implement the RPCClient interface.
Package scenario allows creating orders for testing purposes with a variety of options.
Package scenario allows creating orders for testing purposes with a variety of options.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL