====== PBLink: the ProBoard QWK network ======
PBLink is a QWK message network for ProBoard boards, with one hub. Every member board (a **node**) swaps messages with the hub using **PBqwk**. The same packet carries the network's signed BBS list, so each board always has a current list of ProBoard boards for the BBS List plug-in, PBTerm and SyncTERM.
PBLink is a network of its own. It does not use, change or depend on any other QWK network you belong to. A hub block for another network in ''PBQWK.CFG'' is left as it is.
^ Piece ^ What it is ^
| **PBQwkHub.exe** | The hub. One copy, run by the hub operator. It has its own built-in FTP server. |
| **PBqwk.exe** | The program every member runs. It polls the hub, installs the BBS list, imports messages, and packs and uploads outgoing messages and this board's entry. It ships with ProBoard. |
| **PBConfig** | The **QWK Network** page has the PBLink fields (port, send my BBS-list entry, list key). The **QWK Hub** page runs the hub side. |
| **PBDispatch** | Schedules polling and, on the hub operator's PC, can start the hub and keep it running. |
===== Joining as a member board =====
Your hub operator sends you a **join sheet**. Then:
- **PBConfig > Options > QWK Options:** set **QWK Packet ID** to the ID on the sheet.
- Make a local message area for each conference, and give each one a **QWK Area Name**.
- **PBConfig > Network > QWK Network > Insert:** enter the hub's host, port, login, password and Packet ID, the PBLink list key and **Send my BBS-list entry**, then map each conference number to your area's QWK name. Or paste the join sheet's block into ''Configs\PBQWK.CFG''.
- To appear on the list, make ''Configs\BBSLIST.CFG'' with your board name, sysop, location, country, description and an address (copy ''BBSLIST.CFG.SAMPLE'').
- Try it by hand and read the log:
PBqwk.exe -cfg C:\ProBoard\Configs\PBQWK.CFG -pack
PBqwk.exe -cfg C:\ProBoard\Configs\PBQWK.CFG -poll
- Add the two ''PBEVENTS.CFG'' events from the join sheet, to run every 360 minutes or so.
- If you also use the web BBS list, set ''synchours 0'' in ''BBSLIST.CFG'' so the two list sources do not replace each other.
Outgoing mail is safe when an upload fails: PBqwk keeps every packed ''.REP'' in a queue folder until the hub confirms it, and retries at the next ''-pack''. Delivery is at least once. If the line drops after the hub got a packet, it is sent again and the hub drops the repeated messages.
===== Running the hub =====
The quickest way is **Network > QWK Hub** in PBConfig:
- Fill in the **Network** tab (name, Hub ID, data folder) and the **Server** tab (the **public address**).
- Add conferences. On the **BBS List** tab, click **Create key file**, and **back the key file up offline now**.
- Click **Save**.
- Open the firewall and forward the ports to the hub PC:
netsh advfirewall firewall add rule name="PBQwkHub" dir=in action=allow protocol=TCP localport=21,50000-50040
- Tick **Start the hub with PBDispatch** on the Network tab and save. PBDispatch then starts the hub hidden, restarts it if it stops or when you save new settings, and stops it when PBDispatch closes. Or run ''PBQwkHub run'' yourself, or from Task Scheduler.
- **Add each member** (yourself included): **QWK Hub > Members > Add...** shows a join sheet. The password is shown once. The sheet can be printed again later without it.
Every day: ''PBQwkHub status''. Every week: read the log for refused logins and list entries. Back up the hub folder and keep the signing key offline.
If the hub shares port 21 with PBFtp, see [[v4:connect:ftp|FTP downloads]].
Common commands:
PBQwkHub keygen | listkey | status | run
PBQwkHub node add|list|show|passwd|enable|disable|remove|subscribe|allowip|resetkey|joinsheet
PBQwkHub list show | publish | remove
PBqwk -pack | -poll | -unlist [-hub ] (-cfg )
===== Limits of this first version =====
* FTP is clear text (no FTPS or SFTP yet) and IPv4 only.
* The hub does not check whether listed boards answer; entries show the status "unknown".
* The hub is a console program, not a Windows service. PBDispatch can supervise it, or use Task Scheduler.
* The PBLink documents have been tested with automated tests; a full test on Windows with real boards is still to be done.
//The detailed hub guide, node guide and packet format specification are on the way as separate pages.//