[Atp] Possible changes for IETF version

Daniel Holmgren <daniel@blueskyweb.xyz> Wed, 08 July 2026 01:07 UTC

Return-Path: <daniel@blueskyweb.xyz>
X-Original-To: atp@mail2.ietf.org
Delivered-To: atp@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 76E2D1128C853 for <atp@mail2.ietf.org>; Tue, 7 Jul 2026 18:07:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783472853; bh=r73BbduFjTstZxjQs7UXqrqv/027OBKtsJz8U7sisZI=; h=From:Date:Subject:To; b=guWbE4SDHeV7Alg6RSDNdg2U404Yso/yyywp8RRmrRnNRYR2NRgj90FKq9CT14dS/ v0Buo353XfhiWczy/dVgZbykagOGMIweKnuZ3XoJmbN55CXBuhzHVpWRpnMuBdMOJq ziRyXuuS4y6/bha6rQGrfX/IJ6mTXiTAMhHj+3Kg=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: 1.245
X-Spam-Level: *
X-Spam-Status: No, score=1.245 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FROM_SUSPICIOUS_NTLD=0.499, FROM_SUSPICIOUS_NTLD_FP=0.846, HTML_MESSAGE=0.001, PDS_OTHER_BAD_TLD=1.999, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=blueskyweb.xyz
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RBVBoHtHPZLa for <atp@mail2.ietf.org>; Tue, 7 Jul 2026 18:07:32 -0700 (PDT)
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 552A31128C84E for <atp@ietf.org>; Tue, 7 Jul 2026 18:07:32 -0700 (PDT)
Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-697564cb69eso269902a12.0 for <atp@ietf.org>; Tue, 07 Jul 2026 18:07:32 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1783472851; cv=none; d=google.com; s=arc-20260327; b=WFEe9NadcoKRcUepj3b8pTlnR2/lEq9a5BLEh26092xoIr0xoDzqzCZ6zsNbySTWTP e7d8LFmwPTiL4/gNsZ7/ycKMcr5rhTqe8Rczk1LfHseKyh7c1vJb8VC8zgPWvp86BiJ8 BmTHM9RZC43up5D2Dlgtk1k4Y07X8XN+DSOjM6zKciq5QpaTRqUjBsmLUtgHDX0jDJMW mwdcvhmtR6UPE7ahUhY2yJsBd9r6wqKGk5ndEzUQCbemxfinW3Cxm2BiNq+kXdad59ih JhT1lvaJwt3uweUShCUSVbdB0Y+2QLacPGYGlVZgUFJMmRH3GBs2+t4Q3aGSsLw8JqTa JgFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=oklYC0oo2u7Efbvlema4TaIdl8up+qjw6a2vVmF0qRs=; fh=Ey4raUt1O8w4kZJlRV+d2BKKjWnLGEvIFibDo3ZjRYI=; b=CgLZrgwTkRiT1WsXSGuOeRq00n9KhjiCyQ6XUCHAPPdPba2mwrmjnAW3pJsDRShFEA ibcD/HuYDMauJaqBx98zl7IgqiFseM5HcdRpm/60GeQEAD//adjl/pXUD2NpYEHMdkGF 8aT9VK3VH7jG4+3tJhwMopX2HsgacCQ/8pdrod1eNN6Vm+BQwBvR8UI9G0iuC1a9Kkgc grZkrpj/D7+kxMYxDzFP5pgtQQlIxWS/MAO7+zZnRyQZKNA/Zvg8WxWe6n5hJw+xoqdd mWqqohOvwXldI9vqKi4cj1UHiskURLofFs3CRHcc151EqRpfBIMLyDdGxKmTTL4AV2nP RFWQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=blueskyweb.xyz; s=google; t=1783472851; x=1784077651; darn=ietf.org; h=content-type:to:subject:message-id:date:from:mime-version:from:to :cc:subject:date:message-id:reply-to:content-type; bh=oklYC0oo2u7Efbvlema4TaIdl8up+qjw6a2vVmF0qRs=; b=UZIHPxDY8tt0e8RDhkV5LMpZin+jGOdeamIvdwwe9RvRRmaDH45xLF2I08a2us6XKU xfVvQ3NBoSI9AY0rRp1mIqVOmRGhwgGlyRSc0Ve6oAB6SwhZmnJG4DJ4wvy4hjharXaU 1Bo/71FuRxJgo9Dc3fOkffrpzyQHzwgxSqFlLjHrMewR/vbtaHfDefVtDjnp9Y6YOdw5 TZt2aKDgDZRzzfA0i9bJiTSw5N3UI1T3xEIUve7Zbx7x2Q8KAZLukgSiNbxX9avv6PG2 Xk1qtpRIVS9ujGmznkqtYt/CxnZ256Cxb3E8zeDpOAOotiI7SVsX+uNTeQpTumZzhvmE s+UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783472851; x=1784077651; h=content-type:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oklYC0oo2u7Efbvlema4TaIdl8up+qjw6a2vVmF0qRs=; b=DDaPiD7jsjK9EfLkxGx4DpW9D2ld5jEZdX+3zLv1O10hIfzMIxmrMcOaB4sGQuzOw5 /Y2Na8LsgkMOoK/8Qz1gZdqorMdp9mmDkSks1wj/1viFoROzXVnO+VzmS1hVN3VozCC0 FWj+Xy0+LS86Qqrfy1HHrzQqyBNgpcaxN7Hjtbq7iDHLE1Yfds76hwh75+znndW+ah4s LfiW2P9UvIibMAJreFzZAVrpRk2qjmC/lixPGAbSJjeC/dbl8m9uFSKdhRNxxQtL3zp4 0HgluFaw15y4Wv04QiNdVSNummVrHe/sTy8r21YPxtfS8vOmm+RvTJrlDMbEoACf32MF 1KhQ==
X-Gm-Message-State: AOJu0YwgLCyBDrFRCHerUqz+kn371vH7gMdibP15w2aSgSTDXBkTqTil zmOCpMwhBxrZoPOGbwclZytKv7cSgApvbB4q5liCfBlWnY/hbM9fnHdxf+6RzK7/sX+yoDJ8EfH 3xBvghqCNbKqhrYBAXbs2uctptF1wcZUBSkbddcsQg1eFL4ahv50sIOuFMw==
X-Gm-Gg: AfdE7ckxrTf7W2SpYv03/pnSNFXJQ1jkJSfpS/4vHHKgXICmorVXyeGnaT7nd1OkF4t xIYPXun1zXE36T+CGJ1GOb/0FTOGHAgAggMJXNa/S1gitGyVabnaxxqVXyWYqLhcwnzzNuTPvxm ZpN2+7rEel/Mo32ObXrSn6AvOcahyOs+or3WrvvKLuVxOMDY06/n2GMbpqNSRF79xL2sBlpvwI1 lx3n33Xs+VQGsLwASUKPCB8+StgJ9Z0UMkpa2arST7Qvz0xsW4ms6El4K3pZyTPPTaYxINeyegj FxNc/twhkbfIEjSS/fpf2INE7HjoBL0ka1d6D6ZCWyvPyN94k+3pFRAW5ig=
X-Received: by 2002:a17:907:982:b0:c12:c5a2:995c with SMTP id a640c23a62f3a-c15ce10dd56mr21147566b.51.1783472851242; Tue, 07 Jul 2026 18:07:31 -0700 (PDT)
MIME-Version: 1.0
From: Daniel Holmgren <daniel@blueskyweb.xyz>
Date: Tue, 07 Jul 2026 20:07:19 -0500
X-Gm-Features: AVVi8CesvyqTxlctwBsP3stajRZyAx2Xvi8AQPcL3fzAfBrg35I41HJcsr6F1fg
Message-ID: <CAGZK71=G+QCjCtNxWH=1fE+mNpO4Lhm_X+bD4MUPc9vKmqhWkg@mail.gmail.com>
To: atp@ietf.org
Content-Type: multipart/alternative; boundary="000000000000c3df9706560f2125"
Message-ID-Hash: 4POURXVH3PBA3TBL4F6FBE27CRHRJ342
X-Message-ID-Hash: 4POURXVH3PBA3TBL4F6FBE27CRHRJ342
X-MailFrom: daniel@blueskyweb.xyz
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Atp] Possible changes for IETF version
List-Id: Authenticated Transfer <atp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/atp/yCmBsP2H7P0T_Hl21jquuo1IegI>
List-Archive: <https://mailarchive.ietf.org/arch/browse/atp>
List-Help: <mailto:atp-request@ietf.org?subject=help>
List-Owner: <mailto:atp-owner@ietf.org>
List-Post: <mailto:atp@ietf.org>
List-Subscribe: <mailto:atp-join@ietf.org>
List-Unsubscribe: <mailto:atp-leave@ietf.org>

