Skip to content

Commit a09b4a4

Browse files
authored
Merge branch 'main' into main
2 parents a464629 + 3295621 commit a09b4a4

Some content is hidden

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

59 files changed

+2976
-849
lines changed

Cargo.toml

Lines changed: 7 additions & 9 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"
@@ -57,10 +54,11 @@ bytes = { version = "1.8.0", features = ["serde"] }
5754
clap = { version = "4", features = ["derive", "env"] }
5855
committable = "0.2"
5956
constant_time_eq = "0.4"
60-
criterion = "0.6"
57+
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"
@@ -86,7 +84,7 @@ serde_with = "3.12.0"
8684
sha2 = { version = "0.10", default-features = false }
8785
sha3 = "0.10.8"
8886
smallvec = "1.15.1"
89-
snow = "0.9.6"
87+
snow = "0.10.0"
9088
spongefish = { git = "https://github.com/arkworks-rs/spongefish.git", rev = "e9f7031", features = [
9189
"arkworks-algebra",
9290
] }

cliquenet/src/net.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,7 @@ where
871871
fn spawn_handshake(&mut self, s: T::Stream) {
872872
let h = Builder::new(NOISE_PARAMS.parse().expect("valid noise params"))
873873
.local_private_key(&self.keypair.secret_key().as_bytes())
874+
.expect("valid private key")
874875
.build_responder()
875876
.expect("valid noise params yield valid handshake state");
876877
self.handshake_tasks.spawn(async move {
@@ -963,7 +964,9 @@ async fn connect<T: tcp::Stream + Unpin>(
963964
let new_handshake_state = || {
964965
Builder::new(NOISE_PARAMS.parse().expect("valid noise params"))
965966
.local_private_key(this.1.secret_key().as_slice())
967+
.expect("valid private key")
966968
.remote_public_key(to.1.as_slice())
969+
.expect("valid remote pub key")
967970
.build_initiator()
968971
.expect("valid noise params yield valid handshake state")
969972
};

docker-compose.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ services:
88
"--rpc-port", "8800",
99
"--metrics-port", "9000",
1010
"--keyset-file", "docker.json",
11-
"--stamp", "/tmp/timeboost.stamp"
11+
"--stamp", "/tmp/timeboost.stamp",
12+
"--namespace", "10101",
1213
]
1314
networks:
1415
timeboost:
@@ -35,7 +36,8 @@ services:
3536
"--rpc-port", "8800",
3637
"--metrics-port", "9000",
3738
"--keyset-file", "docker.json",
38-
"--stamp", "/tmp/timeboost.stamp"
39+
"--stamp", "/tmp/timeboost.stamp",
40+
"--namespace", "10101",
3941
]
4042
networks:
4143
timeboost:
@@ -62,7 +64,8 @@ services:
6264
"--rpc-port", "8800",
6365
"--metrics-port", "9000",
6466
"--keyset-file", "docker.json",
65-
"--stamp", "/tmp/timeboost.stamp"
67+
"--stamp", "/tmp/timeboost.stamp",
68+
"--namespace", "10101",
6669
]
6770
networks:
6871
timeboost:
@@ -89,7 +92,8 @@ services:
8992
"--rpc-port", "8800",
9093
"--metrics-port", "9000",
9194
"--keyset-file", "docker.json",
92-
"--stamp", "/tmp/timeboost.stamp"
95+
"--stamp", "/tmp/timeboost.stamp",
96+
"--namespace", "10101",
9397
]
9498
networks:
9599
timeboost:
@@ -116,7 +120,8 @@ services:
116120
"--rpc-port", "8800",
117121
"--metrics-port", "9000",
118122
"--keyset-file", "docker.json",
119-
"--stamp", "/tmp/timeboost.stamp"
123+
"--stamp", "/tmp/timeboost.stamp",
124+
"--namespace", "10101",
120125
]
121126
networks:
122127
timeboost:

docker/yapper.Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ FROM debian:bullseye-slim
1212

1313
WORKDIR /app
1414

15+
RUN apt update && apt-get install -y libcurl4
16+
1517
# Create non-root user and group
1618
RUN groupadd -r appgroup && useradd -r -g appgroup yapperuser
1719

justfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,31 @@ bench *ARGS:
8282
cargo bench --benches {{ARGS}} -- --nocapture
8383

