The Infonet is each side's network of relays. Orders, messages, program changes and reports cross it as packets, one link at a time. Relays and command posts build the network out, firewalls segment and defend it, and monitors watch it.
Relays
- A relay covers every system within its range in jumps, over routes and gate pairs, including gates linked by code.
- The relays are the hull, a station with an uplink or repeater, a forward HQ, and a flagship wherever it is. A flagship relays nothing while jumping.
- A station's range is the largest of its own and its facilities'.
- Uplinks and repeaters need no power. A disabled relay drops out of the Infonet, except a firewall station, which keeps its border.
- Two relays link when their coverage touches: a shared system, or systems one jump apart. Relays of different sides link too.
- A side's Infonet is the relays of a player and every company they control, plus other sides' relays opened to it and any segments leased to it.
Command posts
- Command posts are the relays orders enter from: every relay except a station whose only range comes from a repeater.
- Orders start at the hull. A command post sends only while the hull's own network reaches it, through the side's own relays and firewalls. A firewall's rules never cut a post off.
- A post cut off from the hull is only a relay. It sends again once linked.
- With the hull disabled, nothing sends (
no_command_post). - An order to a ship, station or facility in a system with a command post linked to the hull is local: it sends no packet and resolves next tick. A station that is such a post is local to itself. See Orders and Latency.
- Triggers, schedules and programs send the same way.
Packets
- Any other order to a ship, station or facility leaves from the linked command post with the fewest links to a relay covering the system of the ship, or the system it is jumping to, or the station. An order to a facility goes to its station.
- At each relay a packet picks its next link again, so it follows a moving ship and goes round lost relays.
- A packet reaching a relay that covers its ship or station is delivered. See Orders and Latency for the delay after delivery.
- A packet with no way on waits at its relay (
packet.waiting) until a route opens. A ship or station beyond every relay its side can use, its own and those leased or open to it, receives nothing until it is back in range. - A packet at a relay that is lost, or crossing to one, is lost with it (
packet.lost). Its order fails withlost. - A packet's header (kind, sender, entry post,
from_system,to_system,path,sent_tick, and an order's signature) is what forwarding relays see. Its payload is not. Another side sees the sender, player or company, never the side behind it. - An order, program change or recall is signed with its sender's signing key as it enters the Infonet, if a working vault holding the key is linked to the hull. See Keys.
GET /v1/infonet/packetslists packets in flight.
Bandwidth
- Each relay passes on or delivers a fixed number of packets a minute. Relays in one system do not pool.
- Packets beyond that queue at the relay and go on in a later tick, oldest first.
Segments
- A side's relays form segments: groups that link without passing through a firewall relay. Segments come only from firewalls.
- A firewall relay is a relay station with a firewall. It belongs to every segment it touches and is the border between them.
- With no firewalls, a side's linked relays are one segment.
- A segment is named by its lowest relay that is not a firewall, so the name changes when that relay leaves.
GET /v1/infonetlists the side's segments with their relays and firewalls, and each relay with its segments and links.relay.lostreports a relay destroyed, scrapped, captured or no longer a relay.segment.cutreports a segment whose relays are now in more than one.
Doors
- Another side's packets enter a side's network only at a door: a relay its owner opened or leased to them.
- In a segment with firewalls, only a firewall relay can be a door. An open relay inside such a segment is no door.
- In a network with no firewalls, every open relay is a door.
- Once in, a packet crosses the owner's relays by the same rules as the owner's own, and the owner's firewalls check it on the way.
GET /v1/infonetmarks doors: each of the side's own relays that is one, withdoor_tolisting who it is a door to, oreveryone; and each relay of another side's that is a door to the viewer.
Firewalls
- A firewall relay is the only way into its segments. A packet from outside a segment enters it only through one of that segment's firewall relays, which checks it.
- A segment with no firewall can be entered at any relay the sender may use, and at any door by another side.
- This holds for every packet: another side's orders through open and leased relays, messages, and a side's own packets moving between its segments.
- Leaving a segment through a firewall relay is entering the neighbouring segment, so that firewall checks it.
- A side's own packets leave its network the same way: from a segment with firewalls, only through one of its firewall relays, which checks them. From a segment with no firewall, they leave at any relay.
- A firewall has two rule sets. Its inbound rules list the players and companies, and the packet kinds, of other sides' packets allowed across. A listed player covers their whole side; a listed company covers itself and the companies below it, never its controller or a sibling. The inbound rules can also let in the owner's allies. Its outbound rules list the kinds of its owner's side's own packets allowed across, to another of its segments or out of its network.
- The kinds are
order,message,program,recallandreport. Null allows any. A new firewall allows everything. - A refused packet is dropped (
packet.blocked), and its order fails withblocked. - One firewall can close a whole network to other sides, since a firewalled segment's doors are its firewalls. It also holds the side's own packets in, by its outbound rules.
- Traffic inside one segment passes untouched.
- Without power, or while its station is disabled, a firewall keeps the border but lets everything through, so the network behind it is open.
POST /v1/infonet/firewalls/{facility_id}sets the rules, asinbound(sides,allies,kinds) andoutbound(kinds). It is an order (firewall.set).GET /v1/infonet/blockedlists the headers of dropped packets, never their contents, and for another side's packet only its sender.
Monitors and data warehouses
- A relay station with a powered monitor watches every relay in its station's segment, or every segment it borders at a firewall relay.
- It records incidents as they happen: packets its segment's firewalls drop (
blocked),lostandwaitingpackets, other sides' packets reaching a relay (foreign),relay_lostandsegment_cut. Once a minute it records each relay'strafficby sender and kind. Each entry names the sender, player or company, and the sender's side only for the monitor's own side. - Each tick with something to report, it sends a
reportpacket to its owner's hull or to a data warehouse.POST /v1/infonet/monitors/{facility_id}sets which (monitor.set). - A data warehouse holds reports up to its capacity in entries. A report without room is dropped (
reports.dropped). A warehouse wrecked or captured loses its reports. - A monitor can sign its reports with a key. See Keys.
GET /v1/infonet/reportslists recorded reports, newest first, filtered bytype,relay,sender_side,sender,kind,segmentandsince.report.receivedmarks each arrival.
Messages
POST /v1/messages, withto_idand abody, sends a message to another player's hull. It is a packet from a command post linked to the sender's hull, through the sender's relays and the relays opened and segments leased to the sender.- It enters the recipient's network at a door the recipient opened or leased to the sender, then crosses the recipient's relays and their firewalls.
- Only one of the recipient's own relays covering their hull's system delivers it.
- With no door, a message cannot reach its recipient and waits.
GET /v1/messageslists the inbox, or?box=sent. Only sender and recipient can read a message.message.sentandmessage.receivedmark delivery.- A message can carry a public key, be signed, and be sealed so that only a vault holding the matching private key opens it. See Keys.
Open relays
- A relay's owner can open it to other players, free and with no end. Their sides route packets through it.
- Other sides' packets reach an open relay only as they may enter its segment: in at a door, so through a firewall relay if the segment has one.
POST /v1/infonet/relays/{ship|station}/{id}/open, withopen_to, sets who: a list of players and companies,everyone, or null for nobody. It is an order (relay.opened). A listed player's whole side is let in; a listed company lets in only itself and the companies below it.alliesalso lets in whoever is allied with the owner at the time.- An open relay sends nothing. Other sides' packets still enter from their own command posts.
- The owner's packets go first. Other sides' packets take the bandwidth left over.
- Closing a relay loses other sides' packets at it or crossing to it.
Leases
- An Infonet lease opens the segment one of the poster's relays is in to another side for a time, in exchange for goods. See Contracts.
- The taker's packets still enter the segment only at a door: through its firewall relays if it has any, by their inbound rules.
- A relay both open and leased to a side counts as open: free and uncapped.
GET /v1/infonetlists the relays leased or opened to a side beside its own, marked byaccess:own,leasedoropen.GET /v1/infonet/forwardedshows a relay's owner the headers of other sides' traffic that crossed its leased or open relays: each sender, never its side.