Files
zeekay 5a1289e458 Credit the organisation on every published surface
Leadership and team cards, board and founding prose, an AI persona modelled on a
named individual, contributor and partner entries, and personal correspondence
addresses all named one person. The organisation carries them now.

Other people keep their names. Where a card, a board list or a founding line
named someone else alongside, they stay exactly as they were; only the one entry
was removed, and prose that listed two names now reads with one.

Sample and fixture data uses the placeholder name these tests already use
elsewhere, so the IAM username defect the notes describe still reads as written.
The zoo/yapp MIT notice names the foundation that publishes it.
2026-09-01 08:53:13 -07:00

109 lines
3.5 KiB
TeX

% HIP-0302: Hanzo Replicate — Encrypted SQLite Durability for Base Services
\documentclass[11pt]{article}
\usepackage{../shared/hanzocover}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{float}
\usepackage{multirow}
\usepackage{listings}
\input{../shared/lstlang}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,fit}
\hypersetup{colorlinks=true,linkcolor=black,citecolor=blue,urlcolor=blue}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{codepurple},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codegreen},
basicstyle=\ttfamily\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
\lstset{style=mystyle}
\title{HIP-0302: Hanzo Replicate\\[0.3em]
{\large Encrypted SQLite Durability\\for Base Services}}
\author{
Hanzo AI Research \\
\textit{Hanzo Industries Inc (Techstars '17)} \\
\texttt{[email protected]}
}
\date{April 2026}
\begin{document}
\hanzocoverpage
% ============================================================================
% METADATA
% ============================================================================
\noindent
\begin{tabular}{@{}ll}
\textbf{HIP} & 0302 \\
\textbf{Title} & Hanzo Replicate --- Encrypted SQLite Durability for Base Services \\
\textbf{Author} & Hanzo AI (\texttt{[email protected]}) \\
\textbf{Type} & Standards Track \\
\textbf{Category} & Infrastructure \\
\textbf{Status} & Draft \\
\textbf{Created} & 2026-04-09 \\
\textbf{Requires} & HIP-0027 (KMS), HIP-0032 (Object Storage), HIP-0065 (Backup \& DR) \\
\end{tabular}
\vspace{1em}
% ============================================================================
% ABSTRACT
% ============================================================================
\begin{abstract}
This proposal specifies how all Hanzo Base-powered services achieve durable
state persistence through continuous encrypted WAL replication to
S3-compatible storage. The system comprises two packages:
\texttt{hanzoai/replicate} (a rebranded Litestream with age encryption
support) and \texttt{hanzoai/age} (X25519/Curve25519 file encryption). Every
Base service---IAM, KMS, ATS, BD, TA, Tasks, and all future
services---deploys \texttt{replicate} as a Kubernetes sidecar that
continuously streams encrypted WAL frames to \texttt{hanzoai/s3}. The result
is sub-second RPO, seconds-scale RTO, and zero dependence on centralized
databases or persistent volume durability.
\end{abstract}
% ============================================================================
% 1. MOTIVATION
% ============================================================================
\input{sections/01-motivation}
\input{sections/02-background}
\input{sections/03-specification}
\input{sections/04-configuration}
\input{sections/05-key-management}
\input{sections/06-deployment}
\input{sections/07-affected-services}
\input{sections/08-security-analysis}
\input{sections/09-migration}
\input{sections/10-operational-concerns}
\input{sections/11-post-quantum-security}
\input{sections/99-references}
\end{document}