The word Relay in computer networking stems from team racing, not electronics. In SMTP it is intended as one proxy forwarding a message on behalf of somebody else. In Internet Relay Chat and BITNET RELAY the word is used to describe the way multicast routing operates. There term also exists in pseudonymous routing such as Tor or GNUnet, where handing off messages from node to node is meant to protect the anonymity of the recipients, making the relays agnostic of their job – which is the opposite of what servers in a federation can offer.

In PSYC all of these meanings are applicable. PSYC2 employs relays in all of the three ways combined.

Relaying messages through a proxy

This is implemented in the routing layer of PSYC1.

Some PSYC nodes (usually servers) or entities may provide the ability to relay packets.

Relaying MAY be done by servers which receive packets where the _target variable doesn't address a local entity, then the root entity will relay the packet.

When a packet is relayed it's original _source is moved to the _source_relay variable. The uniform of the relaying entity (either the root entity of a server or some other relaying entity) is then provided in the _source field.

NOTE: Usually PSYC roots limit relaying to trusted entities and sources, like for example Spec:Circuits from localhost.

See also Spec:Client-Interface on relaying on behalf of a client.

NOTE: How psyced relays

It is possible to make a psyced or other PSYC server relay a message on your behalf. To do so you send the message as always - only now you are allowed to provide a _target which isn't local to your proxy server. The proxy however needs a reason to trust you. A psyced by default trusts you when you are sending from localhost, it may also decide to trust you when you are legitimately linked to one of its entities (see below).

Typical application of this are notifications triggered by cheap UDP, then forwarded by a proxy server to possibly remote entities. See psycmail for an example where lightweight notifications are issued from your mail server, psyced can forward those over heavyweight protocols to an identity on an XMPP server for example.

Historic note: Der Begriff Relay

1992, in de.comm.internet you write:

>Relay ist zu deustch Relais.

Nein, Relay ist zu deutsch 'Staffel'.

Ein Chatsystem ist erst dann ein 'Relay Chat', wenn es auf mehreren vernetzten Servern basiert, welche die Nachrichten zwischen den Anwendern gewisserweise in einem Staffellauf durchreichen. (Das erklaert auch wieso RP (Relay Party) ein recht beknackter Begriff ist... Staffelfest..).

Da es relativ aufwendig ist, solche Relay Konferenzsysteme zu implementieren, besonders wenn sie 'State' haben (siehe auch RFC 1324 darueber), gibt es faktisch nur die Softwarepakete IRC und Bitnet Relay auf der Welt, welche diese Funktionalitaet anbieten.

Vielleicht kann man das UnterMUD Relaysystem auch als Relay Chat durchgehen lassen, aber ich habe das noch nicht ausprobiert. Vernetzungsversuche im Bereich der LPMUDs sind bisher an administrativer Ueberforderung der Beteiligten gescheitert.  ;)