Expand description
decdn node update-multiaddrs — (re)publish the operator’s dialable QUIC
addresses on-chain (ADR 019 § Multiaddr encoding, #1908).
An operator who ran decdn node register with no --multiaddr published an
empty set and is stranded on the iroh relay path: client→node transfers pin
at relay throughput and never upgrade to a direct QUIC connection, even when
the node is directly dialable. register cannot fix it (a second call
reverts NodeAlreadyRegistered), and the only other route is a hand-encoded
cast send … updateMultiaddrs(bytes) reproducing pack_multiaddrs’s framing
by hand. This command is the one-command fix: it packs the addresses with the
exact node_register::pack_multiaddrs encoding register uses and submits
CapacityBond.updateMultiaddrs from the operator Ethereum key.
The set fully REPLACES what is on-chain — the contract stores the field verbatim rather than merging.
Like decdn node deregister, the contract’s guardrails are read and checked
before the send so they surface as named errors rather than a bare
execution reverted: NodeNotActive (the operator must be registered), the
maxMultiaddrSize byte ceiling (MultiaddrsTooLarge), and the
multiaddrUpdateCooldown between updates (MultiaddrCooldownActive). The
cooldown is compared against the head block timestamp — the same clock the
contract uses — so the pre-check and the on-chain check agree.
Functions§
- run
- Entry point for
decdn node update-multiaddrs.