8484
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" \
8891
--certifier-base-addr "127.0.0.1:11000" \
8992
--internal-base-addr "127.0.0.1:5000" \
93+
--parent-rpc-url {{RPC_URL}} \
94+
--parent-chain-id {{PARENT_CHAIN_ID}} \
95+
--parent-ibox-contr-addr {{PARENT_INBOX_ADDRESS}} \
9096
--mode "increment-port" {{ARGS}} | jq
9197

9298
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:
93102
cargo run --bin mkconfig -- -n {{NUM_NODES}} \
94103
--sailfish-base-addr "172.20.0.2:8000" \
95104
--decrypt-base-addr "172.20.0.2:8001" \
96105
--certifier-base-addr "172.20.0.2:8002" \
97106
--internal-base-addr "172.20.0.2:5000" \
107+
--parent-rpc-url {{RPC_URL}} \
108+
--parent-chain-id {{PARENT_CHAIN_ID}} \
109+
--parent-ibox-contr-addr {{PARENT_INBOX_ADDRESS}} \
98110
--mode "increment-address" {{ARGS}} | jq
99111

100112
####################

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: 61 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,79 +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": "mabJfy2xVRAFtHjESot4L94B6rXnnC3PJt45JTaFxMaE",
9-
"dh_key": "EJNBd8TbipWa7KTUxeRhRG38AVmHpugEfGZaD5BmLfbk",
10-
"enc_key": "8tBQZfJHAHx6jjSSWbP3Y332mGZd3Zf2xyNchCANTFYNYRqPMnaPTkHVdK8zcJ9BEqs",
8+
"signing_key": "eiwaGN1NNaQdbnR9FsjKzUeLghQZsTLPjiL4RcQgfLoX",
9+
"dh_key": "AZrLbV37HAGhBWh49JHzup6Wfpu2AAGWGJJnxCDJibiY",
10+
"chain_config": {
11+
"parent_chain_id": 1,
12+
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
13+
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
14+
"parent_block_tag": "finalized"
15+
},
16+
"enc_key": "8t9PdQ61NwF9n7RU1du43C95ndSs6jn2EM7gRCfutVo2YXh6dyXAJiEWhpfYtPUv9gK",
1117
"private": {
12-
"signing_key": "8Z37mrH658eN89GSecRLfyxNNKZMH782du7M3XYP2X6U",
13-
"dh_key": "5L5AaqFYZVDKAgb9zjj9G9MpPuA2c9LheRWTSzUPBynV",
14-
"dec_share": "j8TwNjSeTV4zQuWpQt1mzSriNpoxAB47fj6Traqm6bGPUs",
15-
"dec_key": "AYfiNqLSeVgvadjhfeqGSQhVYgbiW5BYqmaBwBNSPXQuQ"
18+
"signing_key": "3hzb3bRzn3dXSV1iEVE6mU4BF2aS725s8AboRxLwULPp",
19+
"dh_key": "BB3zUfFQGfw3sL6bpp1JH1HozK6ehEDmRGoiCpQH62rZ",
20+
"dec_key": "AgrGYiNQMqPpLgwPTuCV5aww6kpcoAQnf4xuFukTEtkL1"
1621
}
1722
},
1823
{
1924
"sailfish_address": "172.20.0.3:8000",
2025
"decrypt_address": "172.20.0.3:8001",
2126
"certifier_address": "172.20.0.3:8002",
2227
"internal_address": "172.20.0.3:5000",
23-
"signing_key": "rutfSyh5UWrijiYZqCKTWa7BnoZpyb9grbWFqcyR1Q2d",
24-
"dh_key": "Gx95VSY3eXaUK8HQmhGWooonDsx8Mn7RJ6Zcx4hsLTdh",
25-
"enc_key": "8s6ZT3ewef135iprpmUPxQWKXQfSPLig8rhHV4n9UBXbhwThX4Zfb6vii3h5LYE3xoh",
28+
"signing_key": "vGKKAxVNfkSCdn8qh36nXdSZqyhPq644sQBoeZtcEUCR",
29+
"dh_key": "FHTJAk6oyt3jefEp1ZrPEn2MkqRt2LibEFd57AnEUZdb",
30+
"chain_config": {
31+
"parent_chain_id": 1,
32+
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
33+
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
34+
"parent_block_tag": "finalized"
35+
},
36+
"enc_key": "8tZm3csZSNQNSXzajHQicr1Yh9Xn66eurdDCqVJGTszebCVA7o8s9LQ1PfNVQLrPrHb",
2637
"private": {
27-
"signing_key": "DVZ8rAB6XYyvmXHimaUAhFR6Rp3hkcYPUYWrMEorx9hB",
28-
"dh_key": "6F6jMUgJKGbDskXJftqGdKz3e1Z5v58L9KSxFkz5y16p",
29-
"dec_share": "k86XXDcJHoCpNswo9uUqfz3TjubgyJDVu13YphkPSQHXAp",
30-
"dec_key": "AYAZyCqddyB1zrtJVkkepDgcFqsCY1fMgj3SVVtNt2rqx"
38+
"signing_key": "FWJzNGvEjFS3h1N1sSMkcvvroWwjT5LQuGkGHu9JMAYs",
39+
"dh_key": "4hjtciEvuoFVT55nAzvdP9E76r18QwntWwFoeginCGnP",
40+
"dec_key": "Afn2hPWpcvMnRp7uRdPPpmTMgjgJfejjULpg7wr5v62qt"
3141
}
3242
},
3343
{
3444
"sailfish_address": "172.20.0.4:8000",
3545
"decrypt_address": "172.20.0.4:8001",
3646
"certifier_address": "172.20.0.4:8002",
3747
"internal_address": "172.20.0.4:5000",
38-
"signing_key": "29qEaVvt87rxxyAHZ4NRf3JunuAPDhvmrcp1R1MXGAqiU",
39-
"dh_key": "2ejy4LEdETjHSGb8TyB9BQGAtjkFryCkRu6P8fzYmDPJ",
40-
"enc_key": "8sKWDkvTz9isARzTwuoYuGZqq9W79XV4rF3cmymCQn1RQNDzcwCLoFumb72Mi4e5qMV",
48+
"signing_key": "264jMLf85hfufg4ck97Hw2jiL6i1PHNoGUqxUqfhtssaE",
49+
"dh_key": "63eYNKoW2PsWZFhHHj3eZwHTdPE7gEjEDM7gGeDf9Uaj",
50+
"chain_config": {
51+
"parent_chain_id": 1,
52+
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
53+
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
54+
"parent_block_tag": "finalized"
55+
},
56+
"enc_key": "8rnMdtoAnvm7e8WZjERVtgnHQSiSRe4nbvHijE9RozRBJczci1J7amqR8G4EArDtVDd",
4157
"private": {
42-
"signing_key": "5eePPupbhTkbL6LhkMEMVch2X31U8LJPVUbVBccbdY15",
43-
"dh_key": "HqhMHhfMZCDzCsWD3TqfndoyJCCkopRWQzXDcfvBv98U",
44-
"dec_share": "jAfEdJ6VBd47g1FBpaENRyJvdQRGr9mAXMPhsN73QcMoBP",
45-
"dec_key": "AjbUxitqpbrKLSazegdRJgfZQLqzZDfCvSob3w4Q928jb"
58+
"signing_key": "2yWTaC6MWvNva97t81cd9QX5qph68NnB1wRVwAChtuGr",
59+
"dh_key": "Fo2nYV4gE9VfoVW9bSySAJ1ZuKT461x6ovZnr3EecCZg",
60+
"dec_key": "AcTyyLHHyWsy1B4DVGsmBXkxu3JR8ZLZfE2LC4XTjTzdM"
4661
}
4762
},
4863
{
4964
"sailfish_address": "172.20.0.5:8000",
5065
"decrypt_address": "172.20.0.5:8001",
5166
"certifier_address": "172.20.0.5:8002",
5267
"internal_address": "172.20.0.5:5000",
53-
"signing_key": "2AMEFVNCANpdauEh59emL2oPtcQYdn8qqNbTBYDGGrKsW",
54-
"dh_key": "F3TaCT3u4jVNi825XgV3J7LxXyCFtkL7BkwbRSFG5JGb",
55-
"enc_key": "8s1vYUWqyZxUokRNq38AK63dkJ2kgritDpEHbt3diy24v31RDdsKdRwjhyai11AyboP",
68+
"signing_key": "v6UBdLT5BvMhLW7iKv7M2xYeaW2SCAsnZ5PiSg6AaKfA",
69+
"dh_key": "Do2GmAexW5MUdD8nToDiBWGbDgk1AwXoxtLTyirDtKQh",
70+
"chain_config": {
71+
"parent_chain_id": 1,
72+
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
73+
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
74+
"parent_block_tag": "finalized"
75+
},
76+
"enc_key": "8tLK2zC3ZTA5Kw3jbXar4PxrS22SvFxu3o2xEoGfRjD81jsFb6Xc1G8GXjP79CKntmg",
5677
"private": {
57-
"signing_key": "AwcuSRqcPwP9Ndjt662Vbe3g2vh583sX7YJDhjBuALTk",
58-
"dh_key": "9KLJY1ajLULibT5Kf5oUjtGEezB8ZGvK2wj8WcJdjBde",
59-
"dec_share": "jVpgaAMtNEiSAqmCXzP2qJ2tV76cfQ4DVyBRQKta1xjR9L",
60-
"dec_key": "AjbCfqk49STyaHEwwesBCaScnMZdabvGuceZgxhHTESe9"
78+
"signing_key": "CUpkbkn8bix7ZrbztPKJwu66MRpJrc1Wr2JfdrhetASk",
79+
"dh_key": "5KpixkV7czZTDVh7nV7VL1vGk4uf4kjKidDWq34CJx1T",
80+
"dec_key": "AdGeUNYGN7B3X2XpNbj147rsqaVYSYeEAjYgWdSBPGSBw"
6181
}
6282
},
6383
{
6484
"sailfish_address": "172.20.0.6:8000",
6585
"decrypt_address": "172.20.0.6:8001",
6686
"certifier_address": "172.20.0.6:8002",
6787
"internal_address": "172.20.0.6:5000",
68-
"signing_key": "yoqYPL1jTuRBYA1qybsVGMhNxupKnNbUpww1sVyZTDri",
69-
"dh_key": "B1QAv777X99KG2xQEZCSk8iEHZsJT7sx7NhSBCuXdg9U",
70-
"enc_key": "8sNCrh45MBdubPvZPuEvvqGHVpsWEhFZukyBG6g2cgjPEkRgxGtj7YDeCvMxmz76gRt",
88+
"signing_key": "tV66KknkDH47hRSNzwJtt7Q7EZtxVxQsNnUGoAJdDn6J",
89+
"dh_key": "HXaesvEGFiDgrVTix1fKzSLTarFexTZSJD6ymSrF7vPL",
90+
"chain_config": {
91+
"parent_chain_id": 1,
92+
"parent_chain_rpc_url": "https://theserversroom.com/ethereum/54cmzzhcj1o/",
93+
"parent_ibox_contr_addr": "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f",
94+
"parent_block_tag": "finalized"
95+
},
96+
"enc_key": "8sAr1CcnzuMv61MwqQm6EGNPG4ajT6VssCC2ZndZUDjnyq6TngHcB6g8bnesCZ9FG7X",
7197
"private": {
72-
"signing_key": "BSbbhNKYgs7urSMZ82fyDEKzwDnJG4DPjjQWJbRmqYuR",
73-
"dh_key": "4ArVbho57oh7GTtR71o95jPokLq9CUvZVGQjSo1VN8rU",
74-
"dec_share": "j46WwQT5Ln3So6ewcUACXMEPmwHnAQCXqiZwyQinugEzUj",
75-
"dec_key": "AdWqv2U6amCuhVzzPzWTGkJUySWh2tCGu6KGcd83qnQ67"
98+
"signing_key": "6LMMEuoPRCkpDsnxnANCRCBC6JagdCHs2pjNicdmQpQE",
99+
"dh_key": "39wAn3bQzpn19oa8CiaNUFd8GekQAJMMuzrbp8Jt3FKz",
100+
"dec_key": "Amc4mvBfcBDsQziud5cvm1i9RnJ5KQRXNdNetq4fsJb76"
76101
}
77102
}
78-
],
79-
"dec_keyset": {
80-
"pubkey": "8sKeY3xQMXkxEhrJarDxwPwnfeNX4dadFZLtrt2gRv9By8aUTkY59LHvvbC1fd6ydEg",
81-
"combkey": "y7AnuKz7QtPWJvW5iWCWCcrWuNj1BoWj4skXFYvo9z5mBM5z4RTpiyc6a5of9KDnfBfv2Y5Lv2vVRvuJmR8764D4S9PhfSRJ1FhXK9ECDznyLG6SxY8iH4qCG67f8aazR7G1zonZnTTchZ3a32mdCrHTpF5ApZ2hzYMtyKWFuah6QZTGxk1Q95Fi5Vbm399LJFjwVpaDFJcyQ5wdnxkwzzCbVrmQtXe8RVF9CudZbgyEdspRx3p9pLbUp7Z1Suvn943UiE8WcwDrjrwDa8j9c6oDQeSxa3pEa5eUeV3MKCgGsLuTjj1WyTq3tCLZ3zfXyoeNKtAjQfjTj8X"
82-
}
103+
]
83104
}

0 commit comments

Comments
 (0)