Entries are chained with SHA-256 & attested with ECDSA P-256 on the vessel, offline. The shore sees them when the link comes back, not before.
Built to IMO Resolution MEPC.312(74), adopted 17 May 2019 and in force 1 October 2020.
Specimen entries. Quantities in m³.
Shipboard operations set the constraints: weeks without a link, hardware that has to survive an engine room, & an inspector who needs the book open in front of them in minutes.
The authoritative book on the vessel. SQLite under SQLCipher for local storage, NATS JetStream for the outbound queue to shore.
Multi-tenant fleet backend. Ingests synced entries, rejects any whose signature or hash chain fails to verify, & holds the cross-fleet record.
Fleet overview, alerts, reports, & audit views for superintendents. REST for reads, WebSocket for the live compliance state.
Documented against OpenAPI 3.1, so an existing fleet management, VDR, or ERP system can read the same record the dashboard reads.
Every feature runs without a link. The ship-side service is the authority on the vessel; shore is a mirror that catches up, not a dependency the officer waits on.
Entries hold at the leaf node. Nothing is lost & nothing is blocked.
Tamper evidence is structural, not a setting. There is no debug path & no admin path that writes an entry outside the chain.
head 0451 · 451 entries verified
Superintendents read the same signed records the vessel holds. An entry that fails verification at ingest is rejected, logged, & raised as an alert; it never reaches the authoritative store.
Specimen fleet.
A walkthrough runs the full sequence: an entry made offline, signed on the vessel, synced on reconnect, & opened cold by a port state control officer.