Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
55c8cf7
Create new dsigner project
azixus May 1, 2025
2c47370
Expose `lagrange_points_interpolate_at` function
azixus May 1, 2025
9a7c3ad
Implement basic threshold signing service
azixus May 1, 2025
c73ee96
Add dockerfile and github actions
azixus May 1, 2025
d3d97f9
Reformat dsigner/src/main.rs
azixus May 5, 2025
a9c0814
Update docker-push-dsigner.yml to trigger on all branches
azixus May 6, 2025
f005157
fix: Add logging to dsigner
azixus May 6, 2025
ee58d04
Dirty patch to automatically sign messages, needs refactor
azixus May 6, 2025
e916d01
fix: Update dsigner default DST
azixus May 6, 2025
b739363
feat: Add performance log to dsigner
azixus May 6, 2025
2f3d0cb
Add flag to threshold signer for eager signing
azixus May 7, 2025
9701bb7
feat: Add tracing layer to axum
azixus May 8, 2025
82dcca4
feat: Add support for parallel identical requests to threshold signer
azixus May 8, 2025
8a4d5dc
fix: Use forge explicitely in dsigner dockerfile
azixus May 9, 2025
2ba67aa
Fix dsigner github action
azixus May 9, 2025
e1732a1
Apply linting recommendations
azixus May 16, 2025
d05258f
feat(dsigner): Add dsigner tests & linting to ci
azixus May 16, 2025
0cd7682
fix: Add env variable to increase the lru cache size
azixus May 16, 2025
a6c0ab6
chore: update dsigner's pk encoding
azixus May 17, 2025
eb38165
fix(dsigner): require nodes_config when n > 1 instead of t > 1
azixus May 20, 2025
2949814
fix: Only send partial through libp2p if threshold greater than 1
azixus May 20, 2025
3c54145
lint: fix format
azixus May 20, 2025
deda9a2
feat(rayon): first iteration of parallel signing
azixus May 21, 2025
963bbaf
fix: use workaround to log within span
azixus May 21, 2025
88a8b4a
lint: fix formatting
azixus May 21, 2025
70d7b35
docs: remove unnecessary comments
azixus Jun 2, 2025
0bdb439
ci: remove push dsigner on feat/dsigner
azixus Jun 2, 2025
a481754
docs: add comment on eager signing
azixus Jun 2, 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
78 changes: 78 additions & 0 deletions .github/workflows/push-dsigner-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: push-dsigner-docker
on:
push:
branches:
# all branches, docker image is only pushed on main
- "*"
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
pull_request:

env:
SERVICE_ACCOUNT: github@randamu-prod.iam.gserviceaccount.com
DOCKER_REGISTRY: europe-west1-docker.pkg.dev/randamu-prod/candyland
IMAGE_MAINTAINER: "Randamu"
IMAGE_VENDOR: "Randamu"

jobs:
build-and-push:
runs-on: "ubuntu-latest"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: 'recursive'
token: ${{ secrets.PAT_TOKEN }}

- name: Login to Artifact Registry
uses: docker/login-action@v3
with:
registry: europe-west1-docker.pkg.dev
username: _json_key
password: ${{ secrets.GCP_SERVICE_ACCOUNT_TOKEN }}

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_REGISTRY }}/dsigner
labels: |
maintainer=${{ env.IMAGE_MAINTAINER }}
org.opencontainers.image.title=dsigner
org.opencontainers.image.description="a distributed signing service"
org.opencontainers.image.vendor=${{ env.IMAGE_VENDOR }}
flavor: |
latest=false
prefix=
suffix=
tags: |
type=sha,prefix=
type=ref,event=branch,suffix=-latest,enable=${{ startsWith(github.ref, 'refs/heads/') }}
type=semver,pattern={{version}},event=tag,enable=${{ startsWith(github.ref, 'refs/tags/') }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
# this might not work at all, but might work and
# allow us to bypass dockerhub ratelimit
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["mirror.gcr.io"]
## this does work to avoid the dockerhub ratelimit
driver-opts: |
image=mirror.gcr.io/moby/buildkit:buildx-stable-1
network=host

- id: docker-push-tagged
name: Tag Docker image and push to Google Artifact Registry
uses: docker/build-push-action@v6
with:
push: ${{ github.ref == 'refs/heads/main' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
context: .
file: ./dsigner/Dockerfile
cache-from: |
type=registry,ref=${{ env.DOCKER_REGISTRY }}/dsigner-cache:${{ steps.meta.outputs.version }}
type=registry,ref=${{ env.DOCKER_REGISTRY }}/dsigner-cache:main-latest
cache-to: type=registry,ref=${{ env.DOCKER_REGISTRY }}/dsigner-cache:${{ steps.meta.outputs.version }},mode=max
7 changes: 7 additions & 0 deletions .github/workflows/rust-build-and-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,10 @@ jobs:
with:
working-directory: ./randomness-agent
target-folder: '../target'

# 6. Build and test dsigner
- name: dsigner
uses: ./.github/actions/rust-test-action
with:
working-directory: ./dsigner
target-folder: '../target'
4 changes: 2 additions & 2 deletions blocklock-agent/examples/blocklock/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,12 @@ async fn main() -> anyhow::Result<()> {

err = run_agent(&mut agent, ticker, decryption_sender_contract_ro) => {
eprintln!("agent stopped unexpectedly...");
err // return Result
err
},

err = start_api(config.healthcheck_listen_addr, config.healthcheck_port) => {
eprintln!("healthcheck stopped unexpectedly...");
err // return Result
err
}
};

Expand Down
31 changes: 31 additions & 0 deletions dcipher-agents/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions dcipher-agents/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name = "dcipher-agents"
version = "0.1.0"
edition = "2024"

[features]
rayon = ["dep:rayon"]

[dependencies]
pairing_utils = { path = "../marshmallow-crypto/pairing_utils" }
alloy = { version = "1.0", features = ["default", "provider-ws"] }
Expand All @@ -23,6 +26,7 @@ libp2p = { version = "0.55", features = ["tcp", "dns", "noise", "tokio", "ping",
lru = "0.14"
serde_cbor = "0.10"
prometheus = "0.14.0"
rayon = { version = "1.10", optional = true }

[dev-dependencies]
hex = "0.4"
Expand Down
4 changes: 2 additions & 2 deletions dcipher-agents/src/decryption_sender.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ where
CS: PairingIbeCipherSuite,
S: AsynchronousSigner<Bytes>,
TF: TransactionFulfiller<SignedRequest = SignedDecryptionRequest<'static>>,
DecryptionSenderAsyncSigner<CS, S, Bytes>:
DecryptionSenderAsyncSigner<CS, S>:
AsynchronousSigner<DecryptionRequest, Signature = SignedDecryptionRequest<'static>>,
{
/// Instantiate a [`DecryptionSenderFulfiller<RS, TF>`](DecryptionSenderFulfiller).
Expand All @@ -44,7 +44,7 @@ where
transaction_fulfiller: TF,
max_fulfillment_per_tick: usize,
retry_strategy: RetryStrategy,
) -> DecryptionSenderFulfiller<DecryptionSenderAsyncSigner<CS, S, Bytes>, TF> {
) -> DecryptionSenderFulfiller<DecryptionSenderAsyncSigner<CS, S>, TF> {
let signer = DecryptionSenderAsyncSigner::new(cs, signer);
TickerFulfiller::new(
signer,
Expand Down
Loading