diff --git a/.config/nextest.toml b/.config/nextest.toml index af8b6a75a0..fbfae5c8c8 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -1,8 +1,17 @@ [profile.default] -slow-timeout = "2m" +# Kill tests after 3 periods of 2m, because they are probably hanging +slow-timeout = { period = "2m", terminate-after = 3 } default-filter = 'not (test(slow_) | package(tests))' retries = 2 +[[profile.default.overrides]] +# This test is fast if it works (usually about 150ms) but sometimes hangs, +# especially when running concurrently with other tests. Kill it after a while +# and retry up to 10 times. +filter = 'test(test_process_client_handling_stream_subscribe_node_identity)' +slow-timeout = { period = "2s", terminate-after = 1 } +retries = 10 + # The restart tests run an entire sequencing network, and so are quite resource intensive. [[profile.default.overrides]] filter = 'test(slow_test_restart)' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 85e4f0ecf5..553510d2bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -182,13 +182,13 @@ jobs: needs: [build-test-bins, build-test-artifacts-postgres] strategy: matrix: - version: [02, 03] + version: [02,99] include: - version: 02 - compose: "-f process-compose.yaml" - - - version: 03 - compose: "-f process-compose.yaml -f process-compose-mp.yml" + compose: "-f process-compose.yaml -D" + + - version: 99 + compose: "-f process-compose.yaml -f process-compose-mp.yml -D" runs-on: ubuntu-latest steps: - name: Install Nix diff --git a/Cargo.lock b/Cargo.lock index 9b41dc6dec..762c0790cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.21" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "android-tzdata" @@ -202,9 +202,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arbitrary" @@ -480,7 +480,7 @@ dependencies = [ "rand 0.8.5", "sha2 0.10.8", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "ureq", ] @@ -535,7 +535,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", ] [[package]] @@ -546,8 +546,8 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", - "synstructure 0.13.1", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -558,7 +558,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -701,7 +701,7 @@ dependencies = [ "futures-lite 2.5.0", "parking", "polling 3.7.4", - "rustix 0.38.41", + "rustix 0.38.39", "slab", "tracing", "windows-sys 0.59.0", @@ -760,7 +760,7 @@ dependencies = [ "cfg-if", "event-listener 5.3.1", "futures-lite 2.5.0", - "rustix 0.38.41", + "rustix 0.38.39", "tracing", ] @@ -776,7 +776,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.41", + "rustix 0.38.39", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -843,7 +843,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -873,7 +873,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -909,7 +909,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-sink", "futures-util", "memchr", @@ -922,7 +922,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-sink", "futures-util", "memchr", @@ -976,7 +976,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -993,7 +993,7 @@ checksum = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -1005,7 +1005,7 @@ dependencies = [ "async-trait", "axum-core", "bitflags 1.3.2", - "bytes 1.9.0", + "bytes 1.8.0", "futures-util", "http 0.2.12", "http-body 0.4.6", @@ -1031,7 +1031,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", - "bytes 1.9.0", + "bytes 1.8.0", "futures-util", "http 0.2.12", "http-body 0.4.6", @@ -1052,15 +1052,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "backon" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" -dependencies = [ - "fastrand 2.2.0", -] - [[package]] name = "backtrace" version = "0.3.71" @@ -1197,9 +1188,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.5" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", "arrayvec", @@ -1276,7 +1267,7 @@ dependencies = [ "hotshot", "hotshot-builder-api", "hotshot-builder-core", - "hotshot-events-service", + "hotshot-events-service 0.1.56 (git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.56)", "hotshot-state-prover", "hotshot-types", "jf-signature 0.2.0", @@ -1343,9 +1334,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -1386,15 +1377,6 @@ dependencies = [ "serde", ] -[[package]] -name = "capnp" -version = "0.19.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e985a566bdaae9a428a957d12b10c318d41b2afddb54cfbb764878059df636e" -dependencies = [ - "embedded-io", -] - [[package]] name = "capnp" version = "0.20.3" @@ -1404,29 +1386,20 @@ dependencies = [ "embedded-io", ] -[[package]] -name = "capnpc" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ba30e0f08582d53c2f3710cf4bb65ff562614b1ba86906d7391adffe189ec" -dependencies = [ - "capnp 0.19.8", -] - [[package]] name = "capnpc" version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa3d5f01e69ed11656d2c7c47bf34327ea9bfb5c85c7de787fcd7b6c5e45b61" dependencies = [ - "capnp 0.20.3", + "capnp", ] [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -1466,9 +1439,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.2" +version = "1.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" dependencies = [ "jobserver", "libc", @@ -1478,9 +1451,9 @@ dependencies = [ [[package]] name = "cdn-broker" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", "clap", "console-subscriber", "dashmap", @@ -1495,20 +1468,20 @@ dependencies = [ "rkyv", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] name = "cdn-broker" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "clap", "console-subscriber", "dashmap", "derivative", - "jf-signature 0.1.0", + "jf-signature 0.2.0", "lazy_static", "local-ip-address", "parking_lot", @@ -1518,60 +1491,61 @@ dependencies = [ "rkyv", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] name = "cdn-client" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "clap", - "jf-signature 0.1.0", + "derive_more 1.0.0", + "jf-signature 0.2.0", "parking_lot", "rand 0.8.5", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] name = "cdn-marshal" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", "clap", "jf-signature 0.1.0", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] name = "cdn-marshal" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "clap", - "jf-signature 0.1.0", + "jf-signature 0.2.0", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] name = "cdn-proto" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" dependencies = [ "anyhow", "ark-serialize", "async-trait", - "capnp 0.19.8", - "capnpc 0.19.0", + "capnp", + "capnpc", "derivative", "jf-signature 0.1.0", "kanal", @@ -1583,9 +1557,9 @@ dependencies = [ "quinn", "rand 0.8.5", "rcgen 0.13.1", - "redis 0.26.1", + "redis", "rkyv", - "rustls 0.23.19", + "rustls 0.23.18", "rustls-pki-types", "sqlx", "thiserror 1.0.69", @@ -1599,15 +1573,16 @@ dependencies = [ [[package]] name = "cdn-proto" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ "anyhow", "ark-serialize", "async-trait", - "capnp 0.20.3", - "capnpc 0.20.1", + "capnp", + "capnpc", "derivative", - "jf-signature 0.1.0", + "derive_more 1.0.0", + "jf-signature 0.2.0", "kanal", "lazy_static", "mnemonic", @@ -1617,9 +1592,9 @@ dependencies = [ "quinn", "rand 0.8.5", "rcgen 0.13.1", - "redis 0.27.6", + "redis", "rkyv", - "rustls 0.23.19", + "rustls 0.23.18", "rustls-pki-types", "sqlx", "thiserror 1.0.69", @@ -1684,9 +1659,9 @@ checksum = "b67261db007b5f4cf8cba393c1a5c511a5cc072339ce16e12aeba1d7b9b77946" [[package]] name = "clap" -version = "4.5.22" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -1694,9 +1669,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.22" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", @@ -1713,14 +1688,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "clap_lex" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "cld" @@ -1807,7 +1782,7 @@ version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-core", "memchr", "pin-project-lite 0.2.15", @@ -1896,14 +1871,14 @@ dependencies = [ "tonic", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] name = "const-hex" -version = "1.14.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" dependencies = [ "cfg-if", "cpufeatures", @@ -2023,9 +1998,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -2160,9 +2135,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" dependencies = [ "csv-core", "itoa", @@ -2208,7 +2183,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "socket2 0.5.8", + "socket2 0.5.7", "windows-sys 0.52.0", ] @@ -2252,49 +2227,30 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", -] - -[[package]] -name = "custom_debug" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89e0ae2c2a42be29595d05c50e3ce6096c0698a97e021c3289790f0750cc8e2" -dependencies = [ - "custom_debug_derive 0.5.1", + "syn 2.0.87", ] [[package]] name = "custom_debug" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da7d1ad9567b3e11e877f1d7a0fa0360f04162f94965fc4448fbed41a65298e" -dependencies = [ - "custom_debug_derive 0.6.2", -] - -[[package]] -name = "custom_debug_derive" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a9f3941234c9f62ceaa2782974827749de9b0a8a6487275a278da068e1baf7" +checksum = "14e715bf0e503e909c7076c052e39dd215202e8edeb32f1c194fd630c314d256" dependencies = [ - "proc-macro2", - "syn 1.0.109", - "synstructure 0.12.6", + "custom_debug_derive", ] [[package]] name = "custom_debug_derive" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a707ceda8652f6c7624f2be725652e9524c815bf3b9d55a0b2320be2303f9c11" +checksum = "f731440b39c73910e253cb465ec1fac97732b3c7af215639881ec0c2a38f4f69" dependencies = [ "darling", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.90", - "synstructure 0.13.1", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -2318,7 +2274,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2329,7 +2285,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2380,7 +2336,7 @@ checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2437,7 +2393,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2458,7 +2414,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2468,7 +2424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2481,7 +2437,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2502,7 +2458,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", "unicode-xid", ] @@ -2633,7 +2589,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2785,7 +2741,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", - "bytes 1.9.0", + "bytes 1.8.0", "hex", "k256", "log", @@ -2805,7 +2761,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -2826,12 +2782,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.10" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2861,11 +2817,6 @@ name = "espresso-systems-common" version = "0.4.0" source = "git+https://github.com/espressosystems/espresso-systems-common?tag=0.4.0#5abd890f79014a86db31286e1f3a529f161e69de" -[[package]] -name = "espresso-systems-common" -version = "0.4.1" -source = "git+https://github.com/espressosystems/espresso-systems-common?tag=0.4.1#2e889e878866c2a5cce1daaab947f7c93d5811ae" - [[package]] name = "espresso-types" version = "0.1.0" @@ -2912,7 +2863,7 @@ dependencies = [ "tagged-base64", "thiserror 1.0.69", "tide-disco", - "time 0.3.37", + "time 0.3.36", "tokio", "tracing", "url", @@ -3066,7 +3017,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.90", + "syn 2.0.87", "toml 0.8.19", "walkdir", ] @@ -3084,7 +3035,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -3094,7 +3045,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", - "bytes 1.9.0", + "bytes 1.8.0", "cargo_metadata", "chrono", "const-hex", @@ -3110,7 +3061,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.90", + "syn 2.0.87", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -3170,7 +3121,7 @@ dependencies = [ "async-trait", "auto_impl", "base64 0.21.7", - "bytes 1.9.0", + "bytes 1.8.0", "const-hex", "enr", "ethers-core", @@ -3269,9 +3220,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ "event-listener 5.3.1", "pin-project-lite 0.2.15", @@ -3344,9 +3295,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.35" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide 0.8.0", @@ -3552,7 +3503,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -3562,7 +3513,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.19", + "rustls 0.23.18", "rustls-pki-types", ] @@ -3669,10 +3620,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -3738,13 +3687,13 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3753,17 +3702,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.7" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", - "bytes 1.9.0", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", - "http 1.2.0", - "indexmap 2.7.0", + "http 1.1.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3800,9 +3749,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ "allocator-api2", "equivalent", @@ -3856,7 +3805,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ "base64 0.21.7", - "bytes 1.9.0", + "bytes 1.8.0", "headers-core", "http 0.2.12", "httpdate", @@ -3932,7 +3881,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.8", + "socket2 0.5.7", "thiserror 1.0.69", "tinyvec", "tokio", @@ -4042,8 +3991,8 @@ dependencies = [ [[package]] name = "hotshot" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-broadcast", @@ -4052,36 +4001,32 @@ dependencies = [ "bimap", "bincode", "blake3", - "cdn-broker 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-broker 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "cdn-client", - "cdn-marshal 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-marshal 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "chrono", "committable", - "custom_debug 0.5.1", "dashmap", "derive_more 1.0.0", "either", - "ethereum-types", "futures", "hotshot-task", "hotshot-task-impls", "hotshot-types", - "jf-signature 0.2.0", "libp2p-identity", "libp2p-networking", "lru 0.12.5", "num_enum", "parking_lot", "portpicker", + "primitive-types", "rand 0.8.5", "serde", "sha2 0.10.8", - "surf-disco", - "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "url", "utils", "vbs", @@ -4090,7 +4035,7 @@ dependencies = [ [[package]] name = "hotshot-builder-api" version = "0.1.7" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "async-trait", "clap", @@ -4100,7 +4045,7 @@ dependencies = [ "hotshot-types", "serde", "tagged-base64", - "thiserror 1.0.69", + "thiserror 2.0.3", "tide-disco", "toml 0.8.19", "vbs", @@ -4108,8 +4053,8 @@ dependencies = [ [[package]] name = "hotshot-builder-core" -version = "0.1.55" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.56#7baaf93478875fc77337187b0742f54e4a71408a" +version = "0.1.57" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core?branch=hotshot%2F0.5.82#be5ab81e83127b665af026ec18dfa48b9aba3bb1" dependencies = [ "anyhow", "async-broadcast", @@ -4117,6 +4062,7 @@ dependencies = [ "async-trait", "bincode", "committable", + "derive_more 1.0.0", "futures", "hotshot", "hotshot-builder-api", @@ -4129,7 +4075,7 @@ dependencies = [ "tide-disco", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "vbs", ] @@ -4153,6 +4099,7 @@ dependencies = [ "jf-pcs", "jf-plonk", "jf-utils", + "libp2p", "num-bigint", "num-traits", "serde", @@ -4160,8 +4107,35 @@ dependencies = [ [[package]] name = "hotshot-events-service" -version = "0.1.49" -source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.54#6c831301f1ff7fe7d2b5a6da4f6ff849cfe74b4a" +version = "0.1.56" +source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.56#c8046e6debb533c6abf431866ccf1d3787338982" +dependencies = [ + "async-broadcast", + "async-lock 2.8.0", + "async-trait", + "clap", + "derivative", + "derive_more 0.99.18", + "either", + "futures", + "hotshot-types", + "libp2p-identity", + "rand 0.8.5", + "serde", + "snafu 0.8.5", + "tagged-base64", + "tide-disco", + "tokio", + "toml 0.8.19", + "tracing", + "tracing-test", + "vbs", +] + +[[package]] +name = "hotshot-events-service" +version = "0.1.56" +source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?branch=hotshot%2F0.5.82#f7b6da149c2aa3c15996ece0a07d30039f540680" dependencies = [ "async-broadcast", "async-lock 2.8.0", @@ -4172,6 +4146,7 @@ dependencies = [ "either", "futures", "hotshot-types", + "libp2p-identity", "rand 0.8.5", "serde", "snafu 0.8.5", @@ -4180,27 +4155,20 @@ dependencies = [ "tokio", "toml 0.8.19", "tracing", - "tracing-subscriber 0.3.19", + "tracing-test", "vbs", ] [[package]] name = "hotshot-example-types" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", - "async-broadcast", "async-lock 3.4.0", "async-trait", - "bitvec", "committable", - "either", - "ethereum-types", - "futures", "hotshot", - "hotshot-builder-api", - "hotshot-task", "hotshot-task-impls", "hotshot-types", "jf-vid", @@ -4209,18 +4177,17 @@ dependencies = [ "serde", "sha2 0.10.8", "sha3", - "thiserror 1.0.69", - "time 0.3.37", + "thiserror 2.0.3", + "time 0.3.36", "tokio", - "tracing", "url", "vbs", ] [[package]] name = "hotshot-fakeapi" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4229,56 +4196,50 @@ dependencies = [ "hotshot-example-types", "hotshot-types", "rand 0.8.5", - "serde", "tide-disco", "tokio", "toml 0.8.19", - "tracing", "vbs", ] [[package]] name = "hotshot-macros" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "derive_builder", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "hotshot-orchestrator" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-lock 3.4.0", - "bincode", "blake3", "clap", "csv", "futures", "hotshot-types", - "libp2p", + "libp2p-identity", "multiaddr", "serde", - "serde_json", "surf-disco", - "thiserror 1.0.69", "tide-disco", "tokio", "toml 0.8.19", "tracing", "vbs", - "vec1", ] [[package]] name = "hotshot-query-service" -version = "0.1.62" -source = "git+https://github.com/EspressoSystems/hotshot-query-service?tag=0.1.74#d17f0d667b590b5131d30b47ce1842eb59035127" +version = "0.1.75" +source = "git+https://github.com/EspressoSystems/hotshot-query-service?branch=hotshot%2F0.5.82#5e2c984d19da3826f4cc8d80c5cf1a84dcd377f7" dependencies = [ "anyhow", "ark-serialize", @@ -4289,7 +4250,7 @@ dependencies = [ "bincode", "chrono", "committable", - "custom_debug 0.6.2", + "custom_debug", "derivative", "derive_more 0.99.18", "either", @@ -4318,11 +4279,11 @@ dependencies = [ "tagged-base64", "tempfile", "tide-disco", - "time 0.3.37", + "time 0.3.36", "tokio", "toml 0.8.19", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "trait-variant", "typenum", "url", @@ -4332,8 +4293,8 @@ dependencies = [ [[package]] name = "hotshot-stake-table" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "ark-bn254", "ark-ed-on-bn254", @@ -4341,12 +4302,12 @@ dependencies = [ "ark-serialize", "ark-std", "digest 0.10.7", - "ethereum-types", "hotshot-types", "jf-crhf", "jf-rescue", "jf-signature 0.2.0", "jf-utils", + "primitive-types", "serde", "tagged-base64", ] @@ -4384,7 +4345,7 @@ dependencies = [ "serde", "surf-disco", "tide-disco", - "time 0.3.37", + "time 0.3.36", "tokio", "toml 0.8.19", "tracing", @@ -4394,10 +4355,9 @@ dependencies = [ [[package]] name = "hotshot-task" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ - "anyhow", "async-broadcast", "async-trait", "futures", @@ -4408,16 +4368,14 @@ dependencies = [ [[package]] name = "hotshot-task-impls" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-broadcast", "async-lock 3.4.0", "async-trait", "bincode", - "bitvec", - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", "chrono", "committable", "either", @@ -4425,7 +4383,6 @@ dependencies = [ "hotshot-builder-api", "hotshot-task", "hotshot-types", - "jf-signature 0.2.0", "jf-vid", "lru 0.12.5", "rand 0.8.5", @@ -4433,8 +4390,8 @@ dependencies = [ "sha2 0.10.8", "surf-disco", "tagged-base64", - "thiserror 1.0.69", - "time 0.3.37", + "thiserror 2.0.3", + "time 0.3.36", "tokio", "tracing", "url", @@ -4445,8 +4402,8 @@ dependencies = [ [[package]] name = "hotshot-testing" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-broadcast", @@ -4456,29 +4413,26 @@ dependencies = [ "bitvec", "committable", "either", - "ethereum-types", "futures", "hotshot", "hotshot-builder-api", "hotshot-example-types", "hotshot-fakeapi", "hotshot-macros", - "hotshot-orchestrator", "hotshot-task", "hotshot-task-impls", "hotshot-types", "itertools 0.13.0", - "jf-signature 0.2.0", "jf-vid", "lru 0.12.5", "portpicker", + "primitive-types", "rand 0.8.5", "reqwest 0.12.9", "serde", "sha2 0.10.8", - "sha3", "tagged-base64", - "thiserror 1.0.69", + "thiserror 2.0.3", "tide-disco", "tokio", "tracing", @@ -4490,7 +4444,7 @@ dependencies = [ [[package]] name = "hotshot-types" version = "0.1.11" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "ark-bn254", @@ -4504,37 +4458,34 @@ dependencies = [ "bincode", "bitvec", "blake3", - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", "clap", "committable", - "custom_debug 0.5.1", - "derivative", + "derive_more 1.0.0", "digest 0.10.7", "displaydoc", "dyn-clone", "either", - "espresso-systems-common 0.4.1", - "ethereum-types", "futures", "jf-pcs", "jf-signature 0.2.0", "jf-utils", "jf-vid", "lazy_static", - "libp2p", + "libp2p-identity", "memoize", + "mnemonic", + "multiaddr", + "primitive-types", "rand 0.8.5", "rand_chacha 0.3.1", - "reqwest 0.12.9", "serde", "serde-inline-default", "serde_bytes", "serde_json", "sha2 0.10.8", - "surf-disco", "tagged-base64", - "thiserror 1.0.69", - "time 0.3.37", + "thiserror 2.0.3", + "time 0.3.36", "tokio", "toml 0.8.19", "tracing", @@ -4551,18 +4502,18 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "fnv", "itoa", ] [[package]] name = "http" -version = "1.2.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "fnv", "itoa", ] @@ -4573,7 +4524,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "http 0.2.12", "pin-project-lite 0.2.15", ] @@ -4584,8 +4535,8 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.9.0", - "http 1.2.0", + "bytes 1.8.0", + "http 1.1.0", ] [[package]] @@ -4594,9 +4545,9 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-util", - "http 1.2.0", + "http 1.1.0", "http-body 1.0.1", "pin-project-lite 0.2.15", ] @@ -4661,7 +4612,7 @@ version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-channel", "futures-core", "futures-util", @@ -4672,7 +4623,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite 0.2.15", - "socket2 0.5.8", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -4681,15 +4632,15 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-channel", "futures-util", - "h2 0.4.7", - "http 1.2.0", + "h2 0.4.6", + "http 1.1.0", "http-body 1.0.1", "httparse", "itoa", @@ -4720,10 +4671,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.2.0", - "hyper 1.5.1", + "http 1.1.0", + "hyper 1.5.0", "hyper-util", - "rustls 0.23.19", + "rustls 0.23.18", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", @@ -4748,9 +4699,9 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "http-body-util", - "hyper 1.5.1", + "hyper 1.5.0", "hyper-util", "native-tls", "tokio", @@ -4764,14 +4715,14 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-channel", "futures-util", - "http 1.2.0", + "http 1.1.0", "http-body 1.0.1", - "hyper 1.5.1", + "hyper 1.5.0", "pin-project-lite 0.2.15", - "socket2 0.5.8", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -4788,7 +4739,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core", ] [[package]] @@ -4915,7 +4866,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -4967,9 +4918,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ "async-io 2.4.0", "core-foundation", @@ -4978,12 +4929,8 @@ dependencies = [ "if-addrs", "ipnet", "log", - "netlink-packet-core", - "netlink-packet-route", - "netlink-proto", - "netlink-sys", "rtnetlink", - "system-configuration 0.6.1", + "system-configuration 0.5.1", "tokio", "windows", ] @@ -4996,7 +4943,7 @@ checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" dependencies = [ "async-trait", "attohttpc", - "bytes 1.9.0", + "bytes 1.8.0", "futures", "http 0.2.12", "hyper 0.14.31", @@ -5036,13 +4983,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 1.0.109", ] [[package]] @@ -5083,12 +5030,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.15.1", "serde", ] @@ -5113,7 +5060,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", ] [[package]] @@ -5142,7 +5089,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.8", + "socket2 0.5.7", "widestring", "windows-sys 0.48.0", "winreg", @@ -5230,9 +5177,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jf-commitment" @@ -5310,7 +5257,7 @@ dependencies = [ "displaydoc", "downcast-rs", "dyn-clone", - "espresso-systems-common 0.4.0", + "espresso-systems-common", "hashbrown 0.14.5", "itertools 0.12.1", "jf-crhf", @@ -5500,11 +5447,10 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.74" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ - "once_cell", "wasm-bindgen", ] @@ -5602,7 +5548,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "regex-automata 0.4.9", + "regex-automata 0.4.8", ] [[package]] @@ -5616,9 +5562,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.167" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libm" @@ -5642,7 +5588,7 @@ version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681fb3f183edfbedd7a57d32ebe5dcdc0b9f94061185acf3c30249349cc6fc99" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "either", "futures", "futures-timer", @@ -5769,7 +5715,7 @@ dependencies = [ "asynchronous-codec 0.7.0", "base64 0.21.7", "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "either", "fnv", "futures", @@ -5817,9 +5763,9 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.2.10" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" +checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" dependencies = [ "asn1_der", "bs58", @@ -5844,7 +5790,7 @@ checksum = "5cc5767727d062c4eac74dd812c998f0e488008e82cce9c33b463d38423f9ad2" dependencies = [ "arrayvec", "asynchronous-codec 0.7.0", - "bytes 1.9.0", + "bytes 1.8.0", "either", "fnv", "futures", @@ -5881,7 +5827,7 @@ dependencies = [ "libp2p-swarm", "rand 0.8.5", "smallvec", - "socket2 0.5.8", + "socket2 0.5.7", "tokio", "tracing", "void", @@ -5907,19 +5853,17 @@ dependencies = [ [[package]] name = "libp2p-networking" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", - "async-lock 3.4.0", "async-trait", "bincode", "blake3", "cbor4ii", - "custom_debug 0.5.1", "delegate", "derive_builder", - "either", + "derive_more 1.0.0", "futures", "hotshot-types", "lazy_static", @@ -5927,17 +5871,11 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "pin-project", - "portpicker", "rand 0.8.5", "serde", - "serde_bytes", - "serde_json", - "thiserror 1.0.69", "tokio", - "tokio-stream", "tracing", - "tracing-subscriber 0.3.19", - "void", + "tracing-subscriber 0.3.18", ] [[package]] @@ -5946,7 +5884,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c67296ad4e092e23f92aea3d2bdb6f24eab79c0929ed816dfb460ea2f4567d2b" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures", "futures-timer", "if-watch", @@ -5957,8 +5895,8 @@ dependencies = [ "quinn", "rand 0.8.5", "ring 0.17.8", - "rustls 0.23.19", - "socket2 0.5.8", + "rustls 0.23.18", + "socket2 0.5.7", "thiserror 1.0.69", "tokio", "tracing", @@ -6019,7 +5957,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -6034,7 +5972,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.8", + "socket2 0.5.7", "tokio", "tracing", ] @@ -6051,7 +5989,7 @@ dependencies = [ "libp2p-identity", "rcgen 0.11.3", "ring 0.17.8", - "rustls 0.23.19", + "rustls 0.23.18", "rustls-webpki 0.101.7", "thiserror 1.0.69", "x509-parser", @@ -6175,9 +6113,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" [[package]] name = "local-ip-address" @@ -6235,7 +6173,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.15.1", ] [[package]] @@ -6273,7 +6211,7 @@ dependencies = [ "futures", "hotshot", "hotshot-builder-api", - "hotshot-events-service", + "hotshot-events-service 0.1.56 (git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.56)", "hotshot-orchestrator", "hotshot-query-service", "hotshot-stake-table", @@ -6298,15 +6236,15 @@ dependencies = [ [[package]] name = "marketplace-builder-core" -version = "0.1.55" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.56#7baaf93478875fc77337187b0742f54e4a71408a" +version = "0.1.57" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core?branch=hotshot%2F0.5.82#be5ab81e83127b665af026ec18dfa48b9aba3bb1" dependencies = [ "anyhow", "async-broadcast", "async-lock 3.4.0", "async-trait", "committable", - "derivative", + "derive_more 1.0.0", "futures", "hotshot", "hotshot-builder-api", @@ -6318,36 +6256,41 @@ dependencies = [ "tide-disco", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "vbs", ] [[package]] name = "marketplace-builder-shared" -version = "0.1.55" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.56#7baaf93478875fc77337187b0742f54e4a71408a" +version = "0.1.57" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core?branch=hotshot%2F0.5.82#be5ab81e83127b665af026ec18dfa48b9aba3bb1" dependencies = [ "anyhow", + "async-broadcast", "async-lock 3.4.0", "async-trait", "bincode", "chrono", "committable", + "derive_more 1.0.0", "either", "futures", "hex", "hotshot", "hotshot-builder-api", - "hotshot-events-service", + "hotshot-events-service 0.1.56 (git+https://github.com/EspressoSystems/hotshot-events-service.git?branch=hotshot%2F0.5.82)", "hotshot-example-types", + "hotshot-task-impls", "hotshot-testing", "hotshot-types", + "jf-vid", + "nonempty-collections", "rand 0.8.5", "serde", "surf-disco", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "url", "vbs", "vec1", @@ -6366,7 +6309,7 @@ dependencies = [ "espresso-types", "futures", "hotshot", - "hotshot-events-service", + "hotshot-events-service 0.1.56 (git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.56)", "hotshot-query-service", "hotshot-types", "marketplace-solver", @@ -6424,7 +6367,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -6520,10 +6463,11 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -6582,7 +6526,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures", "log", "pin-project", @@ -6634,20 +6578,21 @@ dependencies = [ [[package]] name = "netlink-packet-core" -version = "0.7.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" +checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" dependencies = [ "anyhow", "byteorder", + "libc", "netlink-packet-utils", ] [[package]] name = "netlink-packet-route" -version = "0.17.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" +checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -6671,11 +6616,11 @@ dependencies = [ [[package]] name = "netlink-proto" -version = "0.11.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" +checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures", "log", "netlink-packet-core", @@ -6690,7 +6635,7 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures", "libc", "log", @@ -6705,9 +6650,9 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.26.4" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -6737,7 +6682,7 @@ dependencies = [ "serde_json", "surf-disco", "tide-disco", - "time 0.3.37", + "time 0.3.36", "tokio", "toml 0.8.19", "tracing", @@ -6755,6 +6700,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonempty-collections" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07626f57b1cb0ee81e5193d331209751d2e18ffa3ceaa0fd6fab63db31fafd9" + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -6890,7 +6841,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -6940,7 +6891,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.9.0", + "bytes 1.8.0", "ethereum-types", "open-fastrlp-derive", ] @@ -6951,7 +6902,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "proc-macro2", "quote", "syn 1.0.109", @@ -6980,7 +6931,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7103,9 +7054,9 @@ checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" [[package]] name = "pathdiff" -version = "0.2.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" [[package]] name = "pbkdf2" @@ -7194,7 +7145,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7215,7 +7166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "indexmap 2.6.0", ] [[package]] @@ -7258,7 +7209,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7296,7 +7247,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7387,7 +7338,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite 0.2.15", - "rustix 0.38.41", + "rustix 0.38.39", "tracing", "windows-sys 0.59.0", ] @@ -7420,7 +7371,7 @@ checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" dependencies = [ "base64 0.22.1", "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "fallible-iterator", "hmac 0.12.1", "md-5", @@ -7436,7 +7387,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "fallible-iterator", "postgres-protocol", ] @@ -7479,7 +7430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7536,9 +7487,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -7578,7 +7529,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7615,7 +7566,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "prost-derive", ] @@ -7629,7 +7580,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -7689,7 +7640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98" dependencies = [ "asynchronous-codec 0.6.2", - "bytes 1.9.0", + "bytes 1.8.0", "quick-protobuf", "thiserror 1.0.69", "unsigned-varint 0.7.2", @@ -7702,7 +7653,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" dependencies = [ "asynchronous-codec 0.7.0", - "bytes 1.9.0", + "bytes 1.8.0", "quick-protobuf", "thiserror 1.0.69", "unsigned-varint 0.8.0", @@ -7710,41 +7661,38 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.6" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-io", "pin-project-lite 0.2.15", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.19", - "socket2 0.5.8", - "thiserror 2.0.4", + "rustls 0.23.18", + "socket2 0.5.7", + "thiserror 1.0.69", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.9" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ - "bytes 1.9.0", - "getrandom 0.2.15", + "bytes 1.8.0", "rand 0.8.5", "ring 0.17.8", "rustc-hash", - "rustls 0.23.19", - "rustls-pki-types", + "rustls 0.23.18", "slab", - "thiserror 2.0.4", + "thiserror 1.0.69", "tinyvec", "tracing", - "web-time", ] [[package]] @@ -7756,7 +7704,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.8", + "socket2 0.5.7", "tracing", "windows-sys 0.59.0", ] @@ -7894,7 +7842,7 @@ checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ "pem 3.0.4", "ring 0.16.20", - "time 0.3.37", + "time 0.3.36", "yasna", ] @@ -7907,54 +7855,30 @@ dependencies = [ "pem 3.0.4", "ring 0.17.8", "rustls-pki-types", - "time 0.3.37", + "time 0.3.36", "x509-parser", "yasna", ] [[package]] name = "redis" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e902a69d09078829137b4a5d9d082e0490393537badd7c91a3d69d14639e115f" -dependencies = [ - "arc-swap", - "async-trait", - "bytes 1.9.0", - "combine", - "futures", - "futures-util", - "itoa", - "num-bigint", - "percent-encoding", - "pin-project-lite 0.2.15", - "ryu", - "tokio", - "tokio-retry", - "tokio-util", - "url", -] - -[[package]] -name = "redis" -version = "0.27.6" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d8f99a4090c89cc489a94833c901ead69bfbf3877b4867d5482e321ee875bc" +checksum = "81cccf17a692ce51b86564334614d72dcae1def0fd5ecebc9f02956da74352b5" dependencies = [ "arc-swap", "async-trait", - "backon", - "bytes 1.9.0", + "bytes 1.8.0", "combine", "futures", "futures-util", - "itertools 0.13.0", "itoa", "num-bigint", "percent-encoding", "pin-project-lite 0.2.15", "ryu", "tokio", + "tokio-retry2", "tokio-util", "url", ] @@ -8002,7 +7926,7 @@ dependencies = [ "serde", "siphasher 1.0.1", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", "tokio", "tokio-postgres", "toml 0.8.19", @@ -8021,7 +7945,7 @@ dependencies = [ "quote", "refinery-core", "regex", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -8032,7 +7956,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", + "regex-automata 0.4.8", "regex-syntax 0.8.5", ] @@ -8047,9 +7971,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -8084,7 +8008,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes 1.9.0", + "bytes 1.8.0", "encoding_rs", "futures-core", "futures-util", @@ -8125,15 +8049,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", - "bytes 1.9.0", + "bytes 1.8.0", "encoding_rs", "futures-core", "futures-util", - "h2 0.4.7", - "http 1.2.0", + "h2 0.4.6", + "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.1", + "hyper 1.5.0", "hyper-rustls 0.27.3", "hyper-tls", "hyper-util", @@ -8149,7 +8073,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper 1.0.1", "system-configuration 0.6.1", "tokio", "tokio-native-tls", @@ -8228,7 +8152,7 @@ checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", - "bytes 1.9.0", + "bytes 1.8.0", "hashbrown 0.12.3", "ptr_meta", "rend", @@ -8255,7 +8179,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "rlp-derive", "rustc-hex", ] @@ -8301,9 +8225,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.7" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" dependencies = [ "const-oid", "digest 0.10.7", @@ -8321,17 +8245,14 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.13.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ "futures", "log", - "netlink-packet-core", "netlink-packet-route", - "netlink-packet-utils", "netlink-proto", - "netlink-sys", "nix", "thiserror 1.0.69", "tokio", @@ -8355,9 +8276,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc-hex" @@ -8408,9 +8329,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.41" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags 2.6.0", "errno", @@ -8446,9 +8367,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" dependencies = [ "log", "once_cell", @@ -8482,9 +8403,6 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" -dependencies = [ - "web-time", -] [[package]] name = "rustls-webpki" @@ -8550,9 +8468,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.6" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" +checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "cfg-if", "derive_more 1.0.0", @@ -8562,21 +8480,21 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.6" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" +checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ "windows-sys 0.59.0", ] @@ -8734,7 +8652,7 @@ dependencies = [ "futures", "hotshot", "hotshot-contract-adapter", - "hotshot-events-service", + "hotshot-events-service 0.1.56 (git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.56)", "hotshot-example-types", "hotshot-orchestrator", "hotshot-query-service", @@ -8775,12 +8693,12 @@ dependencies = [ "tagged-base64", "tempfile", "tide-disco", - "time 0.3.37", + "time 0.3.36", "todo_by", "tokio", "toml 0.8.19", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "url", "vbs", "vec1", @@ -8818,22 +8736,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.215" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] [[package]] name = "serde-inline-default" -version = "0.2.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fb1bedd774187d304179493b0d3c41fbe97b04b14305363f68d2bdf5e47cb9" +checksum = "b3acbd21cb24261fc36f595b38d3b34d0ff4e31a6b42edd6a43387d27c5787c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -8847,13 +8765,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -8867,9 +8785,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -8919,12 +8837,12 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.0", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", "serde_with_macros", - "time 0.3.37", + "time 0.3.36", ] [[package]] @@ -8936,7 +8854,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -9092,7 +9010,7 @@ dependencies = [ "num-bigint", "num-traits", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", ] [[package]] @@ -9197,7 +9115,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -9212,9 +9130,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -9309,7 +9227,7 @@ dependencies = [ "atoi", "bit-vec", "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "crc", "crossbeam-queue", "either", @@ -9322,7 +9240,7 @@ dependencies = [ "hashbrown 0.14.5", "hashlink 0.9.1", "hex", - "indexmap 2.7.0", + "indexmap 2.6.0", "log", "memchr", "native-tls", @@ -9335,7 +9253,7 @@ dependencies = [ "smallvec", "sqlformat", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", "tokio", "tokio-stream", "tracing", @@ -9352,7 +9270,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -9375,7 +9293,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.90", + "syn 2.0.87", "tempfile", "tokio", "url", @@ -9391,7 +9309,7 @@ dependencies = [ "base64 0.22.1", "bitflags 2.6.0", "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "crc", "digest 0.10.7", "dotenvy", @@ -9419,7 +9337,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", "tracing", "whoami", ] @@ -9459,7 +9377,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", "tracing", "whoami", ] @@ -9483,7 +9401,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "time 0.3.37", + "time 0.3.36", "tracing", "url", ] @@ -9607,7 +9525,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -9769,9 +9687,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -9786,25 +9704,13 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" dependencies = [ "futures-core", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "synstructure" version = "0.13.1" @@ -9813,7 +9719,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -9899,7 +9805,7 @@ dependencies = [ "cfg-if", "fastrand 2.2.0", "once_cell", - "rustix 0.38.41", + "rustix 0.38.39", "windows-sys 0.59.0", ] @@ -9941,11 +9847,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.4" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ - "thiserror-impl 2.0.4", + "thiserror-impl 2.0.3", ] [[package]] @@ -9956,18 +9862,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "thiserror-impl" -version = "2.0.4" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -10029,7 +9935,7 @@ dependencies = [ "edit-distance", "futures", "futures-util", - "http 1.2.0", + "http 1.1.0", "include_dir", "itertools 0.12.1", "lazy_static", @@ -10060,7 +9966,7 @@ dependencies = [ "tracing-distributed", "tracing-futures", "tracing-log", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", "url", "vbs", ] @@ -10100,9 +10006,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.37" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -10112,7 +10018,7 @@ dependencies = [ "powerfmt", "serde", "time-core", - "time-macros 0.2.19", + "time-macros 0.2.18", ] [[package]] @@ -10133,9 +10039,9 @@ dependencies = [ [[package]] name = "time-macros" -version = "0.2.19" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -10199,22 +10105,22 @@ dependencies = [ "proc-macro2", "quote", "semver 1.0.23", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "tokio" -version = "1.42.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", - "bytes 1.9.0", + "bytes 1.8.0", "libc", "mio", "parking_lot", "pin-project-lite 0.2.15", - "socket2 0.5.8", + "socket2 0.5.7", "tokio-macros", "tracing", "windows-sys 0.52.0", @@ -10238,7 +10144,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -10259,7 +10165,7 @@ checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" dependencies = [ "async-trait", "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "fallible-iterator", "futures-channel", "futures-util", @@ -10271,17 +10177,17 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand 0.8.5", - "socket2 0.5.8", + "socket2 0.5.7", "tokio", "tokio-util", "whoami", ] [[package]] -name = "tokio-retry" -version = "0.3.0" +name = "tokio-retry2" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "903934dba1c4c2f2e9cb460ef10b5695e0b0ecad3bf9ee7c8675e540c5e8b2d1" dependencies = [ "pin-project", "rand 0.8.5", @@ -10304,7 +10210,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.19", + "rustls 0.23.18", "rustls-pki-types", "tokio", ] @@ -10337,11 +10243,11 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-core", "futures-sink", "pin-project-lite 0.2.15", @@ -10387,7 +10293,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -10400,7 +10306,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -10417,7 +10323,7 @@ dependencies = [ "async-trait", "axum", "base64 0.21.7", - "bytes 1.9.0", + "bytes 1.8.0", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", @@ -10468,9 +10374,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite 0.2.15", @@ -10480,20 +10386,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -10508,7 +10414,7 @@ dependencies = [ "itertools 0.9.0", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.18", ] [[package]] @@ -10534,9 +10440,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.2.0" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ "serde", "tracing-core", @@ -10553,9 +10459,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -10572,6 +10478,27 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "tracing-test" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" +dependencies = [ + "tracing-core", + "tracing-subscriber 0.3.18", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" +dependencies = [ + "quote", + "syn 2.0.87", +] + [[package]] name = "trait-variant" version = "0.1.2" @@ -10580,7 +10507,7 @@ checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -10597,7 +10524,7 @@ checksum = "5fe8dada8c1a3aeca77d6b51a4f1314e0f4b8e438b7b1b71e3ddaca8080e4093" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "http 0.2.12", "httparse", "input_buffer", @@ -10617,7 +10544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", - "bytes 1.9.0", + "bytes 1.8.0", "data-encoding", "http 0.2.12", "httparse", @@ -10680,9 +10607,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -10734,7 +10661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" dependencies = [ "asynchronous-codec 0.6.2", - "bytes 1.9.0", + "bytes 1.8.0", ] [[package]] @@ -10757,25 +10684,25 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.12.1" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" +checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" dependencies = [ "base64 0.22.1", "flate2", "log", "once_cell", - "rustls 0.23.19", + "rustls 0.23.18", "rustls-pki-types", "url", - "webpki-roots 0.26.7", + "webpki-roots 0.26.6", ] [[package]] name = "url" -version = "2.5.4" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna 1.0.3", @@ -10809,8 +10736,8 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "tracing", ] @@ -10909,7 +10836,7 @@ dependencies = [ "anyhow", "cfg-if", "rustversion", - "time 0.3.37", + "time 0.3.36", ] [[package]] @@ -10955,7 +10882,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" dependencies = [ - "bytes 1.9.0", + "bytes 1.8.0", "futures-channel", "futures-util", "headers", @@ -10996,9 +10923,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.97" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -11009,37 +10936,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.97" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.47" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.97" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11047,28 +10973,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.97" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.97" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "web-sys" -version = "0.3.74" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -11111,9 +11037,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.7" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -11168,31 +11094,21 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" -dependencies = [ - "windows-core 0.53.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.52.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-targets 0.52.6", + "windows-core", + "windows-targets 0.48.5", ] [[package]] name = "windows-core" -version = "0.53.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -11201,20 +11117,11 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-result 0.2.0", + "windows-result", "windows-strings", "windows-targets 0.52.6", ] -[[package]] -name = "windows-result" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-result" version = "0.2.0" @@ -11230,7 +11137,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result 0.2.0", + "windows-result", "windows-targets 0.52.6", ] @@ -11465,14 +11372,14 @@ dependencies = [ "ring 0.17.8", "rusticata-macros", "thiserror 1.0.69", - "time 0.3.37", + "time 0.3.36", ] [[package]] name = "xml-rs" -version = "0.8.24" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432" +checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" [[package]] name = "xmltree" @@ -11512,14 +11419,14 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.37", + "time 0.3.36", ] [[package]] name = "yoke" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" dependencies = [ "serde", "stable_deref_trait", @@ -11529,14 +11436,14 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", - "synstructure 0.13.1", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -11557,28 +11464,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", - "synstructure 0.13.1", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -11598,7 +11505,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -11620,7 +11527,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.87", ] [[package]] @@ -11639,7 +11546,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1 0.10.6", - "time 0.3.37", + "time 0.3.36", "zstd", ] diff --git a/Cargo.toml b/Cargo.toml index d15148305e..2e6ef2c62c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,20 +8,20 @@ edition = "2021" resolver = "2" members = [ - "builder", - "client", - "contract-bindings", - "contracts/rust/adapter", - "contracts/rust/diff-test", - "contracts/rust/gen-vk-contract", - "hotshot-state-prover", - "marketplace-builder", - "marketplace-solver", - "node-metrics", - "sequencer", - "tests", - "types", - "utils", + "builder", + "client", + "contract-bindings", + "contracts/rust/adapter", + "contracts/rust/diff-test", + "contracts/rust/gen-vk-contract", + "hotshot-state-prover", + "marketplace-builder", + "marketplace-solver", + "node-metrics", + "sequencer", + "tests", + "types", + "utils", ] exclude = [ @@ -58,57 +58,59 @@ dyn-clone = "1.0" ethers = { version = "2.0", features = ["solc", "ws"] } futures = "0.3" tokio = { version = "1", default-features = false, features = [ - "rt-multi-thread", - "macros", - "parking_lot", - "sync", + "rt-multi-thread", + "macros", + "parking_lot", + "sync", ] } -hotshot = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } +hotshot = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } # Hotshot imports -hotshot-builder-api = { git = "https://github.com/EspressoSystems/HotShot.git", tag = "0.5.81" } -hotshot-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", tag = "0.1.56" } -marketplace-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", tag = "0.1.56" } -marketplace-builder-shared = { git = "https://github.com/EspressoSystems/marketplace-builder-core", tag = "0.1.56" } -hotshot-events-service = { git = "https://github.com/EspressoSystems/hotshot-events-service.git", tag = "0.1.54" } -hotshot-orchestrator = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } -hotshot-query-service = { git = "https://github.com/EspressoSystems/hotshot-query-service", tag = "0.1.74" } -hotshot-stake-table = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } +hotshot-builder-api = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } +hotshot-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", branch = "hotshot/0.5.82" } +marketplace-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", branch = "hotshot/0.5.82" } +marketplace-builder-shared = { git = "https://github.com/EspressoSystems/marketplace-builder-core", branch = "hotshot/0.5.82" } +hotshot-events-service = { git = "https://github.com/EspressoSystems/hotshot-events-service.git", tag = "0.1.56" } +hotshot-orchestrator = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } +hotshot-query-service = { git = "https://github.com/EspressoSystems/hotshot-query-service", branch = "hotshot/0.5.82" } +hotshot-stake-table = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } hotshot-state-prover = { version = "0.1.0", path = "hotshot-state-prover" } -hotshot-task = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } -hotshot-testing = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } -hotshot-types = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } -libp2p-networking = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } +hotshot-task = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } +hotshot-testing = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } +hotshot-types = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } +libp2p-networking = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } hotshot-contract-adapter = { version = "0.1.0", path = "contracts/rust/adapter" } # Temporary, used to pull in the mock auction results provider -hotshot-example-types = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.81" } +hotshot-example-types = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.82" } # Push CDN imports cdn-broker = { git = "https://github.com/EspressoSystems/Push-CDN", tag = "0.5.1-upgrade", package = "cdn-broker" } cdn-marshal = { git = "https://github.com/EspressoSystems/Push-CDN", tag = "0.5.1-upgrade", package = "cdn-marshal" } jf-plonk = { git = "https://github.com/EspressoSystems/jellyfish", tag = "jf-plonk-v0.5.1", features = [ - "test-apis", + "test-apis", ] } jf-crhf = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5" } jf-merkle-tree = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", features = [ - "std", + "std", +] } +jf-signature = { git = "https://github.com/EspressoSystems/jellyfish", tag = "jf-signature-v0.2.0", features = [ + "std", ] } -jf-signature = { git = "https://github.com/EspressoSystems/jellyfish", tag = "jf-signature-v0.2.0", features = ["std"] } jf-pcs = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", features = [ - "std", - "parallel", + "std", + "parallel", ] } jf-vid = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", features = [ - "std", - "parallel", + "std", + "parallel", ] } jf-rescue = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", features = [ - "std", - "parallel", + "std", + "parallel", ] } jf-relation = { git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", features = [ - "std", + "std", ] } jf-utils = { git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5" } libp2p = { version = "0.53", default-features = false } diff --git a/builder/src/bin/permissionless-builder.rs b/builder/src/bin/permissionless-builder.rs index 89999da1ab..d58652fc46 100644 --- a/builder/src/bin/permissionless-builder.rs +++ b/builder/src/bin/permissionless-builder.rs @@ -87,6 +87,14 @@ struct NonPermissionedBuilderOptions { )] max_block_size_increment_period: Duration, + /// The amount of time a builder can wait before incrementing the max block size. + #[clap( + long, + env = "ESPRESSO_BUILDER_TX_STATUS_CACHE_SIZE", + default_value = "819200" + )] + tx_status_cache_size: usize, + /// Path to TOML file containing genesis state. #[clap(long, name = "GENESIS_FILE", env = "ESPRESSO_BUILDER_GENESIS_FILE")] genesis_file: PathBuf, @@ -163,6 +171,7 @@ async fn run( opt.max_block_size_increment_period, txn_timeout_duration, base_fee, + opt.tx_status_cache_size, ) .await?; diff --git a/builder/src/lib.rs b/builder/src/lib.rs index 59288c813a..be8ece7a74 100755 --- a/builder/src/lib.rs +++ b/builder/src/lib.rs @@ -43,8 +43,8 @@ pub mod testing { use async_lock::RwLock; use committable::Committable; use espresso_types::{ - traits::SequencerPersistence, v0_3::ChainConfig, Event, FeeAccount, NamespaceId, NodeState, - PrivKey, PubKey, Transaction, ValidatedState, + traits::SequencerPersistence, v0_99::ChainConfig, Event, FeeAccount, NamespaceId, + NodeState, PrivKey, PubKey, Transaction, ValidatedState, }; use ethers::utils::{Anvil, AnvilInstance}; use futures::stream::{Stream, StreamExt}; @@ -64,7 +64,7 @@ pub mod testing { events_source::{EventConsumer, EventsStreamer}, }; use hotshot_types::{ - data::{Leaf, ViewNumber}, + data::{Leaf2, ViewNumber}, event::LeafInfo, light_client::StateKeyPair, traits::{ @@ -367,6 +367,7 @@ pub mod testing { Duration::from_secs(60), Duration::from_millis(500), ChainConfig::default().base_fee, + 819200, ) .await .unwrap(); @@ -435,7 +436,7 @@ pub mod testing { if let EventType::QuorumProposal { proposal, .. } = event.event { let parent_view_number = *proposal.data.view_number; let parent_commitment = - Leaf::from_quorum_proposal(&proposal.data).payload_commitment(); + Leaf2::from_quorum_proposal(&proposal.data).payload_commitment(); let encoded_signature = ::SignatureKey::sign( &hotshot_client_private_key, parent_commitment.as_ref(), diff --git a/builder/src/non_permissioned.rs b/builder/src/non_permissioned.rs index 9367e60f3c..ab33c1fb35 100644 --- a/builder/src/non_permissioned.rs +++ b/builder/src/non_permissioned.rs @@ -4,7 +4,7 @@ use anyhow::Context; use async_broadcast::broadcast; use async_lock::RwLock; use espresso_types::{ - eth_signature_key::EthKeyPair, v0_3::ChainConfig, FeeAmount, NodeState, Payload, SeqTypes, + eth_signature_key::EthKeyPair, v0_99::ChainConfig, FeeAmount, NodeState, Payload, SeqTypes, ValidatedState, }; use hotshot::traits::BlockPayload; @@ -75,6 +75,7 @@ impl BuilderConfig { max_block_size_increment_period: Duration, maximize_txns_count_timeout_duration: Duration, base_fee: FeeAmount, + tx_status_cache_size: usize, ) -> anyhow::Result { tracing::info!( address = %builder_key_pair.fee_account(), @@ -130,6 +131,7 @@ impl BuilderConfig { max_block_size_increment_period, instance_state.chain_config.max_block_size.into(), node_count.into(), + tx_status_cache_size, ); let global_state = Arc::new(RwLock::new(global_state)); diff --git a/contracts/rust/adapter/Cargo.toml b/contracts/rust/adapter/Cargo.toml index 947e8f568f..edb5f6e343 100644 --- a/contracts/rust/adapter/Cargo.toml +++ b/contracts/rust/adapter/Cargo.toml @@ -22,6 +22,7 @@ hotshot-types = { workspace = true } jf-pcs = { workspace = true } jf-plonk = { workspace = true } jf-utils = { workspace = true } +libp2p = { workspace = true, features = ["serde"] } num-bigint = { version = "0.4", default-features = false } num-traits = { version = "0.2", default-features = false } serde = { workspace = true } diff --git a/data/genesis/demo-marketplace.toml b/data/genesis/demo-marketplace.toml index aa7737b7ce..4b7f0d7366 100644 --- a/data/genesis/demo-marketplace.toml +++ b/data/genesis/demo-marketplace.toml @@ -1,5 +1,5 @@ base_version = "0.2" -upgrade_version = "0.3" +upgrade_version = "0.99" [stake_table] capacity = 10 @@ -18,7 +18,7 @@ timestamp = "1970-01-01T00:00:00Z" number = 0 [[upgrade]] -version = "0.3" +version = "0.99" start_proposing_view = 10 stop_proposing_view = 60 diff --git a/data/v3/messages.bin b/data/v3/messages.bin index 2ec88b871e..b07e615a29 100644 Binary files a/data/v3/messages.bin and b/data/v3/messages.bin differ diff --git a/data/v3/messages.json b/data/v3/messages.json index 2c01354e2f..fcf77f9592 100644 --- a/data/v3/messages.json +++ b/data/v3/messages.json @@ -8,19 +8,13 @@ "data": { "block_header": { "fields": { - "auction_results": { - "reserve_bids": [], - "view_number": 0, - "winning_bids": [] - }, "block_merkle_tree_root": "MERKLE_COMM~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAQA", "builder_commitment": "BUILDER_COMMITMENT~tEvs0rxqOiMCvfe2R0omNNaphSlUiEDrb2q0IZpRcgA_", - "builder_signature": [], + "builder_signature": null, "chain_config": { "chain_config": { "Left": { "base_fee": "0", - "bid_recipient": null, "chain_id": "35353", "fee_contract": null, "fee_recipient": "0x0000000000000000000000000000000000000000", @@ -28,12 +22,10 @@ } } }, - "fee_info": [ - { - "account": "0x0000000000000000000000000000000000000000", - "amount": "0" - } - ], + "fee_info": { + "account": "0x0000000000000000000000000000000000000000", + "amount": "0" + }, "fee_merkle_tree_root": "MERKLE_COMM~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAKA", "height": 0, "l1_finalized": null, @@ -106,7 +98,7 @@ "General": { "Vote": { "data": { - "leaf_commit": "COMMIT~OKSLSeNGssYMfKSuB2uAM78yenmn7z8DaeAZYsIhcy-c" + "leaf_commit": "COMMIT~EfU0gW2LYJvl8O-KeUQ7-RWlFZpHufcuRotW-QHXNy80" }, "signature": [ "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", diff --git a/data/v3/chain_config.bin b/data/v99/chain_config.bin similarity index 66% rename from data/v3/chain_config.bin rename to data/v99/chain_config.bin index 92c05b086c..b966a83cbb 100644 Binary files a/data/v3/chain_config.bin and b/data/v99/chain_config.bin differ diff --git a/data/v3/chain_config.json b/data/v99/chain_config.json similarity index 100% rename from data/v3/chain_config.json rename to data/v99/chain_config.json diff --git a/data/v3/header.bin b/data/v99/header.bin similarity index 93% rename from data/v3/header.bin rename to data/v99/header.bin index 8e50a6eba6..c07c0e1e64 100644 Binary files a/data/v3/header.bin and b/data/v99/header.bin differ diff --git a/data/v3/header.json b/data/v99/header.json similarity index 98% rename from data/v3/header.json rename to data/v99/header.json index 2b8fa12342..a4cfc7846c 100644 --- a/data/v3/header.json +++ b/data/v99/header.json @@ -49,7 +49,7 @@ "version": { "Version": { "major": 0, - "minor": 3 + "minor": 99 } } } \ No newline at end of file diff --git a/data/v99/messages.bin b/data/v99/messages.bin new file mode 100644 index 0000000000..2ec88b871e Binary files /dev/null and b/data/v99/messages.bin differ diff --git a/data/v99/messages.json b/data/v99/messages.json new file mode 100644 index 0000000000..2c01354e2f --- /dev/null +++ b/data/v99/messages.json @@ -0,0 +1,443 @@ +[ + { + "kind": { + "Consensus": { + "General": { + "Proposal": { + "_pd": null, + "data": { + "block_header": { + "fields": { + "auction_results": { + "reserve_bids": [], + "view_number": 0, + "winning_bids": [] + }, + "block_merkle_tree_root": "MERKLE_COMM~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAQA", + "builder_commitment": "BUILDER_COMMITMENT~tEvs0rxqOiMCvfe2R0omNNaphSlUiEDrb2q0IZpRcgA_", + "builder_signature": [], + "chain_config": { + "chain_config": { + "Left": { + "base_fee": "0", + "bid_recipient": null, + "chain_id": "35353", + "fee_contract": null, + "fee_recipient": "0x0000000000000000000000000000000000000000", + "max_block_size": "30720" + } + } + }, + "fee_info": [ + { + "account": "0x0000000000000000000000000000000000000000", + "amount": "0" + } + ], + "fee_merkle_tree_root": "MERKLE_COMM~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAKA", + "height": 0, + "l1_finalized": null, + "l1_head": 0, + "ns_table": { + "bytes": "AAAAAA==" + }, + "payload_commitment": "HASH~AazstQer_ho1SqgGT0r10_Gs0BnjfbPBHJdSO3HHbp29", + "timestamp": 0 + }, + "version": { + "Version": { + "major": 0, + "minor": 3 + } + } + }, + "justify_qc": { + "_pd": null, + "data": { + "leaf_commit": "COMMIT~tqpBNqqt63akxJWcfI46uDV8c_Sn_aZ777yCj4X_ukDG" + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~tzMwZg2x5QJTx7Di9eEvNC0P8CZ_iNX7LJ01DHA9XEdO" + }, + "proposal_certificate": { + "Timeout": { + "_pd": null, + "data": { + "view": 0 + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~TZG1F34lxU6Ny9aKQMkjZAxjW9zotdwW75EHEGbyALOi" + } + }, + "upgrade_certificate": { + "_pd": null, + "data": { + "decide_by": 0, + "new_version": { + "major": 1, + "minor": 0 + }, + "new_version_first_view": 0, + "new_version_hash": [], + "old_version": { + "major": 0, + "minor": 1 + }, + "old_version_last_view": 0 + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~roiQgLLeI4uYqYxjz-0jPwtLyNhSlnfriPEVZ-_4RUrW" + }, + "view_number": 0 + }, + "signature": "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "Vote": { + "data": { + "leaf_commit": "COMMIT~OKSLSeNGssYMfKSuB2uAM78yenmn7z8DaeAZYsIhcy-c" + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "ViewSyncPreCommitVote": { + "data": { + "relay": 0, + "round": 0 + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "ViewSyncCommitVote": { + "data": { + "relay": 0, + "round": 0 + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "ViewSyncFinalizeVote": { + "data": { + "relay": 0, + "round": 0 + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "ViewSyncPreCommitCertificate": { + "_pd": null, + "data": { + "relay": 0, + "round": 0 + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~OQecZxfFpuEuPJgkpsQoglnqY0fm6Qi1PUarYCgiFQ0T" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "ViewSyncCommitCertificate": { + "_pd": null, + "data": { + "relay": 0, + "round": 0 + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~POgBCaDjtUV3Il5-FXVr5KN2KzYSgipfKX6Ci0-nxduO" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "ViewSyncFinalizeCertificate": { + "_pd": null, + "data": { + "relay": 0, + "round": 0 + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~s5i9wmQWH7VU90CUiEWRdAG19LI1iXydSMxp9gZ7kHco" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "TimeoutVote": { + "data": { + "view": 0 + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "UpgradeProposal": { + "_pd": null, + "data": { + "upgrade_proposal": { + "decide_by": 0, + "new_version": { + "major": 1, + "minor": 0 + }, + "new_version_first_view": 0, + "new_version_hash": [], + "old_version": { + "major": 0, + "minor": 1 + }, + "old_version_last_view": 0 + }, + "view_number": 0 + }, + "signature": "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "General": { + "UpgradeVote": { + "data": { + "decide_by": 0, + "new_version": { + "major": 1, + "minor": 0 + }, + "new_version_first_view": 0, + "new_version_hash": [], + "old_version": { + "major": 0, + "minor": 1 + }, + "old_version_last_view": 0 + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "Da": { + "DaProposal": { + "_pd": null, + "data": { + "encoded_transactions": [ + 1, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 1, + 2, + 3 + ], + "metadata": { + "bytes": "AQAAAAEAAAALAAAA" + }, + "view_number": 0 + }, + "signature": "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "Da": { + "DaVote": { + "data": { + "payload_commit": "HASH~AazstQer_ho1SqgGT0r10_Gs0BnjfbPBHJdSO3HHbp29" + }, + "signature": [ + "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + ], + "view_number": 0 + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "Da": { + "DaCertificate": { + "_pd": null, + "data": { + "payload_commit": "HASH~AazstQer_ho1SqgGT0r10_Gs0BnjfbPBHJdSO3HHbp29" + }, + "signatures": null, + "view_number": 0, + "vote_commitment": "COMMIT~5E3F3rC4E9DBhMBqOTmjZ9tjX4VFaV5gqrZJl0y6V05D" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Consensus": { + "Da": { + "VidDisperseMsg": { + "_pd": null, + "data": { + "common": { + "all_evals_digest": "FIELD~rF4TMFZMXJCieDeov31aNuDG5nDGR-iQdteEgBjXkErn", + "multiplicity": 1, + "num_storage_nodes": 1, + "payload_byte_len": 11, + "poly_commits": "FIELD~AQAAAAAAAAD2xsICwO-z0CXx_ucl0FV1j-zJ3tgPO-OL8gYLvXkIkNE" + }, + "payload_commitment": "HASH~Z03vXeC1EEaBGf5iacsBEWYiA7PHi3K6uS9gVpmlUx3t", + "recipient_key": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U", + "share": { + "aggregate_proofs": "FIELD~AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQGY", + "evals": "FIELD~AQAAAAAAAAABAAAAAwAAAAECAwAAAAAAAAAAAAAAAAAAAAAAAAAAAMk", + "evals_proof": { + "pos": "FIELD~AAAAAAAAAAD7", + "proof": [ + { + "Leaf": { + "elem": "FIELD~AQAAAAAAAAABAAAAAwAAAAECAwAAAAAAAAAAAAAAAAAAAAAAAAAAAMk", + "pos": "FIELD~AAAAAAAAAAD7", + "value": "FIELD~rF4TMFZMXJCieDeov31aNuDG5nDGR-iQdteEgBjXkErn" + } + } + ] + }, + "index": 0 + }, + "view_number": 0 + }, + "signature": "BLS_SIG~g3CUcLMD7fnDsBhItKvSqXLwEqdWfvusSrgpL1GBAxf-SWFW0t32Agt2jrOiempjjpI7dBwYGgXv-0mvI4sGEEE" + } + } + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + }, + { + "kind": { + "Data": { + "SubmitTransaction": [ + { + "namespace": 1, + "payload": "AQID" + }, + 0 + ] + } + }, + "sender": "BLS_VER_KEY~bQszS-QKYvUij2g20VqS8asttGSb95NrTu2PUj0uMh1CBUxNy1FqyPDjZqB29M7ZbjWqj79QkEOWkpga84AmDYUeTuWmy-0P1AdKHD3ehc-dKvei78BDj5USwXPJiDUlCxvYs_9rWYhagaq-5_LXENr78xel17spftNd5MA1Mw5U" + } +] \ No newline at end of file diff --git a/hotshot-state-prover/src/circuit.rs b/hotshot-state-prover/src/circuit.rs index b3d74401a6..baf5c8af38 100644 --- a/hotshot-state-prover/src/circuit.rs +++ b/hotshot-state-prover/src/circuit.rs @@ -239,7 +239,7 @@ where signer_bit_vec_var[stake_table_capacity - 1].0, )?); } - let acc_amount_var = circuit.sum(&signed_amount_var)?; + let acc_amount_var = PlonkCircuit::sum(&mut circuit, &signed_amount_var)?; circuit.enforce_leq(stake_table_state_pub_var.threshold, acc_amount_var)?; // checking the commitment for the list of schnorr keys diff --git a/marketplace-builder/src/bin/marketplace-builder.rs b/marketplace-builder/src/bin/marketplace-builder.rs index ccc9e93fd8..7728717d20 100644 --- a/marketplace-builder/src/bin/marketplace-builder.rs +++ b/marketplace-builder/src/bin/marketplace-builder.rs @@ -7,7 +7,6 @@ use espresso_types::{ }; use futures::future::pending; use hotshot::helpers::initialize_logging; -use hotshot::traits::ValidatedState; use hotshot_types::{ data::ViewNumber, traits::node_implementation::{ConsensusTime, Versions}, @@ -168,8 +167,6 @@ async fn run( let base_fee = genesis.max_base_fee(); tracing::info!(?base_fee, "base_fee"); - let validated_state = ValidatedState::genesis(&instance_state).0; - let api_response_timeout_duration = opt.max_api_timeout_duration; // make the txn timeout as 1/4 of the api_response_timeout_duration @@ -182,7 +179,6 @@ async fn run( opt.tx_channel_capacity, opt.event_channel_capacity, instance_state.clone(), - validated_state, opt.hotshot_event_streaming_url, builder_server_url, api_response_timeout_duration, diff --git a/marketplace-builder/src/builder.rs b/marketplace-builder/src/builder.rs index 4b8d024dc9..46a2005f59 100644 --- a/marketplace-builder/src/builder.rs +++ b/marketplace-builder/src/builder.rs @@ -8,7 +8,7 @@ use async_broadcast::{ use async_lock::RwLock; use espresso_types::{ eth_signature_key::EthKeyPair, - v0_3::{ChainConfig, RollupRegistration}, + v0_99::{ChainConfig, RollupRegistration}, FeeAmount, L1Client, MarketplaceVersion, MockSequencerVersions, NamespaceId, NodeState, Payload, SeqTypes, SequencerVersions, ValidatedState, V0_1, }; @@ -17,8 +17,9 @@ use ethers::{ signers::{coins_bip39::English, MnemonicBuilder, Signer as _, Wallet}, types::{Address, U256}, }; +use futures::FutureExt; use hotshot::traits::BlockPayload; -use hotshot_builder_api::v0_3::builder::{ +use hotshot_builder_api::v0_99::builder::{ BuildError, Error as BuilderApiError, Options as HotshotBuilderApiOptions, }; use hotshot_events_service::{ @@ -28,20 +29,14 @@ use hotshot_events_service::{ use hotshot_types::{ data::{fake_commitment, Leaf, ViewNumber}, traits::{ - block_contents::{vid_commitment, GENESIS_VID_NUM_STORAGE_NODES}, + block_contents::{vid_commitment, Transaction as _, GENESIS_VID_NUM_STORAGE_NODES}, node_implementation::{ConsensusTime, NodeType, Versions}, EncodeBytes, }, utils::BuilderCommitment, }; -use marketplace_builder_core::service::EventServiceStream; -use marketplace_builder_core::{ - builder_state::{BuildBlockInfo, BuilderState, MessageType, ResponseMessage}, - service::{ - run_builder_service, BroadcastSenders, BuilderHooks, GlobalState, ProxyGlobalState, - ReceivedTransaction, - }, -}; +use marketplace_builder_core::service::{GlobalState, ProxyGlobalState}; +use marketplace_builder_core::{hooks::BuilderHooks, service::EventServiceStream}; use marketplace_builder_shared::block::ParentBlockReferences; use marketplace_solver::SolverError; use sequencer::{catchup::StatePeers, L1Params, NetworkParams, SequencerApiVersion}; @@ -56,9 +51,11 @@ use crate::hooks::{ self, fetch_namespaces_to_skip, BidConfig, EspressoFallbackHooks, EspressoReserveHooks, }; -#[derive(Clone, Debug)] +type DynamicHooks = Box>; + +#[derive(Clone)] pub struct BuilderConfig { - pub global_state: Arc>>, + pub global_state: Arc>, pub hotshot_events_api_url: Url, pub hotshot_builder_apis_url: Url, } @@ -84,32 +81,21 @@ pub async fn build_instance_state( } impl BuilderConfig { - async fn start_service( - global_state: Arc>>, - senders: BroadcastSenders, - hooks: Arc, - builder_key_pair: EthKeyPair, + async fn start_service( + global_state: Arc>, events_api_url: Url, builder_api_url: Url, - api_timeout: Duration, - ) -> anyhow::Result<()> - where - H: BuilderHooks, - { + ) -> anyhow::Result<()> { // create the proxy global state it will server the builder apis - let app = ProxyGlobalState::new( - global_state.clone(), - Arc::clone(&hooks), - (builder_key_pair.fee_account(), builder_key_pair.clone()), - api_timeout, - ) - .into_app() - .context("Failed to construct builder API app")?; + let app = Arc::clone(&global_state) + .into_app() + .context("Failed to construct builder API app")?; spawn(async move { tracing::info!("Starting builder API app at {builder_api_url}"); let res = app .serve(builder_api_url, MarketplaceVersion::instance()) + .boxed() // https://github.com/rust-lang/rust/issues/102211 .await; tracing::error!(?res, "Builder API app exited"); }); @@ -124,7 +110,7 @@ impl BuilderConfig { .await?; spawn(async move { - let res = run_builder_service::(hooks, senders, stream).await; + let res = global_state.start_event_loop(stream).await; tracing::error!(?res, "Builder service exited"); if res.is_err() { panic!("Builder should restart."); @@ -142,7 +128,6 @@ impl BuilderConfig { tx_channel_capacity: NonZeroUsize, event_channel_capacity: NonZeroUsize, instance_state: NodeState, - validated_state: ValidatedState, events_api_url: Url, builder_api_url: Url, api_timeout: Duration, @@ -162,98 +147,42 @@ impl BuilderConfig { "initializing builder", ); - let (mut senders, receivers) = - marketplace_builder_core::service::broadcast_channels(event_channel_capacity.get()); - - senders.transactions.set_capacity(tx_channel_capacity.get()); - - // builder api request channel - let (req_sender, req_receiver) = - broadcast::>(event_channel_capacity.get()); - - let (genesis_payload, genesis_ns_table) = - Payload::from_transactions([], &validated_state, &instance_state) - .await - .expect("genesis payload construction failed"); - - let builder_commitment = genesis_payload.builder_commitment(&genesis_ns_table); - - let vid_commitment = { - let payload_bytes = genesis_payload.encode(); - vid_commitment(&payload_bytes, GENESIS_VID_NUM_STORAGE_NODES) - }; - - // create the global state - let global_state: GlobalState = GlobalState::::new( - req_sender, - senders.transactions.clone(), - vid_commitment, - bootstrapped_view, - ); - - let global_state = Arc::new(RwLock::new(global_state)); - - let builder_state = BuilderState::::new( - ParentBlockReferences { - view_number: bootstrapped_view, - vid_commitment, - leaf_commit: fake_commitment(), - builder_commitment, - }, - &receivers, - req_receiver, - Vec::new() /* tx_queue */, - Arc::clone(&global_state), - maximize_txns_count_timeout_duration, - base_fee - .as_u64() - .context("the base fee exceeds the maximum amount that a builder can pay (defined by u64::MAX)")?, - Arc::new(instance_state), - Duration::from_secs(60), - Arc::new(validated_state), - ); - - // Start builder event loop - builder_state.event_loop(); - - if is_reserve { + let hooks: DynamicHooks = if is_reserve { let bid_config = bid_config.expect("Missing bid config for the reserve builder."); - let hooks = Arc::new(hooks::EspressoReserveHooks { + Box::new(hooks::EspressoReserveHooks { namespaces: bid_config.namespaces.into_iter().collect(), solver_base_url, builder_api_base_url: builder_api_url.clone(), bid_key_pair: builder_key_pair.clone(), bid_amount: bid_config.amount, - }); - Self::start_service( - Arc::clone(&global_state), - senders, - hooks, - builder_key_pair, - events_api_url.clone(), - builder_api_url.clone(), - api_timeout, - ) - .await?; + }) } else { // Fetch the namespaces upon initialization. It will be fetched every 20 views when // handling events. let namespaces_to_skip = fetch_namespaces_to_skip(solver_base_url.clone()).await; - let hooks = Arc::new(hooks::EspressoFallbackHooks { + Box::new(hooks::EspressoFallbackHooks { solver_base_url, namespaces_to_skip: RwLock::new(namespaces_to_skip).into(), - }); - Self::start_service( - Arc::clone(&global_state), - senders, - hooks, - builder_key_pair, - events_api_url.clone(), - builder_api_url.clone(), - api_timeout, - ) - .await?; - } + }) + }; + + // create the global state + let global_state: Arc> = GlobalState::new( + (builder_key_pair.fee_account(), builder_key_pair), + api_timeout, + maximize_txns_count_timeout_duration, + Duration::from_secs(60), + tx_channel_capacity.get(), + base_fee.as_u64().expect("Base fee too high"), + hooks, + ); + + Self::start_service( + Arc::clone(&global_state), + events_api_url.clone(), + builder_api_url.clone(), + ) + .await?; tracing::info!("Builder init finished"); @@ -278,9 +207,9 @@ mod test { use committable::Committable; use espresso_types::{ mock::MockStateCatchup, - v0_3::{RollupRegistration, RollupRegistrationBody}, - Event, FeeAccount, MarketplaceVersion, NamespaceId, PubKey, SeqTypes, SequencerVersions, - Transaction, + v0_99::{RollupRegistration, RollupRegistrationBody}, + Event, FeeAccount, Leaf2, MarketplaceVersion, NamespaceId, PubKey, SeqTypes, + SequencerVersions, Transaction, }; use ethers::{core::k256::elliptic_curve::rand_core::block, utils::Anvil}; use futures::{Stream, StreamExt}; @@ -291,7 +220,7 @@ mod test { EventType::{Decide, *}, }; use hotshot::{rand, types::EventType}; - use hotshot_builder_api::v0_3::builder::BuildError; + use hotshot_builder_api::v0_99::builder::BuildError; use hotshot_events_service::{ events::{Error as EventStreamApiError, Options as EventStreamingApiOptions}, events_source::{EventConsumer, EventsStreamer}, @@ -308,10 +237,6 @@ mod test { signature_key::{BuilderSignatureKey, SignatureKey}, }, }; - use marketplace_builder_core::{ - builder_state::{self, RequestMessage, TransactionSource}, - service::run_builder_service, - }; use marketplace_builder_shared::block::BuilderStateId; use marketplace_solver::{testing::MockSolver, SolverError}; use portpicker::pick_unused_port; @@ -472,7 +397,7 @@ mod test { async fn proposal_view_number_and_commitment(event: Event) -> Option<(u64, VidCommitment)> { if let EventType::QuorumProposal { proposal, .. } = event.event { let view_number = *proposal.data.view_number; - let commitment = Leaf::from_quorum_proposal(&proposal.data).payload_commitment(); + let commitment = Leaf2::from_quorum_proposal(&proposal.data).payload_commitment(); return Some((view_number, commitment)); } None @@ -630,7 +555,6 @@ mod test { NonZeroUsize::new(1024).unwrap(), NonZeroUsize::new(1024).unwrap(), NodeState::default(), - ValidatedState::default(), urls.event.clone(), urls.builder.clone(), Duration::from_secs(2), @@ -694,28 +618,17 @@ mod test { let signature = bundle.signature; assert!(signature.verify(txn_commit, address).is_ok()); - let (payload, _) = Payload::from_transactions( - vec![registered_transaction], - &ValidatedState::default(), - &NodeState::default(), - ) - .await - .expect("unable to create payload"); - - let encoded_txns = payload.encode().to_vec(); - let block_size = encoded_txns.len() as u64; - - let fees = base_fee * block_size; + let fee = base_fee * registered_transaction.minimum_block_size(); let fee_signature = <::BuilderSignatureKey as BuilderSignatureKey>::sign_sequencing_fee_marketplace( &keypair, - fees.as_u64().unwrap(), + fee.as_u64().unwrap(), parent_view_number + 1, ) .unwrap(); let sequencing_fee = BuilderFee { - fee_amount: fees.as_u64().unwrap(), + fee_amount: fee.as_u64().unwrap(), fee_account: FeeAccount::from(address), fee_signature, }; @@ -765,7 +678,6 @@ mod test { NonZeroUsize::new(1024).unwrap(), NonZeroUsize::new(1024).unwrap(), NodeState::default(), - ValidatedState::default(), urls.event.clone(), urls.builder.clone(), Duration::from_secs(2), @@ -826,28 +738,17 @@ mod test { let signature = bundle.signature; assert!(signature.verify(txn_commit, address).is_ok()); - let (payload, _) = Payload::from_transactions( - vec![unregistered_transaction], - &ValidatedState::default(), - &NodeState::default(), - ) - .await - .expect("unable to create payload"); - - let encoded_txns = payload.encode().to_vec(); - let block_size = encoded_txns.len() as u64; - - let fees = base_fee * block_size; + let fee = base_fee * unregistered_transaction.minimum_block_size(); let fee_signature = <::BuilderSignatureKey as BuilderSignatureKey>::sign_sequencing_fee_marketplace( &keypair, - fees.as_u64().unwrap(), + fee.as_u64().unwrap(), parent_view_number + 1, ) .unwrap(); let sequencing_fee = BuilderFee { - fee_amount: fees.as_u64().unwrap(), + fee_amount: fee.as_u64().unwrap(), fee_account: FeeAccount::from(address), fee_signature, }; diff --git a/marketplace-builder/src/hooks.rs b/marketplace-builder/src/hooks.rs index 3d89ef1350..ede7452152 100644 --- a/marketplace-builder/src/hooks.rs +++ b/marketplace-builder/src/hooks.rs @@ -4,10 +4,10 @@ use std::time::Duration; use async_lock::RwLock; use async_trait::async_trait; -use espresso_types::v0_3::BidTxBody; +use espresso_types::v0_99::BidTxBody; use tokio::{spawn, time::sleep}; -use espresso_types::v0_3::RollupRegistration; +use espresso_types::v0_99::RollupRegistration; use espresso_types::MarketplaceVersion; use espresso_types::SeqTypes; @@ -16,7 +16,7 @@ use hotshot::types::EventType; use hotshot::types::Event; use hotshot_types::traits::node_implementation::Versions; -use marketplace_builder_core::service::BuilderHooks; +use marketplace_builder_core::hooks::BuilderHooks; use espresso_types::FeeAmount; diff --git a/marketplace-builder/src/lib.rs b/marketplace-builder/src/lib.rs index d81bc9584f..8154b87502 100755 --- a/marketplace-builder/src/lib.rs +++ b/marketplace-builder/src/lib.rs @@ -14,7 +14,7 @@ use async_trait::async_trait; use espresso_types::{ eth_signature_key::EthKeyPair, v0::traits::{PersistenceOptions, SequencerPersistence, StateCatchup}, - v0_3::BidTxBody, + v0_99::BidTxBody, FeeVersion, MarketplaceVersion, SeqTypes, SequencerVersions, }; use ethers::{ @@ -29,14 +29,14 @@ use futures::{ use hotshot::{ traits::election::static_committee::StaticCommittee, types::{SignatureKey, SystemContextHandle}, - HotShotInitializer, Memberships, SystemContext, + HotShotInitializer, SystemContext, }; -use hotshot_builder_api::v0_3::builder::{ +use hotshot_builder_api::v0_99::builder::{ BuildError, Error as BuilderApiError, Options as HotshotBuilderApiOptions, }; use hotshot_orchestrator::client::{OrchestratorClient, ValidatorArgs}; use hotshot_types::network::NetworkConfig; -use marketplace_builder_core::service::{BuilderHooks, GlobalState, ProxyGlobalState}; +use marketplace_builder_core::service::{GlobalState, ProxyGlobalState}; use std::sync::Arc; use tokio::{spawn, task::JoinHandle}; // Should move `STAKE_TABLE_CAPACITY` in the sequencer repo when we have variate stake table support diff --git a/marketplace-solver/src/api.rs b/marketplace-solver/src/api.rs index 09d708460e..5f0d9c8c30 100644 --- a/marketplace-solver/src/api.rs +++ b/marketplace-solver/src/api.rs @@ -4,7 +4,7 @@ use std::{ }; use espresso_types::{ - v0_3::{BidTx, RollupRegistration, RollupUpdate}, + v0_99::{BidTx, RollupRegistration, RollupUpdate}, NamespaceId, }; use futures::FutureExt; diff --git a/marketplace-solver/src/state.rs b/marketplace-solver/src/state.rs index 038c53e0d7..efd06fe690 100644 --- a/marketplace-solver/src/state.rs +++ b/marketplace-solver/src/state.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use async_trait::async_trait; use committable::Committable; use espresso_types::{ - v0_3::{ + v0_99::{ BidTx, RollupRegistration, RollupRegistrationBody, RollupUpdate, RollupUpdatebody, SolverAuctionResults, }, diff --git a/marketplace-solver/src/testing.rs b/marketplace-solver/src/testing.rs index c65ca78dc5..b6745fa86f 100755 --- a/marketplace-solver/src/testing.rs +++ b/marketplace-solver/src/testing.rs @@ -122,10 +122,11 @@ impl MockSolver { #[cfg(all(test, not(feature = "embedded-db")))] mod test { - use committable::Committable; use espresso_types::{ - v0_3::{BidTx, RollupRegistration, RollupRegistrationBody, RollupUpdate, RollupUpdatebody}, + v0_99::{ + BidTx, RollupRegistration, RollupRegistrationBody, RollupUpdate, RollupUpdatebody, + }, FeeAccount, MarketplaceVersion, SeqTypes, Update::{Set, Skip}, }; diff --git a/node-metrics/src/api/node_validator/v0/create_node_validator_api.rs b/node-metrics/src/api/node_validator/v0/create_node_validator_api.rs index 68f6f43900..c052601fe7 100644 --- a/node-metrics/src/api/node_validator/v0/create_node_validator_api.rs +++ b/node-metrics/src/api/node_validator/v0/create_node_validator_api.rs @@ -13,7 +13,7 @@ use crate::service::{ server_message::ServerMessage, }; use async_lock::RwLock; -use espresso_types::{PubKey, SeqTypes}; +use espresso_types::{downgrade_leaf, PubKey, SeqTypes}; use futures::{ channel::mpsc::{self, Receiver, SendError, Sender}, Sink, SinkExt, Stream, StreamExt, @@ -127,7 +127,8 @@ impl HotShotEventProcessingTask { match event { EventType::Decide { leaf_chain, .. } => { for leaf_info in leaf_chain.iter().rev() { - let leaf = leaf_info.leaf.clone(); + let leaf2 = leaf_info.leaf.clone(); + let leaf = downgrade_leaf(leaf2); let send_result = leaf_sender.send(leaf).await; if let Err(err) = send_result { diff --git a/node-metrics/src/service/data_state/mod.rs b/node-metrics/src/service/data_state/mod.rs index 1535a72fcb..5aeea99070 100644 --- a/node-metrics/src/service/data_state/mod.rs +++ b/node-metrics/src/service/data_state/mod.rs @@ -569,7 +569,7 @@ mod tests { }; use async_lock::RwLock; use espresso_types::{ - v0_3::ChainConfig, BlockMerkleTree, FeeMerkleTree, Leaf, NodeState, ValidatedState, + v0_99::ChainConfig, BlockMerkleTree, FeeMerkleTree, Leaf, NodeState, ValidatedState, }; use futures::{channel::mpsc, SinkExt, StreamExt}; use hotshot_types::{signature_key::BLSPubKey, traits::signature_key::SignatureKey}; diff --git a/sequencer-sqlite/Cargo.lock b/sequencer-sqlite/Cargo.lock index 17a3ef03ff..ad03aad196 100644 --- a/sequencer-sqlite/Cargo.lock +++ b/sequencer-sqlite/Cargo.lock @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "arbitrary" @@ -474,7 +474,7 @@ dependencies = [ "rand 0.8.5", "sha2 0.10.8", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", "ureq", ] @@ -529,7 +529,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", ] [[package]] @@ -540,8 +540,8 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", - "synstructure 0.13.1", + "syn 2.0.90", + "synstructure", ] [[package]] @@ -552,7 +552,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -837,7 +837,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -867,7 +867,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -903,7 +903,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-sink", "futures-util", "memchr", @@ -916,7 +916,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-sink", "futures-util", "memchr", @@ -970,7 +970,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -987,7 +987,7 @@ checksum = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -999,7 +999,7 @@ dependencies = [ "async-trait", "axum-core", "bitflags 1.3.2", - "bytes 1.8.0", + "bytes 1.9.0", "futures-util", "http 0.2.12", "http-body 0.4.6", @@ -1025,7 +1025,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", - "bytes 1.8.0", + "bytes 1.9.0", "futures-util", "http 0.2.12", "http-body 0.4.6", @@ -1046,6 +1046,15 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "backon" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" +dependencies = [ + "fastrand 2.2.0", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -1182,9 +1191,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" dependencies = [ "arrayref", "arrayvec", @@ -1294,9 +1303,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -1339,27 +1348,27 @@ dependencies = [ [[package]] name = "capnp" -version = "0.19.8" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e985a566bdaae9a428a957d12b10c318d41b2afddb54cfbb764878059df636e" +checksum = "bce4e2d41c16cf9188f47ca4d59fdcdca1f33705af211bdb41f0afbd3442f8b5" dependencies = [ "embedded-io", ] [[package]] name = "capnpc" -version = "0.19.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ba30e0f08582d53c2f3710cf4bb65ff562614b1ba86906d7391adffe189ec" +checksum = "1aa3d5f01e69ed11656d2c7c47bf34327ea9bfb5c85c7de787fcd7b6c5e45b61" dependencies = [ "capnp", ] [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -1378,6 +1387,16 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "cargo_toml" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +dependencies = [ + "serde", + "toml 0.7.8", +] + [[package]] name = "cbor4ii" version = "0.3.3" @@ -1389,9 +1408,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "jobserver", "libc", @@ -1401,9 +1420,9 @@ dependencies = [ [[package]] name = "cdn-broker" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5#f6cc7c2fc53eaa52a4901e775d9be7ac820af72c" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", "clap", "console-subscriber", "dashmap", @@ -1418,20 +1437,20 @@ dependencies = [ "rkyv", "tokio", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] name = "cdn-broker" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "clap", "console-subscriber", "dashmap", "derivative", - "jf-signature 0.1.0", + "jf-signature 0.2.0", "lazy_static", "local-ip-address", "parking_lot", @@ -1441,54 +1460,55 @@ dependencies = [ "rkyv", "tokio", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] name = "cdn-client" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "clap", - "jf-signature 0.1.0", + "derive_more 1.0.0", + "jf-signature 0.2.0", "parking_lot", "rand 0.8.5", "tokio", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] name = "cdn-marshal" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5#f6cc7c2fc53eaa52a4901e775d9be7ac820af72c" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", "clap", "jf-signature 0.1.0", "tokio", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] name = "cdn-marshal" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "clap", - "jf-signature 0.1.0", + "jf-signature 0.2.0", "tokio", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] name = "cdn-proto" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5#f6cc7c2fc53eaa52a4901e775d9be7ac820af72c" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade#849e7edb32788e42738541ba4d5c64d3e061d86d" dependencies = [ "anyhow", "ark-serialize", @@ -1506,14 +1526,14 @@ dependencies = [ "quinn", "rand 0.8.5", "rcgen 0.13.1", - "redis 0.25.4", + "redis", "rkyv", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-pki-types", "sqlx", "thiserror 1.0.69", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tracing", "url", "warp", @@ -1522,7 +1542,7 @@ dependencies = [ [[package]] name = "cdn-proto" version = "0.4.0" -source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7#5406fde54e61058428a7b55e1a98b699f0f606f1" +source = "git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6#9409763dbcb726e43218c3c4cfde91c7d5de6a52" dependencies = [ "anyhow", "ark-serialize", @@ -1530,7 +1550,8 @@ dependencies = [ "capnp", "capnpc", "derivative", - "jf-signature 0.1.0", + "derive_more 1.0.0", + "jf-signature 0.2.0", "kanal", "lazy_static", "mnemonic", @@ -1540,14 +1561,14 @@ dependencies = [ "quinn", "rand 0.8.5", "rcgen 0.13.1", - "redis 0.26.1", + "redis", "rkyv", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-pki-types", "sqlx", "thiserror 1.0.69", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tracing", "url", "warp", @@ -1601,9 +1622,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.21" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" +checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" dependencies = [ "clap_builder", "clap_derive", @@ -1611,9 +1632,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.21" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" +checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" dependencies = [ "anstream", "anstyle", @@ -1630,7 +1651,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -1650,12 +1671,10 @@ name = "client" version = "0.1.0" dependencies = [ "anyhow", - "contract-bindings", "espresso-types", "ethers", "futures", "jf-merkle-tree", - "sequencer-utils", "surf-disco", "tokio", "tracing", @@ -1726,7 +1745,7 @@ version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-core", "memchr", "pin-project-lite 0.2.15", @@ -1776,7 +1795,7 @@ dependencies = [ "rust-ini", "serde", "serde_json", - "toml", + "toml 0.8.19", "yaml-rust2", ] @@ -1815,14 +1834,14 @@ dependencies = [ "tonic", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] name = "const-hex" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -1942,9 +1961,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -2127,7 +2146,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "socket2 0.5.7", + "socket2 0.5.8", "windows-sys 0.52.0", ] @@ -2171,50 +2190,29 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] name = "custom_debug" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89e0ae2c2a42be29595d05c50e3ce6096c0698a97e021c3289790f0750cc8e2" -dependencies = [ - "custom_debug_derive 0.5.1", -] - -[[package]] -name = "custom_debug" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e715bf0e503e909c7076c052e39dd215202e8edeb32f1c194fd630c314d256" +checksum = "2da7d1ad9567b3e11e877f1d7a0fa0360f04162f94965fc4448fbed41a65298e" dependencies = [ - "custom_debug_derive 0.6.1", + "custom_debug_derive", ] [[package]] name = "custom_debug_derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a9f3941234c9f62ceaa2782974827749de9b0a8a6487275a278da068e1baf7" -dependencies = [ - "proc-macro2", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "custom_debug_derive" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f731440b39c73910e253cb465ec1fac97732b3c7af215639881ec0c2a38f4f69" +checksum = "a707ceda8652f6c7624f2be725652e9524c815bf3b9d55a0b2320be2303f9c11" dependencies = [ "darling", - "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.89", - "synstructure 0.13.1", + "syn 2.0.90", + "synstructure", ] [[package]] @@ -2238,7 +2236,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2249,7 +2247,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2300,7 +2298,7 @@ checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2357,7 +2355,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2378,7 +2376,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2388,7 +2386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2401,7 +2399,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2422,7 +2420,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "unicode-xid", ] @@ -2531,7 +2529,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2683,7 +2681,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.9.0", "hex", "k256", "log", @@ -2703,7 +2701,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2724,12 +2722,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2737,11 +2735,6 @@ name = "espresso-systems-common" version = "0.4.0" source = "git+https://github.com/espressosystems/espresso-systems-common?tag=0.4.0#5abd890f79014a86db31286e1f3a529f161e69de" -[[package]] -name = "espresso-systems-common" -version = "0.4.1" -source = "git+https://github.com/espressosystems/espresso-systems-common?tag=0.4.1#2e889e878866c2a5cce1daaab947f7c93d5811ae" - [[package]] name = "espresso-types" version = "0.1.0" @@ -2764,7 +2757,6 @@ dependencies = [ "fluent-asserter", "futures", "hotshot", - "hotshot-orchestrator", "hotshot-query-service", "hotshot-types", "itertools 0.12.1", @@ -2785,7 +2777,7 @@ dependencies = [ "tagged-base64", "thiserror 1.0.69", "tide-disco", - "time 0.3.36", + "time 0.3.37", "tokio", "tracing", "url", @@ -2939,8 +2931,8 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.89", - "toml", + "syn 2.0.90", + "toml 0.8.19", "walkdir", ] @@ -2957,7 +2949,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2967,7 +2959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", - "bytes 1.8.0", + "bytes 1.9.0", "cargo_metadata", "chrono", "const-hex", @@ -2983,7 +2975,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.89", + "syn 2.0.90", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -3043,7 +3035,7 @@ dependencies = [ "async-trait", "auto_impl", "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.9.0", "const-hex", "enr", "ethers-core", @@ -3142,9 +3134,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ "event-listener 5.3.1", "pin-project-lite 0.2.15", @@ -3425,7 +3417,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -3435,7 +3427,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-pki-types", ] @@ -3598,13 +3590,13 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "futures-core", "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -3618,12 +3610,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -3660,9 +3652,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", @@ -3716,7 +3708,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.9.0", "headers-core", "http 0.2.12", "httpdate", @@ -3792,7 +3784,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.7", + "socket2 0.5.8", "thiserror 1.0.69", "tinyvec", "tokio", @@ -3902,8 +3894,8 @@ dependencies = [ [[package]] name = "hotshot" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-broadcast", @@ -3912,36 +3904,32 @@ dependencies = [ "bimap", "bincode", "blake3", - "cdn-broker 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-broker 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "cdn-client", - "cdn-marshal 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", + "cdn-marshal 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.6)", "chrono", "committable", - "custom_debug 0.5.1", "dashmap", "derive_more 1.0.0", "either", - "ethereum-types", "futures", "hotshot-task", "hotshot-task-impls", "hotshot-types", - "jf-signature 0.2.0", "libp2p-identity", "libp2p-networking", "lru 0.12.5", "num_enum", "parking_lot", "portpicker", + "primitive-types", "rand 0.8.5", "serde", "sha2 0.10.8", - "surf-disco", - "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", "tokio", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", "url", "utils", "vbs", @@ -3950,7 +3938,7 @@ dependencies = [ [[package]] name = "hotshot-builder-api" version = "0.1.7" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "async-trait", "clap", @@ -3960,9 +3948,9 @@ dependencies = [ "hotshot-types", "serde", "tagged-base64", - "thiserror 1.0.69", + "thiserror 2.0.4", "tide-disco", - "toml", + "toml 0.8.19", "vbs", ] @@ -3972,8 +3960,6 @@ version = "0.1.0" dependencies = [ "anyhow", "ark-bn254", - "ark-ec", - "ark-ed-on-bn254", "ark-ff", "ark-poly", "ark-serialize", @@ -3985,14 +3971,15 @@ dependencies = [ "jf-pcs", "jf-plonk", "jf-utils", + "libp2p", "num-bigint", "num-traits", ] [[package]] name = "hotshot-events-service" -version = "0.1.49" -source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.54#6c831301f1ff7fe7d2b5a6da4f6ff849cfe74b4a" +version = "0.1.56" +source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.56#c8046e6debb533c6abf431866ccf1d3787338982" dependencies = [ "async-broadcast", "async-lock 2.8.0", @@ -4003,35 +3990,29 @@ dependencies = [ "either", "futures", "hotshot-types", + "libp2p-identity", "rand 0.8.5", "serde", "snafu 0.8.5", "tagged-base64", "tide-disco", "tokio", - "toml", + "toml 0.8.19", "tracing", - "tracing-subscriber 0.3.18", + "tracing-test", "vbs", ] [[package]] name = "hotshot-example-types" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", - "async-broadcast", "async-lock 3.4.0", "async-trait", - "bitvec", "committable", - "either", - "ethereum-types", - "futures", "hotshot", - "hotshot-builder-api", - "hotshot-task", "hotshot-task-impls", "hotshot-types", "jf-vid", @@ -4040,18 +4021,17 @@ dependencies = [ "serde", "sha2 0.10.8", "sha3", - "thiserror 1.0.69", - "time 0.3.36", + "thiserror 2.0.4", + "time 0.3.37", "tokio", - "tracing", "url", "vbs", ] [[package]] name = "hotshot-fakeapi" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4060,56 +4040,50 @@ dependencies = [ "hotshot-example-types", "hotshot-types", "rand 0.8.5", - "serde", "tide-disco", "tokio", - "toml", - "tracing", + "toml 0.8.19", "vbs", ] [[package]] name = "hotshot-macros" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "derive_builder", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] name = "hotshot-orchestrator" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-lock 3.4.0", - "bincode", "blake3", "clap", "csv", "futures", "hotshot-types", - "libp2p", + "libp2p-identity", "multiaddr", "serde", - "serde_json", "surf-disco", - "thiserror 1.0.69", "tide-disco", "tokio", - "toml", + "toml 0.8.19", "tracing", "vbs", - "vec1", ] [[package]] name = "hotshot-query-service" -version = "0.1.62" -source = "git+https://github.com/EspressoSystems/hotshot-query-service?tag=0.1.74#d17f0d667b590b5131d30b47ce1842eb59035127" +version = "0.1.75" +source = "git+https://github.com/EspressoSystems/hotshot-query-service?branch=hotshot/0.5.82#5e2c984d19da3826f4cc8d80c5cf1a84dcd377f7" dependencies = [ "anyhow", "ark-serialize", @@ -4120,7 +4094,7 @@ dependencies = [ "bincode", "chrono", "committable", - "custom_debug 0.6.1", + "custom_debug", "derivative", "derive_more 0.99.18", "either", @@ -4143,11 +4117,11 @@ dependencies = [ "surf-disco", "tagged-base64", "tide-disco", - "time 0.3.36", + "time 0.3.37", "tokio", - "toml", + "toml 0.8.19", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", "trait-variant", "typenum", "url", @@ -4157,8 +4131,8 @@ dependencies = [ [[package]] name = "hotshot-stake-table" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "ark-bn254", "ark-ed-on-bn254", @@ -4166,12 +4140,12 @@ dependencies = [ "ark-serialize", "ark-std", "digest 0.10.7", - "ethereum-types", "hotshot-types", "jf-crhf", "jf-rescue", "jf-signature 0.2.0", "jf-utils", + "primitive-types", "serde", "tagged-base64", ] @@ -4209,9 +4183,9 @@ dependencies = [ "serde", "surf-disco", "tide-disco", - "time 0.3.36", + "time 0.3.37", "tokio", - "toml", + "toml 0.8.19", "tracing", "url", "vbs", @@ -4219,10 +4193,9 @@ dependencies = [ [[package]] name = "hotshot-task" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ - "anyhow", "async-broadcast", "async-trait", "futures", @@ -4233,16 +4206,14 @@ dependencies = [ [[package]] name = "hotshot-task-impls" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-broadcast", "async-lock 3.4.0", "async-trait", "bincode", - "bitvec", - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", "chrono", "committable", "either", @@ -4250,7 +4221,6 @@ dependencies = [ "hotshot-builder-api", "hotshot-task", "hotshot-types", - "jf-signature 0.2.0", "jf-vid", "lru 0.12.5", "rand 0.8.5", @@ -4258,8 +4228,8 @@ dependencies = [ "sha2 0.10.8", "surf-disco", "tagged-base64", - "thiserror 1.0.69", - "time 0.3.36", + "thiserror 2.0.4", + "time 0.3.37", "tokio", "tracing", "url", @@ -4270,8 +4240,8 @@ dependencies = [ [[package]] name = "hotshot-testing" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "async-broadcast", @@ -4281,29 +4251,26 @@ dependencies = [ "bitvec", "committable", "either", - "ethereum-types", "futures", "hotshot", "hotshot-builder-api", "hotshot-example-types", "hotshot-fakeapi", "hotshot-macros", - "hotshot-orchestrator", "hotshot-task", "hotshot-task-impls", "hotshot-types", "itertools 0.13.0", - "jf-signature 0.2.0", "jf-vid", "lru 0.12.5", "portpicker", + "primitive-types", "rand 0.8.5", "reqwest 0.12.9", "serde", "sha2 0.10.8", - "sha3", "tagged-base64", - "thiserror 1.0.69", + "thiserror 2.0.4", "tide-disco", "tokio", "tracing", @@ -4315,7 +4282,7 @@ dependencies = [ [[package]] name = "hotshot-types" version = "0.1.11" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", "ark-bn254", @@ -4329,39 +4296,36 @@ dependencies = [ "bincode", "bitvec", "blake3", - "cdn-proto 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.7)", "clap", "committable", - "custom_debug 0.5.1", - "derivative", + "derive_more 1.0.0", "digest 0.10.7", "displaydoc", "dyn-clone", "either", - "espresso-systems-common 0.4.1", - "ethereum-types", "futures", "jf-pcs", "jf-signature 0.2.0", "jf-utils", "jf-vid", "lazy_static", - "libp2p", + "libp2p-identity", "memoize", + "mnemonic", + "multiaddr", + "primitive-types", "rand 0.8.5", "rand_chacha 0.3.1", - "reqwest 0.12.9", "serde", "serde-inline-default", "serde_bytes", "serde_json", "sha2 0.10.8", - "surf-disco", "tagged-base64", - "thiserror 1.0.69", - "time 0.3.36", + "thiserror 2.0.4", + "time 0.3.37", "tokio", - "toml", + "toml 0.8.19", "tracing", "typenum", "url", @@ -4376,18 +4340,18 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "itoa", ] [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "itoa", ] @@ -4398,7 +4362,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "http 0.2.12", "pin-project-lite 0.2.15", ] @@ -4409,8 +4373,8 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.8.0", - "http 1.1.0", + "bytes 1.9.0", + "http 1.2.0", ] [[package]] @@ -4419,9 +4383,9 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "pin-project-lite 0.2.15", ] @@ -4486,7 +4450,7 @@ version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-channel", "futures-core", "futures-util", @@ -4497,7 +4461,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite 0.2.15", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -4510,11 +4474,11 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-channel", "futures-util", "h2 0.4.7", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "httparse", "itoa", @@ -4545,13 +4509,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", + "http 1.2.0", "hyper 1.5.1", "hyper-util", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tower-service", ] @@ -4573,7 +4537,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "http-body-util", "hyper 1.5.1", "hyper-util", @@ -4589,14 +4553,14 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "hyper 1.5.1", "pin-project-lite 0.2.15", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -4740,7 +4704,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -4821,7 +4785,7 @@ checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" dependencies = [ "async-trait", "attohttpc", - "bytes 1.8.0", + "bytes 1.9.0", "futures", "http 0.2.12", "hyper 0.14.31", @@ -4867,7 +4831,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -4908,12 +4872,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] @@ -4938,7 +4902,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", ] [[package]] @@ -4967,7 +4931,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.7", + "socket2 0.5.8", "widestring", "windows-sys 0.48.0", "winreg", @@ -5055,9 +5019,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jf-commitment" @@ -5135,7 +5099,7 @@ dependencies = [ "displaydoc", "downcast-rs", "dyn-clone", - "espresso-systems-common 0.4.0", + "espresso-systems-common", "hashbrown 0.14.5", "itertools 0.12.1", "jf-crhf", @@ -5325,10 +5289,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -5440,9 +5405,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.164" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libm" @@ -5466,7 +5431,7 @@ version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681fb3f183edfbedd7a57d32ebe5dcdc0b9f94061185acf3c30249349cc6fc99" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "either", "futures", "futures-timer", @@ -5593,7 +5558,7 @@ dependencies = [ "asynchronous-codec 0.7.0", "base64 0.21.7", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "either", "fnv", "futures", @@ -5668,7 +5633,7 @@ checksum = "5cc5767727d062c4eac74dd812c998f0e488008e82cce9c33b463d38423f9ad2" dependencies = [ "arrayvec", "asynchronous-codec 0.7.0", - "bytes 1.8.0", + "bytes 1.9.0", "either", "fnv", "futures", @@ -5705,7 +5670,7 @@ dependencies = [ "libp2p-swarm", "rand 0.8.5", "smallvec", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tracing", "void", @@ -5731,19 +5696,17 @@ dependencies = [ [[package]] name = "libp2p-networking" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "anyhow", - "async-lock 3.4.0", "async-trait", "bincode", "blake3", "cbor4ii", - "custom_debug 0.5.1", "delegate", "derive_builder", - "either", + "derive_more 1.0.0", "futures", "hotshot-types", "lazy_static", @@ -5751,17 +5714,11 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "pin-project", - "portpicker", "rand 0.8.5", "serde", - "serde_bytes", - "serde_json", - "thiserror 1.0.69", "tokio", - "tokio-stream", "tracing", - "tracing-subscriber 0.3.18", - "void", + "tracing-subscriber 0.3.19", ] [[package]] @@ -5770,7 +5727,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c67296ad4e092e23f92aea3d2bdb6f24eab79c0929ed816dfb460ea2f4567d2b" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures", "futures-timer", "if-watch", @@ -5781,8 +5738,8 @@ dependencies = [ "quinn", "rand 0.8.5", "ring 0.17.8", - "rustls 0.23.17", - "socket2 0.5.7", + "rustls 0.23.19", + "socket2 0.5.8", "thiserror 1.0.69", "tokio", "tracing", @@ -5843,7 +5800,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -5858,7 +5815,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tracing", ] @@ -5875,7 +5832,7 @@ dependencies = [ "libp2p-identity", "rcgen 0.11.3", "ring 0.17.8", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-webpki 0.101.7", "thiserror 1.0.69", "x509-parser", @@ -5999,9 +5956,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "local-ip-address" @@ -6059,7 +6016,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -6091,23 +6048,20 @@ dependencies = [ "async-trait", "bincode", "clap", - "cld", "committable", "espresso-types", "futures", "hotshot", "hotshot-events-service", "hotshot-types", - "jf-signature 0.2.0", "rand 0.8.5", "serde", - "serde_json", "sqlx", "surf-disco", "thiserror 1.0.69", "tide-disco", "tokio", - "toml", + "toml 0.8.19", "tracing", "vbs", ] @@ -6153,7 +6107,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -6240,11 +6194,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -6303,7 +6256,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures", "log", "pin-project", @@ -6396,7 +6349,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures", "log", "netlink-packet-core", @@ -6411,7 +6364,7 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures", "libc", "log", @@ -6580,7 +6533,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -6630,7 +6583,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.8.0", + "bytes 1.9.0", "ethereum-types", "open-fastrlp-derive", ] @@ -6641,7 +6594,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "proc-macro2", "quote", "syn 1.0.109", @@ -6670,7 +6623,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -6715,29 +6668,28 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parity-scale-codec" -version = "3.7.0" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", - "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.7.0" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.89", + "syn 1.0.109", ] [[package]] @@ -6794,9 +6746,9 @@ checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" [[package]] name = "pathdiff" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pbkdf2" @@ -6885,7 +6837,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -6906,7 +6858,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.6.0", + "indexmap 2.7.0", ] [[package]] @@ -6949,7 +6901,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -6987,7 +6939,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -7111,7 +7063,7 @@ checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" dependencies = [ "base64 0.22.1", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "fallible-iterator", "hmac 0.12.1", "md-5", @@ -7127,7 +7079,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "fallible-iterator", "postgres-protocol", ] @@ -7170,7 +7122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -7193,7 +7145,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -7227,9 +7179,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307e3004becf10f5a6e0d59d20f3cd28231b0e0827a96cd3e0ce6d14bc1e4bb3" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -7269,7 +7221,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -7294,7 +7246,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "prost-derive", ] @@ -7308,7 +7260,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -7368,7 +7320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98" dependencies = [ "asynchronous-codec 0.6.2", - "bytes 1.8.0", + "bytes 1.9.0", "quick-protobuf", "thiserror 1.0.69", "unsigned-varint 0.7.2", @@ -7381,7 +7333,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" dependencies = [ "asynchronous-codec 0.7.0", - "bytes 1.8.0", + "bytes 1.9.0", "quick-protobuf", "thiserror 1.0.69", "unsigned-varint 0.8.0", @@ -7393,15 +7345,15 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-io", "pin-project-lite 0.2.15", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.17", - "socket2 0.5.7", - "thiserror 2.0.3", + "rustls 0.23.19", + "socket2 0.5.8", + "thiserror 2.0.4", "tokio", "tracing", ] @@ -7412,15 +7364,15 @@ version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "getrandom 0.2.15", "rand 0.8.5", "ring 0.17.8", "rustc-hash", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-pki-types", "slab", - "thiserror 2.0.3", + "thiserror 2.0.4", "tinyvec", "tracing", "web-time", @@ -7435,7 +7387,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.7", + "socket2 0.5.8", "tracing", "windows-sys 0.59.0", ] @@ -7573,7 +7525,7 @@ checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ "pem 3.0.4", "ring 0.16.20", - "time 0.3.36", + "time 0.3.37", "yasna", ] @@ -7586,52 +7538,31 @@ dependencies = [ "pem 3.0.4", "ring 0.17.8", "rustls-pki-types", - "time 0.3.36", + "time 0.3.37", "x509-parser", "yasna", ] [[package]] name = "redis" -version = "0.25.4" +version = "0.27.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d7a6955c7511f60f3ba9e86c6d02b3c3f144f8c24b288d1f4e18074ab8bbec" +checksum = "09d8f99a4090c89cc489a94833c901ead69bfbf3877b4867d5482e321ee875bc" dependencies = [ "arc-swap", "async-trait", - "bytes 1.8.0", - "combine", - "futures", - "futures-util", - "itoa", - "percent-encoding", - "pin-project-lite 0.2.15", - "ryu", - "tokio", - "tokio-retry", - "tokio-util", - "url", -] - -[[package]] -name = "redis" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e902a69d09078829137b4a5d9d082e0490393537badd7c91a3d69d14639e115f" -dependencies = [ - "arc-swap", - "async-trait", - "bytes 1.8.0", + "backon", + "bytes 1.9.0", "combine", "futures", "futures-util", + "itertools 0.13.0", "itoa", "num-bigint", "percent-encoding", "pin-project-lite 0.2.15", "ryu", "tokio", - "tokio-retry", "tokio-util", "url", ] @@ -7679,10 +7610,10 @@ dependencies = [ "serde", "siphasher 1.0.1", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", "tokio", "tokio-postgres", - "toml", + "toml 0.8.19", "url", "walkdir", ] @@ -7698,7 +7629,7 @@ dependencies = [ "quote", "refinery-core", "regex", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -7761,7 +7692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.9.0", "encoding_rs", "futures-core", "futures-util", @@ -7802,12 +7733,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", - "bytes 1.8.0", + "bytes 1.9.0", "encoding_rs", "futures-core", "futures-util", "h2 0.4.7", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "hyper 1.5.1", @@ -7905,7 +7836,7 @@ checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", - "bytes 1.8.0", + "bytes 1.9.0", "hashbrown 0.12.3", "ptr_meta", "rend", @@ -7932,7 +7863,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "rlp-derive", "rustc-hex", ] @@ -7978,9 +7909,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest 0.10.7", @@ -8032,9 +7963,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustc-hex" @@ -8123,9 +8054,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.17" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "log", "once_cell", @@ -8246,7 +8177,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -8393,8 +8324,8 @@ dependencies = [ "async-once-cell", "async-trait", "bincode", - "cdn-broker 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5)", - "cdn-marshal 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.4.5)", + "cdn-broker 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", + "cdn-marshal 0.4.0 (git+https://github.com/EspressoSystems/Push-CDN?tag=0.5.1-upgrade)", "clap", "client", "committable", @@ -8442,11 +8373,12 @@ dependencies = [ "surf-disco", "tagged-base64", "tide-disco", - "time 0.3.36", + "time 0.3.37", + "todo_by", "tokio", - "toml", + "toml 0.8.19", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", "url", "vbs", "vec1", @@ -8500,13 +8432,13 @@ dependencies = [ [[package]] name = "serde-inline-default" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3acbd21cb24261fc36f595b38d3b34d0ff4e31a6b42edd6a43387d27c5787c8" +checksum = "59fb1bedd774187d304179493b0d3c41fbe97b04b14305363f68d2bdf5e47cb9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -8526,7 +8458,7 @@ checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -8592,12 +8524,12 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", "serde_with_macros", - "time 0.3.36", + "time 0.3.37", ] [[package]] @@ -8609,7 +8541,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -8765,7 +8697,7 @@ dependencies = [ "num-bigint", "num-traits", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", ] [[package]] @@ -8870,7 +8802,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -8885,9 +8817,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -8973,7 +8905,7 @@ dependencies = [ "atoi", "bit-vec", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "crc", "crossbeam-queue", "either", @@ -8986,7 +8918,7 @@ dependencies = [ "hashbrown 0.14.5", "hashlink 0.9.1", "hex", - "indexmap 2.6.0", + "indexmap 2.7.0", "log", "memchr", "native-tls", @@ -8999,7 +8931,7 @@ dependencies = [ "smallvec", "sqlformat", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", "tokio", "tokio-stream", "tracing", @@ -9016,7 +8948,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -9039,7 +8971,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.89", + "syn 2.0.90", "tempfile", "tokio", "url", @@ -9055,7 +8987,7 @@ dependencies = [ "base64 0.22.1", "bitflags 2.6.0", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "crc", "digest 0.10.7", "dotenvy", @@ -9083,7 +9015,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", "tracing", "whoami", ] @@ -9123,7 +9055,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", "tracing", "whoami", ] @@ -9147,7 +9079,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "time 0.3.36", + "time 0.3.37", "tracing", "url", ] @@ -9271,7 +9203,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -9433,9 +9365,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.89" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -9457,18 +9389,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "synstructure" version = "0.13.1" @@ -9477,7 +9397,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -9589,11 +9509,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.4", ] [[package]] @@ -9604,18 +9524,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -9677,7 +9597,7 @@ dependencies = [ "edit-distance", "futures", "futures-util", - "http 1.1.0", + "http 1.2.0", "include_dir", "itertools 0.12.1", "lazy_static", @@ -9703,12 +9623,12 @@ dependencies = [ "tagged-base64", "tide", "tide-websockets", - "toml", + "toml 0.8.19", "tracing", "tracing-distributed", "tracing-futures", "tracing-log", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", "url", "vbs", ] @@ -9748,9 +9668,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -9760,7 +9680,7 @@ dependencies = [ "powerfmt", "serde", "time-core", - "time-macros 0.2.18", + "time-macros 0.2.19", ] [[package]] @@ -9781,9 +9701,9 @@ dependencies = [ [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -9836,19 +9756,33 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "todo_by" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e25529b77ab1841ec52a4e8356632b417698b53ea9ad62c6be7d04d5e420dc4" +dependencies = [ + "cargo_toml", + "chrono", + "proc-macro2", + "quote", + "semver 1.0.23", + "syn 2.0.90", +] + [[package]] name = "tokio" -version = "1.41.1" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", - "bytes 1.8.0", + "bytes 1.9.0", "libc", "mio", "parking_lot", "pin-project-lite 0.2.15", - "socket2 0.5.7", + "socket2 0.5.8", "tokio-macros", "tracing", "windows-sys 0.52.0", @@ -9872,7 +9806,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -9893,7 +9827,7 @@ checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" dependencies = [ "async-trait", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "fallible-iterator", "futures-channel", "futures-util", @@ -9905,23 +9839,12 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand 0.8.5", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tokio-util", "whoami", ] -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand 0.8.5", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.24.1" @@ -9934,12 +9857,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.17", - "rustls-pki-types", + "rustls 0.23.19", "tokio", ] @@ -9971,17 +9893,29 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-core", "futures-sink", "pin-project-lite 0.2.15", "tokio", ] +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + [[package]] name = "toml" version = "0.8.19" @@ -9991,7 +9925,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -10003,17 +9937,30 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.7.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.20", ] [[package]] @@ -10026,7 +9973,7 @@ dependencies = [ "async-trait", "axum", "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.9.0", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", @@ -10077,9 +10024,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite 0.2.15", @@ -10089,20 +10036,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -10117,7 +10064,7 @@ dependencies = [ "itertools 0.9.0", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.19", ] [[package]] @@ -10143,9 +10090,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" dependencies = [ "serde", "tracing-core", @@ -10162,9 +10109,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -10181,6 +10128,27 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "tracing-test" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" +dependencies = [ + "tracing-core", + "tracing-subscriber 0.3.19", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" +dependencies = [ + "quote", + "syn 2.0.90", +] + [[package]] name = "trait-variant" version = "0.1.2" @@ -10189,7 +10157,7 @@ checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -10206,7 +10174,7 @@ checksum = "5fe8dada8c1a3aeca77d6b51a4f1314e0f4b8e438b7b1b71e3ddaca8080e4093" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "http 0.2.12", "httparse", "input_buffer", @@ -10226,7 +10194,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "data-encoding", "http 0.2.12", "httparse", @@ -10343,7 +10311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" dependencies = [ "asynchronous-codec 0.6.2", - "bytes 1.8.0", + "bytes 1.9.0", ] [[package]] @@ -10366,15 +10334,15 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.10.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" dependencies = [ "base64 0.22.1", "flate2", "log", "once_cell", - "rustls 0.23.17", + "rustls 0.23.19", "rustls-pki-types", "url", "webpki-roots 0.26.7", @@ -10382,9 +10350,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna 1.0.3", @@ -10418,8 +10386,8 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "0.5.81" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.81#4ed1df20f793b947d5c9f90a1cb10e4177f8521d" +version = "0.5.79" +source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" dependencies = [ "tracing", ] @@ -10518,7 +10486,7 @@ dependencies = [ "anyhow", "cfg-if", "rustversion", - "time 0.3.36", + "time 0.3.37", ] [[package]] @@ -10564,7 +10532,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-channel", "futures-util", "headers", @@ -10605,9 +10573,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if", "once_cell", @@ -10618,36 +10586,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10655,28 +10624,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" dependencies = [ "js-sys", "wasm-bindgen", @@ -10990,6 +10959,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "0.6.20" @@ -11064,14 +11042,14 @@ dependencies = [ "ring 0.17.8", "rusticata-macros", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", ] [[package]] name = "xml-rs" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" +checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432" [[package]] name = "xmltree" @@ -11111,14 +11089,14 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.36", + "time 0.3.37", ] [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -11128,14 +11106,14 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", - "synstructure 0.13.1", + "syn 2.0.90", + "synstructure", ] [[package]] @@ -11156,28 +11134,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", - "synstructure 0.13.1", + "syn 2.0.90", + "synstructure", ] [[package]] @@ -11197,7 +11175,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -11219,7 +11197,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -11238,7 +11216,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1 0.10.6", - "time 0.3.36", + "time 0.3.37", "zstd", ] diff --git a/sequencer/src/api.rs b/sequencer/src/api.rs index 3f547c981b..12f8191e2a 100644 --- a/sequencer/src/api.rs +++ b/sequencer/src/api.rs @@ -4,11 +4,11 @@ use anyhow::{bail, Context}; use async_lock::RwLock; use async_once_cell::Lazy; use async_trait::async_trait; -use committable::{Commitment, Committable}; +use committable::Commitment; use data_source::{CatchupDataSource, StakeTableDataSource, SubmitDataSource}; use derivative::Derivative; use espresso_types::{ - retain_accounts, v0::traits::SequencerPersistence, v0_3::ChainConfig, AccountQueryData, + retain_accounts, v0::traits::SequencerPersistence, v0_99::ChainConfig, AccountQueryData, BlockMerkleTree, FeeAccount, FeeAccountProof, FeeMerkleTree, NodeState, PubKey, Transaction, ValidatedState, }; @@ -193,7 +193,6 @@ impl, V: Versions, P: SequencerPersistence> .read() .await .memberships - .quorum_membership .stake_table(epoch) } } @@ -287,9 +286,9 @@ impl< let handle = handle.read().await; let consensus = handle.consensus(); let mut consensus = consensus.write().await; - let (state, delta, leaf_commit) = match consensus.validated_state_map().get(&view) { + let (state, delta) = match consensus.validated_state_map().get(&view) { Some(View { - view_inner: ViewInner::Leaf { state, delta, leaf }, + view_inner: ViewInner::Leaf { state, delta, .. }, }) => { let mut state = (**state).clone(); @@ -308,7 +307,7 @@ impl< }; } - (Arc::new(state), delta.clone(), *leaf) + (Arc::new(state), delta.clone()) } _ => { // If we don't already have a leaf for this view, or if we don't have the view @@ -317,23 +316,10 @@ impl< // map to ensure consistency. let mut state = ValidatedState::from_header(leaf.block_header()); state.fee_merkle_tree = tree.clone(); - let res = (Arc::new(state), None, Committable::commit(&leaf)); - consensus - .update_saved_leaves(leaf, &handle.hotshot.upgrade_lock) - .await; - res + (Arc::new(state), None) } }; - if let Err(err) = consensus.update_validated_state_map( - view, - View { - view_inner: ViewInner::Leaf { - state, - delta, - leaf: leaf_commit, - }, - }, - ) { + if let Err(err) = consensus.update_leaf(leaf, Arc::clone(&state), delta) { tracing::warn!(?view, "cannot update fetched account state: {err:#}"); } tracing::info!(?view, "updated with fetched account state"); @@ -685,8 +671,6 @@ pub mod test_helpers { { let (task, url) = run_marketplace_builder::<{ NUM_NODES }>( cfg.network_config.marketplace_builder_port(), - NodeState::default().with_current_version(V::Base::VERSION), - cfg.state[0].clone(), ) .await; builder_tasks.push(task); @@ -1073,15 +1057,16 @@ mod api_tests { use espresso_types::MockSequencerVersions; use espresso_types::{ traits::{EventConsumer, PersistenceOptions}, - Header, Leaf, NamespaceId, + Header, Leaf, Leaf2, NamespaceId, }; use ethers::utils::Anvil; use futures::{future, stream::StreamExt}; use hotshot_query_service::availability::{ AvailabilityDataSource, BlockQueryData, VidCommonQueryData, }; + use hotshot_types::drb::{INITIAL_DRB_RESULT, INITIAL_DRB_SEED_INPUT}; use hotshot_types::{ - data::QuorumProposal, event::LeafInfo, simple_certificate::QuorumCertificate, + data::QuorumProposal2, event::LeafInfo, simple_certificate::QuorumCertificate, traits::node_implementation::ConsensusTime, }; @@ -1255,7 +1240,7 @@ mod api_tests { // Create two non-consecutive leaf chains. let mut chain1 = vec![]; - let mut quorum_proposal = QuorumProposal:: { + let mut quorum_proposal = QuorumProposal2:: { block_header: Leaf::genesis(&Default::default(), &NodeState::mock()) .await .block_header() @@ -1265,22 +1250,26 @@ mod api_tests { &ValidatedState::default(), &NodeState::mock(), ) - .await, + .await + .to_qc2(), upgrade_certificate: None, - proposal_certificate: None, + view_change_evidence: None, + drb_seed: INITIAL_DRB_SEED_INPUT, + drb_result: INITIAL_DRB_RESULT, }; let mut qc = QuorumCertificate::genesis::( &ValidatedState::default(), &NodeState::mock(), ) - .await; + .await + .to_qc2(); let mut justify_qc = qc.clone(); for i in 0..5 { *quorum_proposal.block_header.height_mut() = i; quorum_proposal.view_number = ViewNumber::new(i); quorum_proposal.justify_qc = justify_qc; - let leaf = Leaf::from_quorum_proposal(&quorum_proposal); + let leaf = Leaf2::from_quorum_proposal(&quorum_proposal); qc.view_number = leaf.view_number(); qc.data.leaf_commit = Committable::commit(&leaf); justify_qc = qc.clone(); @@ -1327,12 +1316,14 @@ mod api_tests { for (leaf, qc) in chain1.iter().chain(&chain2) { tracing::info!(height = leaf.height(), "check archive"); let qd = data_source.get_leaf(leaf.height() as usize).await.await; - assert_eq!(qd.leaf(), leaf); - assert_eq!(qd.qc(), qc); + let stored_leaf: Leaf2 = qd.leaf().clone().into(); + let stored_qc = qd.qc().clone().to_qc2(); + assert_eq!(&stored_leaf, leaf); + assert_eq!(&stored_qc, qc); } } - fn leaf_info(leaf: Leaf) -> LeafInfo { + fn leaf_info(leaf: Leaf2) -> LeafInfo { LeafInfo { leaf, vid_share: None, @@ -1351,8 +1342,9 @@ mod test { use espresso_types::{ traits::NullEventConsumer, v0_1::{UpgradeMode, ViewBasedUpgrade}, - BackoffParams, FeeAccount, FeeAmount, Header, MockSequencerVersions, SequencerVersions, - TimeBasedUpgrade, Timestamp, Upgrade, UpgradeType, ValidatedState, + BackoffParams, FeeAccount, FeeAmount, FeeVersion, Header, MarketplaceVersion, + MockSequencerVersions, SequencerVersions, TimeBasedUpgrade, Timestamp, Upgrade, + UpgradeType, ValidatedState, }; use ethers::utils::Anvil; use futures::{ @@ -1886,7 +1878,7 @@ mod test { setup_test(); let mut upgrades = std::collections::BTreeMap::new(); - type MySequencerVersions = SequencerVersions, StaticVersion<0, 3>>; + type MySequencerVersions = SequencerVersions; let mode = UpgradeMode::View(ViewBasedUpgrade { start_voting_view: None, @@ -1918,7 +1910,7 @@ mod test { let now = OffsetDateTime::now_utc().unix_timestamp() as u64; let mut upgrades = std::collections::BTreeMap::new(); - type MySequencerVersions = SequencerVersions, StaticVersion<0, 3>>; + type MySequencerVersions = SequencerVersions; let mode = UpgradeMode::Time(TimeBasedUpgrade { start_proposing_time: Timestamp::from_integer(now).unwrap(), @@ -1927,7 +1919,7 @@ mod test { stop_voting_time: None, }); - let upgrade_type = UpgradeType::Fee { + let upgrade_type = UpgradeType::Marketplace { chain_config: ChainConfig { max_block_size: 400.into(), base_fee: 2.into(), @@ -2000,6 +1992,7 @@ mod test { _ => continue, } }; + tracing::info!(?new_version_first_view, "seen upgrade proposal"); let client: Client = Client::new(format!("http://localhost:{port}").parse().unwrap()); @@ -2031,8 +2024,11 @@ mod test { .map(|state| state.chain_config.resolve()) .collect(); + tracing::info!(?height, ?new_version_first_view, "checking config"); + // ChainConfigs will eventually be resolved if let Some(configs) = configs { + tracing::info!(?configs, "configs"); if height > new_version_first_view { for config in configs { assert_eq!(config, chain_config_upgrade); diff --git a/sequencer/src/api/data_source.rs b/sequencer/src/api/data_source.rs index 34d50af1ba..d26dce301c 100644 --- a/sequencer/src/api/data_source.rs +++ b/sequencer/src/api/data_source.rs @@ -5,7 +5,7 @@ use async_trait::async_trait; use committable::Commitment; use espresso_types::{ v0::traits::{PersistenceOptions, SequencerPersistence}, - v0_3::ChainConfig, + v0_99::ChainConfig, FeeAccount, FeeAccountProof, FeeMerkleTree, NodeState, PubKey, Transaction, }; use futures::future::Future; diff --git a/sequencer/src/api/sql.rs b/sequencer/src/api/sql.rs index 54f0970a56..f08a55a790 100644 --- a/sequencer/src/api/sql.rs +++ b/sequencer/src/api/sql.rs @@ -3,8 +3,8 @@ use async_trait::async_trait; use committable::{Commitment, Committable}; use espresso_types::{ get_l1_deposits, - v0_3::{ChainConfig, IterableFeeInfo}, - BlockMerkleTree, FeeAccount, FeeMerkleTree, Leaf, NodeState, ValidatedState, + v0_99::{ChainConfig, IterableFeeInfo}, + BlockMerkleTree, FeeAccount, FeeMerkleTree, Leaf, Leaf2, NodeState, ValidatedState, }; use hotshot::traits::ValidatedState as _; use hotshot_query_service::{ @@ -83,7 +83,7 @@ impl CatchupStorage for SqlStorage { height: u64, view: ViewNumber, accounts: &[FeeAccount], - ) -> anyhow::Result<(FeeMerkleTree, Leaf)> { + ) -> anyhow::Result<(FeeMerkleTree, Leaf2)> { let mut tx = self.read().await.context(format!( "opening transaction to fetch account {accounts:?}; height {height}" ))?; @@ -163,7 +163,7 @@ impl CatchupStorage for DataSource { height: u64, view: ViewNumber, accounts: &[FeeAccount], - ) -> anyhow::Result<(FeeMerkleTree, Leaf)> { + ) -> anyhow::Result<(FeeMerkleTree, Leaf2)> { self.as_ref() .get_accounts(instance, height, view, accounts) .await @@ -218,7 +218,7 @@ async fn load_accounts( tx: &mut Transaction, height: u64, accounts: &[FeeAccount], -) -> anyhow::Result<(FeeMerkleTree, Leaf)> { +) -> anyhow::Result<(FeeMerkleTree, Leaf2)> { let leaf = tx .get_leaf(LeafId::::from(height as usize)) .await @@ -255,7 +255,7 @@ async fn load_accounts( } } - Ok((snapshot, leaf.leaf().clone())) + Ok((snapshot, leaf.leaf().clone().into())) } async fn load_chain_config( @@ -278,13 +278,13 @@ async fn reconstruct_state( from_height: u64, to_view: ViewNumber, accounts: &[FeeAccount], -) -> anyhow::Result<(ValidatedState, Leaf)> { +) -> anyhow::Result<(ValidatedState, Leaf2)> { tracing::info!("attempting to reconstruct fee state"); let from_leaf = tx .get_leaf((from_height as usize).into()) .await .context(format!("leaf {from_height} not available"))?; - let from_leaf = from_leaf.leaf(); + let from_leaf: Leaf2 = from_leaf.leaf().clone().into(); ensure!( from_leaf.view_number() < to_view, "state reconstruction: starting state {:?} must be before ending state {to_view:?}", @@ -301,7 +301,7 @@ async fn reconstruct_state( let mut parent = to_leaf.parent_commitment(); tracing::debug!(?to_leaf, ?parent, view = ?to_view, "have required leaf"); leaves.push_front(to_leaf.clone()); - while parent != Committable::commit(from_leaf) { + while parent != Committable::commit(&from_leaf) { let leaf = get_leaf_from_proposal(tx, "leaf_hash = $1", &parent.to_string()) .await .context(format!( @@ -321,7 +321,7 @@ async fn reconstruct_state( let mut accounts = accounts.iter().copied().collect::>(); // Add in all the accounts we will need to replay any of the headers, to ensure that we don't // need to do catchup recursively. - let (catchup, dependencies) = header_dependencies(tx, instance, parent, &leaves).await?; + let (catchup, dependencies) = header_dependencies(tx, instance, &parent, &leaves).await?; accounts.extend(dependencies); let accounts = accounts.into_iter().collect::>(); state.fee_merkle_tree = load_accounts(tx, from_height, &accounts) @@ -350,8 +350,8 @@ async fn reconstruct_state( } // Apply subsequent headers to compute the later state. - for proposal in &leaves { - state = compute_state_update(&state, instance, &catchup, parent, proposal) + for proposal in leaves { + state = compute_state_update(&state, instance, &catchup, &parent, &proposal) .await .context(format!( "unable to reconstruct state because state update {} failed", @@ -374,8 +374,8 @@ async fn reconstruct_state( async fn header_dependencies( tx: &mut Transaction, instance: &NodeState, - mut parent: &Leaf, - leaves: impl IntoIterator, + mut parent: &Leaf2, + leaves: impl IntoIterator, ) -> anyhow::Result<(NullStateCatchup, HashSet)> { let mut catchup = NullStateCatchup::default(); let mut accounts = HashSet::default(); @@ -433,7 +433,7 @@ async fn get_leaf_from_proposal( tx: &mut Transaction, where_clause: &str, param: P, -) -> anyhow::Result +) -> anyhow::Result where P: Type + for<'q> Encode<'q, Db>, { @@ -444,7 +444,7 @@ where .fetch_one(tx.as_mut()) .await?; let proposal: Proposal> = bincode::deserialize(&data)?; - Ok(Leaf::from_quorum_proposal(&proposal.data)) + Ok(Leaf::from_quorum_proposal(&proposal.data).into()) } #[cfg(any(test, feature = "testing"))] diff --git a/sequencer/src/bin/dev-rollup.rs b/sequencer/src/bin/dev-rollup.rs index ab06212e99..19736da728 100644 --- a/sequencer/src/bin/dev-rollup.rs +++ b/sequencer/src/bin/dev-rollup.rs @@ -4,7 +4,7 @@ use anyhow::Result; use clap::{Parser, Subcommand}; use committable::Committable; use espresso_types::{ - v0_3::{RollupRegistration, RollupRegistrationBody, RollupUpdate, RollupUpdatebody}, + v0_99::{RollupRegistration, RollupRegistrationBody, RollupUpdate, RollupUpdatebody}, MarketplaceVersion, SeqTypes, Update, }; use hotshot::types::BLSPubKey; diff --git a/sequencer/src/bin/nasty-client.rs b/sequencer/src/bin/nasty-client.rs index 7fff64412e..a28dc82c5c 100644 --- a/sequencer/src/bin/nasty-client.rs +++ b/sequencer/src/bin/nasty-client.rs @@ -18,7 +18,7 @@ use clap::Parser; use committable::Committable; use derivative::Derivative; use espresso_types::{ - parse_duration, v0_3::IterableFeeInfo, BlockMerkleTree, FeeMerkleTree, Header, SeqTypes, + parse_duration, v0_99::IterableFeeInfo, BlockMerkleTree, FeeMerkleTree, Header, SeqTypes, }; use futures::{ future::{FutureExt, TryFuture, TryFutureExt}, diff --git a/sequencer/src/catchup.rs b/sequencer/src/catchup.rs index 6d87f1cde7..ccfe74322c 100644 --- a/sequencer/src/catchup.rs +++ b/sequencer/src/catchup.rs @@ -6,8 +6,8 @@ use committable::Commitment; use committable::Committable; use espresso_types::traits::SequencerPersistence; use espresso_types::{ - v0::traits::StateCatchup, v0_3::ChainConfig, BackoffParams, BlockMerkleTree, FeeAccount, - FeeAccountProof, FeeMerkleCommitment, FeeMerkleTree, Leaf, NodeState, + v0::traits::StateCatchup, v0_99::ChainConfig, BackoffParams, BlockMerkleTree, FeeAccount, + FeeAccountProof, FeeMerkleCommitment, FeeMerkleTree, Leaf2, NodeState, }; use futures::future::{Future, FutureExt}; use hotshot_types::{ @@ -262,7 +262,7 @@ pub(crate) trait CatchupStorage: Sync { _height: u64, _view: ViewNumber, _accounts: &[FeeAccount], - ) -> impl Send + Future> { + ) -> impl Send + Future> { // Merklized state catchup is only supported by persistence backends that provide merklized // state storage. This default implementation is overridden for those that do. Otherwise, // catchup can still be provided by fetching undecided merklized state from consensus @@ -316,7 +316,7 @@ where height: u64, view: ViewNumber, accounts: &[FeeAccount], - ) -> anyhow::Result<(FeeMerkleTree, Leaf)> { + ) -> anyhow::Result<(FeeMerkleTree, Leaf2)> { self.inner() .get_accounts(instance, height, view, accounts) .await @@ -407,7 +407,7 @@ where if cf.commit() != commitment { panic!( - "Critical error: Mismatched chain config detected. Expected chain config: {:?}, but got: {:?}. + "Critical error: Mismatched chain config detected. Expected chain config: {:?}, but got: {:?}. This may indicate a compromised database", commitment, cf.commit() diff --git a/sequencer/src/context.rs b/sequencer/src/context.rs index 9e3a84776f..06e27e3b1c 100644 --- a/sequencer/src/context.rs +++ b/sequencer/src/context.rs @@ -4,7 +4,7 @@ use anyhow::Context; use async_broadcast::{broadcast, Receiver, Sender}; use async_lock::RwLock; use clap::Parser; -use committable::{Commitment, Committable}; +use committable::Commitment; use derivative::Derivative; use espresso_types::{ parse_duration, @@ -16,8 +16,9 @@ use futures::{ stream::{Stream, StreamExt}, }; use hotshot::{ + traits::election::static_committee::StaticCommittee, types::{Event, EventType, SystemContextHandle}, - MarketplaceConfig, Memberships, SystemContext, + MarketplaceConfig, SystemContext, }; use hotshot_events_service::events_source::{EventConsumer, EventsStreamer}; use parking_lot::Mutex; @@ -28,10 +29,9 @@ use tokio::{ }; use hotshot_orchestrator::client::OrchestratorClient; -use hotshot_query_service::Leaf; use hotshot_types::{ consensus::ConsensusMetricsValue, - data::{EpochNumber, ViewNumber}, + data::{EpochNumber, Leaf2, ViewNumber}, network::NetworkConfig, traits::{ metrics::Metrics, @@ -123,7 +123,7 @@ impl, P: SequencerPersistence, V: Versions> Sequence pub async fn init( network_config: NetworkConfig, validator_config: ValidatorConfig<::SignatureKey>, - memberships: Memberships, + membership: StaticCommittee, instance_state: NodeState, persistence: P, network: Arc, @@ -173,7 +173,7 @@ impl, P: SequencerPersistence, V: Versions> Sequence validator_config.private_key.clone(), instance_state.node_id, config.clone(), - memberships, + membership, network.clone(), initializer, ConsensusMetricsValue::new(metrics), @@ -318,7 +318,7 @@ impl, P: SequencerPersistence, V: Versions> Sequence self.handle.write().await.shut_down().await } - pub async fn decided_leaf(&self) -> Leaf { + pub async fn decided_leaf(&self) -> Leaf2 { self.handle.read().await.decided_leaf().await } @@ -478,7 +478,7 @@ async fn handle_events( #[tracing::instrument(skip_all)] async fn scan_proposals( consensus: Arc>>, - fetcher: Sender<(ViewNumber, Commitment>)>, + fetcher: Sender<(ViewNumber, Commitment>)>, ) where N: ConnectedNetwork, P: SequencerPersistence, @@ -504,7 +504,7 @@ async fn scan_proposals( async fn fetch_proposals( consensus: Arc>>, persistence: Arc, - mut scanner: Receiver<(ViewNumber, Commitment>)>, + mut scanner: Receiver<(ViewNumber, Commitment>)>, fetch_timeout: Duration, ) where N: ConnectedNetwork, @@ -550,7 +550,7 @@ async fn fetch_proposals( .context("error saving fetched proposal")?; // Add the fetched leaf to HotShot state, so consensus can make use of it. - let leaf = Leaf::from_quorum_proposal(&proposal.data); + let leaf = Leaf2::from_quorum_proposal(&proposal.data); let handle = consensus.read().await; let consensus = handle.consensus(); let mut consensus = consensus.write().await; @@ -561,20 +561,10 @@ async fn fetch_proposals( view_inner: ViewInner::Da { .. } }) ) { - let v = View { - view_inner: ViewInner::Leaf { - leaf: Committable::commit(&leaf), - state: Arc::new(ValidatedState::from_header(leaf.block_header())), - delta: None, - }, - }; - if let Err(err) = consensus.update_validated_state_map(view, v) { - tracing::warn!("unable to update validated state map: {err:#}"); + let state = Arc::new(ValidatedState::from_header(leaf.block_header())); + if let Err(err) = consensus.update_leaf(leaf, state, None) { + tracing::warn!("unable to update leaf: {err:#}"); } - consensus - .update_saved_leaves(leaf, &handle.hotshot.upgrade_lock) - .await; - tracing::debug!("added view to validated state map view proposal fetcher"); } Ok(()) diff --git a/sequencer/src/genesis.rs b/sequencer/src/genesis.rs index 8f0e24417f..9c9f6c4d60 100644 --- a/sequencer/src/genesis.rs +++ b/sequencer/src/genesis.rs @@ -5,7 +5,7 @@ use std::{ use anyhow::Context; use espresso_types::{ - v0_3::ChainConfig, FeeAccount, FeeAmount, GenesisHeader, L1BlockInfo, L1Client, Timestamp, + v0_99::ChainConfig, FeeAccount, FeeAmount, GenesisHeader, L1BlockInfo, L1Client, Timestamp, Upgrade, UpgradeType, }; use ethers::types::H160; diff --git a/sequencer/src/lib.rs b/sequencer/src/lib.rs index 79475b6ae7..bba6356ad3 100644 --- a/sequencer/src/lib.rs +++ b/sequencer/src/lib.rs @@ -44,7 +44,7 @@ use hotshot::{ WrappedSignatureKey, }, types::SignatureKey, - MarketplaceConfig, Memberships, + MarketplaceConfig, }; use hotshot_orchestrator::client::get_complete_config; use hotshot_orchestrator::client::OrchestratorClient; @@ -54,7 +54,7 @@ use hotshot_types::{ signature_key::{BLSPrivKey, BLSPubKey}, traits::{ metrics::Metrics, - network::{ConnectedNetwork, Topic}, + network::ConnectedNetwork, node_implementation::{NodeImplementation, NodeType, Versions}, }, utils::BuilderCommitment, @@ -386,24 +386,12 @@ pub async fn init_node( topics }; - // Create the HotShot memberships - let quorum_membership = StaticCommittee::new( + // Create the HotShot membership + let membership = StaticCommittee::new( network_config.config.known_nodes_with_stake.clone(), network_config.config.known_nodes_with_stake.clone(), - Topic::Global, ); - let da_membership = StaticCommittee::new( - network_config.config.known_nodes_with_stake.clone(), - network_config.config.known_da_nodes.clone(), - Topic::Da, - ); - - let memberships = Memberships { - quorum_membership, - da_membership, - }; - // Initialize the push CDN network (and perform the initial connection) let cdn_network = PushCdnNetwork::new( network_params.cdn_endpoint, @@ -450,7 +438,7 @@ pub async fn init_node( let network = { let p2p_network = Libp2pNetwork::from_config( network_config.clone(), - memberships.clone().quorum_membership, + membership.clone(), gossip_config, request_response_config, libp2p_bind_address, @@ -532,7 +520,7 @@ pub async fn init_node( let mut ctx = SequencerContext::init( network_config, validator_config, - memberships, + membership, instance_state, persistence, network, @@ -563,14 +551,13 @@ pub mod testing { time::Duration, }; - use async_lock::RwLock; use catchup::NullStateCatchup; use committable::Committable; use espresso_types::{ eth_signature_key::EthKeyPair, v0::traits::{EventConsumer, NullEventConsumer, PersistenceOptions, StateCatchup}, - Event, FeeAccount, L1Client, Leaf, MarketplaceVersion, NetworkConfig, Payload, PubKey, - SeqTypes, Transaction, Upgrade, + Event, FeeAccount, L1Client, MarketplaceVersion, NetworkConfig, PubKey, SeqTypes, + Transaction, Upgrade, }; use ethers::types::U256; use futures::{ @@ -588,24 +575,17 @@ pub mod testing { use hotshot_testing::block_builder::{ BuilderTask, SimpleBuilderImplementation, TestBuilderImplementation, }; + use hotshot_types::traits::network::Topic; use hotshot_types::traits::signature_key::StakeTableEntryType; use hotshot_types::{ event::LeafInfo, light_client::{CircuitField, StateKeyPair, StateVerKey}, - traits::{ - block_contents::{vid_commitment, BlockHeader, EncodeBytes}, - metrics::NoMetrics, - node_implementation::ConsensusTime, - signature_key::BuilderSignatureKey, - stake_table::StakeTableScheme, - }, + traits::signature_key::BuilderSignatureKey, + traits::{block_contents::BlockHeader, metrics::NoMetrics, stake_table::StakeTableScheme}, HotShotConfig, PeerConfig, }; - use marketplace_builder_core::{ - builder_state::BuilderState, - service::{run_builder_service, BroadcastSenders, GlobalState, NoHooks, ProxyGlobalState}, - }; - use marketplace_builder_shared::block::ParentBlockReferences; + use marketplace_builder_core::{hooks::NoHooks, service::GlobalState}; + use portpicker::pick_unused_port; use tokio::spawn; use vbs::version::Version; @@ -617,8 +597,7 @@ pub mod testing { const BUILDER_CHANNEL_CAPACITY_FOR_TEST: usize = 128; struct MarketplaceBuilderImplementation { - hooks: Arc>, - senders: BroadcastSenders, + global_state: Arc>>, } impl BuilderTask for MarketplaceBuilderImplementation { @@ -632,8 +611,7 @@ pub mod testing { >, ) { spawn(async move { - let res = - run_builder_service::(self.hooks, self.senders, stream).await; + let res = self.global_state.start_event_loop(stream).await; tracing::error!(?res, "Testing marketplace builder service exited"); }); } @@ -641,8 +619,6 @@ pub mod testing { pub async fn run_marketplace_builder( port: Option, - instance_state: NodeState, - validated_state: ValidatedState, ) -> (Box>, Url) { let builder_key_pair = TestConfig::<0>::builder_key(); let port = port.unwrap_or_else(|| pick_unused_port().expect("No ports available")); @@ -652,69 +628,23 @@ pub mod testing { .parse() .expect("Failed to parse builder URL"); - let (senders, receivers) = marketplace_builder_core::service::broadcast_channels( - BUILDER_CHANNEL_CAPACITY_FOR_TEST, - ); - - // builder api request channel - let (req_sender, req_receiver) = - async_broadcast::broadcast::<_>(BUILDER_CHANNEL_CAPACITY_FOR_TEST); - - let (genesis_payload, genesis_ns_table) = - Payload::from_transactions([], &validated_state, &instance_state) - .await - .expect("genesis payload construction failed"); - - let builder_commitment = genesis_payload.builder_commitment(&genesis_ns_table); - - let vid_commitment = { - let payload_bytes = genesis_payload.encode(); - vid_commitment(&payload_bytes, NUM_NODES) - }; + let hooks = NoHooks(PhantomData); // create the global state - let global_state: GlobalState = GlobalState::::new( - req_sender, - senders.transactions.clone(), - vid_commitment, - ViewNumber::genesis(), - ); - - let global_state = Arc::new(RwLock::new(global_state)); - - let leaf = Leaf::genesis(&validated_state, &instance_state).await; - - let builder_state = BuilderState::::new( - ParentBlockReferences { - view_number: ViewNumber::genesis(), - vid_commitment, - leaf_commit: ::commit(&leaf), - builder_commitment, - }, - &receivers, - req_receiver, - Vec::new(), /* tx_queue */ - Arc::clone(&global_state), + let global_state: Arc>> = GlobalState::new( + (builder_key_pair.fee_account(), builder_key_pair), Duration::from_secs(60), - 10, - Arc::new(instance_state), + Duration::from_millis(100), Duration::from_secs(60), - Arc::new(validated_state), + BUILDER_CHANNEL_CAPACITY_FOR_TEST, + 10, + hooks, ); - builder_state.event_loop(); - - let hooks = Arc::new(NoHooks(PhantomData)); - // create the proxy global state it will server the builder apis - let app = ProxyGlobalState::new( - global_state.clone(), - Arc::clone(&hooks), - (builder_key_pair.fee_account(), builder_key_pair.clone()), - Duration::from_secs(60), - ) - .into_app() - .expect("Failed to create builder tide-disco app"); + let app = Arc::clone(&global_state) + .into_app() + .expect("Failed to create builder tide-disco app"); spawn( app.serve( @@ -726,7 +656,7 @@ pub mod testing { ); ( - Box::new(MarketplaceBuilderImplementation { hooks, senders }), + Box::new(MarketplaceBuilderImplementation { global_state }), url, ) } @@ -1023,24 +953,12 @@ pub mod testing { .with_genesis(state) .with_upgrades(upgrades); - // Create the HotShot memberships - let quorum_membership = StaticCommittee::new( + // Create the HotShot membership + let membership = StaticCommittee::new( config.known_nodes_with_stake.clone(), config.known_nodes_with_stake.clone(), - Topic::Global, ); - let da_membership = StaticCommittee::new( - config.known_da_nodes.clone(), - config.known_da_nodes.clone(), - Topic::Da, - ); - - let memberships = Memberships { - quorum_membership, - da_membership, - }; - tracing::info!( i, key = %my_peer_config.stake_table_entry.stake_key, @@ -1057,7 +975,7 @@ pub mod testing { ..Default::default() }, validator_config, - memberships, + membership, node_state, persistence, network, diff --git a/sequencer/src/message_compat_tests.rs b/sequencer/src/message_compat_tests.rs index 1e19fbf5fb..9500a6fc85 100755 --- a/sequencer/src/message_compat_tests.rs +++ b/sequencer/src/message_compat_tests.rs @@ -17,7 +17,7 @@ use std::path::Path; use committable::Committable; -use espresso_types::{Leaf, NodeState, PubKey, ValidatedState}; +use espresso_types::{NodeState, PubKey, ValidatedState}; use hotshot::traits::election::static_committee::StaticCommittee; use hotshot_types::{ data::{ @@ -53,17 +53,14 @@ use vbs::{ #[cfg(feature = "testing")] async fn test_message_compat(_ver: Ver) { - use espresso_types::{Payload, SeqTypes, Transaction}; + use espresso_types::{Leaf, Payload, SeqTypes, Transaction}; use hotshot_example_types::node_types::TestVersions; - use hotshot_types::{traits::network::Topic, PeerConfig}; + use hotshot_types::PeerConfig; let (sender, priv_key) = PubKey::generated_from_seed_indexed(Default::default(), 0); let signature = PubKey::sign(&priv_key, &[]).unwrap(); - let membership = StaticCommittee::new( - vec![], /* no eligible leaders */ - vec![PeerConfig::default()], /* one committee member, necessary to generate a VID share */ - Topic::Global, - ); + let committee = vec![PeerConfig::default()]; /* one committee member, necessary to generate a VID share */ + let membership = StaticCommittee::new(committee.clone(), committee); let upgrade_data = UpgradeProposalData { old_version: Version { major: 0, minor: 1 }, new_version: Version { major: 1, minor: 0 }, diff --git a/sequencer/src/persistence.rs b/sequencer/src/persistence.rs index 252a340007..5c0d201a59 100644 --- a/sequencer/src/persistence.rs +++ b/sequencer/src/persistence.rs @@ -9,7 +9,7 @@ //! persistence which is _required_ to run a node. use async_trait::async_trait; -use espresso_types::v0_3::ChainConfig; +use espresso_types::v0_99::ChainConfig; pub mod fs; pub mod no_storage; @@ -45,12 +45,13 @@ mod persistence_tests { use async_lock::RwLock; use committable::Committable; use espresso_types::{ - traits::EventConsumer, Event, Leaf, NodeState, PubKey, SeqTypes, ValidatedState, + traits::EventConsumer, Event, Leaf, Leaf2, NodeState, PubKey, SeqTypes, ValidatedState, }; use hotshot::types::{BLSPubKey, SignatureKey}; use hotshot_example_types::node_types::TestVersions; use hotshot_types::{ - data::{DaProposal, QuorumProposal, VidDisperseShare, ViewNumber}, + data::{DaProposal, QuorumProposal2, VidDisperseShare, ViewNumber}, + drb::{INITIAL_DRB_RESULT, INITIAL_DRB_SEED_INPUT}, event::{EventType, HotShotAction, LeafInfo}, message::Proposal, simple_certificate::{QuorumCertificate, UpgradeCertificate}, @@ -138,7 +139,7 @@ mod persistence_tests { ); } - fn leaf_info(leaf: Leaf) -> LeafInfo { + fn leaf_info(leaf: Leaf2) -> LeafInfo { LeafInfo { leaf, vid_share: None, @@ -160,7 +161,9 @@ mod persistence_tests { None ); - let leaf = Leaf::genesis(&ValidatedState::default(), &NodeState::mock()).await; + let leaf: Leaf2 = Leaf::genesis(&ValidatedState::default(), &NodeState::mock()) + .await + .into(); let leaf_payload = leaf.block_payload().unwrap(); let leaf_payload_bytes_arc = leaf_payload.encode(); let disperse = vid_scheme(2) @@ -176,16 +179,19 @@ mod persistence_tests { recipient_key: pubkey, }; let mut quorum_proposal = Proposal { - data: QuorumProposal:: { + data: QuorumProposal2:: { block_header: leaf.block_header().clone(), view_number: ViewNumber::genesis(), justify_qc: QuorumCertificate::genesis::( &ValidatedState::default(), &NodeState::mock(), ) - .await, + .await + .to_qc2(), upgrade_certificate: None, - proposal_certificate: None, + view_change_evidence: None, + drb_seed: INITIAL_DRB_SEED_INPUT, + drb_result: INITIAL_DRB_RESULT, }, signature, _pd: Default::default(), @@ -368,10 +374,10 @@ mod persistence_tests { // Test decide and garbage collection. Pass in a leaf chain with no VID shares or payloads, // so we have to fetch the missing data from storage. let leaves = [ - Leaf::from_quorum_proposal(&quorum_proposal1.data), - Leaf::from_quorum_proposal(&quorum_proposal2.data), - Leaf::from_quorum_proposal(&quorum_proposal3.data), - Leaf::from_quorum_proposal(&quorum_proposal4.data), + Leaf2::from_quorum_proposal(&quorum_proposal1.data), + Leaf2::from_quorum_proposal(&quorum_proposal2.data), + Leaf2::from_quorum_proposal(&quorum_proposal3.data), + Leaf2::from_quorum_proposal(&quorum_proposal4.data), ]; let mut final_qc = leaves[3].justify_qc(); final_qc.view_number += 1; @@ -567,7 +573,9 @@ mod persistence_tests { // Create a short blockchain. let mut chain = vec![]; - let leaf = Leaf::genesis(&ValidatedState::default(), &NodeState::mock()).await; + let leaf: Leaf2 = Leaf::genesis(&ValidatedState::default(), &NodeState::mock()) + .await + .into(); let leaf_payload = leaf.block_payload().unwrap(); let leaf_payload_bytes_arc = leaf_payload.encode(); let disperse = vid_scheme(2) @@ -584,22 +592,26 @@ mod persistence_tests { .to_proposal(&privkey) .unwrap() .clone(); - let mut quorum_proposal = QuorumProposal:: { + let mut quorum_proposal = QuorumProposal2:: { block_header: leaf.block_header().clone(), view_number: ViewNumber::genesis(), justify_qc: QuorumCertificate::genesis::( &ValidatedState::default(), &NodeState::mock(), ) - .await, + .await + .to_qc2(), upgrade_certificate: None, - proposal_certificate: None, + view_change_evidence: None, + drb_seed: INITIAL_DRB_SEED_INPUT, + drb_result: INITIAL_DRB_RESULT, }; let mut qc = QuorumCertificate::genesis::( &ValidatedState::default(), &NodeState::mock(), ) - .await; + .await + .to_qc2(); let block_payload_signature = BLSPubKey::sign(&privkey, &leaf_payload_bytes_arc) .expect("Failed to sign block payload"); @@ -617,7 +629,7 @@ mod persistence_tests { for i in 0..4 { quorum_proposal.view_number = ViewNumber::new(i); - let leaf = Leaf::from_quorum_proposal(&quorum_proposal); + let leaf = Leaf2::from_quorum_proposal(&quorum_proposal); qc.view_number = leaf.view_number(); qc.data.leaf_commit = Committable::commit(&leaf); vid.data.view_number = leaf.view_number(); diff --git a/sequencer/src/persistence/fs.rs b/sequencer/src/persistence/fs.rs index 2f71678081..e482090e73 100644 --- a/sequencer/src/persistence/fs.rs +++ b/sequencer/src/persistence/fs.rs @@ -4,14 +4,14 @@ use async_trait::async_trait; use clap::Parser; use espresso_types::{ v0::traits::{EventConsumer, PersistenceOptions, SequencerPersistence}, - Leaf, NetworkConfig, Payload, SeqTypes, + Leaf, Leaf2, NetworkConfig, Payload, SeqTypes, }; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, VidDisperseShare}, + data::{DaProposal, QuorumProposal, QuorumProposal2, VidDisperseShare}, event::{Event, EventType, HotShotAction, LeafInfo}, - message::Proposal, - simple_certificate::{QuorumCertificate, UpgradeCertificate}, + message::{convert_proposal, Proposal}, + simple_certificate::{QuorumCertificate, QuorumCertificate2, UpgradeCertificate}, traits::{block_contents::BlockPayload, node_implementation::ConsensusTime}, utils::View, vid::VidSchemeType, @@ -28,6 +28,8 @@ use std::{ use crate::ViewNumber; +use espresso_types::{downgrade_commitment_map, downgrade_leaf, upgrade_commitment_map}; + /// Options for file system backed persistence. #[derive(Parser, Clone, Debug)] pub struct Options { @@ -261,7 +263,7 @@ impl Inner { } let info = LeafInfo { - leaf, + leaf: leaf.into(), vid_share, // Note: the following fields are not used in Decide event processing, and should be @@ -289,7 +291,7 @@ impl Inner { .handle_event(&Event { view_number: ViewNumber::new(view), event: EventType::Decide { - qc: Arc::new(qc), + qc: Arc::new(qc.to_qc2()), leaf_chain: Arc::new(vec![leaf]), block_size: None, }, @@ -337,9 +339,9 @@ impl Inner { Ok(Some(vid_share)) } - fn load_anchor_leaf(&self) -> anyhow::Result)>> { + fn load_anchor_leaf(&self) -> anyhow::Result)>> { if self.decided_leaf_path().is_dir() { - let mut anchor: Option<(Leaf, QuorumCertificate)> = None; + let mut anchor: Option<(Leaf2, QuorumCertificate2)> = None; // Return the latest decided leaf. for entry in @@ -353,10 +355,14 @@ impl Inner { .context(format!("parsing decided leaf {}", file.display()))?; if let Some((anchor_leaf, _)) = &anchor { if leaf.view_number() > anchor_leaf.view_number() { - anchor = Some((leaf, qc)); + let leaf2 = leaf.into(); + let qc2 = qc.to_qc2(); + anchor = Some((leaf2, qc2)); } } else { - anchor = Some((leaf, qc)); + let leaf2 = leaf.into(); + let qc2 = qc.to_qc2(); + anchor = Some((leaf2, qc2)); } } @@ -422,7 +428,7 @@ impl SequencerPersistence for Persistence { async fn append_decided_leaves( &self, view: ViewNumber, - leaf_chain: impl IntoIterator, QuorumCertificate)> + Send, + leaf_chain: impl IntoIterator, QuorumCertificate2)> + Send, consumer: &impl EventConsumer, ) -> anyhow::Result<()> { let mut inner = self.inner.write().await; @@ -450,7 +456,7 @@ impl SequencerPersistence for Persistence { fs::remove_file(&legacy_path).context("removing legacy anchor leaf file")?; } - for (info, qc) in leaf_chain { + for (info, qc2) in leaf_chain { let view = info.leaf.view_number().u64(); let file_path = path.join(view.to_string()).with_extension("txt"); inner.replace( @@ -462,7 +468,9 @@ impl SequencerPersistence for Persistence { Ok(false) }, |mut file| { - let bytes = bincode::serialize(&(&info.leaf, qc))?; + let leaf = downgrade_leaf(info.leaf.clone()); + let qc = qc2.to_qc(); + let bytes = bincode::serialize(&(&leaf, qc))?; file.write_all(&bytes)?; Ok(()) }, @@ -490,20 +498,22 @@ impl SequencerPersistence for Persistence { async fn load_anchor_leaf( &self, - ) -> anyhow::Result)>> { + ) -> anyhow::Result)>> { self.inner.read().await.load_anchor_leaf() } async fn load_undecided_state( &self, - ) -> anyhow::Result, BTreeMap>)>> { + ) -> anyhow::Result, BTreeMap>)>> { let inner = self.inner.read().await; let path = inner.undecided_state_path(); if !path.is_file() { return Ok(None); } let bytes = fs::read(&path).context("read")?; - Ok(Some(bincode::deserialize(&bytes).context("deserialize")?)) + let value: (CommitmentMap, _) = + bincode::deserialize(&bytes).context("deserialize")?; + Ok(Some((upgrade_commitment_map(value.0), value.1))) } async fn load_da_proposal( @@ -601,9 +611,11 @@ impl SequencerPersistence for Persistence { } async fn update_undecided_state( &self, - leaves: CommitmentMap, + leaves: CommitmentMap, state: BTreeMap>, ) -> anyhow::Result<()> { + let leaves = downgrade_commitment_map(leaves); + if !self.store_undecided_state { return Ok(()); } @@ -626,8 +638,10 @@ impl SequencerPersistence for Persistence { } async fn append_quorum_proposal( &self, - proposal: &Proposal>, + proposal: &Proposal>, ) -> anyhow::Result<()> { + let proposal: Proposal> = + convert_proposal(proposal.clone()); let mut inner = self.inner.write().await; let view_number = proposal.data.view_number().u64(); let dir_path = inner.quorum_proposals_dir_path(); @@ -651,7 +665,7 @@ impl SequencerPersistence for Persistence { } async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>> { + ) -> anyhow::Result>>> { let inner = self.inner.read().await; // First, get the proposal directory. @@ -694,9 +708,10 @@ impl SequencerPersistence for Persistence { // Then, deserialize. let proposal: Proposal> = bincode::deserialize(&proposal_bytes)?; + let proposal2 = convert_proposal(proposal); // Push to the map and we're done. - map.insert(view_number, proposal); + map.insert(view_number, proposal2); } } @@ -706,13 +721,14 @@ impl SequencerPersistence for Persistence { async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>> { + ) -> anyhow::Result>> { let inner = self.inner.read().await; let dir_path = inner.quorum_proposals_dir_path(); let file_path = dir_path.join(view.to_string()).with_extension("txt"); let bytes = fs::read(file_path)?; - let proposal = bincode::deserialize(&bytes)?; - Ok(proposal) + let proposal: Proposal> = bincode::deserialize(&bytes)?; + let proposal2 = convert_proposal(proposal); + Ok(proposal2) } async fn load_upgrade_certificate( @@ -753,6 +769,17 @@ impl SequencerPersistence for Persistence { }, ) } + + async fn migrate_consensus( + &self, + _migrate_leaf: fn(Leaf) -> Leaf2, + _migrate_proposal: fn( + Proposal>, + ) -> Proposal>, + ) -> anyhow::Result<()> { + // TODO: https://github.com/EspressoSystems/espresso-sequencer/issues/2357 + Ok(()) + } } /// Update a `NetworkConfig` that may have originally been persisted with an old version. diff --git a/sequencer/src/persistence/no_storage.rs b/sequencer/src/persistence/no_storage.rs index 1421effc55..0b1e4cd44f 100644 --- a/sequencer/src/persistence/no_storage.rs +++ b/sequencer/src/persistence/no_storage.rs @@ -5,14 +5,14 @@ use anyhow::bail; use async_trait::async_trait; use espresso_types::{ v0::traits::{EventConsumer, PersistenceOptions, SequencerPersistence}, - Leaf, NetworkConfig, + Leaf, Leaf2, NetworkConfig, }; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, VidDisperseShare}, + data::{DaProposal, QuorumProposal, QuorumProposal2, VidDisperseShare}, event::{Event, EventType, HotShotAction, LeafInfo}, message::Proposal, - simple_certificate::{QuorumCertificate, UpgradeCertificate}, + simple_certificate::{QuorumCertificate2, UpgradeCertificate}, utils::View, vid::VidSchemeType, }; @@ -54,7 +54,7 @@ impl SequencerPersistence for NoStorage { async fn append_decided_leaves( &self, view_number: ViewNumber, - leaves: impl IntoIterator, QuorumCertificate)> + Send, + leaves: impl IntoIterator, QuorumCertificate2)> + Send, consumer: &impl EventConsumer, ) -> anyhow::Result<()> { let (mut leaf_chain, mut qcs): (Vec<_>, Vec<_>) = leaves @@ -87,13 +87,13 @@ impl SequencerPersistence for NoStorage { async fn load_anchor_leaf( &self, - ) -> anyhow::Result)>> { + ) -> anyhow::Result)>> { Ok(None) } async fn load_undecided_state( &self, - ) -> anyhow::Result, BTreeMap>)>> { + ) -> anyhow::Result, BTreeMap>)>> { Ok(None) } @@ -113,13 +113,13 @@ impl SequencerPersistence for NoStorage { async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>> { + ) -> anyhow::Result>>> { Ok(Default::default()) } async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>> { + ) -> anyhow::Result>> { bail!("proposal {view:?} not available"); } async fn load_upgrade_certificate( @@ -146,14 +146,14 @@ impl SequencerPersistence for NoStorage { } async fn update_undecided_state( &self, - _leaves: CommitmentMap, + _leaves: CommitmentMap, _state: BTreeMap>, ) -> anyhow::Result<()> { Ok(()) } async fn append_quorum_proposal( &self, - _proposal: &Proposal>, + _proposal: &Proposal>, ) -> anyhow::Result<()> { Ok(()) } @@ -163,4 +163,14 @@ impl SequencerPersistence for NoStorage { ) -> anyhow::Result<()> { Ok(()) } + + async fn migrate_consensus( + &self, + _: fn(Leaf) -> Leaf2, + _: fn( + Proposal>, + ) -> Proposal>, + ) -> anyhow::Result<()> { + Ok(()) + } } diff --git a/sequencer/src/persistence/sql.rs b/sequencer/src/persistence/sql.rs index 1dd8771a03..4cb250d9b4 100644 --- a/sequencer/src/persistence/sql.rs +++ b/sequencer/src/persistence/sql.rs @@ -5,9 +5,9 @@ use committable::Committable; use derivative::Derivative; use derive_more::derive::{From, Into}; use espresso_types::{ - parse_duration, + downgrade_commitment_map, downgrade_leaf, parse_duration, upgrade_commitment_map, v0::traits::{EventConsumer, PersistenceOptions, SequencerPersistence, StateCatchup}, - BackoffParams, Leaf, NetworkConfig, Payload, + BackoffParams, Leaf, Leaf2, NetworkConfig, Payload, }; use futures::stream::StreamExt; use hotshot_query_service::data_source::storage::sql::{syntax_helpers::MAX_FN, Db}; @@ -20,10 +20,10 @@ use hotshot_query_service::data_source::{ }; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, VidDisperseShare}, + data::{DaProposal, QuorumProposal, QuorumProposal2, VidDisperseShare}, event::{Event, EventType, HotShotAction, LeafInfo}, - message::Proposal, - simple_certificate::{QuorumCertificate, UpgradeCertificate}, + message::{convert_proposal, Proposal}, + simple_certificate::{QuorumCertificate, QuorumCertificate2, UpgradeCertificate}, traits::{node_implementation::ConsensusTime, BlockPayload}, utils::View, vid::VidSchemeType, @@ -543,19 +543,21 @@ impl SequencerPersistence for Persistence { async fn append_decided_leaves( &self, view: ViewNumber, - leaf_chain: impl IntoIterator, QuorumCertificate)> + Send, + leaf_chain: impl IntoIterator, QuorumCertificate2)> + Send, consumer: &(impl EventConsumer + 'static), ) -> anyhow::Result<()> { let values = leaf_chain .into_iter() - .map(|(info, qc)| { + .map(|(info, qc2)| { // The leaf may come with a large payload attached. We don't care about this payload // because we already store it separately, as part of the DA proposal. Storing it // here contributes to load on the DB for no reason, so we remove it before // serializing the leaf. - let mut leaf = info.leaf.clone(); + let mut leaf = downgrade_leaf(info.leaf.clone()); leaf.unfill_block_payload(); + let qc = qc2.to_qc(); + let view = qc.view_number.u64() as i64; let leaf_bytes = bincode::serialize(&leaf)?; let qc_bytes = bincode::serialize(&qc)?; @@ -600,7 +602,7 @@ impl SequencerPersistence for Persistence { async fn load_anchor_leaf( &self, - ) -> anyhow::Result)>> { + ) -> anyhow::Result)>> { let Some(row) = self .db .read() @@ -612,12 +614,14 @@ impl SequencerPersistence for Persistence { }; let leaf_bytes: Vec = row.get("leaf"); - let leaf = bincode::deserialize(&leaf_bytes)?; + let leaf: Leaf = bincode::deserialize(&leaf_bytes)?; + let leaf2: Leaf2 = leaf.into(); let qc_bytes: Vec = row.get("qc"); - let qc = bincode::deserialize(&qc_bytes)?; + let qc: QuorumCertificate = bincode::deserialize(&qc_bytes)?; + let qc2 = qc.to_qc2(); - Ok(Some((leaf, qc))) + Ok(Some((leaf2, qc2))) } async fn load_anchor_view(&self) -> anyhow::Result { @@ -630,7 +634,7 @@ impl SequencerPersistence for Persistence { async fn load_undecided_state( &self, - ) -> anyhow::Result, BTreeMap>)>> { + ) -> anyhow::Result, BTreeMap>)>> { let Some(row) = self .db .read() @@ -642,12 +646,13 @@ impl SequencerPersistence for Persistence { }; let leaves_bytes: Vec = row.get("leaves"); - let leaves = bincode::deserialize(&leaves_bytes)?; + let leaves: CommitmentMap = bincode::deserialize(&leaves_bytes)?; + let leaves2 = upgrade_commitment_map(leaves); let state_bytes: Vec = row.get("state"); let state = bincode::deserialize(&state_bytes)?; - Ok(Some((leaves, state))) + Ok(Some((leaves2, state))) } async fn load_da_proposal( @@ -694,7 +699,7 @@ impl SequencerPersistence for Persistence { async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>> { + ) -> anyhow::Result>>> { let rows = self .db .read() @@ -710,7 +715,7 @@ impl SequencerPersistence for Persistence { let bytes: Vec = row.get("data"); let proposal: Proposal> = bincode::deserialize(&bytes)?; - Ok((view_number, proposal)) + Ok((view_number, convert_proposal(proposal))) }) .collect::>>()?, )) @@ -719,14 +724,15 @@ impl SequencerPersistence for Persistence { async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>> { + ) -> anyhow::Result>> { let mut tx = self.db.read().await?; let (data,) = query_as::<(Vec,)>("SELECT data FROM quorum_proposals WHERE view = $1 LIMIT 1") .bind(view.u64() as i64) .fetch_one(tx.as_mut()) .await?; - let proposal = bincode::deserialize(&data)?; + let proposal: Proposal> = bincode::deserialize(&data)?; + let proposal = convert_proposal(proposal); Ok(proposal) } @@ -774,7 +780,7 @@ impl SequencerPersistence for Persistence { } let stmt = format!( - "INSERT INTO highest_voted_view (id, view) VALUES (0, $1) + "INSERT INTO highest_voted_view (id, view) VALUES (0, $1) ON CONFLICT (id) DO UPDATE SET view = {MAX_FN}(highest_voted_view.view, excluded.view)" ); @@ -784,9 +790,11 @@ impl SequencerPersistence for Persistence { } async fn update_undecided_state( &self, - leaves: CommitmentMap, + leaves: CommitmentMap, state: BTreeMap>, ) -> anyhow::Result<()> { + let leaves = downgrade_commitment_map(leaves); + if !self.store_undecided_state { return Ok(()); } @@ -806,8 +814,10 @@ impl SequencerPersistence for Persistence { } async fn append_quorum_proposal( &self, - proposal: &Proposal>, + proposal: &Proposal>, ) -> anyhow::Result<()> { + let proposal: Proposal> = + convert_proposal(proposal.clone()); let view_number = proposal.data.view_number().u64(); let proposal_bytes = bincode::serialize(&proposal).context("serializing proposal")?; let leaf_hash = Committable::commit(&Leaf::from_quorum_proposal(&proposal.data)); @@ -860,6 +870,17 @@ impl SequencerPersistence for Persistence { .await?; tx.commit().await } + + async fn migrate_consensus( + &self, + _migrate_leaf: fn(Leaf) -> Leaf2, + _migrate_proposal: fn( + Proposal>, + ) -> Proposal>, + ) -> anyhow::Result<()> { + // TODO: https://github.com/EspressoSystems/espresso-sequencer/issues/2357 + Ok(()) + } } async fn collect_garbage( @@ -981,7 +1002,7 @@ async fn collect_garbage( } let leaf_info = LeafInfo { - leaf, + leaf: leaf.into(), vid_share, // Note: the following fields are not used in Decide event processing, and @@ -995,7 +1016,7 @@ async fn collect_garbage( view_number: ViewNumber::new(view), event: EventType::Decide { leaf_chain: Arc::new(vec![leaf_info]), - qc: Arc::new(qc), + qc: Arc::new(qc.to_qc2()), block_size: None, }, }) @@ -1084,40 +1105,52 @@ mod generic_tests { #[cfg(test)] mod test { + use super::*; use crate::{persistence::testing::TestablePersistence, BLSPubKey, PubKey}; - use espresso_types::{NodeState, ValidatedState}; + use espresso_types::{Leaf, NodeState, ValidatedState}; use futures::stream::TryStreamExt; use hotshot_example_types::node_types::TestVersions; - use hotshot_types::traits::signature_key::SignatureKey; + use hotshot_types::{ + drb::{INITIAL_DRB_RESULT, INITIAL_DRB_SEED_INPUT}, + simple_certificate::QuorumCertificate, + traits::signature_key::SignatureKey, + }; #[tokio::test(flavor = "multi_thread")] async fn test_quorum_proposals_leaf_hash_migration() { // Create some quorum proposals to test with. - let leaf = Leaf::genesis(&ValidatedState::default(), &NodeState::mock()).await; + let leaf: Leaf2 = Leaf::genesis(&ValidatedState::default(), &NodeState::mock()) + .await + .into(); let privkey = BLSPubKey::generated_from_seed_indexed([0; 32], 1).1; let signature = PubKey::sign(&privkey, &[]).unwrap(); let mut quorum_proposal = Proposal { - data: QuorumProposal:: { + data: QuorumProposal2:: { block_header: leaf.block_header().clone(), view_number: ViewNumber::genesis(), justify_qc: QuorumCertificate::genesis::( &ValidatedState::default(), &NodeState::mock(), ) - .await, + .await + .to_qc2(), upgrade_certificate: None, - proposal_certificate: None, + view_change_evidence: None, + drb_seed: INITIAL_DRB_SEED_INPUT, + drb_result: INITIAL_DRB_RESULT, }, signature, _pd: Default::default(), }; - let qp1 = quorum_proposal.clone(); + let qp1: Proposal> = + convert_proposal(quorum_proposal.clone()); quorum_proposal.data.view_number = ViewNumber::new(1); - let qp2 = quorum_proposal.clone(); + let qp2: Proposal> = + convert_proposal(quorum_proposal.clone()); let qps = [qp1, qp2]; // Create persistence and add the quorum proposals with NULL leaf hash. diff --git a/sequencer/src/restart_tests.rs b/sequencer/src/restart_tests.rs old mode 100644 new mode 100755 index 91159df1a4..59dae6d41a --- a/sequencer/src/restart_tests.rs +++ b/sequencer/src/restart_tests.rs @@ -17,7 +17,7 @@ use cdn_marshal::{Config as MarshalConfig, Marshal}; use clap::Parser; use derivative::Derivative; use espresso_types::{ - eth_signature_key::EthKeyPair, traits::PersistenceOptions, v0_3::ChainConfig, FeeAccount, + eth_signature_key::EthKeyPair, traits::PersistenceOptions, v0_99::ChainConfig, FeeAccount, MockSequencerVersions, PrivKey, PubKey, SeqTypes, Transaction, }; use ethers::utils::{Anvil, AnvilInstance}; diff --git a/sequencer/src/state.rs b/sequencer/src/state.rs index b44615c350..e4b3abe6e3 100644 --- a/sequencer/src/state.rs +++ b/sequencer/src/state.rs @@ -3,8 +3,8 @@ use std::{sync::Arc, time::Duration}; use anyhow::{bail, ensure, Context}; use espresso_types::{ - traits::StateCatchup, v0_3::ChainConfig, BlockMerkleTree, Delta, FeeAccount, FeeMerkleTree, - Leaf, ValidatedState, + traits::StateCatchup, v0_99::ChainConfig, BlockMerkleTree, Delta, FeeAccount, FeeMerkleTree, + Leaf2, ValidatedState, }; use futures::future::Future; use futures::StreamExt; @@ -29,8 +29,8 @@ pub(crate) async fn compute_state_update( state: &ValidatedState, instance: &NodeState, peers: &impl StateCatchup, - parent_leaf: &Leaf, - proposed_leaf: &Leaf, + parent_leaf: &Leaf2, + proposed_leaf: &Leaf2, ) -> anyhow::Result<(ValidatedState, Delta)> { let header = proposed_leaf.block_header(); @@ -155,8 +155,8 @@ where parent_state, instance, peers, - parent_leaf.leaf(), - proposed_leaf.leaf(), + &parent_leaf.leaf().clone().into(), + &proposed_leaf.leaf().clone().into(), ) .await .context("computing state update")?; diff --git a/sequencer/src/state_signature.rs b/sequencer/src/state_signature.rs index 1030336c2f..87ff5b1761 100644 --- a/sequencer/src/state_signature.rs +++ b/sequencer/src/state_signature.rs @@ -5,7 +5,7 @@ use std::collections::{HashMap, VecDeque}; use ark_ff::PrimeField; use ark_serialize::CanonicalSerialize; use async_lock::RwLock; -use espresso_types::Leaf; +use espresso_types::Leaf2; use hotshot::types::{Event, EventType}; use hotshot_stake_table::vec_based::StakeTable; use hotshot_types::{ @@ -147,7 +147,7 @@ fn hash_bytes_to_field(bytes: &[u8]) -> Result { Ok(VariableLengthRescueCRHF::<_, 1>::evaluate(elem)?[0]) } -fn form_light_client_state(leaf: &Leaf) -> anyhow::Result { +fn form_light_client_state(leaf: &Leaf2) -> anyhow::Result { let header = leaf.block_header(); let mut block_comm_root_bytes = vec![]; header diff --git a/types/src/reference_tests.rs b/types/src/reference_tests.rs index 7070983d27..5d77e13fd0 100755 --- a/types/src/reference_tests.rs +++ b/types/src/reference_tests.rs @@ -48,6 +48,7 @@ use crate::{ type V1Serializer = vbs::Serializer>; type V2Serializer = vbs::Serializer>; type V3Serializer = vbs::Serializer>; +type V99Serializer = vbs::Serializer>; async fn reference_payload() -> Payload { const NUM_NS_IDS: usize = 3; @@ -92,8 +93,8 @@ fn reference_l1_block() -> L1BlockInfo { const REFERENCE_L1_BLOCK_COMMITMENT: &str = "L1BLOCK~4HpzluLK2Isz3RdPNvNrDAyQcWOF2c9JeLZzVNLmfpQ9"; -fn reference_chain_config() -> crate::v0_3::ChainConfig { - crate::v0_3::ChainConfig { +fn reference_chain_config() -> crate::v0_99::ChainConfig { + crate::v0_99::ChainConfig { chain_id: 0x8a19.into(), max_block_size: 10240.into(), base_fee: 0.into(), @@ -106,7 +107,7 @@ fn reference_chain_config() -> crate::v0_3::ChainConfig { const REFERENCE_V1_CHAIN_CONFIG_COMMITMENT: &str = "CHAIN_CONFIG~L6HmMktJbvnEGgpmRrsiYvQmIBstSj9UtDM7eNFFqYFO"; -const REFERENCE_V3_CHAIN_CONFIG_COMMITMENT: &str = +const REFERENCE_V99_CHAIN_CONFIG_COMMITMENT: &str = "CHAIN_CONFIG~1mJTBiaJ0Nyuu4Ir5IZTamyI8CjexbktPkRr6R1rtnGh"; fn reference_fee_info() -> FeeInfo { @@ -154,7 +155,7 @@ async fn reference_header(version: Version) -> Header { const REFERENCE_V1_HEADER_COMMITMENT: &str = "BLOCK~dh1KpdvvxSvnnPpOi2yI3DOg8h6ltr2Kv13iRzbQvtN2"; const REFERENCE_V2_HEADER_COMMITMENT: &str = "BLOCK~V0GJjL19nCrlm9n1zZ6gaOKEekSMCT6uR5P-h7Gi6UJR"; -const REFERENCE_V3_HEADER_COMMITMENT: &str = "BLOCK~BGlAadiwOlxmhQxdp2HS7mHpG-ifDOx9ocBkTEJXx05_"; +const REFERENCE_V99_HEADER_COMMITMENT: &str = "BLOCK~BGlAadiwOlxmhQxdp2HS7mHpG-ifDOx9ocBkTEJXx05_"; fn reference_transaction(ns_id: NamespaceId, rng: &mut R) -> Transaction where @@ -232,6 +233,7 @@ change in the serialization of this data structure. "v1" => V1Serializer::serialize(&reference).unwrap(), "v2" => V2Serializer::serialize(&reference).unwrap(), "v3" => V3Serializer::serialize(&reference).unwrap(), + "v99" => V99Serializer::serialize(&reference).unwrap(), _ => panic!("invalid version"), }; if actual != expected { @@ -261,6 +263,7 @@ change in the serialization of this data structure. "v1" => V1Serializer::deserialize(&expected).unwrap(), "v2" => V2Serializer::deserialize(&expected).unwrap(), "v3" => V3Serializer::deserialize(&expected).unwrap(), + "v99" => V99Serializer::deserialize(&expected).unwrap(), _ => panic!("invalid version"), }; @@ -347,12 +350,12 @@ fn test_reference_v1_chain_config() { } #[test] -fn test_reference_v3_chain_config() { +fn test_reference_v99_chain_config() { reference_test( - "v3", + "v99", "chain_config", reference_chain_config(), - REFERENCE_V3_CHAIN_CONFIG_COMMITMENT, + REFERENCE_V99_CHAIN_CONFIG_COMMITMENT, ); } @@ -387,12 +390,12 @@ async fn test_reference_header_v2() { } #[tokio::test(flavor = "multi_thread")] -async fn test_reference_header_v3() { +async fn test_reference_header_v99() { reference_test( - "v3", + "v99", "header", - reference_header(StaticVersion::<0, 3>::version()).await, - REFERENCE_V3_HEADER_COMMITMENT, + reference_header(StaticVersion::<0, 99>::version()).await, + REFERENCE_V99_HEADER_COMMITMENT, ); } #[test] diff --git a/types/src/v0/header.rs b/types/src/v0/header.rs index 014d4938d4..1f07707d6d 100644 --- a/types/src/v0/header.rs +++ b/types/src/v0/header.rs @@ -4,7 +4,7 @@ use vbs::version::Version; use crate::{ v0_1::{self, ChainConfig}, - v0_2, v0_3, + v0_2, v0_3, v0_99, }; /// Each variant represents a specific minor version header. @@ -13,6 +13,7 @@ pub enum Header { V1(v0_1::Header), V2(v0_2::Header), V3(v0_3::Header), + V99(v0_99::Header), } /// Enum to represent the first field of different versions of a header diff --git a/types/src/v0/impls/auction.rs b/types/src/v0/impls/auction.rs index 0c6b860d76..ce5aa835d6 100644 --- a/types/src/v0/impls/auction.rs +++ b/types/src/v0/impls/auction.rs @@ -1,7 +1,7 @@ use super::{state::ValidatedState, MarketplaceVersion}; use crate::{ eth_signature_key::{EthKeyPair, SigningError}, - v0_3::{BidTx, BidTxBody, FullNetworkTx, SolverAuctionResults}, + v0_99::{BidTx, BidTxBody, FullNetworkTx, SolverAuctionResults}, FeeAccount, FeeAmount, FeeError, FeeInfo, NamespaceId, }; use anyhow::Context; @@ -93,7 +93,7 @@ impl BidTxBody { /// Sign Body and return a `BidTx`. This is the expected way to obtain a `BidTx`. /// ``` /// # use espresso_types::FeeAccount; - /// # use espresso_types::v0_3::BidTxBody; + /// # use espresso_types::v0_99::BidTxBody; /// /// BidTxBody::default().signed(&FeeAccount::test_key_pair()).unwrap(); /// ``` diff --git a/types/src/v0/impls/block/test.rs b/types/src/v0/impls/block/test.rs index 7eec8dbf9e..1f9d0b95ec 100755 --- a/types/src/v0/impls/block/test.rs +++ b/types/src/v0/impls/block/test.rs @@ -9,7 +9,7 @@ use rand::RngCore; use sequencer_utils::test_utils::setup_test; use crate::{ - v0_3::ChainConfig, BlockSize, NamespaceId, NodeState, NsProof, Payload, Transaction, TxProof, + v0_99::ChainConfig, BlockSize, NamespaceId, NodeState, NsProof, Payload, Transaction, TxProof, ValidatedState, }; diff --git a/types/src/v0/impls/chain_config.rs b/types/src/v0/impls/chain_config.rs index 4c755ed4c9..502f95a3d9 100644 --- a/types/src/v0/impls/chain_config.rs +++ b/types/src/v0/impls/chain_config.rs @@ -75,7 +75,7 @@ impl FromStringOrInteger for BlockSize { #[cfg(test)] mod tests { - use crate::v0_3::{ChainConfig, ResolvableChainConfig}; + use crate::v0_99::{ChainConfig, ResolvableChainConfig}; use super::*; diff --git a/types/src/v0/impls/fee_info.rs b/types/src/v0/impls/fee_info.rs index b1bce9e9ef..9110af8562 100644 --- a/types/src/v0/impls/fee_info.rs +++ b/types/src/v0/impls/fee_info.rs @@ -1,7 +1,3 @@ -// use crate::SeqTypes; - -use std::str::FromStr; - use anyhow::{bail, ensure, Context}; use ark_serialize::{ CanonicalDeserialize, CanonicalSerialize, Compress, Read, SerializationError, Valid, Validate, @@ -24,10 +20,11 @@ use num_traits::CheckedSub; use sequencer_utils::{ impl_serde_from_string_or_integer, impl_to_fixed_bytes, ser::FromStringOrInteger, }; +use std::str::FromStr; use thiserror::Error; use crate::{ - eth_signature_key::EthKeyPair, v0_3::IterableFeeInfo, AccountQueryData, FeeAccount, + eth_signature_key::EthKeyPair, v0_99::IterableFeeInfo, AccountQueryData, FeeAccount, FeeAccountProof, FeeAmount, FeeInfo, FeeMerkleCommitment, FeeMerkleProof, FeeMerkleTree, SeqTypes, }; diff --git a/types/src/v0/impls/header.rs b/types/src/v0/impls/header.rs index 843474e488..1577a2a38d 100644 --- a/types/src/v0/impls/header.rs +++ b/types/src/v0/impls/header.rs @@ -29,10 +29,10 @@ use crate::{ header::{EitherOrVersion, VersionedHeader}, MarketplaceVersion, }, - v0_1, v0_2, - v0_3::{self, ChainConfig, IterableFeeInfo, SolverAuctionResults}, + v0_1, v0_2, v0_3, + v0_99::{self, ChainConfig, IterableFeeInfo, SolverAuctionResults}, BlockMerkleCommitment, BuilderSignature, FeeAccount, FeeAmount, FeeInfo, FeeMerkleCommitment, - Header, L1BlockInfo, L1Snapshot, Leaf, NamespaceId, NsTable, SeqTypes, UpgradeType, + Header, L1BlockInfo, L1Snapshot, Leaf2, NamespaceId, NsTable, SeqTypes, UpgradeType, }; use super::{instance_state::NodeState, state::ValidatedState}; @@ -80,6 +80,11 @@ impl Committable for Header { .u64_field("version_minor", 3) .field("fields", fields.commit()) .finalize(), + Self::V99(fields) => RawCommitmentBuilder::new(&Self::tag()) + .u64_field("version_major", 0) + .u64_field("version_minor", 3) + .field("fields", fields.commit()) + .finalize(), } } @@ -107,6 +112,14 @@ impl Serialize for Header { fields: fields.clone(), } .serialize(serializer), + Self::V99(fields) => VersionedHeader { + version: EitherOrVersion::Version(Version { + major: 0, + minor: 99, + }), + fields: fields.clone(), + } + .serialize(serializer), } } } @@ -152,6 +165,13 @@ impl<'de> Deserialize<'de> for Header { seq.next_element()? .ok_or_else(|| de::Error::missing_field("fields"))?, )), + EitherOrVersion::Version(Version { + major: 0, + minor: 99, + }) => Ok(Header::V99( + seq.next_element()? + .ok_or_else(|| de::Error::missing_field("fields"))?, + )), EitherOrVersion::Version(v) => { Err(serde::de::Error::custom(format!("invalid version {v:?}"))) } @@ -183,6 +203,12 @@ impl<'de> Deserialize<'de> for Header { EitherOrVersion::Version(Version { major: 0, minor: 3 }) => Ok(Header::V3( serde_json::from_value(fields.clone()).map_err(de::Error::custom)?, )), + EitherOrVersion::Version(Version { + major: 0, + minor: 99, + }) => Ok(Header::V99( + serde_json::from_value(fields.clone()).map_err(de::Error::custom)?, + )), EitherOrVersion::Version(v) => { Err(de::Error::custom(format!("invalid version {v:?}"))) } @@ -240,6 +266,10 @@ impl Header { Self::V1(_) => Version { major: 0, minor: 1 }, Self::V2(_) => Version { major: 0, minor: 2 }, Self::V3(_) => Version { major: 0, minor: 3 }, + Self::V99(_) => Version { + major: 0, + minor: 99, + }, } } #[allow(clippy::too_many_arguments)] @@ -299,7 +329,24 @@ impl Header { builder_signature: builder_signature.first().copied(), }), 3 => Self::V3(v0_3::Header { - chain_config: v0_3::ResolvableChainConfig::from(chain_config), + chain_config: v0_1::ResolvableChainConfig::from(v0_1::ChainConfig::from( + chain_config, + )), + height, + timestamp, + l1_head, + l1_finalized, + payload_commitment, + builder_commitment, + ns_table, + block_merkle_tree_root, + fee_merkle_tree_root, + fee_info: fee_info[0], // NOTE this is asserted to exist above + builder_signature: builder_signature.first().copied(), + }), + + 99 => Self::V99(v0_99::Header { + chain_config: v0_99::ResolvableChainConfig::from(chain_config), height, timestamp, l1_head, @@ -328,6 +375,7 @@ macro_rules! field { Self::V1(data) => &data.$name, Self::V2(data) => &data.$name, Self::V3(data) => &data.$name, + Self::V99(data) => &data.$name, } }; } @@ -338,6 +386,7 @@ macro_rules! field_mut { Self::V1(data) => &mut data.$name, Self::V2(data) => &mut data.$name, Self::V3(data) => &mut data.$name, + Self::V99(data) => &mut data.$name, } }; } @@ -348,7 +397,7 @@ impl Header { payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, ns_table: NsTable, - parent_leaf: &Leaf, + parent_leaf: &Leaf2, mut l1: L1Snapshot, l1_deposits: &[FeeInfo], builder_fee: Vec>, @@ -501,6 +550,22 @@ impl Header { builder_signature: builder_signature.first().copied(), }), 3 => Self::V3(v0_3::Header { + chain_config: v0_1::ResolvableChainConfig::from(v0_1::ChainConfig::from( + chain_config, + )), + height, + timestamp, + l1_head: l1.head, + l1_finalized: l1.finalized, + payload_commitment, + builder_commitment, + ns_table, + block_merkle_tree_root, + fee_merkle_tree_root, + fee_info: fee_info[0], + builder_signature: builder_signature.first().copied(), + }), + 99 => Self::V99(v0_99::Header { chain_config: chain_config.into(), height, timestamp, @@ -551,11 +616,12 @@ impl Header { impl Header { /// A commitment to a ChainConfig or a full ChainConfig. - pub fn chain_config(&self) -> v0_3::ResolvableChainConfig { + pub fn chain_config(&self) -> v0_99::ResolvableChainConfig { match self { - Self::V1(fields) => v0_3::ResolvableChainConfig::from(&fields.chain_config), - Self::V2(fields) => v0_3::ResolvableChainConfig::from(&fields.chain_config), - Self::V3(fields) => fields.chain_config, + Self::V1(fields) => v0_99::ResolvableChainConfig::from(&fields.chain_config), + Self::V2(fields) => v0_99::ResolvableChainConfig::from(&fields.chain_config), + Self::V3(fields) => v0_99::ResolvableChainConfig::from(&fields.chain_config), + Self::V99(fields) => fields.chain_config, } } @@ -672,7 +738,8 @@ impl Header { match self { Self::V1(fields) => vec![fields.fee_info], Self::V2(fields) => vec![fields.fee_info], - Self::V3(fields) => fields.fee_info.clone(), + Self::V3(fields) => vec![fields.fee_info], + Self::V99(fields) => fields.fee_info.clone(), } } @@ -692,7 +759,8 @@ impl Header { // empty/non-empty Self::V1(fields) => fields.builder_signature.as_slice().to_vec(), Self::V2(fields) => fields.builder_signature.as_slice().to_vec(), - Self::V3(fields) => fields.builder_signature.clone(), + Self::V3(fields) => fields.builder_signature.as_slice().to_vec(), + Self::V99(fields) => fields.builder_signature.clone(), } } } @@ -722,7 +790,8 @@ impl BlockHeader for Header { match self { Self::V1(_) => None, Self::V2(_) => None, - Self::V3(fields) => Some(fields.auction_results.clone()), + Self::V3(_) => None, + Self::V99(fields) => Some(fields.auction_results.clone()), } } @@ -751,7 +820,7 @@ impl BlockHeader for Header { async fn new_marketplace( parent_state: &::ValidatedState, instance_state: &<::ValidatedState as hotshot_types::traits::ValidatedState>::Instance, - parent_leaf: &hotshot_types::data::Leaf, + parent_leaf: &hotshot_types::data::Leaf2, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <::BlockPayload as BlockPayload>::Metadata, @@ -888,7 +957,7 @@ impl BlockHeader for Header { async fn new_legacy( parent_state: &ValidatedState, instance_state: &NodeState, - parent_leaf: &Leaf, + parent_leaf: &Leaf2, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <::BlockPayload as BlockPayload>::Metadata, @@ -1119,7 +1188,7 @@ mod test_headers { use v0_1::{BlockMerkleTree, FeeMerkleTree, L1Client}; use vbs::{bincode_serializer::BincodeSerializer, version::StaticVersion, BinarySerializer}; - use crate::{eth_signature_key::EthKeyPair, mock::MockStateCatchup}; + use crate::{eth_signature_key::EthKeyPair, mock::MockStateCatchup, Leaf}; use super::*; @@ -1387,7 +1456,7 @@ mod test_headers { struct GenesisForTest { pub instance_state: NodeState, pub validated_state: ValidatedState, - pub leaf: Leaf, + pub leaf: Leaf2, pub header: Header, pub ns_table: NsTable, } @@ -1396,7 +1465,9 @@ mod test_headers { async fn default() -> Self { let instance_state = NodeState::mock(); let validated_state = ValidatedState::genesis(&instance_state).0; - let leaf = Leaf::genesis(&validated_state, &instance_state).await; + let leaf: Leaf2 = Leaf::genesis(&validated_state, &instance_state) + .await + .into(); let header = leaf.block_header().clone(); let ns_table = leaf.block_payload().unwrap().ns_table().clone(); Self { @@ -1588,7 +1659,7 @@ mod test_headers { let deserialized: Header = serde_json::from_str(&serialized).unwrap(); assert_eq!(v2_header, deserialized); - let v3_header = Header::create( + let v99_header = Header::create( genesis.instance_state.chain_config, 1, 2, @@ -1604,12 +1675,15 @@ mod test_headers { account: fee_account, }], Default::default(), - Version { major: 0, minor: 3 }, + Version { + major: 0, + minor: 99, + }, ); - let serialized = serde_json::to_string(&v3_header).unwrap(); + let serialized = serde_json::to_string(&v99_header).unwrap(); let deserialized: Header = serde_json::from_str(&serialized).unwrap(); - assert_eq!(v3_header, deserialized); + assert_eq!(v99_header, deserialized); let v1_bytes = BincodeSerializer::>::serialize(&v1_header).unwrap(); let deserialized: Header = @@ -1621,9 +1695,9 @@ mod test_headers { BincodeSerializer::>::deserialize(&v2_bytes).unwrap(); assert_eq!(v2_header, deserialized); - let v3_bytes = BincodeSerializer::>::serialize(&v3_header).unwrap(); + let v99_bytes = BincodeSerializer::>::serialize(&v99_header).unwrap(); let deserialized: Header = - BincodeSerializer::>::deserialize(&v3_bytes).unwrap(); - assert_eq!(v3_header, deserialized); + BincodeSerializer::>::deserialize(&v99_bytes).unwrap(); + assert_eq!(v99_header, deserialized); } } diff --git a/types/src/v0/impls/instance_state.rs b/types/src/v0/impls/instance_state.rs index 19df55e1ba..71a387bbcb 100644 --- a/types/src/v0/impls/instance_state.rs +++ b/types/src/v0/impls/instance_state.rs @@ -1,5 +1,5 @@ use crate::v0::{ - traits::StateCatchup, v0_3::ChainConfig, GenesisHeader, L1BlockInfo, L1Client, PubKey, + traits::StateCatchup, v0_99::ChainConfig, GenesisHeader, L1BlockInfo, L1Client, PubKey, Timestamp, Upgrade, UpgradeMode, }; use hotshot_types::traits::states::InstanceState; @@ -17,7 +17,7 @@ use super::state::ValidatedState; #[derive(derive_more::Debug, Clone)] pub struct NodeState { pub node_id: u64, - pub chain_config: crate::v0_3::ChainConfig, + pub chain_config: crate::v0_99::ChainConfig, pub l1_client: L1Client, #[debug("{}", peers.name())] pub peers: Arc, @@ -94,7 +94,7 @@ impl NodeState { } #[cfg(any(test, feature = "testing"))] - pub fn mock_v3() -> Self { + pub fn mock_v99() -> Self { use vbs::version::StaticVersion; Self::new( @@ -102,7 +102,7 @@ impl NodeState { ChainConfig::default(), L1Client::http("http://localhost:3331".parse().unwrap()), mock::MockStateCatchup::default(), - StaticVersion::<0, 3>::version(), + StaticVersion::<0, 99>::version(), ) } diff --git a/types/src/v0/impls/solver.rs b/types/src/v0/impls/solver.rs index ae7e3eb106..0e69223240 100644 --- a/types/src/v0/impls/solver.rs +++ b/types/src/v0/impls/solver.rs @@ -2,7 +2,7 @@ use committable::{Commitment, Committable}; use hotshot::types::SignatureKey; use super::{ - v0_3::{RollupRegistrationBody, RollupUpdatebody}, + v0_99::{RollupRegistrationBody, RollupUpdatebody}, Update, }; use crate::Update::Set; diff --git a/types/src/v0/impls/state.rs b/types/src/v0/impls/state.rs index 37e87f2acb..85fbb06146 100644 --- a/types/src/v0/impls/state.rs +++ b/types/src/v0/impls/state.rs @@ -31,8 +31,8 @@ use super::{ }; use crate::{ traits::StateCatchup, - v0_3::{ChainConfig, FullNetworkTx, IterableFeeInfo, ResolvableChainConfig}, - BlockMerkleTree, Delta, FeeAccount, FeeAmount, FeeInfo, FeeMerkleTree, Header, Leaf, + v0_99::{ChainConfig, FullNetworkTx, IterableFeeInfo, ResolvableChainConfig}, + BlockMerkleTree, Delta, FeeAccount, FeeAmount, FeeInfo, FeeMerkleTree, Header, Leaf2, NsTableValidationError, PayloadByteLen, SeqTypes, UpgradeType, BLOCK_MERKLE_TREE_HEIGHT, FEE_MERKLE_TREE_HEIGHT, }; @@ -225,7 +225,7 @@ impl ValidatedState { pub fn apply_proposal( &mut self, delta: &mut Delta, - parent_leaf: &Leaf, + parent_leaf: &Leaf2, l1_deposits: Vec, ) { // pushing a block into merkle tree shouldn't fail @@ -704,7 +704,7 @@ impl ValidatedState { &self, instance: &NodeState, peers: &impl StateCatchup, - parent_leaf: &Leaf, + parent_leaf: &Leaf2, proposed_header: &Header, version: Version, ) -> anyhow::Result<(Self, Delta)> { @@ -860,7 +860,7 @@ fn _apply_full_transactions( pub async fn get_l1_deposits( instance: &NodeState, header: &Header, - parent_leaf: &Leaf, + parent_leaf: &Leaf2, fee_contract_address: Option
, ) -> Vec { if let (Some(addr), Some(block_info)) = (fee_contract_address, header.l1_finalized()) { @@ -901,7 +901,7 @@ impl HotShotState for ValidatedState { async fn validate_and_apply_header( &self, instance: &Self::Instance, - parent_leaf: &Leaf, + parent_leaf: &Leaf2, proposed_header: &Header, vid_common: VidCommon, version: Version, @@ -1073,9 +1073,9 @@ mod test { use super::*; use crate::{ eth_signature_key::{BuilderSignature, EthKeyPair}, - v0_1, v0_2, - v0_3::{self, BidTx}, - BlockSize, FeeAccountProof, FeeMerkleProof, Payload, Transaction, + v0_1, v0_2, v0_3, + v0_99::{self, BidTx}, + BlockSize, FeeAccountProof, FeeMerkleProof, Leaf, Payload, Transaction, }; impl Transaction { @@ -1109,7 +1109,14 @@ mod test { timestamp: OffsetDateTime::now_utc().unix_timestamp() as u64, ..parent.clone() }), - Header::V3(_) => panic!("You called `Header.next()` on unimplemented version (v3)"), + Header::V3(parent) => Header::V3(v0_3::Header { + height: parent.height + 1, + timestamp: OffsetDateTime::now_utc().unix_timestamp() as u64, + ..parent.clone() + }), + Header::V99(_) => { + panic!("You called `Header.next()` on unimplemented version (v3)") + } } } /// Replaces builder signature w/ invalid one. @@ -1132,7 +1139,14 @@ mod test { builder_signature: Some(sig), ..header.clone() }), - Header::V3(_) => panic!("You called `Header.sign()` on unimplemented version (v3)"), + Header::V3(header) => Header::V3(v0_3::Header { + fee_info, + builder_signature: Some(sig), + ..header.clone() + }), + Header::V99(_) => { + panic!("You called `Header.sign()` on unimplemented version (v3)") + } } } @@ -1159,7 +1173,12 @@ mod test { builder_signature: Some(sig), ..parent.clone() }), - Header::V3(_) => panic!( + Header::V3(parent) => Header::V3(v0_3::Header { + fee_info, + builder_signature: Some(sig), + ..parent.clone() + }), + Header::V99(_) => panic!( "You called `Header.invalid_builder_signature()` on unimplemented version (v3)" ), } @@ -1732,7 +1751,9 @@ mod test { ..validated_state.chain_config.resolve().unwrap() }); - let parent = Leaf::genesis(&instance_state.genesis_state, &instance_state).await; + let parent: Leaf2 = Leaf::genesis(&instance_state.genesis_state, &instance_state) + .await + .into(); let header = parent.block_header().clone(); let metadata = parent.block_header().metadata(); let vid_commitment = parent.payload_commitment(); @@ -1766,6 +1787,11 @@ mod test { ..header }), Header::V3(header) => Header::V3(v0_3::Header { + builder_signature: Some(sig), + fee_info: FeeInfo::new(account, data), + ..header + }), + Header::V99(header) => Header::V99(v0_99::Header { builder_signature: vec![sig], fee_info: vec![FeeInfo::new(account, data)], ..header @@ -1781,13 +1807,15 @@ mod test { let max_block_size = 10; let validated_state = ValidatedState::default(); - let instance_state = NodeState::mock_v3().with_chain_config(ChainConfig { + let instance_state = NodeState::mock_v99().with_chain_config(ChainConfig { base_fee: 1000.into(), // High base fee max_block_size: max_block_size.into(), ..validated_state.chain_config.resolve().unwrap() }); - let parent = Leaf::genesis(&instance_state.genesis_state, &instance_state).await; + let parent: Leaf2 = Leaf::genesis(&instance_state.genesis_state, &instance_state) + .await + .into(); let header = parent.block_header().clone(); debug!("{:?}", header.version()); @@ -1819,6 +1847,11 @@ mod test { ..header }), Header::V3(header) => Header::V3(v0_3::Header { + builder_signature: Some(sig), + fee_info: FeeInfo::new(account, data), + ..header + }), + Header::V99(header) => Header::V99(v0_99::Header { builder_signature: vec![sig], fee_info: vec![FeeInfo::new(account, data)], ..header diff --git a/types/src/v0/mod.rs b/types/src/v0/mod.rs index c5d67031f5..bc588a3649 100644 --- a/types/src/v0/mod.rs +++ b/types/src/v0/mod.rs @@ -1,5 +1,3 @@ -use std::marker::PhantomData; - use hotshot::traits::election::static_committee::StaticCommittee; use hotshot_types::{ data::{EpochNumber, ViewNumber}, @@ -10,6 +8,7 @@ use hotshot_types::{ }, }; use serde::{Deserialize, Serialize}; +use std::marker::PhantomData; mod header; mod impls; @@ -36,7 +35,7 @@ pub use impls::mock; // instead we write `with_minor_versions!(some_macro!(args))`. macro_rules! with_minor_versions { ($m:ident!($($arg:tt),*)) => { - $m!($($arg,)* v0_1, v0_2, v0_3); + $m!($($arg,)* v0_1, v0_2, v0_3, v0_99); }; } @@ -123,6 +122,7 @@ reexport_unchanged_types!( ViewBasedUpgrade, BlockSize, ); + pub(crate) use v0_3::{ L1ClientMetrics, L1Event, L1ReconnectTask, L1State, L1UpdateTask, RpcClient, }; @@ -145,6 +145,7 @@ impl NodeType for SeqTypes { type BuilderSignatureKey = FeeAccount; type AuctionResult = SolverAuctionResults; } + #[derive(Clone, Default, Debug, Copy)] pub struct SequencerVersions { _pd: PhantomData<(Base, Upgrade)>, @@ -177,10 +178,12 @@ pub type MockSequencerVersions = SequencerVersions, StaticVe pub type V0_0 = StaticVersion<0, 0>; pub type V0_1 = StaticVersion<0, 1>; pub type FeeVersion = StaticVersion<0, 2>; -pub type MarketplaceVersion = StaticVersion<0, 3>; -pub type EpochVersion = StaticVersion<0, 4>; +pub type MarketplaceVersion = StaticVersion<0, 99>; +pub type EpochVersion = StaticVersion<0, 100>; pub type Leaf = hotshot_types::data::Leaf; +pub type Leaf2 = hotshot_types::data::Leaf2; + pub type Event = hotshot::types::Event; pub type PubKey = BLSPubKey; @@ -193,4 +196,4 @@ pub use crate::v0_1::{ BLOCK_MERKLE_TREE_HEIGHT, FEE_MERKLE_TREE_HEIGHT, NS_ID_BYTE_LEN, NS_OFFSET_BYTE_LEN, NUM_NSS_BYTE_LEN, NUM_TXS_BYTE_LEN, TX_OFFSET_BYTE_LEN, }; -use crate::v0_3::SolverAuctionResults; +use crate::v0_99::SolverAuctionResults; diff --git a/types/src/v0/traits.rs b/types/src/v0/traits.rs index 7447a500d6..6bd58a837c 100644 --- a/types/src/v0/traits.rs +++ b/types/src/v0/traits.rs @@ -4,16 +4,18 @@ use std::{cmp::max, collections::BTreeMap, fmt::Debug, ops::Range, sync::Arc}; use anyhow::{bail, ensure, Context}; use async_trait::async_trait; -use committable::Commitment; +use committable::{Commitment, Committable}; use dyn_clone::DynClone; use futures::{FutureExt, TryFutureExt}; use hotshot::{types::EventType, HotShotInitializer}; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, VidDisperseShare, ViewNumber}, + data::{ + DaProposal, EpochNumber, QuorumProposal, QuorumProposal2, VidDisperseShare, ViewNumber, + }, event::{HotShotAction, LeafInfo}, - message::Proposal, - simple_certificate::{QuorumCertificate, UpgradeCertificate}, + message::{convert_proposal, Proposal}, + simple_certificate::{QuorumCertificate, QuorumCertificate2, UpgradeCertificate}, traits::{ node_implementation::{ConsensusTime, Versions}, storage::Storage, @@ -27,11 +29,12 @@ use jf_vid::VidScheme; use serde::{de::DeserializeOwned, Serialize}; use crate::{ - v0::impls::ValidatedState, v0_3::ChainConfig, BackoffParams, BlockMerkleTree, Event, - FeeAccount, FeeAccountProof, FeeMerkleCommitment, FeeMerkleTree, Leaf, NetworkConfig, SeqTypes, + v0::impls::ValidatedState, v0_99::ChainConfig, BackoffParams, BlockMerkleTree, Event, + FeeAccount, FeeAccountProof, FeeMerkleCommitment, FeeMerkleTree, Leaf2, NetworkConfig, + SeqTypes, }; -use super::impls::NodeState; +use super::{impls::NodeState, Leaf}; #[async_trait] pub trait StateCatchup: Send + Sync { @@ -400,17 +403,17 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { /// Load undecided state saved by consensus before we shut down. async fn load_undecided_state( &self, - ) -> anyhow::Result, BTreeMap>)>>; + ) -> anyhow::Result, BTreeMap>)>>; /// Load the proposals saved by consensus async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>>; + ) -> anyhow::Result>>>; async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>>; + ) -> anyhow::Result>>; async fn load_vid_share( &self, @@ -471,8 +474,12 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { None => { tracing::info!("no saved leaf, starting from genesis leaf"); ( - Leaf::genesis(&genesis_validated_state, &state).await, - QuorumCertificate::genesis::(&genesis_validated_state, &state).await, + hotshot_types::data::Leaf::genesis(&genesis_validated_state, &state) + .await + .into(), + QuorumCertificate::genesis::(&genesis_validated_state, &state) + .await + .to_qc2(), None, ) } @@ -491,6 +498,8 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { // starting in a view in which we had already voted before the restart, and prevents // unnecessary catchup from starting in a view earlier than the anchor leaf. let view = max(highest_voted_view, leaf.view_number()); + // TODO: + let epoch = EpochNumber::genesis(); let (undecided_leaves, undecided_state) = self .load_undecided_state() @@ -511,6 +520,7 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { tracing::info!( ?leaf, ?view, + ?epoch, ?high_qc, ?validated_state, ?undecided_leaves, @@ -526,6 +536,7 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { state, validated_state, view, + epoch, highest_voted_view, saved_proposals, high_qc, @@ -594,12 +605,13 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { async fn append_decided_leaves( &self, decided_view: ViewNumber, - leaf_chain: impl IntoIterator, QuorumCertificate)> + Send, + leaf_chain: impl IntoIterator, QuorumCertificate2)> + Send, consumer: &(impl EventConsumer + 'static), ) -> anyhow::Result<()>; - async fn load_anchor_leaf(&self) - -> anyhow::Result)>>; + async fn load_anchor_leaf( + &self, + ) -> anyhow::Result)>>; async fn append_vid( &self, proposal: &Proposal>, @@ -612,17 +624,24 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { async fn record_action(&self, view: ViewNumber, action: HotShotAction) -> anyhow::Result<()>; async fn update_undecided_state( &self, - leaves: CommitmentMap, + leaves: CommitmentMap, state: BTreeMap>, ) -> anyhow::Result<()>; async fn append_quorum_proposal( &self, - proposal: &Proposal>, + proposal: &Proposal>, ) -> anyhow::Result<()>; async fn store_upgrade_certificate( &self, decided_upgrade_certificate: Option>, ) -> anyhow::Result<()>; + async fn migrate_consensus( + &self, + migrate_leaf: fn(Leaf) -> Leaf2, + migrate_proposal: fn( + Proposal>, + ) -> Proposal>, + ) -> anyhow::Result<()>; async fn load_anchor_view(&self) -> anyhow::Result { match self.load_anchor_leaf().await? { @@ -676,9 +695,11 @@ impl Storage for Arc

{ ) -> anyhow::Result<()> { (**self).append_da(proposal, vid_commit).await } + async fn record_action(&self, view: ViewNumber, action: HotShotAction) -> anyhow::Result<()> { (**self).record_action(view, action).await } + async fn update_high_qc(&self, _high_qc: QuorumCertificate) -> anyhow::Result<()> { Ok(()) } @@ -688,14 +709,27 @@ impl Storage for Arc

{ leaves: CommitmentMap, state: BTreeMap>, ) -> anyhow::Result<()> { - (**self).update_undecided_state(leaves, state).await + (**self) + .update_undecided_state( + leaves + .into_values() + .map(|leaf| { + let leaf2: Leaf2 = leaf.into(); + (leaf2.commit(), leaf2) + }) + .collect(), + state, + ) + .await } async fn append_proposal( &self, proposal: &Proposal>, ) -> anyhow::Result<()> { - (**self).append_quorum_proposal(proposal).await + (**self) + .append_quorum_proposal(&convert_proposal(proposal.clone())) + .await } async fn update_decided_upgrade_certificate( @@ -706,6 +740,37 @@ impl Storage for Arc

{ .store_upgrade_certificate(decided_upgrade_certificate) .await } + + async fn append_proposal2( + &self, + proposal: &Proposal>, + ) -> anyhow::Result<()> { + (**self).append_quorum_proposal(proposal).await + } + + async fn update_high_qc2(&self, _high_qc: QuorumCertificate2) -> anyhow::Result<()> { + Ok(()) + } + + async fn update_undecided_state2( + &self, + leaves: CommitmentMap, + state: BTreeMap>, + ) -> anyhow::Result<()> { + (**self).update_undecided_state(leaves, state).await + } + + async fn migrate_consensus( + &self, + migrate_leaf: fn(Leaf) -> Leaf2, + migrate_proposal: fn( + Proposal>, + ) -> Proposal>, + ) -> anyhow::Result<()> { + (**self) + .migrate_consensus(migrate_leaf, migrate_proposal) + .await + } } /// Data that can be deserialized from a subslice of namespace payload bytes. diff --git a/types/src/v0/utils.rs b/types/src/v0/utils.rs index 0f097c9195..3f4cfd2750 100644 --- a/types/src/v0/utils.rs +++ b/types/src/v0/utils.rs @@ -1,8 +1,15 @@ use anyhow::Context; use bytesize::ByteSize; use clap::Parser; +use committable::Committable; use derive_more::{From, Into}; use futures::future::BoxFuture; +use hotshot_types::{ + consensus::CommitmentMap, + data::{Leaf, Leaf2, QuorumProposal}, + drb::{INITIAL_DRB_RESULT, INITIAL_DRB_SEED_INPUT}, + traits::node_implementation::NodeType, +}; use rand::Rng; use sequencer_utils::{impl_serde_from_string_or_integer, ser::FromStringOrInteger}; use serde::{Deserialize, Serialize}; @@ -19,6 +26,46 @@ use time::{ }; use tokio::time::sleep; +pub fn downgrade_leaf(leaf2: Leaf2) -> Leaf { + if leaf2.drb_seed != INITIAL_DRB_SEED_INPUT && leaf2.drb_result != INITIAL_DRB_RESULT { + panic!("Downgrade of Leaf2 to Leaf will lose DRB information!"); + } + let quorum_proposal = QuorumProposal { + block_header: leaf2.block_header().clone(), + view_number: leaf2.view_number(), + justify_qc: leaf2.justify_qc().to_qc(), + upgrade_certificate: leaf2.upgrade_certificate(), + proposal_certificate: None, + }; + let mut leaf = Leaf::from_quorum_proposal(&quorum_proposal); + if let Some(payload) = leaf2.block_payload() { + leaf.fill_block_payload_unchecked(payload); + } + leaf +} + +pub fn upgrade_commitment_map( + map: CommitmentMap>, +) -> CommitmentMap> { + map.into_values() + .map(|leaf| { + let leaf2: Leaf2 = leaf.into(); + (leaf2.commit(), leaf2) + }) + .collect() +} + +pub fn downgrade_commitment_map( + map: CommitmentMap>, +) -> CommitmentMap> { + map.into_values() + .map(|leaf2| { + let leaf = downgrade_leaf(leaf2); + ( as Committable>::commit(&leaf), leaf) + }) + .collect() +} + #[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)] pub enum Update { #[default] diff --git a/types/src/v0/v0_1/instance_state.rs b/types/src/v0/v0_1/instance_state.rs index 8eab0d2eb5..d943a48606 100644 --- a/types/src/v0/v0_1/instance_state.rs +++ b/types/src/v0/v0_1/instance_state.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use std::fmt::Debug; -use crate::{v0_3::ChainConfig, Timestamp}; +use crate::{v0_99::ChainConfig, Timestamp}; /// Represents the specific type of upgrade. #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] diff --git a/types/src/v0/v0_3/mod.rs b/types/src/v0/v0_3/mod.rs index e06ab9e97e..1a2e7efc9b 100644 --- a/types/src/v0/v0_3/mod.rs +++ b/types/src/v0/v0_3/mod.rs @@ -2,13 +2,14 @@ use vbs::version::Version; // Re-export types which haven't changed since the last minor version. pub use super::v0_1::{ - AccountQueryData, BlockMerkleCommitment, BlockMerkleTree, BlockSize, BuilderSignature, ChainId, - Delta, FeeAccount, FeeAccountProof, FeeAmount, FeeInfo, FeeMerkleCommitment, FeeMerkleProof, - FeeMerkleTree, Index, Iter, L1BlockInfo, L1Client, L1ClientOptions, L1Snapshot, NamespaceId, - NsIndex, NsIter, NsPayload, NsPayloadBuilder, NsPayloadByteLen, NsPayloadOwned, NsPayloadRange, - NsProof, NsTable, NsTableBuilder, NsTableValidationError, NumNss, NumTxs, NumTxsRange, - NumTxsUnchecked, Payload, PayloadByteLen, TimeBasedUpgrade, Transaction, TxIndex, TxIter, - TxPayload, TxPayloadRange, TxProof, TxTableEntries, TxTableEntriesRange, Upgrade, UpgradeMode, + AccountQueryData, BlockMerkleCommitment, BlockMerkleTree, BlockSize, BuilderSignature, + ChainConfig, ChainId, Delta, FeeAccount, FeeAccountProof, FeeAmount, FeeInfo, + FeeMerkleCommitment, FeeMerkleProof, FeeMerkleTree, Header, Index, Iter, L1BlockInfo, L1Client, + L1ClientOptions, L1Snapshot, NamespaceId, NsIndex, NsIter, NsPayload, NsPayloadBuilder, + NsPayloadByteLen, NsPayloadOwned, NsPayloadRange, NsProof, NsTable, NsTableBuilder, + NsTableValidationError, NumNss, NumTxs, NumTxsRange, NumTxsUnchecked, Payload, PayloadByteLen, + ResolvableChainConfig, TimeBasedUpgrade, Transaction, TxIndex, TxIter, TxPayload, + TxPayloadRange, TxProof, TxTableEntries, TxTableEntriesRange, Upgrade, UpgradeMode, UpgradeType, ViewBasedUpgrade, BLOCK_MERKLE_TREE_HEIGHT, FEE_MERKLE_TREE_HEIGHT, NS_ID_BYTE_LEN, NS_OFFSET_BYTE_LEN, NUM_NSS_BYTE_LEN, NUM_TXS_BYTE_LEN, TX_OFFSET_BYTE_LEN, }; @@ -18,16 +19,6 @@ pub(crate) use super::v0_1::{ pub const VERSION: Version = Version { major: 0, minor: 3 }; -mod auction; -mod chain_config; -mod fee_info; -mod header; -mod solver; mod stake_table; -pub use auction::{BidTx, BidTxBody, FullNetworkTx, SolverAuctionResults}; -pub use chain_config::*; -pub use fee_info::IterableFeeInfo; -pub use header::Header; -pub use solver::*; pub use stake_table::CombinedStakeTable; diff --git a/types/src/v0/v0_3/auction.rs b/types/src/v0/v0_99/auction.rs similarity index 100% rename from types/src/v0/v0_3/auction.rs rename to types/src/v0/v0_99/auction.rs diff --git a/types/src/v0/v0_3/chain_config.rs b/types/src/v0/v0_99/chain_config.rs similarity index 98% rename from types/src/v0/v0_3/chain_config.rs rename to types/src/v0/v0_99/chain_config.rs index d96e86344d..61cf46c36a 100644 --- a/types/src/v0/v0_3/chain_config.rs +++ b/types/src/v0/v0_99/chain_config.rs @@ -58,7 +58,7 @@ impl Committable for ChainConfig { }; // With `ChainConfig` upgrades we want commitments w/out - // fields added >= v0_3 to have the same commitment as <= v0_3 + // fields added >= v0_99 to have the same commitment as <= v0_99 // commitment. Therefore `None` values are simply ignored. let comm = if let Some(bid_recipient) = self.bid_recipient { comm.fixed_size_field("bid_recipient", &bid_recipient.to_fixed_bytes()) diff --git a/types/src/v0/v0_3/fee_info.rs b/types/src/v0/v0_99/fee_info.rs similarity index 100% rename from types/src/v0/v0_3/fee_info.rs rename to types/src/v0/v0_99/fee_info.rs diff --git a/types/src/v0/v0_3/header.rs b/types/src/v0/v0_99/header.rs similarity index 100% rename from types/src/v0/v0_3/header.rs rename to types/src/v0/v0_99/header.rs diff --git a/types/src/v0/v0_99/mod.rs b/types/src/v0/v0_99/mod.rs new file mode 100644 index 0000000000..3e676a4b2a --- /dev/null +++ b/types/src/v0/v0_99/mod.rs @@ -0,0 +1,31 @@ +use vbs::version::Version; + +// Re-export types which haven't changed since the last minor version. +pub use super::v0_1::{ + AccountQueryData, BlockMerkleCommitment, BlockMerkleTree, BlockSize, BuilderSignature, ChainId, + Delta, FeeAccount, FeeAccountProof, FeeAmount, FeeInfo, FeeMerkleCommitment, FeeMerkleProof, + FeeMerkleTree, Index, Iter, L1BlockInfo, L1Client, L1ClientOptions, L1Snapshot, NamespaceId, + NsIndex, NsIter, NsPayload, NsPayloadBuilder, NsPayloadByteLen, NsPayloadOwned, NsPayloadRange, + NsProof, NsTable, NsTableBuilder, NsTableValidationError, NumNss, NumTxs, NumTxsRange, + NumTxsUnchecked, Payload, PayloadByteLen, TimeBasedUpgrade, Transaction, TxIndex, TxIter, + TxPayload, TxPayloadRange, TxProof, TxTableEntries, TxTableEntriesRange, Upgrade, UpgradeMode, + UpgradeType, ViewBasedUpgrade, BLOCK_MERKLE_TREE_HEIGHT, FEE_MERKLE_TREE_HEIGHT, + NS_ID_BYTE_LEN, NS_OFFSET_BYTE_LEN, NUM_NSS_BYTE_LEN, NUM_TXS_BYTE_LEN, TX_OFFSET_BYTE_LEN, +}; + +pub const VERSION: Version = Version { + major: 0, + minor: 99, +}; + +mod auction; +mod chain_config; +mod fee_info; +mod header; +mod solver; + +pub use auction::{BidTx, BidTxBody, FullNetworkTx, SolverAuctionResults}; +pub use chain_config::*; +pub use fee_info::IterableFeeInfo; +pub use header::Header; +pub use solver::*; diff --git a/types/src/v0/v0_3/solver.rs b/types/src/v0/v0_99/solver.rs similarity index 100% rename from types/src/v0/v0_3/solver.rs rename to types/src/v0/v0_99/solver.rs