Skip to main content

Module update_multiaddrs

Module update_multiaddrs 

Source
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.