-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-implement randomness server in rust #50
Commits on Nov 3, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 61683a6 - Browse repository at this point
Copy the full SHA 61683a6View commit details
Commits on Dec 15, 2022
-
Stub out a axum-based rust web service.
The new version of the nitriding framework can proxy http traffic to a separate server running inside the enclave. This allows us to replace the ffi calls from golang with a pure-rust server implementation, which is less error-prone.
Configuration menu - View commit details
-
Copy full SHA for abeaa61 - Browse repository at this point
Copy the full SHA abeaa61View commit details
Commits on Jan 10, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0676723 - Browse repository at this point
Copy the full SHA 0676723View commit details
Commits on Jan 27, 2023
-
Use the `info!` convenience macro with the default logger, which reads the `RUST_LOG` environment variable. So run with: RUST_LOG=tower_http=trace,star_randsrv=debug cargo run for reasonable output. By default it's `ERROR` level only, so there's no convenience info about requests or listening port; would be nice to default to `star_randsrv=info` or something like that.
Configuration menu - View commit details
-
Copy full SHA for 5d1233a - Browse repository at this point
Copy the full SHA 5d1233aView commit details
Commits on Jan 30, 2023
-
Stub out the /randomness endpoint
Define structs for the request and response and plumb them through with a dummy response value.
Configuration menu - View commit details
-
Copy full SHA for 2b98c57 - Browse repository at this point
Copy the full SHA 2b98c57View commit details
Commits on Feb 1, 2023
-
FIXME: only processes the first point. Note that the `State` argument must come *before* the request, not after!
Configuration menu - View commit details
-
Copy full SHA for 1e755ee - Browse repository at this point
Copy the full SHA 1e755eeView commit details
Commits on Feb 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 6aacdae - Browse repository at this point
Copy the full SHA 6aacdaeView commit details
Commits on Feb 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 3975a2f - Browse repository at this point
Copy the full SHA 3975a2fView commit details -
Use the current version of the ppoprf which cleans up some unneeded dependencies. Bump everything else to the latest compatible version.
Configuration menu - View commit details
-
Copy full SHA for e621f9b - Browse repository at this point
Copy the full SHA e621f9bView commit details -
This allows multiple concurrent reads to the ppoprf struct for evaluations. We only need exclusive access to reset or puncture.
Configuration menu - View commit details
-
Copy full SHA for 5b63a76 - Browse repository at this point
Copy the full SHA 5b63a76View commit details
Commits on Feb 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 23c4e9b - Browse repository at this point
Copy the full SHA 23c4e9bView commit details -
Stub out background epoch rotation task
Spawn a background task to advance the current epoch on a fixed schedule. When it runs out of epochs it eventually panics the main thread instead of re-initializing the ppoprf state.
Configuration menu - View commit details
-
Copy full SHA for a0137ca - Browse repository at this point
Copy the full SHA a0137caView commit details -
Rotate OPRF key when epoch list is exhausted.
Instead of leaving all epochs puctured and later panicking, create and fresh OPRFServer instance with the same set of epochs and continue with that. Abstract the struct initialization into OPRFServer::new() so it can be called from both locations, Move the `future_epochs` initialization inside the background loop so the same code can be used each time a new state is initialized.
Configuration menu - View commit details
-
Copy full SHA for a0cf909 - Browse repository at this point
Copy the full SHA a0cf909View commit details -
Define a response type for errors and convert various unwrap() and expect() calls to return that instead. Replace the iterator chain in the randomness handler with an explicit loop so we can return early if there's an error in the request data.
Configuration menu - View commit details
-
Copy full SHA for 48ce3cf - Browse repository at this point
Copy the full SHA 48ce3cfView commit details
Commits on Feb 10, 2023
-
Turns out enum variants with inner values don't just look like functions, they actually work as a FnOnce! Also stonger camelcasing.
Configuration menu - View commit details
-
Copy full SHA for 0896f57 - Browse repository at this point
Copy the full SHA 0896f57View commit details
Commits on Feb 13, 2023
-
The previous code reset the `future_epochs` vector before the empty check that was supposed to trigger re-initialization. So OprfServer.epoch was updated, but the actual set of viable epochs was punctured, resulting in perpetual "No prefix found" errors. Instead, assume we'll use contiguous blocks of epoch numbers and store them as a Range, which is smaller and more convenient. `EpochRange` never needs to change and can be passed to `OprfServer::new` each time the key is rotated. Note that because `Range` and `InclusiveRange` are different types, we can't both keep the range as `u8` and include epoch 255. I though code simplicity was more important here.
Configuration menu - View commit details
-
Copy full SHA for e77eeec - Browse repository at this point
Copy the full SHA e77eeecView commit details -
Remove old nitriding implementation
Instead of linking over ffi from the go nitriding framework, build it as a separate proxy daemon which runs inside the the same container as star-randsrv.
Configuration menu - View commit details
-
Copy full SHA for acdb3fb - Browse repository at this point
Copy the full SHA acdb3fbView commit details -
Update Dockerfile to build the new configuration.
Having `nitriding` as a submodule complicates copying just that subtree to the go-builder, so we copy everything, which is slow if there are local build files.
Configuration menu - View commit details
-
Copy full SHA for 49c118b - Browse repository at this point
Copy the full SHA 49c118bView commit details -
Build and lint the local application. Assume the nitriding repo takes care of itself.
Configuration menu - View commit details
-
Copy full SHA for 4a54a87 - Browse repository at this point
Copy the full SHA 4a54a87View commit details
Commits on Feb 14, 2023
-
Rather than installing golangci-lint so the default Makefile target in nitriding/cmd can run it, just build the `nitriding` target directly. This is a faster build and follows our earlier policy of treating the submodule as a separate unit for testing.
Configuration menu - View commit details
-
Copy full SHA for 3dc48a1 - Browse repository at this point
Copy the full SHA 3dc48a1View commit details -
Copy `star-randsrv` from the correct path so both executables are present in the final container.
Configuration menu - View commit details
-
Copy full SHA for d5652ed - Browse repository at this point
Copy the full SHA d5652edView commit details
Commits on Feb 15, 2023
-
This is 5x larger than the alpine containers, but provides the expected execution environment.
Configuration menu - View commit details
-
Copy full SHA for b3daa78 - Browse repository at this point
Copy the full SHA b3daa78View commit details -
Use static builds with the docker container.
Go back to using alpine linux for the runtime, which requires building with CGO disabled, and on the rust:alpine build container to avoid dependencies on glibc. This is about 25% the size of the debian:slim runtime container.
Configuration menu - View commit details
-
Copy full SHA for c529e8c - Browse repository at this point
Copy the full SHA c529e8cView commit details -
Which to a revision of `nitriding` that builds a static executable by default so we can invoke the Makefile but still use it with our alpine runtime container.
Configuration menu - View commit details
-
Copy full SHA for fa22c5f - Browse repository at this point
Copy the full SHA fa22c5fView commit details
Commits on Feb 17, 2023
-
Doesn't return the timestamp at the end of the epoch. We don't support returning the zk proofs, so returning the public key isn't useful, but neither does the current golang version, and I wanted to match its api. I expect that to change when we implement batch proofs anyway.
Configuration menu - View commit details
-
Copy full SHA for c0b0395 - Browse repository at this point
Copy the full SHA c0b0395View commit details -
Enforce current epoch and max points per request.
Instead of accepting any unpunctured epoch, and letting the ppoprf eval fail for punctured ones, filter out non-current epochs when the request is processed. Also enforce the MAX_POINTS limit on requests. By this point the point vec has already been constructed, so this doesn't affect the amount of memory consumed, but it still limits the cpu cost of each request, making any denial-of-service mitigation based on network flows more effective.
Configuration menu - View commit details
-
Copy full SHA for 0951a7b - Browse repository at this point
Copy the full SHA 0951a7bView commit details -
Add a test for the root endpoint
Set up a testing framework inside the main implementation to check the handlers without the overhead of a network socket. Based on the `testing` example from the axum repository. Test that the `/` route returns some text.
Configuration menu - View commit details
-
Copy full SHA for 1c6477e - Browse repository at this point
Copy the full SHA 1c6477eView commit details
Commits on Feb 27, 2023
-
`TryFrom` will be useful for making `ppoprf::Point` creation properly fallible. Also makes future updates smoother.
Configuration menu - View commit details
-
Copy full SHA for 7dc91bf - Browse repository at this point
Copy the full SHA 7dc91bfView commit details -
Update Dockerfile to use golang:1.20
Co-authored-by: Philipp Winter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 41ed6ed - Browse repository at this point
Copy the full SHA 41ed6edView commit details -
Update start.sh with dev deployment fqdn
Co-authored-by: Philipp Winter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5074c17 - Browse repository at this point
Copy the full SHA 5074c17View commit details -
Co-authored-by: Philipp Winter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 86231bb - Browse repository at this point
Copy the full SHA 86231bbView commit details -
Co-authored-by: Philipp Winter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f56033e - Browse repository at this point
Copy the full SHA f56033eView commit details -
Merge remote-tracking branch 'origin/main' into rust
Dependency updates on the obsolete go side.
Configuration menu - View commit details
-
Copy full SHA for 1cf8794 - Browse repository at this point
Copy the full SHA 1cf8794View commit details -
Merge remote-tracking branch 'origin/main' into rust
Resolve Cargo.lock conflicts omitted in the previous commit.
Configuration menu - View commit details
-
Copy full SHA for 000b9f8 - Browse repository at this point
Copy the full SHA 000b9f8View commit details -
Use thiserror to derive error messages
Previously I implemented the stringification manually to keep things shallow for auditors, but this makes the source more compact without adding much functionality. This adds about 4k to the release binary size.
Configuration menu - View commit details
-
Copy full SHA for 91a361c - Browse repository at this point
Copy the full SHA 91a361cView commit details -
Use the `From` impl with the `?` operator to map errors implicitly. This simplifies reading the code, but I'm not convinced it's better for auditing, where all the paths need to be traced.
Configuration menu - View commit details
-
Copy full SHA for d7f7f92 - Browse repository at this point
Copy the full SHA d7f7f92View commit details
Commits on Mar 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 6fa4ea9 - Browse repository at this point
Copy the full SHA 6fa4ea9View commit details -
Reformat to fix layout nits. Used `cargo fmt -- --config max_width=78`
Configuration menu - View commit details
-
Copy full SHA for 0ed4bf4 - Browse repository at this point
Copy the full SHA 0ed4bf4View commit details -
Use the `clap` crate to derive a parser and help text for setting the webservice config options through command-line switches. > STAR randomness webservice > > Usage: star-randsrv [OPTIONS] > > Options: > --epoch-seconds <EPOCH_SECONDS> Duration of each randomness epoch [default: 5] > --first-epoch <FIRST_EPOCH> First epoch tag to make available [default: 0] > --last-epoch <LAST_EPOCH> Last epoch tag to make available [default: 255] > -h, --help Print help > -V, --version Print version
Configuration menu - View commit details
-
Copy full SHA for 981e66a - Browse repository at this point
Copy the full SHA 981e66aView commit details -
Configuration menu - View commit details
-
Copy full SHA for eec9dcd - Browse repository at this point
Copy the full SHA eec9dcdView commit details
Commits on Mar 7, 2023
-
Add test for the /info endpoint
Confirm we get valid json with the correct keys and types.
Configuration menu - View commit details
-
Copy full SHA for 46f9c42 - Browse repository at this point
Copy the full SHA 46f9c42View commit details -
Verify we can parse the server public key
Undo the two layers of encoding to recover the original struct, throwing if any of the steps fails. This gives some basic confirmation that the `/info` endpoint returned something plausible.
Configuration menu - View commit details
-
Copy full SHA for 0e1a3a8 - Browse repository at this point
Copy the full SHA 0e1a3a8View commit details
Commits on Mar 8, 2023
-
Add test for the /randomness endpoint
Submit a random RistrettoPoint and confirm we get one back under the correct epoch.
Configuration menu - View commit details
-
Copy full SHA for e8a43dc - Browse repository at this point
Copy the full SHA e8a43dcView commit details -
Consolitate test app into a helper
Use the same config for each test and call a helper function to construct the `app` axum router state for testing. This removes duplication and makes the test code more compact.
Configuration menu - View commit details
-
Copy full SHA for d98b622 - Browse repository at this point
Copy the full SHA d98b622View commit details -
Move the redundant parts of generating a request for an endpoint into a helper function. If a payload is included, the request is POSTed as application/json. This doesn't save any code really, but makes the tests a bit easier to read since we lose the conversion code to build the request.
Configuration menu - View commit details
-
Copy full SHA for d4fec5b - Browse repository at this point
Copy the full SHA d4fec5bView commit details -
Verify welcome message is utf-8.
We want something human-readable there.
Configuration menu - View commit details
-
Copy full SHA for 75319f9 - Browse repository at this point
Copy the full SHA 75319f9View commit details -
We don't have unit tests other than for the endpoints, so might as well be brief.
Configuration menu - View commit details
-
Copy full SHA for a263104 - Browse repository at this point
Copy the full SHA a263104View commit details
Commits on Mar 22, 2023
-
Report the next epoch rotation time
Fill in the `nextEpochTime` field in the `/info` response with the RFC 3339 timestamp of the next rotation. Make the field optional so we can set it on one place inside the update loop.
Configuration menu - View commit details
-
Copy full SHA for cd2caf0 - Browse repository at this point
Copy the full SHA cd2caf0View commit details -
Truncate nextEpochTime to the nearest second.
Just to shorten the timestamp string, which doesn't need nanosecond precision.
Configuration menu - View commit details
-
Copy full SHA for 3cdfd2d - Browse repository at this point
Copy the full SHA 3cdfd2dView commit details -
Update InfoResponse test for nextEpochTime field
Fill in a dummy timestamp whem making a test OPRFServer state. This is sufficient to pass the simple `is_string` check in the endpoint unit test.
Configuration menu - View commit details
-
Copy full SHA for 7373b39 - Browse repository at this point
Copy the full SHA 7373b39View commit details
Commits on Mar 23, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5f67b3e - Browse repository at this point
Copy the full SHA 5f67b3eView commit details -
Merge remote-tracking branch 'origin/main' into rust
Merge upstream Cargo.lock changes by just re-running `cargo update` on this branch as well.
Configuration menu - View commit details
-
Copy full SHA for cd8efb0 - Browse repository at this point
Copy the full SHA cd8efb0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0b559de - Browse repository at this point
Copy the full SHA 0b559deView commit details -
Use fewer temporaries constructing InfoResponse
Save a couple of lines by setting response values from short expressions inside the struct constructor.
Configuration menu - View commit details
-
Copy full SHA for 163f726 - Browse repository at this point
Copy the full SHA 163f726View commit details -
Verify maxPoints and nextEpochTime in InfoResponse test
Check that the values we use in `test_app` make it into the response.
Configuration menu - View commit details
-
Copy full SHA for 2b0af3f - Browse repository at this point
Copy the full SHA 2b0af3fView commit details -
These are no longer needed since we're building the two servers separately.
Configuration menu - View commit details
-
Copy full SHA for 0ca2733 - Browse repository at this point
Copy the full SHA 0ca2733View commit details
Commits on Mar 29, 2023
-
Use is_empty() instead of len() > 0
Change the welcome endpoint test to match the others. Addresses a clippy lint.
Configuration menu - View commit details
-
Copy full SHA for db8c47a - Browse repository at this point
Copy the full SHA db8c47aView commit details -
Test submitting multiple points
Abstract some of the test code for the /randomness endpoint into helper functions and call it from additional tests to verify multiple point submissions in the same request are processed.
Configuration menu - View commit details
-
Copy full SHA for 033c20a - Browse repository at this point
Copy the full SHA 033c20aView commit details -
The /randomness endpoint allows specifying a specific epoch tag to support the same route offering multiple valid epochs at the same time. For example this could be two series with different cadences or an overlap to prevent failed queries close to the rotation time. Verify that the current epoch can be accepted, but that earlier and later epochs are rejected.
Configuration menu - View commit details
-
Copy full SHA for 5f0c872 - Browse repository at this point
Copy the full SHA 5f0c872View commit details -
Bump container base image versions
Use the latest stable rust toolchain and alpine runtime release for the linux container image build.
Configuration menu - View commit details
-
Copy full SHA for 9265c40 - Browse repository at this point
Copy the full SHA 9265c40View commit details -
Run `cargo update` to bump Cargo.lock to the latest compatible releases.
Configuration menu - View commit details
-
Copy full SHA for 33b5d54 - Browse repository at this point
Copy the full SHA 33b5d54View commit details -
Use port 443 for the exported https interface
Have the nitriding proxy listen on standard port 443. The daemons run as root inside the container so there's no reason to use a non-privileged port.
Configuration menu - View commit details
-
Copy full SHA for b75c690 - Browse repository at this point
Copy the full SHA b75c690View commit details -
Pick up recent fixes and depend on an actual tag rather than a random commit.
Configuration menu - View commit details
-
Copy full SHA for b6f41f9 - Browse repository at this point
Copy the full SHA b6f41f9View commit details
Commits on Mar 31, 2023
-
Un-indent the part of the next_epoch_time calculation which doesn't require the lock guard for better readability. Still prefer an scope block around the lock section to an explicit drop since it's harder for it to become disconnected from the following code.
Configuration menu - View commit details
-
Copy full SHA for bc8ac6d - Browse repository at this point
Copy the full SHA bc8ac6dView commit details -
Let tracing log the config object directly
This might make pulling the object out of the structured log easier? Addresses a review comment.
Configuration menu - View commit details
-
Copy full SHA for 19c5953 - Browse repository at this point
Copy the full SHA 19c5953View commit details -
Mark trace events from epoch_update_loop
Clarify where these messages are from by declaring a span for them.
Configuration menu - View commit details
-
Copy full SHA for 633dc29 - Browse repository at this point
Copy the full SHA 633dc29View commit details -
Add --listen command line switch
Allow setting the server's listening ip address and port from the command line, rather than hard-coding it. The default is the same behaviour as before: ipv4 localhost port 8080.
Configuration menu - View commit details
-
Copy full SHA for 0fb7d89 - Browse repository at this point
Copy the full SHA 0fb7d89View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a58ab0 - Browse repository at this point
Copy the full SHA 0a58ab0View commit details -
Move the tests module to a separate source file
Break things up so the individual files are shorter and save an indent level.
Configuration menu - View commit details
-
Copy full SHA for 4ad8295 - Browse repository at this point
Copy the full SHA 4ad8295View commit details -
Configuration menu - View commit details
-
Copy full SHA for dbc753f - Browse repository at this point
Copy the full SHA dbc753fView commit details -
Move the epoch rotation function to a separate module.
Split server into smaller files. Addresses review feedback.
Configuration menu - View commit details
-
Copy full SHA for 6cf590d - Browse repository at this point
Copy the full SHA 6cf590dView commit details -
Move request handlers into a separate module
Split the implementation across multiple source files in response to review feedback. The `OPRF*` and `Error` types are directly-related to the implementation of these particular handlers, so I kept those together. They need to be public so the main application can call them, but otherwise are just interfacing with the axum::route machinery.
Configuration menu - View commit details
-
Copy full SHA for 93288d2 - Browse repository at this point
Copy the full SHA 93288d2View commit details -
Allow clippy::assertions_on_constants in tests::epoch
The epoch test has assertion that the epoch test values it uses are distinct from the accepted value. These compile to nothing because they are const expressions. However, it's nice to have the assertion in case the base constant changes in an incompatible way. `cargo clippy --all-targets` warns about this test, so silence the lint for a clean report while keeping the assertion.
Configuration menu - View commit details
-
Copy full SHA for ff0a318 - Browse repository at this point
Copy the full SHA ff0a318View commit details -
Configuration menu - View commit details
-
Copy full SHA for c47465c - Browse repository at this point
Copy the full SHA c47465cView commit details
Commits on Apr 4, 2023
-
Use the Amazon Web Services container registry
This fetches the Docker image from Amazon's container registry instead of Docker's, which prevents the frequent rate limits in our reproducible build pipeline. At the time of commit, at least, the `docker/library` path is a mirror of the docker.io registry with identical images hashes for these three tags. Co-authored-by: Philipp Winter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d9b26ee - Browse repository at this point
Copy the full SHA d9b26eeView commit details -
Invoke start.sh from the full path.
/usr/local/bin isn't in path in the alpine runtime container, so it needs to be run from the absolute path.
Configuration menu - View commit details
-
Copy full SHA for def73b1 - Browse repository at this point
Copy the full SHA def73b1View commit details
Commits on Apr 5, 2023
-
Adjust Makefile to build a versioned eif file in docker, which shortcuts for deployment. Some of this is style changes, but other parts are functional; the previous `ko` build didn't work for the non-go parts of the container. This reduces the memory cap to 512 MB to match the default allocation limit. This simplifies testing, especially since bumping the limit has been failing occasionaly in my testing. It's certainly enough memory for verifying deployment, but benchmarking is needed to see if it's sufficient to handle a full network load.
Configuration menu - View commit details
-
Copy full SHA for 896e4a2 - Browse repository at this point
Copy the full SHA 896e4a2View commit details -
Update nitriding for the buildcvs=false fix
This fixes an issue building the container image under kaniko.
Configuration menu - View commit details
-
Copy full SHA for 0f800e7 - Browse repository at this point
Copy the full SHA 0f800e7View commit details -
Add a makefile step to update the nitriding submodule
This is a little hacky since we don't generate complete dependency information, but use nitriding/cmd/Makefile, invoked by the Dockerfile build, as a stamp for having the submodule available. Assumes we're running out of a git repository.
Configuration menu - View commit details
-
Copy full SHA for 67369ed - Browse repository at this point
Copy the full SHA 67369edView commit details
Commits on Apr 6, 2023
-
Place OPRFState and friends together with the update update loop.
Keep the state structs and their maintenance code together to avoid cross-importing between `handler` and the old `update` module. Export just the wrapped version through the top-level to shorten references there and in the handlers.
Configuration menu - View commit details
-
Copy full SHA for c517bb8 - Browse repository at this point
Copy the full SHA c517bb8View commit details -
Pass prove as a false value to ppoprf::server::eval
Save a line by not declaring this and pass a `false` literal directly. Requested in review.
Configuration menu - View commit details
-
Copy full SHA for 76bca6f - Browse repository at this point
Copy the full SHA 76bca6fView commit details -
github actions: initialize submodules before building
Automatic image building was failing because the nitriding submodule wasn't initialized before invoking kaniko. This option should make the checkout action also checkout any submodules.
Configuration menu - View commit details
-
Copy full SHA for f2dd246 - Browse repository at this point
Copy the full SHA f2dd246View commit details -
Test deployment from the rust branch.
Check the build script is working before merging into main.
Configuration menu - View commit details
-
Copy full SHA for 347c8a7 - Browse repository at this point
Copy the full SHA 347c8a7View commit details
Commits on Apr 11, 2023
-
Make star-randsrv build reproducibly.
This commit makes two changes: 1. Invoke kaniko with the flag '--custom-platform linux/amd64'. This is necessary when building star-randsrv on non-Linux, non-amd64 platforms like macOS. 2. Use an intermediate build layer to add start.sh. If we don't do this, we may end up with a build layer that contains inconsistent file permissions from the host operating system. With the above two changes, it's now possible to arrive at identical image IDs, even when building star-randsrv on Linux (amd64) and macOS (arm64).
Philipp Winter committedApr 11, 2023 Configuration menu - View commit details
-
Copy full SHA for 9cbcaef - Browse repository at this point
Copy the full SHA 9cbcaefView commit details
Commits on Apr 14, 2023
-
Merge pull request #55 from brave/reproducible-build
Make star-randsrv build reproducibly.
Philipp Winter authoredApr 14, 2023 Configuration menu - View commit details
-
Copy full SHA for 368be97 - Browse repository at this point
Copy the full SHA 368be97View commit details
Commits on Apr 17, 2023
-
Return 500 Internal Server Error on LockFailure
If this happens it indicates an internal problem with the state management, and the server likely needs to be restarted. Signal this so the more serious error case is obvious. Other error variants should be the result of bad client input and don't affect the usability of the service.
Configuration menu - View commit details
-
Copy full SHA for 8c5363c - Browse repository at this point
Copy the full SHA 8c5363cView commit details
Commits on Apr 18, 2023
-
Check for overflow incrementing the epoch.
The ppoprf epoch tag is a `u8`. When using the full epoch range 0..=255, the final increment would overflow. In debug builds this would panic. In release builds, it would roll over unchecked, then panic at the end of the next interval when it tried to puncture the already-punctured starting epoch value. In either case, the panic happened while the write lock was held, poisoning it. The tokio thread runner would catch the panic, but with the `RwLock` poisoned, it couldn't respond to further queries. Instead, check for overflow and use that to trigger key rotation, just as we do when the epoch is out of the configure range. This is more localized than promoting the epoch counter and range to u16 and narrowing at the ppoprf calls.
Configuration menu - View commit details
-
Copy full SHA for 64367e1 - Browse repository at this point
Copy the full SHA 64367e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2adf203 - Browse repository at this point
Copy the full SHA 2adf203View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f2fb25 - Browse repository at this point
Copy the full SHA 0f2fb25View commit details
Commits on Apr 19, 2023
-
github actions: remove golang config
The default makefile target just builds, tests, lints and audits the rust application, so we no longer need a go environment for this job.
Configuration menu - View commit details
-
Copy full SHA for e75c152 - Browse repository at this point
Copy the full SHA e75c152View commit details
Commits on Apr 20, 2023
-
Merge pull request #46 from brave/renovate/configure
Configure Renovate
Configuration menu - View commit details
-
Copy full SHA for 80ed097 - Browse repository at this point
Copy the full SHA 80ed097View commit details -
Don't deploy from the rust branch
This was for testing with the deployable container build pipeline during development. Remove before merging into the default branch since it will no longer be needed there.
Configuration menu - View commit details
-
Copy full SHA for 334bb06 - Browse repository at this point
Copy the full SHA 334bb06View commit details -
Don't checkout submodules for deployment builds.
I'm told this is no longer necessary as the pipeline is using a different solution.
Configuration menu - View commit details
-
Copy full SHA for ae95895 - Browse repository at this point
Copy the full SHA ae95895View commit details