Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
05d415b
Start implementing lambda function
tcerqueira Jun 24, 2024
fdf97d1
Migrate to axum with simple example
tcerqueira Jul 2, 2024
55710d9
Implement remix endpoint
tcerqueira Jul 2, 2024
9b72a62
Swap spawn_blocking for rayon thread pool
tcerqueira Jul 3, 2024
4526842
Add benchmarks for json (de)serialization
tcerqueira Jul 3, 2024
b9a1cfa
Add Request/Response benchmark
tcerqueira Jul 4, 2024
b994e2d
Add decode bits in tests
tcerqueira Jul 4, 2024
68e4afa
Improve performance of release profile
tcerqueira Jul 4, 2024
e4b09f0
Add mimalloc as global allocator
tcerqueira Jul 4, 2024
8c88031
Optimize deserialize for expected size
tcerqueira Jul 5, 2024
b6c3b21
Improve error handling
tcerqueira Jul 5, 2024
0da65df
Add parallel requests benchmark
tcerqueira Jul 5, 2024
5771c60
Test profiling
tcerqueira Jul 8, 2024
dcbcf69
Add auth middleware
tcerqueira Jul 9, 2024
ce7aa1c
Use standard Authorization header instead of custom
tcerqueira Jul 10, 2024
4703e43
Set a request body size limit
tcerqueira Jul 10, 2024
138f8e6
Add tracing
tcerqueira Jul 10, 2024
98f74d1
Make AppState clone cheaper
tcerqueira Jul 15, 2024
2dde117
Restructure mix node modules
tcerqueira Jul 16, 2024
bbd1dbc
Setup gRPC PoC
tcerqueira Jul 16, 2024
a5faf97
Restruscture integration tests
tcerqueira Jul 18, 2024
bc49faf
Add protoc to CI
tcerqueira Jul 18, 2024
bced145
Implement mix node for gRPC version
tcerqueira Jul 18, 2024
01bc502
Add gRPC tests
tcerqueira Jul 19, 2024
96cc13e
Add benchmarks for gRPC implementation
tcerqueira Jul 22, 2024
d0646e1
Clean up BitVec code
tcerqueira Jul 23, 2024
1fc0d44
Fix benchmark github action
tcerqueira Jul 23, 2024
b6f8d64
Add protoc optional flag
tcerqueira Jul 29, 2024
9e569d8
Start thash algorithm
tcerqueira Jul 29, 2024
15a7764
Update dependencies
tcerqueira Jul 29, 2024
e1582cb
Add tracing to gRPC
tcerqueira Jul 30, 2024
53c3435
Add auth to gRPC app
tcerqueira Jul 30, 2024
982a597
Restructure modules
tcerqueira Aug 1, 2024
fd3c2c6
Restructure grpc module
tcerqueira Aug 1, 2024
f50e7b7
Set up database
tcerqueira Aug 2, 2024
4dc96ac
Add CI cache for test and bench jobs
tcerqueira Aug 2, 2024
6a34be6
Add benchmarks for 10 bit codes
tcerqueira Aug 5, 2024
3d1c409
Add elastic-elgamal remix implementation
tcerqueira Aug 8, 2024
1bfb09d
Add tests to elastic-remix endpoint
tcerqueira Aug 8, 2024
7ad2c41
Add benchmarks for elastic-elgamal implementation
tcerqueira Aug 9, 2024
8960c46
Add benchmark including decrypt and hamming
tcerqueira Aug 28, 2024
59dc950
Add config support
tcerqueira Aug 30, 2024
355c987
Add secrecy to hide secrets
tcerqueira Sep 2, 2024
e044d5d
Remove thash playground
tcerqueira Sep 2, 2024
9a88759
Half baked participant support
tcerqueira Sep 4, 2024
7e91f2b
Update dependencies and ignore yaml-rust advisories
tcerqueira Sep 4, 2024
adaa4d4
Generate keys and update config
tcerqueira Sep 4, 2024
2cf35d5
Add crypto state for threshold crypto
tcerqueira Sep 6, 2024
def9b44
Add encrypt and decrypt routes
tcerqueira Sep 9, 2024
6b5c033
Clean up
tcerqueira Sep 18, 2024
64bc082
Fix decryption error reporting
tcerqueira Sep 18, 2024
f37ee6d
Use URL for participants
tcerqueira Sep 19, 2024
939e2fc
Type alias for Ciphertext
tcerqueira Sep 24, 2024
89c044f
Hamming distance working but really sloppy
tcerqueira Sep 25, 2024
412078a
Use BitVec for payloads
tcerqueira Oct 8, 2024
9577d7d
Set up demo
tcerqueira Oct 8, 2024
bb9e3e8
Cleanup and improve observability
tcerqueira Mar 31, 2025
ae13205
Update dependencies, 2024 update blocked by elatic-elgamal crate
tcerqueira Mar 31, 2025
0547456
Clean up
tcerqueira Apr 4, 2025
d975a4e
Add more docs
tcerqueira Apr 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[build]
rustflags = ["-Ctarget-cpu=native"]

