xmtpd
(XMTP daemon) is an experimental version of XMTP node software. It is not the node software that currently forms the XMTP network.
After xmtpd
meets specific functional requirements, the plan is for it to become the node software that powers the XMTP network.
Some of these requirements include reaching functional parity with the current node software and reliably performing data replication without data loss.
To keep up with and provide feedback about xmtpd
development, see the Issues tab in this repo.
At this time, you can experiment with xmtpd
as follows:
- Run a local
xmtpd
node. - Run a cluster of
xmtpd
nodes in a local devnet.
In the future, anyone will be able to run an xmtpd
node that participates in the XMTP network.
To install dependencies and build background services needed by the node, run:
dev/up
This starts the following background services in Docker:
-
A Postgres database that is used to store data needed to run the node
-
A Prometheus instance that enables you to view metrics and data about the node, such as resource usage and errors
-
A Grafana instance that enables you to monitor the health and performance of the node
To stop the background services running in Docker, run:
dev/down
To start the xmtpd
node, run:
dev/start
To run tests against the xmtpd
node, run:
dev/test
These tests provide a full suite of unit and integration tests for the xmtpd
repo to help ensure and maintain correctness of the code over time and to avoid regressions as the code evolves. You can explore the tests by taking a look at any files with the suffix _test.go
.
The xmtpd
node build provides two options for monitoring your node.
-
To access your local Prometheus instance to explore node metrics, run:
open http://localhost:9090
To learn how to query node data in Prometheus, see Metric Types in Prometheus and PromQL and The Anatomy of a PromQL Query.
-
To access your local Grafana instance to explore and build node dashboards, run:
open http://localhost:3000
To learn how to visualize node data in Grafana, see Prometheus Histograms with Grafana Heatmaps and How to visualize Prometheus histograms in Grafana.
To learn how to create a cluster of xmtpd
nodes to run a local devnet, see Create an XMTP devnet.