v1.1.0
XMTPD v1.1.0 — Stability Highlights
🛡️ Stability & Correctness
- Safer concurrency and locking: envelope partition creation now uses less restrictive locking, and advisory locks use try-lock semantics to avoid deadlocks.
- Cleaner shutdown behavior: DB connections and test servers now close cleanly; publisher timeouts are handled as warnings instead of fatal errors.
- Stronger error handling: expanded verifier and on-chain error messages, proper
CodeCanceledpropagation, and safer handling of retryable DB errors.
🔁 Migrator Reliability
- Hardened migrator pipeline: batching, retries, worker pools, and a dead-letter box for failed migrations.
- Clear accounting and safety: migrator tracks commits and group messages separately, pays its own fees, and prunes only successfully migrated data.
- Improved observability: new metrics for bytes migrated, targets, and writer activity make migration progress and issues visible.
📈 Operational Observability
- Higher-quality metrics: added blockchain latency buckets (50ms precision), gateway publish wait timing, and indexed-bytes tracking.
- Better logging context: logs now include nodeID, sequenceID, topic, and address labels for faster debugging.
- Noise reduction: metrics emission throttled to avoid bursts and log overflow under load.
Changelog
- 27869d2 Change envelope partition creation to allow less restrictive locking (#1530)
- ba354f7 Fix test server shutdown (#1532)
- 7978344 Close DB connections on shutdown (#1526)
- f015a8f Bump github.com/DataDog/datadog-agent/pkg/trace from 0.73.0 to 0.74.0 in the gomod-updates group (#1525)
- 367f8b7 Some logging level changes (#1521)
- 756a9a4 chore: fix typos in pkg/db/db.go (#1524)
- dee6211 Migrator: commit messages batches (#1520)
- ce8c60d Add bytes indexed metric (#1522)
- 57bfc8d Add topic log field to errors in IU handling (#1507)
- 7bc8dcd Label indexer log processing time with address (#1508)
- 05a1103 Expand verifier error messages (#1512)
- 820d0be Measure wait for gateway publish (#1510)
- 462736b timeout waiting for publisher should be a warning (#1511)
- 62031ea Remove gateway sorting (#1468)
- 3cc062e Fix Uint32Slice param array to accept empty strings (#1495)
- dd4c71d Subscribe worker queries envelopes per originator (#1489)
- 5c78571 Bump the gomod-updates group with 2 updates (#1488)
- 4dda604 Gateway Alternative Node Selection Strategies (#1483)
- f04b75f Fix Duplicate OTEL Registration on DB Init (#1481)
- 3af3b9d GetPayerByAddress fetches EIP-55 formatted addresses (#1476)
- d9a2522 V3 Compatibility - Return nothing on empty filters (#1465)
- c250d4b Migrator now pays fees (#1470)
- 7192de7 Add migrator target metric (#1469)
- 5dd1641 Introduce support for read only DB (#1452)
- dbbbee6 Instrument logger with nodeId/SeqId (#1461)
- 55e076c Count message count for unsettled usage (#1462)
- 217e2a1 Only emit metrics once every 10 min, not multiple times per mod 0 min (#1460)
- d704cef Migrator: batches, retries and workers. (#1453)
- 9c23a99 Migrator: dead letter box (#1450)
- e9f5a57 Prune migrated messages (#1443)
- e3147c4 Bump the gomod-updates group with 6 updates (#1451)
- e12f0b5 Migrator: track commits and group messages separately (#1437)
- 55454af Enhance onchain error translation (#1428)
- 01d63f3 Actually register migratorWriterBytesMigrated (#1448)
- c07e5be Add migrator metrics and update gateway metrics (#1441)
- a239cf1 Bump github.com/quic-go/quic-go from 0.54.1 to 0.57.0 in /tools (#1439)
- 25d4f86 Serialize deploys on main using concurrency to prevent race conditions (#1435)
- c9d1edf Introduce 50ms precision blockchain prometheus buckets (#1434)
- 8433145 Teach CLI to use the --environment prebaked setting (#1433)
- 726178d Add blockchain oracle (#1412)
- cc38d47 Extend retryable pg errors (#1423)
- 1f5737c Use
try lockfor advisory locks (#1424) - fe0344a Avoid log overflow (#1427)
- 77f345d Update Protos (#1425)
- fe2cb02 Register missing metrics (#1418)
- 8e34140 Return CodeCanceled properly (#1417)
- 8632339 Metrics interceptor (#1415)
- 739da46 Don't ban innocent nodes! (#1416)
- cfc5a5e XMTPD Goreleaser for Darwin and Linux (#1413)
- 19338d0 New Testnet addresses (#1411)
- 3b54d3d Enhance payer report system logging (#1402)
- c19ad80 Fix TestMigrator (#1394)
- 87e31ec Add client metrics in node to node sync (#1404)
- a8c7e3a Fix SemVer constraint (#1403)