elif .category =="besu_sentry"then"Sentry (no signer)"
elif(.category | test("^rpc"))then"RPC only"
else"N/A"
end;
def ntype:
if .category =="besu_validator"then"Besu validator"
elif .category =="besu_sentry"then"Besu sentry"
elif .category =="rpc_core" or .category =="rpc_public" or .category =="rpc_private" or .category =="rpc_named" or .category =="rpc_thirdweb" or .category =="rpc_alltra_hybx"then"Besu RPC (\(.category))"
elif .category =="dlt" and (.hostname | test("fabric"))then"Fabric"
elif .category =="dlt" and (.hostname | test("indy"))then"Indy"
elif .category =="firefly"then"FireFly"
elif .category =="explorer"then"Blockscout"
elif .category =="npmplus"then"NPMplus ingress"
elif .category =="infra"then"Infra LXC"
elif .category =="monitoring" and (.hostname | test("cacti"))then"Cacti"
**Status:** Active — infrastructure constitution for DBIS Chain 138 and colocated workloads.
## Purpose
This matrix assigns **node type**, **preferred host placement**, **validator/signing role** (for Besu), and **security tier** per workload. It implements the entity-placement model in [dbis_chain_138_technical_master_plan.md](../../dbis_chain_138_technical_master_plan.md)(Sections 6–7) in a form operators can maintain.
**Canonical pairs (keep in sync):**
- Human detail and status: [ALL_VMIDS_ENDPOINTS.md](../04-configuration/ALL_VMIDS_ENDPOINTS.md)
When you change VMID, IP, hostname, or placement, update **ALL_VMIDS** and **operational-template.json** first, then regenerate the table below with this script (or edit the static sections manually).
## Columns
| Column | Meaning |
|--------|---------|
| **Entity owner** | DBIS Core, Central Bank, IFI, Regional Operator, etc. — use **TBD** until governance assigns. |
| **Region** | Geographic or site label — **TBD** until multi-site is formalized. |
| **IP note** | Flags duplicate IPv4 entries in the planning template. A duplicate means **shared or historical mapping**, not concurrent ownership — verify live owner in ALL_VMIDS or on-cluster. |
| **Preferred host** | Preferred Proxmox node (\`r630-01\`, \`r630-02\`, \`ml110\`, \`any\`). This is a planning target, not an assertion of current placement. |
| **Validator / signing** | For Chain 138 Besu: QBFT signer, sentry (no signer), RPC-only, or N/A. |
Machine-derived rows below come from `services[]` in `config/proxmox-operational-template.json`. Duplicate IPv4 notes are warnings that the planning template still contains alternative or legacy ownership for the same address; they must not be read as concurrent live allocations.
These appear in [ALL_VMIDS_ENDPOINTS.md](../04-configuration/ALL_VMIDS_ENDPOINTS.md) but are not modeled as `services[]` entries in `proxmox-operational-template.json`. They are **manual supplements**, not generator-backed source of truth.