# 0x Mesh

## Metadata
**Artwork**:: https://opengraph.githubassets.com/428e2af941beff29bdbc10981d0ca57e6b337a7a0fd50cfeb9c490a30e088cd0/0xProject/0x-mesh
**Status**:: #x
**Zettel**:: #zettel/fleeting
**Source**:: #from/browser
**URL**:: [github.com](https://github.com/0xProject/0x-mesh)
**Host**:: [[github.com]]
**Document Tags**:: #golang #webrtc #ethereum #dapp #webassembly #libp2p
**Created**:: [[2023-04-17]]
## Description
A peer-to-peer network for sharing 0x orders
- [[0x Mesh Architecture]] is a good reference to implement a public relay network via P2P.
The README also lists some issues they met. These will be challenges for us as well.
>- Order sharing: We have recently made significant improvements to our order sharing algorithm, including reducing bandwidth usage and CPU usage by at least an order of magnitude on average. See [#692] and [#732]. However, we are still working on accurately testing and measuring the speed at which orders propagate through the network with different network sizes and topologies. In some circumstances, it may take longer than we would like for orders to reach the majority of nodes in the network. This is an area we will continue to focus on and improve.
> - Browser usage: Mesh can run directly in the browser via the [@0x/mesh-browser](https://www.npmjs.com/package/@0x/mesh-browser) package. We have supported this for a while and have examples and integration tests in this repository. While we have made recent improvements to stability and performance (see [#703](https://github.com/0xProject/0x-mesh/pull/703), [#697](https://github.com/0xProject/0x-mesh/pull/697), and [#694](https://github.com/0xProject/0x-mesh/pull/694)), there are still some [important missing features and issues to address](https://github.com/0xProject/0x-mesh/issues?q=is%3Aopen+is%3Aissue+label%3Abrowser) before `@0x/mesh-browser` is feasible for most production use cases.
[#692]: https://github.com/0xProject/0x-mesh/pull/692
[#732]: https://github.com/0xProject/0x-mesh/pull/732
- 0x Mesh uses libp2p, so its development is heavily restricted by the progress of libp2p, such as in [#692].
- Should we support pull based protocol to synchronize old transactions as in [#732]? Such protocol is prone to DoS attack which requires careful design.
- Do we have any requirement to connect the P2P network in the browser? I don't see the problem to support WebSocket, but running Tentacle in JavaScript or WebAssembly may be challenge.
## Deprecation
0x Labs has deprecated 0x Mesh and encourages developers to use [0x API /orderbook service instead](http://0x.org/docs/api).