[alias]
# E.g. CARGO_PROFILE_BENCH_DEBUG=true cargo profile-bench mix_node
profile-bench = "flamegraph --root --bench"
profile-test = "flamegraph --root --test"
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DATABASE_URL=postgres://username:password@localhost/iris-codes
10 changes: 4 additions & 6 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
name: Security audit
on:
schedule:
- cron: '0 0 * * *'
- cron: "0 0 * * *"
push:
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
- "**/Cargo.toml"
- "**/Cargo.lock"
workflow_dispatch:
branches:
- master

jobs:
security_audit:
Expand All @@ -17,4 +15,4 @@ jobs:
- uses: actions/checkout@v3
- uses: taiki-e/install-action@cargo-deny
- name: Scan for vulnerabilities
run: cargo deny check advisories
run: cargo deny check advisories
35 changes: 28 additions & 7 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@ on:
push:
branches:
- master
pull_request:
types: [ opened, synchronize, reopened ]
branches:
- master
workflow_dispatch:
branches:
- master

env:
CARGO_TERM_COLOR: always
Expand All @@ -18,7 +12,34 @@ jobs:
bench:
name: Bench
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
POSTGRES_DB: iris-codes
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo bench
- uses: arduino/setup-protoc@v3
- uses: baptiste0928/cargo-install@v3
with:
crate: sqlx-cli
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Run migrations
run: sqlx migrate run --source mix-node/migrations
env:
DATABASE_URL: postgres://username:password@localhost/iris-codes
- run: cargo bench
38 changes: 32 additions & 6 deletions .github/workflows/general.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@ on:
branches:
- master
pull_request:
types: [ opened, synchronize, reopened ]
types: [opened, synchronize, reopened]
branches:
- master
workflow_dispatch:
branches:
- master

env:
CARGO_TERM_COLOR: always
Expand All @@ -18,11 +16,38 @@ jobs:
test:
name: Test
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
POSTGRES_DB: iris-codes
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: arduino/setup-protoc@v3
- uses: baptiste0928/cargo-install@v3
with:
crate: sqlx-cli
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Run migrations
run: sqlx migrate run --source mix-node/migrations
env:
DATABASE_URL: postgres://username:password@localhost/iris-codes
- run: cargo test --all-features

fmt:
name: Rustfmt
runs-on: ubuntu-latest
Expand All @@ -33,7 +58,7 @@ jobs:
components: rustfmt
- name: Enforce formatting
run: cargo fmt --check

clippy:
name: Clippy
runs-on: ubuntu-latest
Expand All @@ -42,5 +67,6 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: arduino/setup-protoc@v3
- name: Linting
run: cargo clippy -- -D warnings
run: cargo clippy -- -D warnings
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
/target

# Profiling
*flamegraph.svg
*.stacks
Loading