- Jun 03, 2020
-
-
Jean-Paul Calderone authored
-
- May 30, 2020
-
-
Jean-Paul Calderone authored
Fix intermittent "Database is locked" errors
-
- May 29, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
The default busy timeout is 0 and in the default configuration read-blocks-write. Thus by default it is extremely easy for concurrent requests to the server to block each other. So easy I can reproduce it with about 100% fidelity in trivial local testing. The transactions are all short lived, though, so re-attempting the lock acquisition for for up to a second dramatically reduces the failure rate. On a busy enough server it's conceivable a request might have to wait a full second behind other requests to get access to the database. In this case the request will fail with the same "database is locked" error. When that time comes, it is probably worth just provisioning a faster server. Or we could explore WAL mode where read *doesn't* block write (though you can still only have one writer and our API is pretty write heavy).
-
Jean-Paul Calderone authored
It's probably not strictly necessary but it's sort of nice.
-
- Apr 15, 2020
-
-
Jean-Paul Calderone authored
Some minor cleanups, mostly docs/comments
-
Jean-Paul Calderone authored
The backend logic to make different counter values distinct during redemption
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
Also a little more frontend to handle possible failure modes
-
Jean-Paul Calderone authored
Accept a counter value in redemption request This is a step towards being able to scale up the number of tokens issued.
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
- Apr 06, 2020
-
-
Jean-Paul Calderone authored
Switch to newer python-challenge-bypass-ristretto repo
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
And various associated changes necessary to keep the build working
-
- Mar 18, 2020
-
-
Jean-Paul Calderone authored
Fix "cannot start a transaction within a transaction" during concurrent redemption
-
Jean-Paul Calderone authored
Still not testing the web code path but ... types and stuff!@
-
Jean-Paul Calderone authored
Connections could probably be in a per-thread cache or something but redemption costs are going to dwarf database opening costs. Also, filesystem caches and no benchmarks and all that.
-
Jean-Paul Calderone authored
A separate connection per concurrent transaction is required.
-
Jean-Paul Calderone authored
-
- Mar 17, 2020
-
-
Jean-Paul Calderone authored
Support an increase in the ZKAP batch size to several hundred thousand
-
- Mar 09, 2020
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
- Dec 02, 2019
-
-
Jean-Paul Calderone authored
Configurable stripe endpoint
-
- Nov 26, 2019
-
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
They have weird names in the Stripe API but there's no reason to preserve that.
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
Tiny typo fix in the CircleCI configuration
-
Nejc Zupan authored
-
- Nov 25, 2019
-
-
Jean-Paul Calderone authored
CORS headers on Stripe charge API responses (even errors) Also more consistent, correct error reporting from the HTTP API. Also, better Stripe/database consistency in the case of errors. Also, remove the unused Stripe webhook endpoint. Also, some automated tests for some of this.
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
transaction rollback logic relied on exceptions, stripe charge function signaled failure with Either, thus stripe failues had no effect on transaction rollback
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
-
Jean-Paul Calderone authored
`catch` is not a good way to assert something is thrown
-
Jean-Paul Calderone authored
-