# Community nodes
Members can donate a little of their internet connection to the DevPlace community. A donated
**node** is a small program on the member's own machine that dials out to DevPlace and, when
asked, fetches a public page from a short list of allowed websites on DevPlace's behalf. This is
how search reaches sites that block data-centre addresses.
- **Opt-in only.** Nobody is enrolled by default. Donating needs an explicit consent that only
the account holder can grant or withdraw.
- **Not an open proxy.** A node refuses everything that is not on the published allowlist, every
port except 80 and 443, and every private or local address. The refusal is enforced on the
donor's machine as well as on the server.
- **Counted and visible.** Requests and bytes relayed are counted by the server and shown to the
donor.
The wire protocol, every limit and the allowlist are published as one machine-readable document
at `/nodes/spec.json` and rendered on the [Node network protocol](/docs/nodes-protocol.html)
page. Every endpoint follows the shared [Conventions & Errors](/docs/conventions.html).
/nodes/spec.json
Minimal role: Public
Node protocol specification
The single source of truth for the node protocol: version, frames, limits, allowlist and refusal codes.