Hey folks,


I’ll be doing a session at the WG meeting at IETF 126 on some various
smaller changes and cleanups to the repository commit structure and the
wire protocol. There is a variety of changes in here, however most are
fairly mechnical. The purpose of the session is to give an overview and
start the conversation, not to reach consensus.


In preparation for that session, I thought I’d share my current list of
changes that I have in mind ahead of the meeting.


Repository Commit:

   - Currently has a “did” field on the commit object. As the spec does not
   currently (nor is expected to) mention DIDs, we probably also shouldn’t
   mention them in the commit object. I propose renaming this field to
   “account”. Other possibilities include “acc” or “identifier”, among others.
   - There is currently a “prev” field on the commit object. This is
   technically usable to reference a previous version of the repository.
   However it was mainly kept around for backwards compatibility purposes, and
   is nearly always set to `null`. I propose formally deprecating and removing
   this feature.
   - A repository commit does not have any field on it that clearly marks
   it as an AT commit. I propose adding a field to the commit `$type:
   atproto_commit` for domain separation purposes.
   - AT repositories are currently version 3. This version number is in
   each commit. Along with these changes, we would bump the version number to
   4.


Synchronization protocol:

   - There are some historical old fields on `#commit` messages such as
   `tooBig` and `blobs`. I propose formally deprecating those.
   - Synchronization protocol messages have a similar problem to repo
   commits in that they use the field “did” to refer to the account (and there
   is a mismatch between most message types and `#commit` messages which use
   the field “repo”). I propose renaming and standardizing on “account” (or
   whatever we specify for the commit field”
   - The current wire protocol for synchronization uses CBOR frames which
   are a header & payload, both CBOR-encoded and then concatenated together.
   While technically valid CBOR, we’ve found that it is somewhat unfamiliar
   and many libraries have a difficult time parsing it. I propose moving to a
   single CBOR object framing. Bluesky currently has a similar proposal for
   general XRPC subscription framing (in CBOR & in JSON). You can read that
   proposal here:
   https://github.com/bluesky-social/proposals/blob/main/0015-json-subscriptions
   - Currently the cursor of the subscription is provided on each message
   received. This is fine for larger hosts with a steady throughput of
   messages. However, it can cause some issues with low-throughput hosts. I
   propose introducing a new “cursor” message that is sent on connect that
   gives a consumer the current cursor value. More details on this can be
   found in a longer write up that Bryan Newbold posted:
   https://bnewbold.leaflet.pub/3mngmjniwlk2l
   - I’d like to bring up the possibility of alternate cursor formats,
   including time-based cursors. I’m not sure I would push for the
   necessarily, but I do think it’s worth a discussion. More details on this
   can be found in Bryan’s post as well.


Misc:

   - The current protocol supports secp256k1 & secp256r1 keys & signatures.
   I’d like to discuss adding a post-quantum cryptography system.
   - The current repository structure supports keys structured as
   “collection/record_key”. I’d like to discuss the possibility of a key
   structure for past versions of records. For instance,
   “collection/record_key/prev_hash".
   - There’s been a great discussion
   <https://mailarchive.ietf.org/arch/msg/atp/5ItSf1xkhrl92zChWq52Nut86uQ/>
   on including floating point numbers in the data model. I’m hoping that is
   its own session, however if not, then I can at least bring the topic up.


Feel free to chime in with thoughts in this thread or wait until we surface
these in Vienna. Looking forward to seeing folks there!


Thanks,

Daniel