Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ jobs:
IPFS_PROVIDER=local
IPFS_LOCAL_API_URL=http://ipfs:5001
IPFS_LOCAL_GATEWAY_URL=http://ipfs:8080
DELEGATED_ROUTING_URL=http://someguy:8190
DELEGATED_ROUTING_URL=https://delegated-ipfs.dev
REDIS_HOST=redis
REDIS_PORT=6379
TEE_WORKER_URL=http://tee-worker:3001
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
created: 2026-03-23T00:38:32.141Z
title: Investigate someguy IPNS routing failure locally
area: infra
files:
- docker/docker-compose.yml
- docker/docker-compose.staging.yml
- apps/api/src/ipns/delegated-routing.client.ts
---

## Problem

Someguy v0.11.1 (latest release) has completely non-functional IPNS endpoints on staging. The `/routing/v1/providers/` endpoint works fine (returns results instantly), but `/routing/v1/ipns/` hangs indefinitely on both PUT and GET — curl times out after 30s with zero bytes received.

This causes every delegated routing publish to fail after 3 retries x 10s timeout. The API falls back to DB cache for resolves, but publishes waste ~30s per attempt. Nearly 2,000 abort errors were observed in a 10-minute window during load testing.

Staging has been reverted to `https://delegated-ipfs.dev` (PR #322) and someguy removed from the compose stack.

## Solution

Reproduce and diagnose locally using the Docker host (192.168.133.114) with Kubo v0.40.0:

1. Add someguy v0.11.1 to `docker/docker-compose.yml`
2. Point API `DELEGATED_ROUTING_URL` at `http://192.168.133.114:<port>`
3. Test IPNS endpoint directly: `curl --max-time 30 http://<someguy>/routing/v1/ipns/<key>`
4. If it hangs locally too — check someguy GitHub issues for known IPNS bugs, file one if needed
5. If it works locally — investigate staging-specific factors (networking, resource constraints, DNS)
6. Run SDK E2E (83 tests) and load tests to validate end-to-end

Key questions:

- Is this a known someguy bug?
- Does Kubo v0.40.0 (vs v0.34.0 on staging when someguy was deployed) change anything?
- Is someguy's DHT mode (`standard` vs `accelerated`) a factor?
- Are there env vars or config we're missing?
11 changes: 0 additions & 11 deletions docker/alloy-config.river
Original file line number Diff line number Diff line change
Expand Up @@ -66,17 +66,6 @@ prometheus.scrape "cipherbox_api" {
forward_to = [prometheus.remote_write.grafana_cloud.receiver]
}

// Scrape someguy delegated routing sidecar for DHT and HTTP routing metrics
prometheus.scrape "someguy" {
targets = [{
__address__ = "someguy:8190",
}]
metrics_path = "/debug/metrics/prometheus"
scrape_interval = "30s"

forward_to = [prometheus.remote_write.grafana_cloud.receiver]
}

// Scrape Kubo /debug/metrics/prometheus endpoint for IPFS node health
prometheus.scrape "kubo" {
targets = [{
Expand Down
24 changes: 0 additions & 24 deletions docker/docker-compose.staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,30 +84,6 @@ services:
memory: 2G
cpus: '1.0'

someguy:
image: ghcr.io/ipfs/someguy:v0.11.1
restart: unless-stopped
environment:
SOMEGUY_LISTEN_ADDRESS: 0.0.0.0:8190
SOMEGUY_DHT: standard
SOMEGUY_LIBP2P_CONNMGR_LOW: 50
SOMEGUY_LIBP2P_CONNMGR_HIGH: 300
SOMEGUY_LIBP2P_MAX_MEMORY: 536870912 # 512MB in bytes
GOLOG_LOG_LEVEL: info
GOLOG_LOG_FMT: json
logging: *default-logging
healthcheck:
test: ['CMD-SHELL', 'curl -sf http://localhost:8190/version || exit 1']
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
deploy:
resources:
limits:
memory: 768M
cpus: '0.5'

tee-worker:
image: ghcr.io/${GITHUB_REPOSITORY_OWNER:-OWNER}/cipherbox-tee-worker:${TAG:-latest}
restart: unless-stopped
Expand Down
13 changes: 13 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"pull-request-title-pattern": "chore: release v${version}",
"changelog-sections": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "build", "section": "Build System" },
{ "type": "perf", "section": "Performance Improvements" },
{ "type": "revert", "section": "Reverts" },
{ "type": "docs", "section": "Documentation", "hidden": true },
{ "type": "style", "section": "Styles", "hidden": true },
{ "type": "chore", "section": "Miscellaneous", "hidden": true },
{ "type": "refactor", "section": "Code Refactoring", "hidden": true },
{ "type": "test", "section": "Tests", "hidden": true },
{ "type": "ci", "section": "Continuous Integration", "hidden": true }
],
"packages": {
".": {
"release-type": "node",
Expand Down
Loading