Skip to content

Commit e19fdf7

Browse files
authored
Merge pull request #414 from EspressoSystems/ax/dkg
DKG integration
2 parents 3eb02fa + d784683 commit e19fdf7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+2160
-849
lines changed

Cargo.toml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,10 @@ rust-version = "1.85.0"
2727

2828
[workspace.dependencies]
2929
aes-gcm = { version = "0.10.3" }
30-
alloy-chains = "0.2.0"
31-
alloy-consensus = { version = "1.0.5", features = ["arbitrary", "k256"] }
32-
alloy-eips = "1.0.5"
33-
alloy-primitives = { version = "1.0.0", features = ["serde", "rlp"] }
34-
alloy-rlp = { version = "0.3.11", features = ["derive"] }
35-
alloy-signer = "1.0.5"
36-
alloy-signer-local = "1.0.5"
30+
alloy = { version = "1.0", features = ["default", "arbitrary", "k256", "serde", "rlp"] }
31+
alloy-chains = "0.2"
32+
# derive feature is not exposed via `alloy`, thus has to explicitly declare here
33+
alloy-rlp = { version = "0.3.12", features = ["derive"] }
3734
anyhow = "1.0.89"
3835
arbitrary = "1.4.1"
3936
arbtest = "0.3.2"
@@ -61,6 +58,7 @@ criterion = "0.7"
6158
crossbeam-queue = "0.3.11"
6259
data-encoding = "2.6.0"
6360
derive_builder = "0.20"
61+
derive_more = { version = "2.0", features = ["full"] }
6462
digest = "0.10"
6563
dyn-clone = "1.0.17"
6664
ed25519-compact = "2.1.1"

justfile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ run *ARGS:
8181
bench *ARGS:
8282
cargo bench --benches {{ARGS}} -- --nocapture
8383

84-
mkconfig_local NUM_NODES RPC_URL PARENT_CHAIN_ID PARENT_INBOX_ADDRESS *ARGS:
84+
mkconfig_local NUM_NODES *ARGS:
85+
just mkconfig_local_full {{NUM_NODES}} "https://theserversroom.com/ethereum/54cmzzhcj1o/" 1 "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f" {{ARGS}}
86+
87+
mkconfig_local_full NUM_NODES RPC_URL PARENT_CHAIN_ID PARENT_INBOX_ADDRESS *ARGS:
8588
cargo run --bin mkconfig -- -n {{NUM_NODES}} \
8689
--sailfish-base-addr "127.0.0.1:8000" \
8790
--decrypt-base-addr "127.0.0.1:10000" \
@@ -91,9 +94,11 @@ mkconfig_local NUM_NODES RPC_URL PARENT_CHAIN_ID PARENT_INBOX_ADDRESS *ARGS:
9194
--parent-chain-id {{PARENT_CHAIN_ID}} \
9295
--parent-ibox-contr-addr {{PARENT_INBOX_ADDRESS}} \
9396
--mode "increment-port" {{ARGS}} | jq
94-
9597

96-
mkconfig_docker NUM_NODES RPC_URL PARENT_CHAIN_ID PARENT_INBOX_ADDRESS *ARGS:
98+
mkconfig_docker NUM_NODES *ARGS:
99+
just mkconfig_docker_full {{NUM_NODES}} "https://theserversroom.com/ethereum/54cmzzhcj1o/" 1 "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f" {{ARGS}}
100+
101+
mkconfig_docker_full NUM_NODES RPC_URL PARENT_CHAIN_ID PARENT_INBOX_ADDRESS *ARGS:
97102
cargo run --bin mkconfig -- -n {{NUM_NODES}} \
98103
--sailfish-base-addr "172.20.0.2:8000" \
99104
--decrypt-base-addr "172.20.0.2:8001" \

multisig/src/committee.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ impl Committee {
6767
self.parties.contains_right(k)
6868
}
6969

70+
/// Checks if a key ID is part of the committee.
71+
pub fn contains_index(&self, idx: &KeyId) -> bool {
72+
self.parties.contains_left(idx)
73+
}
74+
7075
/// Returns an iterator over all entries in the committee.
7176
pub fn entries(&self) -> impl Iterator<Item = (KeyId, &PublicKey)> {
7277
self.parties.iter().map(|e| (*e.0, e.1))

scripts/run-timeboost-demo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ for (( i=0; i<$nodes; i++ )); do
124124
--until $rounds
125125
--keyset-file $keyset_file
126126
--stamp "${stamp}-$i.sf"
127-
--watchdog-timeout $rounds
127+
--watchdog-timeout 100
128128
--namespace $namespace)
129129

