View Issue Details

IDProjectCategoryView StatusLast Update
0011223Talerdeployment and operationspublic2026-11-03 14:44
ReporterChristian Grothoff Assigned ToChristian Grothoff Resolution deadline
ImplementerChristian Grothoff ReviewerFlorian Dold  
Release signed byChristian Grothoff Deployed byFlorian Dold  
VerifierChristian Grothoff Communicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)2Actual effort (hours)1.65 
Fast-trackNo
Work packagenone
PrioritynormalSeveritytweakReproducibilityN/A
Status implementingResolutionopen 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version1.6 
Summary0011223: enable HTTP 2+3 on exchange deployments
DescriptionSome clients try HTTP3 by default, which would explain higher latency for first download.
We should enable HTTP3 on all of our servers at this point.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0011305 informingChristian Grothoff merchant fails to communicate with exchange with http3 enabled 

Activities

Christian Grothoff

2026-03-10 10:13

manager   ~0028068

I've done uptimekuma.taler.net for testing, seems to work fine.

Christian Grothoff

2026-03-10 12:23

manager   ~0028075

I enabled it for demo. wget (http/1) takes 120ms, wget2 (http/3) takes 76ms on my current connection.

Christian Grothoff

2026-03-10 12:26

manager   ~0028076

todo: enable on rusty/spec.

Christian Grothoff

2026-03-10 12:30

manager   ~0028077

Lessons learned:
nginx.conf:: http {
+ http2 on;
+ http3 on;
+ quic_retry on;
+ ssl_early_data on;
}

then have ONE section

+ listen 443 quic reuseport;
+ listen [::]:443 quic reuseport;

but everywhere else (reuseport MUST only be specified once!)

+ listen 443 quic;
+ listen [::]:443 quic;

avalos

2026-03-11 16:42

developer   ~0028099

Doesn't seem to make much of a difference in Android at least to disable all protocols other than HTTP/1.1, just FTR. Not sure about iOS.

Christian Grothoff

2026-03-11 20:13

manager   ~0028109

Eh, (1) are you sure you actually used HTTP/3? Over a wireless connection / limited bandwidth? (2) Note that it's only available on demo. (3) Make sure you didn't have /keys already cached, too... I did notice it making quite a difference for wget/wget2, so I'd be surprised if it made no difference, assuming it was properly enabled/disabled...

avalos

2026-03-11 21:19

developer   ~0028114

I made sure the app did NOT use HTTP/2 or HTTP/3, in order to rule out the "Some clients try HTTP3 by default" causing fetches to be slower.

And I don't think I have HTTP caching enabled anyway.

Christian Grothoff

2026-03-11 21:35

manager   ~0028115

Ok, but did you also try WITH http/3 enabled on the client-side to compare?

Christian Grothoff

2026-03-22 22:00

manager   ~0028240

Note that http2-http3.conf has a FIXME remaining -- to make the migration work cleanly, we first need to run the script once
with these lines commented out:

# FIXME: comment-in later, upgrade fails if we put this immediately,
# we need to run once without, otherwise nginx will see these
# directives twice in different places and the setup script will fail.
# NOTE: remove the above comment AND the commented out lines
# below once spec has been updated once -- then update immediately
# again!

After that was done on spec, we should comment the lines in (test on rusty) and re-deploy on spec.

Christian Grothoff

2026-03-22 22:16

manager   ~0028241

Assigning to Florian as he'll basically "incidentally" fix it when deploying spec.

Florian Dold

2026-03-30 16:04

manager   ~0028306

We're not doing it *yet*, as we've seen issues with clients (merchant talking to the exchange) that don't work properly with http2.

Christian Grothoff

2026-11-03 08:56

manager   ~0030199

Modern config:

http2 on;
http3 on;
quic_retry off; # enable ONLY if we are being abused for reflection attacks
ssl_early_data on;

Enabled on firefly including https record in DNS.

Issue History

Date ModifiedUsernameFieldChange
2026-03-10 09:59Christian GrothoffNew Issue
2026-03-10 09:59Christian GrothoffStatusnew => implementing
2026-03-10 10:13Christian GrothoffNote Added: 0028068
2026-03-10 12:23Christian GrothoffNote Added: 0028075
2026-03-10 12:26Christian GrothoffNote Added: 0028076
2026-03-10 12:30Christian GrothoffNote Added: 0028077
2026-03-11 16:42avalosNote Added: 0028099
2026-03-11 20:13Christian GrothoffNote Added: 0028109
2026-03-11 21:19avalosNote Added: 0028114
2026-03-11 21:35Christian GrothoffNote Added: 0028115
2026-03-20 23:57Christian GrothoffAssigned To => Christian Grothoff
2026-03-20 23:57Christian GrothoffStatusimplementing => assigned
2026-03-22 22:00Christian GrothoffNote Added: 0028240
2026-03-22 22:16Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2026-03-22 22:16Christian GrothoffTarget Version1.6 => 1.5
2026-03-22 22:16Christian GrothoffNote Added: 0028241
2026-03-30 16:04Florian DoldAssigned ToFlorian Dold =>
2026-03-30 16:04Florian DoldStatusassigned => implementing
2026-03-30 16:04Florian DoldTarget Version1.5 => 1.6
2026-03-30 16:04Florian DoldSummaryenable HTTP 2+3 on server(s) => enable HTTP 2+3 on exchange deployments
2026-03-30 16:04Florian DoldNote Added: 0028306
2026-03-30 16:07Florian DoldRelationship addedrelated to 0011305
2026-05-29 18:56Christian GrothoffTarget Version1.6 => 1.7
2026-08-07 20:46Christian GrothoffAssigned To => Christian Grothoff
2026-08-07 20:46Christian GrothoffStatusimplementing => assigned
2026-08-07 20:46Christian GrothoffStatusassigned => implementing
2026-11-02 17:30Christian GrothoffAssigned ToChristian Grothoff =>
2026-11-02 17:30Christian GrothoffImplementer => Christian Grothoff
2026-11-02 17:30Christian GrothoffReviewer => vecirex
2026-11-02 17:30Christian GrothoffRelease signed by => Christian Grothoff
2026-11-02 17:30Christian GrothoffDeployed by => vecirex
2026-11-02 17:30Christian GrothoffVerifier => vecirex
2026-11-03 08:56Christian GrothoffNote Added: 0030199
2026-11-03 08:57Christian GrothoffEstimated effort (hours) => 2
2026-11-03 14:44Christian GrothoffReviewervecirex => Florian Dold
2026-11-03 14:44Christian GrothoffDeployed byvecirex => Florian Dold
2026-11-03 14:44Christian GrothoffVerifiervecirex => Christian Grothoff
2026-11-03 14:44Christian GrothoffTarget Version1.7 => 1.6