Documentation ¶
Overview ¶
Package core contains everything needed to configure and run a 0x Mesh node.
Index ¶
- type App
- func (app *App) AddOrders(signedOrdersRaw []*json.RawMessage) (*ordervalidator.ValidationResults, error)
- func (app *App) AddPeer(peerInfo peerstore.PeerInfo) error
- func (app *App) GetMessagesToShare(max int) ([][]byte, error)
- func (app *App) GetOrders(page, perPage int, snapshotID string) (*rpc.GetOrdersResponse, error)
- func (app *App) GetStats() (*rpc.GetStatsResponse, error)
- func (app *App) HandleMessages(messages []*p2p.Message) error
- func (app *App) Start(ctx context.Context) error
- func (app *App) SubscribeToOrderEvents(sink chan<- []*zeroex.OrderEvent) event.Subscription
- type Config
- type ErrSnapshotNotFound
- type MessageHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
func (*App) AddOrders ¶
func (app *App) AddOrders(signedOrdersRaw []*json.RawMessage) (*ordervalidator.ValidationResults, error)
AddOrders can be used to add orders to Mesh. It validates the given orders and if they are valid, will store and eventually broadcast the orders to peers.
func (*App) GetOrders ¶
GetOrders retrieves paginated orders from the Mesh DB at a specific snapshot in time. Passing an empty string as `snapshotID` creates a new snapshot and returns the first set of results. To fetch all orders, continue to make requests supplying the `snapshotID` returned from the first request. After 1 minute of not received further requests referencing a specific snapshot, the snapshot expires and can no longer be used.
func (*App) GetStats ¶
func (app *App) GetStats() (*rpc.GetStatsResponse, error)
GetStats retrieves stats about the Mesh node
func (*App) SubscribeToOrderEvents ¶
func (app *App) SubscribeToOrderEvents(sink chan<- []*zeroex.OrderEvent) event.Subscription
SubscribeToOrderEvents let's one subscribe to order events emitted by the OrderWatcher
type Config ¶
type Config struct { // Verbosity is the logging verbosity: 0=panic, 1=fatal, 2=error, 3=warn, 4=info, 5=debug 6=trace Verbosity int `envvar:"VERBOSITY" default:"2"` // DataDir is the directory to use for persisting all data, including the // database and private key files. DataDir string `envvar:"DATA_DIR" default:"0x_mesh"` // P2PTCPPort is the port on which to listen for new TCP connections from // peers in the network. Set to 60558 by default. P2PTCPPort int `envvar:"P2P_TCP_PORT" default:"60558"` // P2PWebSocketsPort is the port on which to listen for new WebSockets // connections from peers in the network. Set to 60559 by default. P2PWebSocketsPort int `envvar:"P2P_WEBSOCKETS_PORT" default:"60559"` // EthereumRPCURL is the URL of an Etheruem node which supports the JSON RPC // API. EthereumRPCURL string `envvar:"ETHEREUM_RPC_URL" json:"-"` // EthereumNetworkID is the network ID to use when communicating with // Ethereum. EthereumNetworkID int `envvar:"ETHEREUM_NETWORK_ID"` // UseBootstrapList is whether to bootstrap the DHT by connecting to a // specific set of peers. UseBootstrapList bool `envvar:"USE_BOOTSTRAP_LIST" default:"true"` // BootstrapList is a comma-separated list of multiaddresses to use for // bootstrapping the DHT (e.g., // "/ip4/3.214.190.67/tcp/60558/ipfs/16Uiu2HAmGx8Z6gdq5T5AQE54GMtqDhDFhizywTy1o28NJbAMMumF"). // If empty, the default bootstrap list will be used. BootstrapList string `envvar:"BOOTSTRAP_LIST" default:""` // OrderExpirationBuffer is the amount of time before the order's stipulated expiration time // that you'd want it pruned from the Mesh node. OrderExpirationBuffer time.Duration `envvar:"ORDER_EXPIRATION_BUFFER" default:"10s"` // BlockPollingInterval is the polling interval to wait before checking for a new Ethereum block // that might contain transactions that impact the fillability of orders stored by Mesh. Different // networks have different block producing intervals: POW networks are typically slower (e.g., Mainnet) // and POA networks faster (e.g., Kovan) so one should adjust the polling interval accordingly. BlockPollingInterval time.Duration `envvar:"BLOCK_POLLING_INTERVAL" default:"5s"` // EthereumRPCMaxContentLength is the maximum request Content-Length accepted by the backing Ethereum RPC // endpoint used by Mesh. Geth & Infura both limit a request's content length to 1024 * 512 Bytes. Parity // and Alchemy have much higher limits. When batch validating 0x orders, we will fit as many orders into a // request without crossing the max content length. The default value is appropriate for operators using Geth // or Infura. If using Alchemy or Parity, feel free to double the default max in order to reduce the // number of RPC calls made by Mesh. EthereumRPCMaxContentLength int `envvar:"ETHEREUM_RPC_MAX_CONTENT_LENGTH" default:"524288"` // CustomContractAddresses is a JSON-encoded string representing a set of // custom addresses to use for the configured network ID. The contract // addresses for most common networks are already included by default, so this // is typically only needed for testing on custom networks. The given // addresses are added to the default list of addresses for known networks and // overriding any contract addresses for known networks is not allowed. The // addresses for exchange, devUtils, erc20Proxy, and erc721Proxy are required // for each network. For example: // // { // "exchange":"0x48bacb9266a570d521063ef5dd96e61686dbe788", // "devUtils": "0x38ef19fdf8e8415f18c307ed71967e19aac28ba1", // "erc20Proxy": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", // "erc721Proxy": "0x1d7022f5b17d2f8b695918fb48fa1089c9f85401" // } // CustomContractAddresses string `envvar:"CUSTOM_CONTRACT_ADDRESSES" default:""` }
Config is a set of configuration options for 0x Mesh.
type ErrSnapshotNotFound ¶
type ErrSnapshotNotFound struct {
// contains filtered or unexported fields
}
ErrSnapshotNotFound is the error returned when a snapshot not found with a particular id
func (ErrSnapshotNotFound) Error ¶
func (e ErrSnapshotNotFound) Error() string
type MessageHandler ¶
type MessageHandler struct {
// contains filtered or unexported fields
}