diff --git a/AGENTS.md b/AGENTS.md index 20edca2..ee00b68 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -142,8 +142,8 @@ test-scripts` fails while the committed file differs from a fresh render, and `m lint-alloy` validates and runs it. **Pinned upstream releases.** One decdn/decdn release (`decdn_node_version`, today -`0.0.4`) and one decdn/sponsord release (`sponsord_version` = `sponsord_onramp_version`, -today `0.0.4`; decdn/sponsord tags its whole workspace `vX.Y.Z`, there are no per-crate +`0.1.0`) and one decdn/sponsord release (`sponsord_version` = `sponsord_onramp_version`, +today `0.1.0`; decdn/sponsord tags its whole workspace `vX.Y.Z`, there are no per-crate tags) are pinned across every path: the role defaults, the onramp's installer pin (`sponsord_onramp_decdn_release` + `_decdn_sums_sha256`, copied into `compose/sponsord-onramp.env.example`), `compose/.env.example`'s image digests, the diff --git a/ansible/inventory/group_vars/sponsord_hosts.yml b/ansible/inventory/group_vars/sponsord_hosts.yml index 6680a40..7c86e36 100644 --- a/ansible/inventory/group_vars/sponsord_hosts.yml +++ b/ansible/inventory/group_vars/sponsord_hosts.yml @@ -14,11 +14,11 @@ # The default method, "release", installs the decdn/sponsord release the role pins # (tag v); set it only to hold the host on another one, together # with sponsord_onramp_version: -# sponsord_version: "0.0.4" +# sponsord_version: "0.1.0" # Or build on the host from a git ref (tag, branch or SHA; sponsord_version is not # checked in this mode): # sponsord_install_method: source -# sponsord_source_ref: v0.0.4 +# sponsord_source_ref: v0.1.0 # Or copy a control-machine build: a decdn/sponsord checkout's target dir # (`cargo build --release -p sponsord`; the role checks the ELF matches the host). # sponsord_install_method: manual diff --git a/ansible/inventory/group_vars/sponsord_onramp_hosts.yml b/ansible/inventory/group_vars/sponsord_onramp_hosts.yml index fab1c96..78d281a 100644 --- a/ansible/inventory/group_vars/sponsord_onramp_hosts.yml +++ b/ansible/inventory/group_vars/sponsord_onramp_hosts.yml @@ -12,10 +12,10 @@ # --- Binary ------------------------------------------------------------------------ # The same three methods as sponsord. "release" (default) installs the same release # as the sponsord role; set both versions together to hold the host on another: -# sponsord_onramp_version: "0.0.4" +# sponsord_onramp_version: "0.1.0" # Or build on the host (its own checkout, so it may pin a different ref): # sponsord_onramp_install_method: source -# sponsord_onramp_source_ref: v0.0.4 +# sponsord_onramp_source_ref: v0.1.0 # Or manual, which follows sponsord_release_target_dir (`cargo build --release` in # a decdn/sponsord checkout builds both binaries): # sponsord_onramp_install_method: manual @@ -35,6 +35,6 @@ # The decdn release the installers install defaults to the role's pin (decdn/decdn # v), with the SHA-256 of its SHA256SUMS. To serve another, # set both: -# sponsord_onramp_decdn_release: v0.0.4 +# sponsord_onramp_decdn_release: v0.1.0 # sponsord_onramp_decdn_sums_sha256: "…" # CapacityBond and SlashJudge come from sponsord_network (group_vars/sponsord_hosts.yml). diff --git a/ansible/inventory/host_vars/decdn-node-1/main.yml b/ansible/inventory/host_vars/decdn-node-1/main.yml index fa4838e..c1739ac 100644 --- a/ansible/inventory/host_vars/decdn-node-1/main.yml +++ b/ansible/inventory/host_vars/decdn-node-1/main.yml @@ -23,13 +23,13 @@ # the GPG-signed SHA256SUMS manifest. The version defaults to the decdn/decdn release # the role pins; set it only to hold a node on another one. decdn_node_install_method: release -# decdn_node_version: "0.0.4" +# decdn_node_version: "0.1.0" # # Alternative: build on the node from a git ref (any tag, branch or SHA), as an # unprivileged build user with a pinned toolchain (decdn_node_version is not checked # in this mode): # decdn_node_install_method: source -# decdn_node_source_ref: v0.0.4 +# decdn_node_source_ref: v0.1.0 # Alternative: copy binaries built on this control machine # (`cargo build --release -p decdn-node -p decdn-cli` in a decdn/decdn checkout): # decdn_node_install_method: manual diff --git a/ansible/inventory/host_vars/origin-1/main.yml b/ansible/inventory/host_vars/origin-1/main.yml index 05bbbf5..01cae67 100644 --- a/ansible/inventory/host_vars/origin-1/main.yml +++ b/ansible/inventory/host_vars/origin-1/main.yml @@ -25,13 +25,13 @@ # the GPG-signed SHA256SUMS manifest. The version defaults to the decdn/decdn release # the role pins; set it only to hold a node on another one. decdn_node_install_method: release -# decdn_node_version: "0.0.4" +# decdn_node_version: "0.1.0" # # Alternative: build on the node from a git ref (any tag, branch or SHA), as an # unprivileged build user with a pinned toolchain (decdn_node_version is not checked # in this mode): # decdn_node_install_method: source -# decdn_node_source_ref: v0.0.4 +# decdn_node_source_ref: v0.1.0 # Alternative: copy binaries built on this control machine # (`cargo build --release -p decdn-node -p decdn-cli` in a decdn/decdn checkout): # decdn_node_install_method: manual diff --git a/ansible/molecule/sponsord-onramp-caddy/molecule.yml b/ansible/molecule/sponsord-onramp-caddy/molecule.yml index 3f37031..51a9e69 100644 --- a/ansible/molecule/sponsord-onramp-caddy/molecule.yml +++ b/ansible/molecule/sponsord-onramp-caddy/molecule.yml @@ -87,7 +87,7 @@ provisioner: # Must equal EXPECTED_BRAND in ../sponsord-onramp/files/sponsord-onramp-stub: # quotes and a dollar sign prove the env file's quoting ($$ is molecule's escape). sponsord_onramp_brand_name: 'deCDN "molecule" $$HOME' - sponsord_onramp_decdn_release: v0.1.0 + sponsord_onramp_decdn_release: v9.9.9 sponsord_onramp_decdn_sums_sha256: "1111111111111111111111111111111111111111111111111111111111111111" sponsord_onramp_fund_rate_per_min: 0 sponsord_onramp_readiness_retries: 10 diff --git a/ansible/molecule/sponsord-onramp-lifecycle/molecule.yml b/ansible/molecule/sponsord-onramp-lifecycle/molecule.yml index 34668d0..64a15af 100644 --- a/ansible/molecule/sponsord-onramp-lifecycle/molecule.yml +++ b/ansible/molecule/sponsord-onramp-lifecycle/molecule.yml @@ -77,7 +77,7 @@ provisioner: # Must equal EXPECTED_BRAND in ../sponsord-onramp/files/sponsord-onramp-stub: # quotes and a dollar sign prove the env file's quoting ($$ is molecule's escape). sponsord_onramp_brand_name: 'deCDN "molecule" $$HOME' - sponsord_onramp_decdn_release: v0.1.0 + sponsord_onramp_decdn_release: v9.9.9 sponsord_onramp_decdn_sums_sha256: "1111111111111111111111111111111111111111111111111111111111111111" sponsord_onramp_fund_rate_per_min: 0 sponsord_onramp_readiness_retries: 10 diff --git a/ansible/molecule/sponsord-onramp-source/molecule.yml b/ansible/molecule/sponsord-onramp-source/molecule.yml index 07ba670..a81a361 100644 --- a/ansible/molecule/sponsord-onramp-source/molecule.yml +++ b/ansible/molecule/sponsord-onramp-source/molecule.yml @@ -86,7 +86,7 @@ provisioner: # Must equal EXPECTED_BRAND in ../sponsord-onramp/files/sponsord-onramp-stub: # quotes and a dollar sign prove the env file's quoting ($$ is molecule's escape). sponsord_onramp_brand_name: 'deCDN "molecule" $$HOME' - sponsord_onramp_decdn_release: v0.1.0 + sponsord_onramp_decdn_release: v9.9.9 sponsord_onramp_decdn_sums_sha256: "1111111111111111111111111111111111111111111111111111111111111111" sponsord_onramp_fund_rate_per_min: 0 sponsord_onramp_readiness_retries: 10 diff --git a/ansible/molecule/sponsord-onramp/molecule.yml b/ansible/molecule/sponsord-onramp/molecule.yml index fcc545f..6233856 100644 --- a/ansible/molecule/sponsord-onramp/molecule.yml +++ b/ansible/molecule/sponsord-onramp/molecule.yml @@ -99,7 +99,7 @@ provisioner: # Must equal EXPECTED_BRAND in files/sponsord-onramp-stub: quotes and a # dollar sign prove the env file's quoting ($$ is molecule's escape). sponsord_onramp_brand_name: 'deCDN "molecule" $$HOME' - sponsord_onramp_decdn_release: v0.1.0 + sponsord_onramp_decdn_release: v9.9.9 sponsord_onramp_decdn_sums_sha256: "1111111111111111111111111111111111111111111111111111111111111111" sponsord_onramp_fund_rate_per_min: 0 sponsord_onramp_readiness_retries: 10 diff --git a/ansible/molecule/validation-sponsord/converge.yml b/ansible/molecule/validation-sponsord/converge.yml index fcf77a9..0d36d5d 100644 --- a/ansible/molecule/validation-sponsord/converge.yml +++ b/ansible/molecule/validation-sponsord/converge.yml @@ -693,7 +693,7 @@ sponsord_onramp_rpc_url: https://sepolia-rollup.arbitrum.io/rpc sponsord_onramp_domain: onramp.validation.test sponsord_onramp_turnstile_sitekey: 1x00000000000000000000AA - sponsord_onramp_decdn_release: v0.1.0 + sponsord_onramp_decdn_release: v9.9.9 sponsord_onramp_decdn_sums_sha256: "1111111111111111111111111111111111111111111111111111111111111111" tasks: # --- sponsord_onramp: each case breaks ONE input over the valid baseline in play @@ -948,7 +948,7 @@ ansible.builtin.include_role: name: sponsord_onramp vars: - sponsord_onramp_decdn_sums_sha256: bc295285109e2189331e57d9cb51d214113cba332bd08a2777866a7a1cec2951 + sponsord_onramp_decdn_sums_sha256: c88ad5479f31bb0857db2c0205c54b240cbceb33a96724e4f8a288b6d866ab66 rescue: - name: Record onramp-pin-pair rejection (only if its assert failed) ansible.builtin.set_fact: diff --git a/ansible/roles/decdn_node/defaults/main.yml b/ansible/roles/decdn_node/defaults/main.yml index a17a53e..523be9c 100644 --- a/ansible/roles/decdn_node/defaults/main.yml +++ b/ansible/roles/decdn_node/defaults/main.yml @@ -61,7 +61,7 @@ decdn_rustup_sha256: # also moves the generated mirrors, the onramp's decdn pin (role default and # compose/sponsord-onramp.env.example), the Compose image digest and the chart's # appVersion (README.md, "Bumping the decdn release"). -decdn_node_version: "0.0.4" # asserted non-empty in "release" mode +decdn_node_version: "0.1.0" # asserted non-empty in "release" mode # Release target triple. Derived from the host's gathered architecture (x86_64 or # aarch64, see vars/main/arch.yml), so arm64 hosts (Graviton, Ampere, Hetzner CAX) # get the aarch64 tarball with no inventory change. Needs facts: a play with @@ -179,7 +179,7 @@ decdn_redeem_max_vouchers_per_tx: "" # daemon dflt 300; > 0 — gas-bounded decdn_redeem_interval_secs: "" # daemon dflt 300; range 1..=21600 — redeemer self-tick decdn_buyer_working_deposit_micro_usdc: "" # daemon dflt 10_000_000 (10 USDC); > 0 # bool; profile-dependent upstream — true for the daemon, false for the `decdn` -# client (fetch / bundle pull). node.toml is deliberately shared with the CLI, so +# client (decdn get). node.toml is deliberately shared with the CLI, so # pinning it here changes client behaviour too. One-time max USDC approval to PaymentPool. decdn_buyer_max_approve: "" decdn_pool_min_remaining_deposit_micro_usdc: "" # daemon dflt 1_000_000 — solvency floor before a pool drains diff --git a/ansible/roles/decdn_node/vars/main/networks.yml b/ansible/roles/decdn_node/vars/main/networks.yml index af7fbfa..49a770a 100644 --- a/ansible/roles/decdn_node/vars/main/networks.yml +++ b/ansible/roles/decdn_node/vars/main/networks.yml @@ -1,6 +1,6 @@ --- # GENERATED by scripts/sync-network-profiles.py -- do not hand-edit. -# Source: decdn/decdn @ 2a75f663ebd5fcb87ada4c024918a0b94bc5524d +# Source: decdn/decdn @ 538bf319631cb37854819e43998e4a73da06fd5c # crates/cli/src/known_chains.rs (KNOWN_CHAINS, KnownChain::addresses) # + contracts/deployments/.json # diff --git a/ansible/roles/iroh_relay/README.md b/ansible/roles/iroh_relay/README.md index 0cdfc0a..c6c1bf1 100644 --- a/ansible/roles/iroh_relay/README.md +++ b/ansible/roles/iroh_relay/README.md @@ -122,7 +122,7 @@ decdn_relay_urls: Setting `decdn_relay_urls` **replaces** n0's relays; it does not add to them. A node whose only relay is down has no fallback for peers it cannot hole-punch. Deploy **at least two** relays, preferably in different regions, before switching a fleet -over. Clients (`decdn fetch`, `decdn probe --relay-url …`) take relays the same way, +over. Clients (`decdn get`, `decdn probe --relay-url …`) take relays the same way, but a relay in the default `allowlist` mode refuses them (see below): point clients only at relays in `everyone` or `denylist` mode. @@ -155,7 +155,7 @@ anyone in every mode. - **`denylist`:** everyone except `iroh_relay_denylist`. - **`everyone`:** no restriction. -**What allowlist mode costs.** decdn clients (`decdn fetch`, `decdn probe`, onramp +**What allowlist mode costs.** decdn clients (`decdn get`, `decdn probe`, onramp users) use a fresh iroh key for every fetch, so they **can never be listed**. iroh hole-punches over a connection it already has, and a node behind NAT has no path but its relay, so a client reaches a node homed on an allowlisted relay **only if diff --git a/ansible/roles/iroh_relay/defaults/main.yml b/ansible/roles/iroh_relay/defaults/main.yml index 60e92cd..fbf1334 100644 --- a/ansible/roles/iroh_relay/defaults/main.yml +++ b/ansible/roles/iroh_relay/defaults/main.yml @@ -69,7 +69,7 @@ iroh_relay_metrics_port: 9092 # anyone in every mode): # "allowlist" (default): only the endpoint IDs below. The IDs of the inventory's # deCDN nodes are added by playbooks/iroh_relay.yml (iroh_relay_allowlist_from_inventory). -# decdn clients (decdn fetch, onramp users) use a fresh key per fetch and can +# decdn clients (decdn get, onramp users) use a fresh key per fetch and can # NEVER be listed, and iroh hole-punches over a connection it already has, so a # client reaches a node homed here only if the node is directly reachable. A # node behind NAT that serves clients needs its relays in "everyone" mode. diff --git a/ansible/roles/sponsord/defaults/main.yml b/ansible/roles/sponsord/defaults/main.yml index 8914d1a..d00b982 100644 --- a/ansible/roles/sponsord/defaults/main.yml +++ b/ansible/roles/sponsord/defaults/main.yml @@ -52,7 +52,7 @@ decdn_rustup_sha256: # The decdn/sponsord release (tag v) this repo pins. Keep it equal to # sponsord_onramp_version: both come from one workspace release (README.md, # "Bumping the sponsord release"; make test-scripts checks the defaults agree). -sponsord_version: "0.0.4" # asserted non-empty in "release" mode +sponsord_version: "0.1.0" # asserted non-empty in "release" mode # Release target triple, derived from the host's gathered architecture (see # vars/main/arch.yml). Set it explicitly only for a play with gather_facts: false. sponsord_target: "{{ _sponsord_arch_targets.get(ansible_facts.get('architecture', ''), '') }}" diff --git a/ansible/roles/sponsord/vars/main/networks.yml b/ansible/roles/sponsord/vars/main/networks.yml index 35fcf7c..b0a0405 100644 --- a/ansible/roles/sponsord/vars/main/networks.yml +++ b/ansible/roles/sponsord/vars/main/networks.yml @@ -1,6 +1,6 @@ --- # GENERATED by scripts/sync-network-profiles.py -- do not hand-edit. -# Source: decdn/decdn @ 2a75f663ebd5fcb87ada4c024918a0b94bc5524d +# Source: decdn/decdn @ 538bf319631cb37854819e43998e4a73da06fd5c # crates/cli/src/known_chains.rs (KNOWN_CHAINS, KnownChain::addresses) # + contracts/deployments/.json # diff --git a/ansible/roles/sponsord_onramp/README.md b/ansible/roles/sponsord_onramp/README.md index bf1b2e5..b23a555 100644 --- a/ansible/roles/sponsord_onramp/README.md +++ b/ansible/roles/sponsord_onramp/README.md @@ -7,7 +7,7 @@ the public side of the deCDN onboarding sponsor. It serves: their download; - the `decdn.sh` / `decdn.ps1` installers, which install `decdn` from a pinned release, make a throwaway download key, get the capability through the gate and - run `decdn bundle pull` with it; + run `decdn get` with it; - the API the installers poll for that capability. It holds no wallet. For each person who passes the gate it asks the diff --git a/ansible/roles/sponsord_onramp/defaults/main.yml b/ansible/roles/sponsord_onramp/defaults/main.yml index 6ea2caa..6c3ed58 100644 --- a/ansible/roles/sponsord_onramp/defaults/main.yml +++ b/ansible/roles/sponsord_onramp/defaults/main.yml @@ -50,7 +50,7 @@ decdn_rustup_sha256: # --- Release to install ("release" mode) ---------------------------------------- # The decdn/sponsord release (tag v) this repo pins, the # same one as the sponsord role's sponsord_version. -sponsord_onramp_version: "0.0.4" # asserted non-empty in "release" mode +sponsord_onramp_version: "0.1.0" # asserted non-empty in "release" mode # Derived from the host's gathered architecture (vars/main/arch.yml). sponsord_onramp_target: "{{ _sponsord_onramp_arch_targets.get(ansible_facts.get('architecture', ''), '') }}" sponsord_onramp_release_base: "https://github.com/decdn/sponsord/releases/download" @@ -138,10 +138,10 @@ sponsord_onramp_gate_template_src: "" # --- Release the installers install -------------------------------------------- # The decdn/decdn release the installers download `decdn` from: a tag and the # SHA-256 of that release's SHA256SUMS file (`sha256sum SHA256SUMS` after -# verifying its .asc). Default: decdn/decdn v0.0.4. Override the tag together with +# verifying its .asc). Default: decdn/decdn v0.1.0. Override the tag together with # its digest: preflight refuses a pair where only one half moved. -sponsord_onramp_decdn_release: v0.0.4 # decdn/decdn tag -sponsord_onramp_decdn_sums_sha256: bc295285109e2189331e57d9cb51d214113cba332bd08a2777866a7a1cec2951 +sponsord_onramp_decdn_release: v0.1.0 # decdn/decdn tag +sponsord_onramp_decdn_sums_sha256: c88ad5479f31bb0857db2c0205c54b240cbceb33a96724e4f8a288b6d866ab66 sponsord_onramp_releases_base: "" # [https://github.com/decdn] # --- Limits ("" = the onramp's own default, shown in brackets) ----------------- diff --git a/ansible/roles/sponsord_onramp/vars/main/networks.yml b/ansible/roles/sponsord_onramp/vars/main/networks.yml index 816bd85..63f107b 100644 --- a/ansible/roles/sponsord_onramp/vars/main/networks.yml +++ b/ansible/roles/sponsord_onramp/vars/main/networks.yml @@ -1,6 +1,6 @@ --- # GENERATED by scripts/sync-network-profiles.py -- do not hand-edit. -# Source: decdn/decdn @ 2a75f663ebd5fcb87ada4c024918a0b94bc5524d +# Source: decdn/decdn @ 538bf319631cb37854819e43998e4a73da06fd5c # crates/cli/src/known_chains.rs (KNOWN_CHAINS, KnownChain::addresses) # + contracts/deployments/.json # diff --git a/charts/decdn-node/Chart.yaml b/charts/decdn-node/Chart.yaml index 0146d3e..5c99e5e 100644 --- a/charts/decdn-node/Chart.yaml +++ b/charts/decdn-node/Chart.yaml @@ -13,7 +13,7 @@ version: 0.1.3 # image tag used when neither image.tag nor image.digest is set. Keep it equal to # the decdn_node role's decdn_node_version, and the tag of the one image in the # artifacthub.io/images annotation below (make test-scripts checks both). -appVersion: "0.0.4" +appVersion: "0.1.0" kubeVersion: ">=1.25.0-0" home: https://decdn.org icon: https://decdn.org/icon.svg @@ -37,7 +37,7 @@ annotations: artifacthub.io/license: MIT artifacthub.io/images: | - name: decdn-node - image: ghcr.io/decdn/decdn-node:0.0.4 + image: ghcr.io/decdn/decdn-node:0.1.0 artifacthub.io/links: | - name: Chart source url: https://github.com/decdn/devops/tree/main/charts/decdn-node diff --git a/charts/decdn-node/values.yaml b/charts/decdn-node/values.yaml index 8713b14..e5928bc 100644 --- a/charts/decdn-node/values.yaml +++ b/charts/decdn-node/values.yaml @@ -13,8 +13,8 @@ image: tag: "" # sha256:... — takes precedence over tag when set. Prefer it: a tag can be moved. # Take it from the release's signed decdn-node-image-digest.txt (v0.0.1: - # image-digest.txt), e.g. for v0.0.4 - # sha256:7c303b6105a1b419c0f7e3ef57d8ad3ba23d07cccba0d42332699fd409133f0a + # image-digest.txt), e.g. for v0.1.0 + # sha256:848532722735b4a115aca9606230d951c25f2dab06a7345305ecf67c7a0244b5 digest: "" pullPolicy: IfNotPresent diff --git a/cloud-init/user-data-publisher.yaml b/cloud-init/user-data-publisher.yaml index 4176beb..3c0aea9 100644 --- a/cloud-init/user-data-publisher.yaml +++ b/cloud-init/user-data-publisher.yaml @@ -140,7 +140,7 @@ write_files: # DEVOPS_REF (sponsord_onramp_decdn_release, with the SHA-256 of that release's # SHA256SUMS: take `sha256sum SHA256SUMS` once its SHA256SUMS.asc verifies). # Override both together, e.g.: - # sponsord_onramp_decdn_release: "v0.0.4" + # sponsord_onramp_decdn_release: "v0.1.0" # sponsord_onramp_decdn_sums_sha256: "<64 lowercase hex>" # What an interactive login prints while the bootstrap is unfinished. It is written diff --git a/compose/.env.example b/compose/.env.example index bca4c88..d929e5e 100644 --- a/compose/.env.example +++ b/compose/.env.example @@ -28,8 +28,8 @@ COMPOSE_PROFILES=node # releases the Ansible roles pin (README.md, the node's "Operate"). # --- node ----------------------------------------------------------------------- -# decdn/decdn v0.0.4 -DECDN_IMAGE_DIGEST=sha256:7c303b6105a1b419c0f7e3ef57d8ad3ba23d07cccba0d42332699fd409133f0a +# decdn/decdn v0.1.0 +DECDN_IMAGE_DIGEST=sha256:848532722735b4a115aca9606230d951c25f2dab06a7345305ecf67c7a0244b5 # DECDN_IMAGE_REPO=ghcr.io/decdn/decdn-node # uid/gid of the host's dedicated `decdn` system account, which owns /var/lib/decdn @@ -42,9 +42,9 @@ DECDN_ENV_FILE=/etc/decdn/decdn.env # --- sponsord and onramp ---------------------------------------------------------- # The decdn/sponsord release sponsord_version pins: one release for both images -SPONSORD_IMAGE_DIGEST=sha256:120982625257b28cf785c776cb2cc7a6c6cd8e2e5958b274f1a43d27ab857eea +SPONSORD_IMAGE_DIGEST=sha256:8f82f8f88ce75be0072abc8f72e0462e03c0afba8035fe8671d6ee79ebbc930b # SPONSORD_IMAGE_REPO=ghcr.io/decdn/sponsord -SPONSORD_ONRAMP_IMAGE_DIGEST=sha256:76362c0de04d3febf43b39ee1d00bd29d45a1b4338fc3f8fb0427d52d5b13805 +SPONSORD_ONRAMP_IMAGE_DIGEST=sha256:f0a2701a717c9cdd0ec0969866be30ccbf82773e08c7f25405413f543281a2df # SPONSORD_ONRAMP_IMAGE_REPO=ghcr.io/decdn/sponsord-onramp # uid/gid of the host's dedicated `sponsord` system account, which owns the diff --git a/compose/README.md b/compose/README.md index f7901e4..ea9e771 100644 --- a/compose/README.md +++ b/compose/README.md @@ -398,7 +398,7 @@ udp/7842 itself, so it cannot share a host with `onramp`, `caddy` or `dns`. `decdn whoami` as the node's user) and add each `node id` to `access` in the config. `check` refuses an empty list, which would admit nobody. Update every relay after adding a node or rotating its key, then `restart iroh-relay`. - - **What it costs:** decdn clients (`decdn fetch`, onramp users) use a fresh key + - **What it costs:** decdn clients (`decdn get`, onramp users) use a fresh key per fetch, so they can never be listed, and iroh hole-punches over a connection it already has. A client therefore reaches a node homed on an allowlisted relay only if the node is directly reachable. A node behind NAT that serves clients diff --git a/compose/sponsord-onramp.env.example b/compose/sponsord-onramp.env.example index c8f63e7..5503ace 100644 --- a/compose/sponsord-onramp.env.example +++ b/compose/sponsord-onramp.env.example @@ -20,9 +20,9 @@ ONRAMP_GATE=turnstile ONRAMP_TURNSTILE_SITEKEY= # The decdn release the installers install: a decdn/decdn vX.Y.Z tag and the # SHA-256 of that release's SHA256SUMS file (`sha256sum SHA256SUMS` once its .asc -# verifies). This is the pin the Ansible role defaults to: decdn/decdn v0.0.4. -ONRAMP_DECDN_RELEASE=v0.0.4 -ONRAMP_DECDN_SUMS_SHA256=bc295285109e2189331e57d9cb51d214113cba332bd08a2777866a7a1cec2951 +# verifies). This is the pin the Ansible role defaults to: decdn/decdn v0.1.0. +ONRAMP_DECDN_RELEASE=v0.1.0 +ONRAMP_DECDN_SUMS_SHA256=c88ad5479f31bb0857db2c0205c54b240cbceb33a96724e4f8a288b6d866ab66 # --- Client address --------------------------------------------------------------- # The header the proxy puts the client address in; the onramp rate limits by it. diff --git a/examples/collection-fleet/inventory/group_vars/sponsord_hosts.yml b/examples/collection-fleet/inventory/group_vars/sponsord_hosts.yml index 6680a40..7c86e36 100644 --- a/examples/collection-fleet/inventory/group_vars/sponsord_hosts.yml +++ b/examples/collection-fleet/inventory/group_vars/sponsord_hosts.yml @@ -14,11 +14,11 @@ # The default method, "release", installs the decdn/sponsord release the role pins # (tag v); set it only to hold the host on another one, together # with sponsord_onramp_version: -# sponsord_version: "0.0.4" +# sponsord_version: "0.1.0" # Or build on the host from a git ref (tag, branch or SHA; sponsord_version is not # checked in this mode): # sponsord_install_method: source -# sponsord_source_ref: v0.0.4 +# sponsord_source_ref: v0.1.0 # Or copy a control-machine build: a decdn/sponsord checkout's target dir # (`cargo build --release -p sponsord`; the role checks the ELF matches the host). # sponsord_install_method: manual diff --git a/examples/collection-fleet/inventory/group_vars/sponsord_onramp_hosts.yml b/examples/collection-fleet/inventory/group_vars/sponsord_onramp_hosts.yml index fab1c96..78d281a 100644 --- a/examples/collection-fleet/inventory/group_vars/sponsord_onramp_hosts.yml +++ b/examples/collection-fleet/inventory/group_vars/sponsord_onramp_hosts.yml @@ -12,10 +12,10 @@ # --- Binary ------------------------------------------------------------------------ # The same three methods as sponsord. "release" (default) installs the same release # as the sponsord role; set both versions together to hold the host on another: -# sponsord_onramp_version: "0.0.4" +# sponsord_onramp_version: "0.1.0" # Or build on the host (its own checkout, so it may pin a different ref): # sponsord_onramp_install_method: source -# sponsord_onramp_source_ref: v0.0.4 +# sponsord_onramp_source_ref: v0.1.0 # Or manual, which follows sponsord_release_target_dir (`cargo build --release` in # a decdn/sponsord checkout builds both binaries): # sponsord_onramp_install_method: manual @@ -35,6 +35,6 @@ # The decdn release the installers install defaults to the role's pin (decdn/decdn # v), with the SHA-256 of its SHA256SUMS. To serve another, # set both: -# sponsord_onramp_decdn_release: v0.0.4 +# sponsord_onramp_decdn_release: v0.1.0 # sponsord_onramp_decdn_sums_sha256: "…" # CapacityBond and SlashJudge come from sponsord_network (group_vars/sponsord_hosts.yml). diff --git a/examples/collection-fleet/inventory/host_vars/decdn-node-1/main.yml b/examples/collection-fleet/inventory/host_vars/decdn-node-1/main.yml index fa4838e..c1739ac 100644 --- a/examples/collection-fleet/inventory/host_vars/decdn-node-1/main.yml +++ b/examples/collection-fleet/inventory/host_vars/decdn-node-1/main.yml @@ -23,13 +23,13 @@ # the GPG-signed SHA256SUMS manifest. The version defaults to the decdn/decdn release # the role pins; set it only to hold a node on another one. decdn_node_install_method: release -# decdn_node_version: "0.0.4" +# decdn_node_version: "0.1.0" # # Alternative: build on the node from a git ref (any tag, branch or SHA), as an # unprivileged build user with a pinned toolchain (decdn_node_version is not checked # in this mode): # decdn_node_install_method: source -# decdn_node_source_ref: v0.0.4 +# decdn_node_source_ref: v0.1.0 # Alternative: copy binaries built on this control machine # (`cargo build --release -p decdn-node -p decdn-cli` in a decdn/decdn checkout): # decdn_node_install_method: manual diff --git a/examples/collection-fleet/inventory/host_vars/origin-1/main.yml b/examples/collection-fleet/inventory/host_vars/origin-1/main.yml index 05bbbf5..01cae67 100644 --- a/examples/collection-fleet/inventory/host_vars/origin-1/main.yml +++ b/examples/collection-fleet/inventory/host_vars/origin-1/main.yml @@ -25,13 +25,13 @@ # the GPG-signed SHA256SUMS manifest. The version defaults to the decdn/decdn release # the role pins; set it only to hold a node on another one. decdn_node_install_method: release -# decdn_node_version: "0.0.4" +# decdn_node_version: "0.1.0" # # Alternative: build on the node from a git ref (any tag, branch or SHA), as an # unprivileged build user with a pinned toolchain (decdn_node_version is not checked # in this mode): # decdn_node_install_method: source -# decdn_node_source_ref: v0.0.4 +# decdn_node_source_ref: v0.1.0 # Alternative: copy binaries built on this control machine # (`cargo build --release -p decdn-node -p decdn-cli` in a decdn/decdn checkout): # decdn_node_install_method: manual