Releases: xmtp/xmtpd
v0.3.0
Important Notes
- To upgrade to 0.3.0 you will need to change the smart contracts your deployed nodes point to. Please look to
xmtpd-infrastructure
for the latest contract addresses. - Upgrading to 0.3.0 will wipe your local database. All sequence_id's will restart from 0, and all smart contracts will be indexed from the start.
Major Features
New Nodes Registry
We have upgraded the Nodes Registry to have more fine-grained admin roles, and better tracking of node status. This is a breaking change and requires all nodes to wipe their local database and start clean.
Metrics. Metrics. Metrics.
We have added dozens of Prometheus metrics to the node and payer services, tracking performance and reliability. We plan to release an open source Grafana dashboard to make sense of these metrics in the coming weeks.
Fee Tracking
xmtpd
is now tracking fee consumption on every message, to set the network up for reaching consensus on Payer spends.
Better payer service nonce management
Payers can send a lot of blockchain transactions concurrently. We have substantially improved our nonce manager to handle this kind of workload and avoid nonce-reuse errors and long delays due to nonce gaps. The payer service can now run in HA mode with more than 1 replica.
GRPC Gateway Support
We now support HTTP clients as well as GRPC through GRPC Gateway
All PR's
- Use v5 for caching by @mkysel in #508
- Fix CLI version print by @mkysel in #509
- Improve version checking system by @mkysel in #506
- Lint generators and commit dirty changes by @mkysel in #507
- chore: update to foundry v1.0.0 by @fbac in #523
- Bump github.com/ethereum/go-ethereum from 1.14.12 to 1.14.13 in /tools by @dependabot in #526
- Some good logging by @mkysel in #525
- Bump the gomod-updates group with 2 updates by @dependabot in #539
- Fix foundry version check by @neekolas in #534
- Add 0.2.0 upgrade test by @mkysel in #545
- Add LoggingMisbehaviorService by @neekolas in #413
- Allow running without payer key by @mkysel in #547
- Verifiable payer by @mkysel in #544
- feat!: enhancements to XMTP Nodes Registry by @fbac in #524
- Add payers table by @neekolas in #535
- Link payer to gateway envelopes by @neekolas in #536
- Add fee calculation helpers by @neekolas in #537
- Add fees to UnsignedOriginatorEnvelope by @neekolas in #548
- Track unsettled usage by @neekolas in #549
- Remove error print by @mkysel in #565
- Add migration tools for node registry by @neekolas in #555
- XMTP Node Registry enhancements by @fbac in #572
- feat: Payer interface by @fbac in #558
- Drive-by fixes to logger and fatal by @mkysel in #577
- Surface xmtpd-infra as a resource to node operators by @jhaaaa in #582
- SQL Nonce Manager for HA Payer by @mkysel in #578
- Change payer envelope to bytes field by @neekolas in #553
- Post 0.2.1 release chores by @mkysel in #584
- Add initial Rates contract by @neekolas in #557
- Make RatesManager upgradeable and deployable by @neekolas in #559
- Ingest rates from smart contract by @neekolas in #573
- Add admin functions for rates contract by @neekolas in #575
- Add base sepolia output by @fbac in #585
- Prepare migrator for v1 to v2 migration by @fbac in #576
- Update Protos by @github-actions in #588
- Add CLI tool for adding rates to the contract by @neekolas in #586
- IPayerReport interface by @fbac in #581
- Calculate fees independently in sync by @neekolas in #556
- Breaking!: Integrate NodesV2 by @fbac in #589
- Update contracts deployment scripts by @fbac in #596
- Improve Grammar and Clarity in Documentation by @SITADRITA1 in #564
- Fix TestPublishIdentityUpdate test by @mkysel in #607
- Monitoring setup by @mkysel in #606
- Fix TestAddRates by @mkysel in #608
- Normalize contract deployment keys by @fbac in #600
- Add xmtp_testnet-playground environment config by @fbac in #601
- Rename minMonthlyFee to minMonthlyFeeMicroDollars by @fbac in #602
- Bump google.golang.org/grpc from 1.70.0 to 1.71.0 in the gomod-updates group by @dependabot in #599
- Update Protos by @github-actions in #594
- add grpc-gateway by @insipx in #579
- Print registrant in expected form by @mkysel in #613
- Start storing congestion per minute by @neekolas in #598
- Add env.json by @fbac in #611
- Replace geth client with Arbitrum fork by @neekolas in #618
- Disable upgrade tests by @neekolas in #619
- Bump golang.org/x/net from 0.35.0 to 0.36.0 in /tools by @dependabot in #627
- Bump golang.org/x/net from 0.35.0 to 0.36.0 by @dependabot in #626
- More nonce improvements by @mkysel in #625
- feat: contracts cleanup by @deluca-mike in #620
- Add payer metrics by @mkysel in #622
- Use testcontainers in upgrade tests by @fbac in #603
- Do not skip storing messages in indexer by @fbac in #621
- Test utility to start an anvil instance by @neekolas in #629
- Calculate congestion from last 5 minutes of data by @neekolas in #609
- Get target rate per minute from smart contract by @neekolas in #610
- Utility to get most recent 5 minutes of congestion by @neekolas in #616
- More sync metrics by @mkysel in #634
- Use real congestion rates by @neekolas in #617
- Fix CI error by @mkysel in #635
- Update migrator docs by @fbac in #590
- Bump github.com/docker/docker from 27.5.0+incompatible to 28.0.1+incompatible in the gomod-updates group by @dependabot in #638
- fix correction by @futreall in #637
- Run abigen by @neekolas in #640
- Use retry library by @mkysel in #641
- Indexer metrics + indexer refactors by @mkysel in #639
- Bump github.com/containerd/containerd from 1.7.25 to 1.7.27 in /tools by @dependabot in #644
- Improve nonce replenishment by @mkysel in #642
- Switch anvil to mixed mode mining by @mkysel in #647
- chore: fix some comments by @linghuying in #649
- Update Protos by @github-actions in #650
- Fix prom metrics by @mkysel in #648
- fix spelling errors by @Bilogweb3 in #651
- Re-enable upgrade tests by @mkysel in #657
- Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 by @dependabot in #662
- Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 in /tools by @dependabot in #663
- Update Protos by @github-actions in #664
- Fix generate identity hang and add more metrics by @mkysel in #666
- Update Protos by @github-actions in #667
- Auth as PAT in nightly automation by @fbac in #668
- docs(readme): add badge and link to lint workflow by @Ocheretovich in #677
- chore: add icon and link to release by @Ocheretovich in #678
- Rework retry and Fix Version Verifier by @mkysel in #679
- Fix GRPC KeepAlive by @mkysel in #680
- Generate payer reports by @neekolas in https://github.com/xmtp/xmtpd/p...
v0.2.3
What's Changed
- Fix generate identity hang and add more metrics by @mkysel in #666
- Fix GRPC KeepAlive by @mkysel in #680
- Fix abigen 0.2-dev by @mkysel in #673
- Cherry Pick Changes For ETH Client by @neekolas in #676
- 0.2-dev Rework retry by @mkysel in #675
- 0.2-dev Fix Version Verifier by @mkysel in #674
Full Changelog: v0.2.2...v0.2.3
v0.2.2
v0.2.1
Changelog
v0.2.1 (2025-03-04)
Merged pull requests:
- Surface xmtpd-infra as a resource to node operators #582 (jhaaaa)
- Drive-by fixes to logger and fatal #577 (mkysel)
- Remove error print #565 (mkysel)
- Allow running without payer key #547 (mkysel)
- Add 0.2.0 upgrade test #545 (mkysel)
- Some good logging #525 (mkysel)
- Fix CLI version print #509 (mkysel)
- Use v5 for caching #508 (mkysel)
- Improve version checking system #506 (mkysel)