Downloads
Everything published for TCPP 1.3.0
The reference node is one binary with no dependencies and no installer. It serves a schema-driven web application for composing and validating TCPP messages, signs them, and exchanges them with other nodes over TLS. A second binary, the mask node, stands in for a display at the other end.
Reference node
Everything the node needs at runtime is compiled in: the schema set, the worked examples and the web application. It writes its key, certificate and logs beside itself on first run.
| Platform | Architecture | File | Size |
|---|---|---|---|
| Windows | x86-64 | tcpp-node-1.3.0-20261022-windows-amd64.zip | 3.9 MB |
Checksums for every file on this page: SHA256SUMS.txt.
Other platforms on request. The node is pure Go with no dependencies, so it builds unchanged for Linux, macOS and ARM machines. Builds for those platforms are not published here, but we will gladly provide one: ask at info@iw-service.de, naming the operating system and the processor architecture.
Running it
# unpack the .zip, then, in that folder
tcpp-node.exe
The node opens https://localhost:8443/. The certificate it generates for
itself is self-signed, so a browser warns once. Choose an endpoint, load the example,
then Sign & Send.
Two nodes talking to each other is the interesting case, and needs nothing but two copies in two directories:
a\tcpp-node.exe --port 8443 --node-type CSU --peer localhost:8444
b\tcpp-node.exe --port 8444 --node-type TMH --peer localhost:8443
A frame signed on A appears in B's inbox immediately, and selecting it opens a prefilled response form to send back. The manual covers every screen, the command line, the files the node writes and its HTTP interface.
The key and the certificate are the node's identity. They are created
on first run in a tcpp-node-data folder beside the binary, and the same
pair both signs messages and terminates TLS, so giving a node your own identity is a
matter of dropping both files into that folder and restarting.
Mask node
A second binary built from the same code: a TCPP module that behaves like a display. It
shows the masks a node delivers with mask_output, fills them with the values
of display_output, answers ping, and replies to every request on
its own with a signed response whose error_code says what it found. It gives
a node, or an implementation of your own, a counterpart to talk to.
| Platform | Architecture | File | Size |
|---|---|---|---|
| Windows | x86-64 | tcpp-mask-1.3.0-20261022-windows-amd64.zip | 4.0 MB |
Running it beside a node
tcpp-node.exe --peer localhost:8444
tcpp-mask.exe
The mask node listens on https://localhost:8444/, calls itself an
LDU and sends its answers to localhost:8443, so these two lines
are a complete pair. On the node, compose mask_output and load
example_meter, send it, then do the same with display_output:
the mask node shows the meter mask with its values, and the node's inbox holds both
answers.
It keeps its key, certificate and log in a tcpp-mask-data folder beside
itself, as the node does in tcpp-node-data, so it can be unpacked into the
same folder as a node without sharing the node's identity. Its
manual covers the mask view, the error codes it answers
with and its command line.
Manuals
One manual for each binary. The node's is the operator's view of the node: every screen and workflow, illustrated with figures captured from a running two-node lab, plus the command line, the files it writes, its HTTP interface and the anatomy of a TCPP message. The mask node's covers what it adds: the mask view, the codes it answers with, its flags and routes. Read them here, or take the PDFs along to a machine without a connection.
English
The mask node manual as one page, figures included, or as a PDF to keep.
Open · PDF, 749 kBDeutsch
Das Handbuch zum Maskenknoten auf Deutsch, online oder als PDF.
Öffnen · PDF, 768 kBSchema 1.3.0
All 57 schema files: 28 request/response pairs and the shared envelope. The same set the
node embeds, and the same set served here at the URLs the files' own $id
members name.
Licence
TCPP is an open protocol. The schemas, the examples and this documentation are free to use and to build on, including in commercial products. The specification is a draft: version 1.3.0 is complete enough to implement against, and changes to it will be published here.