AI Acceleration
To evaluate/execute requirements faster, we're providing shortcuts towards ingestion by your favorite LLM.
Foundation
- Host Setup
- Database Setup
- Network Setup
- Runtime Configuration
- System Health
Host Setup
The Parallel Ledger is a minimal-dependency state machine designed for multi-decade persistence.
To ensure the integrity across shifting infrastructure cycles, the core protocol remains decoupled from transient OS features. Since 2016, our persistence layer has relied exclusively on standard relational primitives (tables and indexes), ensuring compatibility from PostgreSQL 9.5 through to the current release.
This "boring" foundation provides a stable reference while granting implementers wide latitude to tune the environment to their specific observations and constraints.
Deployment Strategy
The Parallel Ledger requires low-latency access to the storage controller. We support any environment that provides near-native I/O performance:
Bare Metal / LXC
The preferred method. Provides direct kernel sharing and unbuffered I/O access.
Virtualization
Acceptable if I/O passthrough is utilized. High-abstraction container runtimes (e.g., Docker) are discouraged due to layered filesystem overhead.
Resource Allocation & I/O
The Parallel Ledger’s resource footprint is a direct function of your transactional throughput and data retention policies. While surprising workloads run reliably on commodity hardware, mission-critical production environments should prioritize I/O consistency.
-
MemoryThe state machine is lean, but PostgreSQL performance benefits significantly from memory available for caching. For high-integrity environments, ECC RAM remains the industry standard to mitigate the risk of memory-level state corruption.
-
StorageI/O throughput is the primary scaling bottleneck. We recommend Datacenter-grade NVMe paired with XFS or ZFS. These filesystems provide the predictable Write-Ahead Log (WAL) latency required for high-concurrency finality.
-
OptimizationTo minimize write amplification, consider aligning your filesystem and database page sizes (typically 8KB). This is particularly effective for high-volume environments where I/O overhead can impact long-term disk endurance.
Capacity Planning
The Parallel Ledger’s storage footprint scales predictably with transactional density. While every environment is unique, the following baseline metrics represent a standard 1,000,000 update benchmark to assist in volume projection.
Storage Breakdown (1M Updates)
Dictionary Cardinality
Translation counts for the 1M update reference set:
- 1,000,812 Hashes
- 80,016 Entity Slugs
- 60,015 Data Text Values
- 47 System Codes
Rule of Thumb: Budget approximately 650MB–700MB per 1 million updates for general planning. This includes standard indexing and dictionary overhead. For high-velocity environments, I/O performance will become a bottleneck long before raw disk capacity does.
Database Setup
The Parallel Ledger requires a dedicated PostgreSQL 17+ instance. For the most predictable performance, we recommend colocating the database on the same host to minimize network-induced latency.
The Data Model
The protocol manages its own tables, namespacing, and indexing.
We recommend provisioning an empty database with an owner-level user for the initial boot.
Data is categorized into three distinct functional areas. This separation maintains high performance even as volumes scale.
Ledger Updates (History)
A sequential, append-only record of every state change. This table provides the audit trail and grows linearly over time.
Most Recent Updates (Current)
A compact table representing the "now." It uses UPSERT operations to overwrite old values with new ones, keeping lookups fast and the dataset small.
String Dictionaries (Reference)
To minimize row-width and storage bloat, the Ledger normalizes repetitive strings (Slugs, Hashes, and System Codes) into a global dictionary. This results in high index efficiency and significantly reduced I/O for repetitive transactional data.
Data Lifecycle & GDPR
The Ledger is mathematically append-only. To satisfy "Right to Erasure" requirements without breaking cryptographic continuity, the protocol supports Payload Tombstoning.
This process redacts or masks sensitive data within a ledger entry while preserving the Chain Hash. This ensures that sibling records and subsequent blocks can still verify their own integrity against the immutable history, even if specific payload values have been cleared for compliance.
Performance Baseline
The following settings are derived from our internal benchmarks on 16GB RAM environments. They are intended as a starting point for your own environment-specific tuning.
# Memory
shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 10MB
maintenance_work_mem = 1GB
# Write-Ahead Log (WAL)
# Prevents I/O spikes during high-volume periods
wal_buffers = 16MB
min_wal_size = 1GB
max_wal_size = 4GB
checkpoint_completion_target = 0.9
# Disk I/O
# Set for SSD/NVMe performance
random_page_cost = 1.1
effective_io_concurrency = 200
Implementation Note: Because the Current State table is updated frequently, ensure that your standard Postgres Autovacuum process is active. This prevents the database from holding onto disk space from overwritten records.
Network Setup
The Parallel Ledger is designed for a Zero-Trust network posture. In air-gapped or high-security environments, we recommend a "Deny by Default" firewall policy, routing all external traffic through a dedicated Partner Gateway.
The Gateway & Security Boundary
To maintain state machine integrity, the protocol should not be exposed to public or untrusted networks. A middleware layer (the Gateway) should handle authentication and rate limiting before passing validated updates to the Ledger.
| Service | Port | Protocol | Context |
|---|---|---|---|
| Ingestion (Primary) | 50051 | gRPC | Preferred for high-frequency witnessing. |
| Ingestion (Legacy) | 4000 | REST/JSON | Web GUI & Admin API. |
| Witness Relay | 443 | HTTPS/TLS | Outbound only. |
Service Hardening
Reference ufw configuration
# Default posture
ufw default deny incoming
ufw default allow outgoing
# Inbound from Trusted Gateway
ufw allow from [GATEWAY_IP] to any port 50051 proto tcp
ufw allow from [GATEWAY_IP] to any port 4000 proto tcp
# Outbound to Partner Relay Node
ufw allow to [PARTNER_NODE_IP] port 443 proto tcp
ufw enable
For environments where TCP/IP exposure must be eliminated entirely, we are currently developing Unix Domain Socket support. This will allow the Gateway and Ledger to communicate via the filesystem, permitting the total disabling of inbound networking on the host.
Runtime Configuration
The Parallel Ledger is distributed as a single, immutable release binary.
To ensure auditability and consistent behavior across diverse environments, the software remains identical for all clients from entry-level implementations to sovereign-tier deployments.
System behavior is governed by a Dual-Key Configuration model:
1. The License Manifest
A signed cryptographic file that defines Product Capabilities. It unlocks specific protocol features, throughput tiers, and identity parameters dictated by your engagement level.
2. Environment Variables
Evaluated at system boot to define Contextual Parameters. These allow the binary to adapt to local infrastructure (database strings, ports, and storage paths) without mutating the core logic.
Licensing & Identity
The Ledger requires a signed cryptographic manifest (license.lic) to initialize the core state machine. This file establishes your Client Identity and hardware-specific performance tiers.
Verification: The system verifies the manifest signature against an embedded public key during boot. If the file is missing or the signature is invalid, the process will halt to prevent inconsistent state transitions.
Note: Ensure the application user has read-access (e.g., chmod 400) to the manifest path.
Environment Variables
| Variable | Example / Default | Description |
|---|---|---|
| PHX_HOST | example.com | Necessary environment variable |
| TPL_DATABASE_NAME | the_parallel_ledger | PostgreSQL database name |
| TPL_DATABASE_USERNAME | web | PostgreSQL database username |
| TPL_DATABASE_PASSWORD | postgres | PostgreSQL database password |
| TPL_DATABASE_HOSTNAME | 127.0.0.1 | PostgreSQL database hostname |
| TPL_DATABASE_PORT | 5432 | PostgreSQL database port |
| TPL_LICENSE_PATH | /etc/the_parallel_ledger/license.lic | Path to the signed cryptographic manifest. |
| TPL_TRUTH_NODE_RELAY_CONFIG_PATH | /home/web/the_parallel_ledger/truth_node_relay_config.json | Path to the client configuration for truth node relays. |
| TPL_WEB_PORT | 4000 | Listen port for the Web GUI and Admin API. |
| TPL_POOL_SIZE | 10 | Database connection pool. Recommended: (CPU Cores × 3). |
Feature Flags (GUI)
The following toggles control visibility within the Administrative Web Interface. These do not affect the underlying protocol or API capabilities.
| Variable | Default | Context |
|---|---|---|
| TPL_SHOW_DEMONSTRATION_UI | "FALSE" | Enables UI tools for sandbox data manipulation. |
| TPL_SHOW_CONTEXT_DELETE_UI | "FALSE" | Enables UI options for context-level removal. |
System Health
The Parallel Ledger is designed to be a "good citizen" within your existing infrastructure. We defer complex alerting and visualization to the Partner Gateway or your organization's standard observability stack to ensure the Ledger remains a decoupled, high-integrity state machine.
Monitoring Philosophy
We prioritize raw signal over proprietary dashboards. For this release, we expect operators to monitor the Ledger host using standard systems-level telemetry.
I/O & Storage
Monitor Disk Wait and IOPS on the PostgreSQL volume. Sustained high latency in the WAL (Write-Ahead Log) is the primary indicator of throughput bottlenecks.
Process Health
The Ledger runs on the Erlang BEAM VM. Standard process monitoring should ensure the service remains active; the VM's internal scheduler will manage CPU distribution across available cores.
Database Connectivity
Track the Connection Pool saturation. If TPL_POOL_SIZE is consistently exhausted, check for long-running locks or unoptimized maintenance tasks.
Future Telemetry Roadmap
We are currently evaluating the most efficient method for exposing internal protocol metrics. Our goal is to provide high-resolution data without impacting the performance of the witness relay.
Planned: State Machine Statistics
Future builds will include a dedicated telemetry endpoint (likely via Prometheus Exporter) to track:
- updates_per_second
- blocks_witnessed_count
- last_block_hash_latency
- dictionary_cache_hit_ratio
Operator Feedback
As an implementer, your observations are vital to our calibration. If your environment requires specific OpenTelemetry spans or custom GenServer-based polling intervals to satisfy local audit requirements, please coordinate with your technical representative.
The Protocol - Part 1
- Gateway Model
- Status Updates
- Context Management
- Slug Management
- Code Management
- Status Payload
The Gateway Model
The Parallel Ledger is a deterministic state machine, not a general-purpose API. It is designed to operate behind a Partner Gateway. This boundary separates the immutable ledger protocol from your specific business logic and external requirements.
The Functional Boundary
While the Ledger maintains data integrity and cryptographic proofs, the Gateway is where you implement Domain Logic. To ensure the Gateway can match the Ledger's native throughput and concurrency, we require this layer to be built in Elixir/OTP.
Partner Gateway (Elixir)
- • Request Validation & Normalization
- • Identity (OIDC) & mTLS Termination
- • OTP Supervision & Fault Recovery
- • Rate Limiting & gRPC Client Logic
Parallel Ledger (Core)
- • Deterministic State Transitions
- • Cryptographic Hashing & Witnessing
- • Immutable Event Sequencing
- • Concurrent Persistence
Implementation Support
We recognize the requirement for Elixir may represent a shift in your standard stack. To assist with implementation and optimization, we provide weekly on-site engineering sessions in Vancouver.
Downstream Integration
The Elixir requirement applies only to the Gateway (the direct relay to the Ledger). Downstream Extraction Layers—such as analytics engines, reporting tools, or legacy APIs—can be built in any language (Go, Rust, Java, etc.) that supports gRPC or REST.
Performance: Mechanical Sympathy
Using Elixir provides native compatibility with the Ledger's concurrency model. By using gRPC and Protobuf, the Gateway utilizes binary serialization to minimize CPU overhead and latency during high-velocity state updates.
Architectural Continuity
By keeping the Ledger's surface area minimal and standardizing the Gateway on a performant, concurrent runtime, we ensure long-term compatibility. This architecture allows your business logic to evolve within the Gateway while the underlying record remains stable.
Status Updates
The Status Update is the atomic unit of the Parallel Ledger.
Every instance details a specific fact for a specific point in time.
%StatusUpdate{
# The Atomic Trio (Required)
:context_slug # Namespace (CLIENT_A_*)
:slug # Entity Identifier
:code # Property (module--property)
# Payload Values
:status_dt # Flexible date/time (ie: ETA)
:status_int # Numeric value (boolean/bigint)
:status_slug # Flexible slug reference
:status_text_value # Description or raw data
:reported_dt # Source system reported time
:executed_by_slug # Authority that initiated change
# Audit & Lineage
:witnessed_dt # Appliance-assigned seal time
:property_sequence_no # Property chain position
:chain_hash # Cryptographic proof
}
The Atomic Trio
Every update is defined by a composite key trio that uniquely identifies the property being tracked. The protocol uses this trio to chain historical changes and maintain the current state.
context_slug
The administrative namespace
ie: CLIENT_A_FINANCE
slug
The identifier for an entity
ie: user_1234 or vin_98765
code
The attribute being updated
ie: sensor--temp_celsius
Property-Level Chaining
The protocol tracks each code as a discrete stream of facts. If an incoming event contains multiple changes (e.g., an email and a phone number), the Partner Gateway must decompose that event into two separate Status Updates.
Cryptographic Finality
Once a Status Update is accepted by the Ledger, the protocol performs all necessary operations to:
- Sequence: Position the update within the property's historical chain.
- Seal: Generate a cryptographic hash proof for the update.
- Finalize: Commit the state to both the immutable Ledger and the current-state observation table.
Next Step: Review Context Management to learn how to structure your namespaces and mandatory client-slug prefixing.
Context Management
A context_slug is the fundamental unit of multi-tenancy within The Parallel Ledger. Contexts function as independent data silos, providing physical isolation, cryptographic separation, and dedicated performance allocation.
Syntax & Constraints
Because contexts map directly to database namespaces, they are subject to stricter validation rules than standard entity slugs.
Contexts are capped at 64 characters. Note that standard slugs still support up to 255.
Contexts are case-sensitive at the storage layer. All slugs are normalized to UPPERCASE on provision.
Dashes (-) are prohibited. Use underscores (_) exclusively for all separators.
Explicit Provisioning Required
Standard slugs are created on-demand during ingestion. A context_slug must be explicitly provisioned via the Administrative API or Partner Dashboard before it can receive data.
The Global Prefix
To ensure uniqueness across the Witness Relay network, every context must be prefixed with your client_slug using a double-underscore separator.
Architectural Strategy
Treat context creation as an Infrastructure Event. Because the name is part of the cryptographic seal, contexts cannot be renamed once witnessed.
Hard Boundaries (Contexts)
Use for physical isolation. Data in one context cannot be queried or joined with another. Ideal for:
- • CLIENT_GLOBAL__MORTGAGES
- • CLIENT_GLOBAL__EQUITIES
- • CLIENT_GLOBAL__APAC_LEGAL
Soft Boundaries (Slugs)
Use for high-cardinality entity tracking within a single context. Allows for aggregate reporting across:
- • customer_99283
- • asset_prod_001
- • dept_fixed_income
Slug Management
A slug is the unique identifier for an entity within a specific context. It serves as the permanent anchor for all historical status updates related to that subject.
Technical Standards
Slugs are capped at 255 characters. This ensures high-speed indexing and keeps your "Trio" axis performant.
Unlike context_slugs, slugs are case-sensitive. Truck_01 and TRUCK_01 are treated as two entirely different entities.
You cannot "rename" a slug. If you change a slug from USER_A to USER_B, you are creating a brand new historical chain with no link to the previous data.
The "Underscore" Convention
While the Parallel Ledger treats slugs as raw strings, it's important to consider the potential requirements introduced by Partner Gateways and web interfaces.
We strongly recommend a UPPERCASE_UNDERSCORE convention for all slugs, while avoiding most special characters.
The only rigorously tested special characters for slugs are the underscore and dashes. Please note that dashes are not permitted for context slugs due to database limitations.
Anticipating the Future
The Parallel Ledger is designed to be long term architecture. To prevent internal collisions—especially when dealing with common identifiers like Invoice IDs or Serial Numbers—you must ensure your slugs are Overly Specific.
INVOICE_12345
Conflict likely if another bank joins the context or ecosystem.
APEX_BANK_INVOICE_12345
Explicitly anchored to the origin authority.
Recommended Patterns
When designing your slugs, consider the following patterns to maximize the "searchability" of your ledger:
- Physical Assets: Use VINs, Serial Numbers, or MAC addresses prefixed by the asset type (e.g.,
VEHICLE_VIN_12345...). - Financial Entities: Prefix with the institution and the account type (e.g.,
SANTANDER_IBAN_ES12...). - Internal System IDs: If using database primary keys, prefix with the system name (e.g.,
ERP_PRIMARY_USER_9982).
Code Management
The code is the definitive key for a historical chain of facts. Because the Ledger provides cryptographic finality, a code cannot be renamed or remapped once it is witnessed.
The Module--Property Anchor
The module--property convention is not merely for organization; it is a structural anchor between the Subject (slug) and its Attributes (code).
To prevent data collisions at scale, the module portion must provide enough specificity to describe exactly which sub-domain of the entity is being updated.
| Context | The Conflict | The Resolution (Recommended) |
|---|---|---|
| Financial | account--balance_usd Ambiguous if the user has multiple accounts. |
primary_checking--balance_usd |
| Compliance | user--status Too generic; conflicts with login or billing status. |
kyc_verification--approval_status |
Standards for Multi-Decade Sustainability
When defining your codes within the Partner Gateway, adhere to these foundational requirements to avoid irrecoverable technical debt:
1. Explicit Units of Measure
Units must be baked into the code name. Never assume the "system default" for currency, weight, or distance will remain the same for twenty years. A code named amount is an audit failure; settlement_amount_gbp is a point of fact.
2. Absolute Specificity
Avoid generic descriptors like value, data, or type. If the property describes a temperature, the code should be ambient_sensor--celsius_reading. Specificity ensures that as you add new modules to the same entity, you never overlap or "ghost" an existing historical chain.
3. Immutable Intent
The Ledger treats every unique code as a new cryptographic timeline. If you change a code from user--mail to identity--email, the history is effectively severed. The Gateway layer must treat code naming as a permanent commitment to the audit trail.
Architectural Note
The Partner Gateway serves as the Source of Truth for Schema. Because the Parallel Ledger does not enforce a rigid relational structure, the burden of consistency lies entirely with your code-naming strategy.
Treat your Code List as a protected internal asset.
Status Update Payloads
The Parallel Ledger uses a fixed-slot schema to store varied data types. Rather than defining a custom table for every business use case, you map your data into the four primitive "status" fields provided by the protocol.
The Data Slots
Each Status Update can utilize any combination of the following four fields. If a property requires multiple types (e.g., a label and a numeric value), they can be sent within the same update.
status_dt
Unix Microseconds
Used for secondary timestamps or historical markers (e.g., an ETA or effective_date). The Ledger does not perform timezone conversion; all values are treated as raw UTC microseconds.
status_int
Unsigned BigInt
64-bit integer storage. Ideal for counters, financial amounts in minor units (cents), or boolean states (0 or 1).
status_slug
String (255)
A short-string reference often used to associate the current entity with another entity (e.g., mapping a sub_contract slug to a parent_contract slug).
status_text_value
String (2600)
Unstructured string data for notes, descriptions, or external references.
Capacity Note: This field is capped at 2,600 characters to ensure sub-millisecond indexing and cryptographic hashing performance. If you exceed this limit, the system will reject the update.
Don't use this field for JSON blobs; instead, decompose complex objects into separate property codes.
Permanent vs. Redactable Data
It is critical to distinguish between Status Slugs (system-level labels) and Status Text Values (raw data) when designing your schema.
:status_slug (Permanent)
Slugs are treated as architectural constants. Because they are presumed to be reused system values (e.g., STATUS_ACTIVE), they are never removed from the system dictionary during Tombstoning.
USER_PHONE_555_0199. It cannot be scrubbed.
:status_text_value (Redactable)
Text values are treated as transient payloads. These are the primary targets for redaction. When a record is Tombstoned, these values are wiped and purged from the string dictionary.
Authority & Attribution
Beyond the data slots, every update must identify the initiating authority to complete the audit trail.
executed_by_slug
This field identifies the specific actor—whether a human user ID, a service bot, or an automated system—that asserted this value as fact. This slug is permanent and provides the "who" in the Who/What/When audit triad.
The Protocol - Part 2
- Inbound
- Outbound
- Tombstoning
- Utilities
Inbound Ingestion
The Parallel Ledger provides two primary interfaces for receiving data: a high-performance gRPC stream and a traditional REST API. Both endpoints expect a list of prepared StatusUpdate objects, allowing the Gateway to commit multiple properties across multiple entities in a single atomic request.
Interface Protocols
gRPC (Recommended)
For production workloads, gRPC is the preferred ingestion method. By utilizing Protocol Buffers, we minimize serialization overhead and maintain a strict contract between the Gateway and the Ledger. This is the most efficient path for high-density witnessing.
REST API
A standard JSON-over-HTTP interface is available for environments where gRPC is not feasible. While slightly more verbose, it follows the same validation and commitment logic as the gRPC interface.
Synchronous vs. Asynchronous Commitment
The Gateway can choose its commitment strategy based on the urgency of the response and the nature of the data source.
Synchronous (Blocking)
The request waits for the Ledger to calculate hashes, assign sequence numbers, and commit to the block store.
Returns: {:ok, [Finalized_Updates]} | {:error, reason}
Asynchronous (Non-blocking)
The Ledger performs immediate structural validation and hands the payload to an internal buffer for background commitment.
Returns: :ok | {:error, validation_failure}
Temporal Normalization
Timestamps are a frequent source of "Garbage In" scenarios. To accommodate diverse origin systems, status_dt and reported_dt accept the following formats:
- Unix Seconds
- Unix Milliseconds
- Unix Microseconds
- ISO8601 Strings
The Future-Post Guardrail
The Ledger enforces a logical "Now" to prevent chronologically impossible records. Every reported_dt is checked against the system now_dt with a configurable leeway (default: 5 seconds).
| Scenario | Action |
|---|---|
| reported_dt > (now + leeway) | Rejected. Refuses to future-post. |
| reported_dt > now AND < (now + leeway) | Adjusted. Value replaced by current system now. |
| reported_dt <= now | Accepted. Historical backdating is permitted. |
Architectural Note
While historical backdating is allowed for reported_dt, the witnessed_dt is always generated by the Ledger at the moment of commitment. This provides a dual-timeline view: when the event happened in the world, and when the event was locked into the Ledger.
Outbound & Observability
The Parallel Ledger provides multiple egress paths for data verification and system health. While the Ledger remains a "protected sink," it offers robust utilities for auditing the integrity of the chain and querying current state for proprietary visualizations.
The Ledger GUI
An administrative interface is available for high-level system health and direct access to auditing utilities. Access to this interface can be restricted via runtime configuration (Password/Basic Auth) to ensure only authorized architects can access the internal state machine.
Atomic Chain Validation
Verify the cryptographic integrity of any property chain. The UI allows for real-time validation of hash sequences, with results available for on-screen inspection or as a downloadable CSV for external compliance audits.
Merkle Proof Generation
Generate proofs for specific property updates. These are provided as plaintext in the browser or as downloadable .txt files, allowing partners to share verifiable evidence of a "fact" with third parties.
Bitemporal Time-Stepping
Because the Ledger operates at microsecond precision, simple "before and after" views are often insufficient for complex audits. We provide a Point-in-Time Navigator that allows architects to step through the evolution of an entity property at granular intervals.
Microsecond Granularity
The stepper utility supports navigation across all six decimal places of the witnessed_dt. This allows for precise reconstruction of state transitions during high-frequency witnessing events, ensuring that race conditions or rapid-fire updates are fully transparent.
Gateway Query Interface
The National Five Partner's Gateway can query the Ledger to populate proprietary dashboards and client-facing visualizations. The query engine is optimized for two primary patterns:
-
Current State Materialization: Retrieve the most recent
StatusUpdatefor any givenslug+codepair. This is used to present the "live" status of an entity to end-users. - Historical Reconstruction: Retrieve a range of updates to visualize trends, verify historical sequences, or generate delta reports for institutional reporting.
Implementation Note
The Ledger is optimized for Write-Heavy workloads. For consumer-facing applications requiring massive read-concurrency (e.g., thousands of simultaneous dashboard users), we recommend using the Gateway to cache the current state materialized from the Ledger's query endpoints.
Tombstoning Data
The Tombstone operation is the protocol's mechanism for the targeted redaction of sensitive data while maintaining the integrity of the cryptographic chain.
Unlike a standard database DELETE, a Tombstone nullifies specific payload values within existing StatusUpdate records without removing the record's position in the property sequence.
Targeting Logic
Tombstoning leverages the exact same sourcing logic as StatusUpdate.lookup_many. This ensures consistency across the platform: if you can query it, you can tombstone it.
The Lookup Parity
To initiate a redaction, you provide the same criteria used for state observation:
- 1 context_slug
- 2 slug
- 3 code
Payload Redaction Rules
The Ledger treats different data types with varying levels of aggression during a Tombstone event to balance privacy with system performance.
:status_text_value
Full Purge: Because text values often contain PII (Names, Emails, Notes), the protocol will check the global string dictionaries.
If the redacted value is no longer referenced by any other record, it is permanently removed from the dictionary.
:status_slug
Reference Nullification: Slugs are treated as system-level constants (e.g., ACTIVE, PENDING).
Tombstoning will nil out the field on the record, but the slug remains in the system dictionary as it is presumed to be a reused architectural value.
Chain Integrity
It is important to note that property_sequence_no and chain_hash remain untouched. The Ledger preserves the "shape" of history—knowing that a change occurred and who witnessed it—while removing the content of the change.
status_text_values, the data cannot be recovered via the Ledger.
Next Step: Learn how to verify the remains of a redacted record in Auditing Redacted Chains.
Utilities & Data Portability
The Parallel Ledger is designed to ensure that the "Record of Fact" remains accessible even in the absence of the application binary. We provide a suite of portability utilities to ensure your data never becomes a "black box."
To achieve high-density performance, the underlying PostgreSQL database utilizes aggressive string deduplication and an optimized block structure. While this is ideal for machine-scale witnessing, it makes direct SQL querying complex. Our utility strategy provides the "exit ramp" required for long-term institutional peace of mind.
The Transparency Exit
We recognize that enterprise risk management requires a path to data recovery that does not depend on a proprietary runtime. We are currently evaluating two primary methods for ensuring this transparency:
Standalone CLI Exporter
A dedicated, lightweight utility designed to read the PostgreSQL substrate directly. This tool bypasses the Ledger binary to reconstitute deduplicated strings and export full property chains into standard CSV or JSON formats.
Status: In DevelopmentAutomated Flat-File Mirrored
A "Continuous Export" service that asynchronously writes finalized witness blocks to external flat-files (CSV) on a slight delay. This ensures a human-readable version of the ledger exists in real-time outside of the database environment.
Status: Under EvaluationDirect Database Access
National Five Partners retain full administrative access to the PostgreSQL instance. While the Ledger manages the internal mapping of IDs to strings, the schema remains documented and open. Advanced teams can utilize our provided view definitions to perform direct SQL audits for custom reporting or integration with external BI tools.
The "Cold Start" Guarantee
In the event of a total system failure, the combination of our open database schema and the standalone exporter ensures that the Chain of Integrity can be verified using standard cryptographic libraries (SHA-256). The math remains true, regardless of whether the Ledger binary is running.
Architect's Note: The goal of these utilities is to ensure that "Stateful Permanence" is a property of the data itself, not a feature of the software subscription. We encourage implementation partners to test their "Exit Ramp" protocols annually as part of their standard DR (Disaster Recovery) drills.
Integrity
- Witness Signing
- Witness Relays
- Verification Protocols
Witness Signing & Cryptography
The integrity of the Parallel Ledger is derived from Deterministic Witnessing. Every block is cryptographically signed upon commitment, transforming a sequence of status updates into an immutable, third-party verifiable record.
Our cryptographic implementation prioritizes Boring Reliability. By leveraging OpenSSL as the primary interface for key management and signing operations, we ensure that the Ledger’s security posture remains consistent with global institutional standards.
Signing Tiers & Hardware Trust
The Ledger supports a tiered approach to key storage. This allows National Five Partners to balance deployment velocity with the stringent "Root of Trust" requirements found in highly regulated sectors.
Professional (Software)
Utilizes file-based PKCS#8 keys stored within the Ledger's encrypted environment. This is the standard for development and mid-tier production environments where rapid scaling is prioritized.
Enterprise (TPM / HSM)
Provides hardware-backed security via TPM 2.0 or external HSM modules. Keys never leave the hardware boundary; the Ledger requests signing operations through standard PKCS#11 interfaces.
Multi-Key Witnessing
To further mitigate the risk of key compromise, the Ledger supports Parallel Signature Sets. Each block can be configured to be signed by multiple independent keys simultaneously.
This allows a National Five Partner to maintain a rotating "Operational Key" alongside a "Master Institutional Key." Even in the event of an operational environment breach, the master signature ensures the long-term validity of the historical chain.
OpenSSL Integration
The Ledger does not "roll its own crypto." All signing operations are routed through OpenSSL, ensuring that we benefit from continuous security audits and broad support for diverse cryptographic curves (e.g., Ed25519 or ECDSA).
Configuration Strategy
Key paths and engine configurations are defined at runtime. This allows for a clean separation between the Ledger binary and the specific security hardware of the host environment.
# Example Key Config
witness_keys:
- id: "primary-01"
type: "software"
path: "/etc/ledger/keys/primary.pem"
- id: "hsm-vault-01"
type: "pkcs11"
engine: "tpm2"
Architect's Note: The multi-key architecture is designed to be additive. Adding a third or fourth signature to a block does not invalidate existing signatures, providing a "future-proof" mechanism for transitioning to newer cryptographic standards.
Witness Relays
The Witness Relay is a high-integrity synchronization protocol designed to provide External Validation of the local Ledger state. By broadcasting cryptographic proofs to remote nodes, you establish a distributed "Proof of Fact" that is independent of any single host.
This mechanism allows National Five Partners to satisfy the most stringent regulatory and institutional requirements by providing real-time, tamper-evident transparency to authorized oversight bodies or secondary partner nodes.
Zero-Data Synchronization
The Relay protocol is engineered for Privacy by Design. It does not transmit client data, status values, or PII (Personally Identifiable Information). Instead, it broadcasts only the structural metadata of the witnessed blocks.
Cryptographic Proofs Only
The relay sends only Merkle Roots and Block Hashes. This provides a mathematical guarantee that the data on the primary node has not been altered, without ever exposing the sensitive content contained within the blocks.
Low-Bandwidth Footprint
Because it transmits only high-level hashes, the relay is extremely lightweight. It can operate over restricted network pipes while maintaining a real-time "heartbeat" with remote regulatory or partner nodes.
Institutional Compliance
For National Five Partners operating in regulated sectors (such as those governed by the SEC or FINRA), the Witness Relay acts as an automated "Compliance Stream."
- Regulatory Transparency: Provide a dedicated relay feed to a regulator's node, allowing them to verify the chain's integrity without giving them direct database access.
- Cross-Node Consensus: Synchronize proofs across multiple assurance nodes to ensure that no single administrator can modify the historical record across the entire network.
- Tamper Detection: Any discrepancy between the local block hash and the relayed hash triggers an immediate integrity alert, providing sub-second detection of unauthorized data modification.
Tiered Availability
The Witness Relay is an Enterprise-grade feature, designed for deployments where multi-party verification and regulatory oversight are fundamental requirements.
Configuration Note
Relay targets are defined at the context_slug level. This allows for granular control over which datasets are broadcast to which external entities.
# Example Relay Configuration
relays:
- id: "finra-audit-node"
context: "equities-trading"
endpoint: "https://relay.partner-node.org"
interval: "real-time"
Architect's Note: The Witness Relay represents the "Final Proof" of the Parallel Ledger. By separating the data (stored locally) from the proof (distributed globally), you create a defensible, immutable record that meets the highest standards of digital evidence.