Y2K38 Time Bridge - Software router for 32→64 bit epoch translation with TIBET provenance and JIS identity
Project description
tibet-y2k38
Y2K38 Time Bridge — Software router for 32→64 bit epoch translation with TIBET provenance and JIS identity.
Why replace billions of chips when a software router can catch the dumb chip?
The Problem
On January 19, 2038 at 03:14:07 UTC, the signed 32-bit Unix epoch overflows. Billions of embedded devices — PLCs, sensors, GPS receivers, ATMs, medical monitors, avionics — will wrap to negative timestamps or 1970.
You cannot replace all these chips. Many devices are:
- Embedded in walls, factories, vehicles, patients
- Safety-certified (FDA, FAA, EASA, SIL 4) — recertification takes years
- Running 20-40 year lifecycles
- Cost-prohibitive to replace at scale
The Solution
A software router that sits between legacy 32-bit devices and modern 64-bit systems:
from tibet_y2k38 import TimeBridge
# Legacy Siemens PLC with 32-bit clock
bridge = TimeBridge(
device_id="jis:factory:plc-line4",
clock_bits=32,
profile="scada"
)
# Translate the maximum 32-bit timestamp
result = bridge.translate(legacy_timestamp=0x7FFFFFFF)
print(result.translated_iso) # 2038-01-19T03:14:07+00:00
# Every translation creates a TIBET provenance token
print(result.tibet_token["erachter"])
# "32→64 bit time bridge for device jis:factory:plc-line4, profile=scada, confidence=1.00"
Every translation is:
- Identified via JIS (JTel Identity Standard) — each device has a verifiable identity
- Provenance-tracked via TIBET (Time Intent Based Event Token) — immutable audit trail
- Auditable — full chain from legacy input to 64-bit output
10 Sector Profiles
| Sector | Devices Worldwide | Chip Replacement | Key Challenge |
|---|---|---|---|
| IoT | 15+ billion | Impossible | Deployed in unreachable locations |
| SCADA | 50+ million | €500-5k/unit | 20+ year lifecycles, downtime = €10k-100k/hr |
| Automotive | 1+ billion ECUs | Billions in recalls | 30+ ECUs per car, 15-20 year lifespan |
| Medical | 100+ million | Recertification = years | FDA/CE certified, patient safety critical |
| Telecom | 10+ million | Cannot during uptime | NTP overflow hits 2036! SS7 timestamps |
| GPS | 4+ billion | Scale impossible | Week rollover already happened (2019!) |
| Banking | 50+ million | Mainframe = billions | COBOL packed decimal, legally binding timestamps |
| Energy | 500+ million | Regulatory complex | Smart meters, grid frequency depends on time sync |
| Aviation | 5+ million | FAA/EASA recert | DO-178C certification, 30-40 year aircraft life |
| Rail | 10+ million | SIL 4 safety critical | ERTMS/ETCS, incorrect time = collision risk |
from tibet_y2k38 import TimeRouter
router = TimeRouter(network_id="jis:factory:eindhoven")
# Each device gets its sector-specific configuration
router.add_device("jis:plc:line4", profile="scada") # BCD datetime
router.add_device("jis:gps:antenna", profile="gps") # GPS week number
router.add_device("jis:atm:lobby", profile="banking") # COBOL packed
router.add_device("jis:ntp:server1", profile="telecom") # NTP 32-bit
# Route timestamps through the correct bridge
result = router.translate("jis:plc:line4", timestamp=0x7FFFFFFF)
Time Formats Supported
| Format | Description | Overflow Date |
|---|---|---|
UNIX_SIGNED_32 |
Standard signed 32-bit epoch | 2038-01-19 |
UNIX_UNSIGNED_32 |
Unsigned 32-bit epoch | 2106-02-07 |
NTP_32 |
NTP short format (epoch 1900) | 2036-02-07 |
GPS_WEEK |
10-bit GPS week counter | ~19.7 year cycle |
FAT_TIMESTAMP |
DOS/FAT 2-second resolution | 2107-12-31 |
COBOL_PACKED |
COBOL packed decimal dates | Format dependent |
BCD_DATETIME |
Binary-Coded Decimal (PLCs) | Format dependent |
Compliance
Built-in compliance reporting for:
- NIS2 (EU Directive 2022/2555) — Asset inventory, risk assessment, incident reporting, audit trails
- ISO/IEC 5338 (AI system lifecycle) — Data lineage, provenance tracking, lifecycle documentation
from tibet_y2k38.compliance import NIS2Reporter, ISO5338Reporter
nis2 = NIS2Reporter(router)
print(nis2.risk_assessment()) # Devices at risk, mitigation status
print(nis2.audit_trail_report()) # TIBET provenance proof
iso = ISO5338Reporter(router)
print(iso.data_lineage_report()) # Full translation pipeline lineage
CLI
# Show Y2K38 countdown
tibet-y2k38 info
# Run interactive demo (10 sectors, overflow scenarios)
tibet-y2k38 demo
# List all sector profiles
tibet-y2k38 profiles
# Generate JSON compliance report
tibet-y2k38 report
Installation
pip install tibet-y2k38
# With rich terminal output
pip install tibet-y2k38[full]
How It Works
Legacy Device (32-bit) TimeBridge Modern System (64-bit)
┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ PLC/Sensor/ │ │ 1. Receive 32b │ │ │
│ GPS/ATM/... │────>│ 2. Detect format │────>│ Correct 64-bit │
│ │ │ 3. Translate │ │ UTC timestamp │
│ 0x7FFFFFFF │ │ 4. TIBET token │ │ │
└──────────────┘ │ 5. JIS identity │ └──────────────────┘
└──────────────────┘
│
┌──────────────────┐
│ TIBET Audit Trail │
│ - ERIN: values │
│ - ERAAN: deps │
│ - EROMHEEN: ctx │
│ - ERACHTER: why │
└──────────────────┘
The Bigger Picture
This package is part of the Humotica ecosystem:
- tibet-core — TIBET protocol core (zero dependencies)
- jis-core — JIS identity standard
- tibet-audit — Audit tooling
- tibet-forge — Code certification
- tibet-y2k38 — This package
Standards:
- IETF: draft-vandemeent-tibet-provenance-00
- IETF: draft-vandemeent-jis-identity-00
- Zenodo: TIBET Specification
- Zenodo: JIS Specification
- W3C CCG: Presentation scheduled May 5, 2025
License
MIT — Humotica AI Lab (humotica.com)
Authors: J. van de Meent & R. AI
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tibet_y2k38-0.1.0.tar.gz.
File metadata
- Download URL: tibet_y2k38-0.1.0.tar.gz
- Upload date:
- Size: 27.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
553182130dd520ac23992da119954193a277346a1b47c17f21c70645146924fc
|
|
| MD5 |
f4faf4e2bb9a127b7ac1538bebefac56
|
|
| BLAKE2b-256 |
839aa0154c242f6e2c8f404d8fbcd76de4ac1a583920e8faf935cb425cab889a
|
File details
Details for the file tibet_y2k38-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tibet_y2k38-0.1.0-py3-none-any.whl
- Upload date:
- Size: 38.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bd5227f309eccd3f694240e0375e271bdb739afb871921845695f5b83302b7a
|
|
| MD5 |
f5e6c6f68dccabe62014b209e556f12f
|
|
| BLAKE2b-256 |
88ba84dc6cd15ca7748588bf918265804b56c087565d1dc2699be37ad016d71c
|