130130
if $ignore_stamp; then

test-configs/docker.json

Lines changed: 32 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,109 +5,100 @@
55
"decrypt_address": "172.20.0.2:8001",
66
"certifier_address": "172.20.0.2:8002",
77
"internal_address": "172.20.0.2:5000",
8-
"signing_key": "cFWjP2VX3nr1xiCLNVfPPePcSe8Yq2iFUeceWVm4sRfR",
9-
"dh_key": "BfKCc3miLCnHmyQ3bsJjnqL2W46gLGmua8LaspFLw774",
8+
"signing_key": "eiwaGN1NNaQdbnR9FsjKzUeLghQZsTLPjiL4RcQgfLoX",
9+
"dh_key": "AZrLbV37HAGhBWh49JHzup6Wfpu2AAGWGJJnxCDJibiY",
1010
"chain_config": {
1111
"parent_chain_id": 1,
1212
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
1313
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
1414
"parent_block_tag": "finalized"
1515
},
16-
"enc_key": "8t8u3oUC4Eq2LCMqkEBePPHd9DcMjXjEEmTCVJps3XAbT6SyHHbVQpbebRtpBkshbdX",
16+
"enc_key": "8t9PdQ61NwF9n7RU1du43C95ndSs6jn2EM7gRCfutVo2YXh6dyXAJiEWhpfYtPUv9gK",
1717
"private": {
18-
"signing_key": "GLHjASHgoV6nYosAW7BPFzw5HcbL6FDsGnGE6mSFz3So",
19-
"dh_key": "3Cg1BYXBCEHEw8VgNS6wNUpHRDb2K7SYW5i1Vx9t4d4A",
20-
"dec_share": "jtpPGMk388FeDDGDbuWz54QdieLaafK9nVjPajkfK1oV8B",
21-
"dec_key": "AhyJxurLFNmAfG3FC7d3vVcYBMYHmXrWBLxm1ZhLdt15s"
18+
"signing_key": "3hzb3bRzn3dXSV1iEVE6mU4BF2aS725s8AboRxLwULPp",
19+
"dh_key": "BB3zUfFQGfw3sL6bpp1JH1HozK6ehEDmRGoiCpQH62rZ",
20+
"dec_key": "AgrGYiNQMqPpLgwPTuCV5aww6kpcoAQnf4xuFukTEtkL1"
2221
}
2322
},
2423
{
2524
"sailfish_address": "172.20.0.3:8000",
2625
"decrypt_address": "172.20.0.3:8001",
2726
"certifier_address": "172.20.0.3:8002",
2827
"internal_address": "172.20.0.3:5000",
29-
"signing_key": "t6zZYEsKxvLJ5nTmc3o89TsgiHXhcDRzp7awiQe1VarF",
30-
"dh_key": "HpyaTF3W9ojLXnhXp45yX6hRv84kEcL6DdCXqMjWyx9H",
28+
"signing_key": "vGKKAxVNfkSCdn8qh36nXdSZqyhPq644sQBoeZtcEUCR",
29+
"dh_key": "FHTJAk6oyt3jefEp1ZrPEn2MkqRt2LibEFd57AnEUZdb",
3130
"chain_config": {
3231
"parent_chain_id": 1,
3332
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
3433
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
3534
"parent_block_tag": "finalized"
3635
},
37-
"enc_key": "8sqvMrt4fLi17XuNaop4EtYDLWVZKriVwZvC3oRWZqPHfhG21REuYCqD7Qs2Uxxkjmt",
36+
"enc_key": "8tZm3csZSNQNSXzajHQicr1Yh9Xn66eurdDCqVJGTszebCVA7o8s9LQ1PfNVQLrPrHb",
3837
"private": {
39-
"signing_key": "5DXo2QBDRkvytUNU7E8bP3RTFt4bAVMbLo6NwG5BCxwf",
40-
"dh_key": "F1Fhpfg9iaEcyLgV2gTjEhV49Ca765ZrmSNRr35CLyTc",
41-
"dec_share": "jvXcefZBVD4ZrPzGkbs6U4RFNJXfn5Pvr8uz7ftDUT2B2x",
42-
"dec_key": "AY9fDz8szrVP5Jn6TWUpPF4NsjgJtyiDpDqy4pVEwcPHG"
38+
"signing_key": "FWJzNGvEjFS3h1N1sSMkcvvroWwjT5LQuGkGHu9JMAYs",
39+
"dh_key": "4hjtciEvuoFVT55nAzvdP9E76r18QwntWwFoeginCGnP",
40+
"dec_key": "Afn2hPWpcvMnRp7uRdPPpmTMgjgJfejjULpg7wr5v62qt"
4341
}
4442
},
4543
{
4644
"sailfish_address": "172.20.0.4:8000",
4745
"decrypt_address": "172.20.0.4:8001",
4846
"certifier_address": "172.20.0.4:8002",
4947
"internal_address": "172.20.0.4:5000",
50-
"signing_key": "hSUkBdDbsQYXSo61a16ooTpKMNoXa6jHVCxQRFQsgA6K",
51-
"dh_key": "8MqFhjj7MCLd9aBnNxcxYL3MNWXTrGnZPAQmiS9rZwkj",
48+
"signing_key": "264jMLf85hfufg4ck97Hw2jiL6i1PHNoGUqxUqfhtssaE",
49+
"dh_key": "63eYNKoW2PsWZFhHHj3eZwHTdPE7gEjEDM7gGeDf9Uaj",
5250
"chain_config": {
5351
"parent_chain_id": 1,
5452
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
5553
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
5654
"parent_block_tag": "finalized"
5755
},
58-
"enc_key": "8sNzQskLRfaqZFNXvQBVELxcvwWanbK163kCzEWbPPXuCXmdFJxiRtebgDFGY9C3BQ2",
56+
"enc_key": "8rnMdtoAnvm7e8WZjERVtgnHQSiSRe4nbvHijE9RozRBJczci1J7amqR8G4EArDtVDd",
5957
"private": {
60-
"signing_key": "4t3spjdo65wuLotqbprCuqZkc9vKeX1vG42WXcQVxB7n",
61-
"dh_key": "HP6rcYxjJJZRU977j451b14pVFsKhA1jQS67xMnmJzwb",
62-
"dec_share": "k5WWS4c84DRQcYNnCD52EHze3BN1atCeZaDDBZDAj4ygh7",
63-
"dec_key": "AoGYqobfy3LdmQCJYvwa5qgzNuQZJAkv8kpXS11yVBTct"
58+
"signing_key": "2yWTaC6MWvNva97t81cd9QX5qph68NnB1wRVwAChtuGr",
59+
"dh_key": "Fo2nYV4gE9VfoVW9bSySAJ1ZuKT461x6ovZnr3EecCZg",
60+
"dec_key": "AcTyyLHHyWsy1B4DVGsmBXkxu3JR8ZLZfE2LC4XTjTzdM"
6461
}
6562
},
6663
{
6764
"sailfish_address": "172.20.0.5:8000",
6865
"decrypt_address": "172.20.0.5:8001",
6966
"certifier_address": "172.20.0.5:8002",
7067
"internal_address": "172.20.0.5:5000",
71-
"signing_key": "24cTPvzRpFg66MgLBVgVweBbBYfBXSsvKkDMVGn3emrBX",
72-
"dh_key": "3DV38qeRns1HMGnunM5nh43VT6Gem5RWcfhR8WsCF4md",
68+
"signing_key": "v6UBdLT5BvMhLW7iKv7M2xYeaW2SCAsnZ5PiSg6AaKfA",
69+
"dh_key": "Do2GmAexW5MUdD8nToDiBWGbDgk1AwXoxtLTyirDtKQh",
7370
"chain_config": {
7471
"parent_chain_id": 1,
7572
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
7673
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
7774
"parent_block_tag": "finalized"
7875
},
79-
"enc_key": "8rgbWzpAr4XQ6kPujBGu7Rtd4446yie6veyPibQ3siwPi2nZ7GmPQyPtrpjYM1KMfmA",
76+
"enc_key": "8tLK2zC3ZTA5Kw3jbXar4PxrS22SvFxu3o2xEoGfRjD81jsFb6Xc1G8GXjP79CKntmg",
8077
"private": {
81-
"signing_key": "HaAZSPmqXU7WeSV4GHRrKxAbQbfavjdKMsNNr3iokBKQ",
82-
"dh_key": "4fkTjw5Wc8QJ7XvBrpC9e2FVabQWh8pyApPsftYNWoNK",
83-
"dec_share": "kFnSX9ZrtSwni4qJnj11hVGRgJPPGGNJzWJzFGo3TRAkrv",
84-
"dec_key": "AhNdCUJJ2SQpk7QXaQPSTxLXPwJ3RYsPyCC2gxmK89amJ"
78+
"signing_key": "CUpkbkn8bix7ZrbztPKJwu66MRpJrc1Wr2JfdrhetASk",
79+
"dh_key": "5KpixkV7czZTDVh7nV7VL1vGk4uf4kjKidDWq34CJx1T",
80+
"dec_key": "AdGeUNYGN7B3X2XpNbj147rsqaVYSYeEAjYgWdSBPGSBw"
8581
}
8682
},
8783
{
8884
"sailfish_address": "172.20.0.6:8000",
8985
"decrypt_address": "172.20.0.6:8001",
9086
"certifier_address": "172.20.0.6:8002",
9187
"internal_address": "172.20.0.6:5000",
92-
"signing_key": "sEQowoeC6wmspaRtdnwuUsJJSjDjbLfeJ91NahakP8UL",
93-
"dh_key": "CaQtrMfF9jYkaqojXNXvQarpdidqKC6EBsp2encSGUEJ",
88+
"signing_key": "tV66KknkDH47hRSNzwJtt7Q7EZtxVxQsNnUGoAJdDn6J",
89+
"dh_key": "HXaesvEGFiDgrVTix1fKzSLTarFexTZSJD6ymSrF7vPL",
9490
"chain_config": {
9591
"parent_chain_id": 1,
9692
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
9793
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
9894
"parent_block_tag": "finalized"
9995
},
100-
"enc_key": "8szoc1NpsEJ9yrSWkACD4AsgCRWAECk6t3aHJiG6jhbDPvGPXhDT4VvNT1qNbwY46oT",
96+
"enc_key": "8sAr1CcnzuMv61MwqQm6EGNPG4ajT6VssCC2ZndZUDjnyq6TngHcB6g8bnesCZ9FG7X",
10197
"private": {
102-
"signing_key": "83ukobY6K8bez7sKygeny77pUtVxpysv9iShg9XciYJw",
103-
"dh_key": "PLzz2H312hro83W5dPafH5U8KV6CYFRWK3TkG2JQ8zM",
104-
"dec_share": "jfNdD2jUd7C7YPJM8UdxsXYp6nmBvtDsiGpyBZWfmLTqaB",
105-
"dec_key": "AZy7zjJYeC3SrFnAW6rQbfGibaoGK3oWDUSK6aoqoh1Yf"
98+
"signing_key": "6LMMEuoPRCkpDsnxnANCRCBC6JagdCHs2pjNicdmQpQE",
99+
"dh_key": "39wAn3bQzpn19oa8CiaNUFd8GekQAJMMuzrbp8Jt3FKz",
100+
"dec_key": "Amc4mvBfcBDsQziud5cvm1i9RnJ5KQRXNdNetq4fsJb76"
106101
}
107102
}
108-
],
109-
"dec_keyset": {
110-
"pubkey": "8s1BnVvpDyjMBFQ4GaxZaTXqMM6GfXPH3GvNvRF1WRM9YjGX7aq9cB2yzpEp441mzGL",
111-
"combkey": "y73TXULnigrNdJ4L2XHSVwdMVYm7pER7CmXJEbbCLNrsdfgHY9mCEU6ZzHRLunCZbdp5Ge8Z6e14Tjq6AUrZZs5xfT2VjAPkH7tpfoYxHcfn85DshZPDxhagecoTkGPRQVY2UgZ5wW8QsVZNtLNyJbKDpuebrnDCJ5iPYVX8SGHfUkVXr84vwCyZCXDtNNddzHvqFqpoZitCagV7afrED5A4Rg3vznmZnLYBDsKg35hrzCsd4YiKyy4GxbrhZHWUyufDfoSi9YjADkf7tdtbQWk7VYTo1ahKevuJhnGScJsg4GJm1gMjYxFyEgf3jwDY8s5zMcmzw7a38Jf"
112-
}
113-
}
103+
]
104+
}

0 commit comments

Comments
 (0)