diff --git a/.dockerignore b/.dockerignore index 89807c2e9..66126d2ff 100644 --- a/.dockerignore +++ b/.dockerignore @@ -19,6 +19,6 @@ !/provers/sgx/setup !/kzg_settings_raw.bin !/core -!/tasks +!/taskdb !/makefile !/script diff --git a/Cargo.lock b/Cargo.lock index 781c4c084..3ec1a1df5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,18 +31,27 @@ checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "cpp_demangle", "fallible-iterator", - "gimli", - "memmap2 0.9.4", + "gimli 0.29.0", + "memmap2 0.9.5", "object 0.35.0", "rustc-demangle", "smallvec", ] [[package]] -name = "adler" -version = "1.0.2" +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli 0.31.1", +] + +[[package]] +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "adler32" @@ -107,7 +116,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -119,6 +128,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e0966165eaf052580bd70eb1b32cb3d6245774c0104d1b2793e9650bf83b52a" +dependencies = [ + "equator", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -142,12 +160,13 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-chains" -version = "0.1.23" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1752d7d62e2665da650a36d84abbf239f812534475d51f072a49a533513b7cdd" +checksum = "d4932d790c723181807738cf1ac68198ab581cd699545b155601332541ee47bd" dependencies = [ + "alloy-primitives 0.8.9", "alloy-rlp", - "num_enum 0.7.2", + "num_enum 0.7.3", "serde", "strum 0.26.3", ] @@ -159,10 +178,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da374e868f54c7f4ad2ad56829827badca388efd645f8cf5fccc61c2b5343504" dependencies = [ "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-serde", - "c-kzg 1.0.2", + "c-kzg 1.0.3", "serde", ] @@ -175,7 +194,7 @@ dependencies = [ "alloy-dyn-abi", "alloy-json-abi", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-provider", "alloy-rpc-types-eth", "alloy-sol-types", @@ -192,14 +211,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" dependencies = [ "alloy-json-abi", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-sol-type-parser", "alloy-sol-types", "const-hex", "itoa", "serde", "serde_json", - "winnow 0.6.15", + "winnow 0.6.20", ] [[package]] @@ -208,11 +227,11 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76ecab54890cdea1e4808fc0891c7e6cfcf71fe1a9fe26810c7280ef768f4ed" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-serde", - "c-kzg 1.0.2", - "derive_more", + "c-kzg 1.0.3", + "derive_more 0.99.18", "once_cell", "serde", "sha2", @@ -224,7 +243,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bca15afde1b6d15e3fc1c97421262b1bbb37aee45752e3c8b6d6f13f776554ff" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-serde", "serde", ] @@ -235,7 +254,7 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-sol-type-parser", "serde", "serde_json", @@ -247,7 +266,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d6f34930b7e3e2744bcc79056c217f00cb2abb33bc5d4ff88da7623c5bb078b" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "serde", "serde_json", "thiserror", @@ -263,7 +282,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", @@ -284,7 +303,7 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 0.99.18", "getrandom 0.2.15", "hex-literal", "itoa", @@ -297,6 +316,34 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "alloy-primitives" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71738eb20c42c5fb149571e76536a0f309d142f3957c28791662b96baf77a3d" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 1.0.0", + "foldhash", + "hashbrown 0.15.0", + "hex-literal", + "indexmap 2.6.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.8.5", + "ruint", + "rustc-hash 2.0.0", + "serde", + "sha3", + "tiny-keccak", +] + [[package]] name = "alloy-provider" version = "0.1.4" @@ -308,7 +355,7 @@ dependencies = [ "alloy-eips", "alloy-json-rpc", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-transport", @@ -321,7 +368,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.8", "serde", "serde_json", "tokio", @@ -331,9 +378,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a43b18702501396fa9bcdeecd533bc85fac75150d308fc0f6800a01e6234a003" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -342,13 +389,13 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83524c1f6162fcb5b0decf775498a125066c86dda6066ed609531b0e912f85a" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -362,7 +409,7 @@ dependencies = [ "alloy-transport-http", "futures", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.8", "serde", "serde_json", "tokio", @@ -390,7 +437,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e953064025c49dc9f6a3f3ac07a713487849065692228b33948f2714f2bb60d" dependencies = [ "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.7.7", "serde", "serde_json", ] @@ -401,7 +448,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c7cf4356a9d00df76d6e90d002e2a7b5edc1c8476e90e6f17ab868d99db6435" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-serde", "serde", ] @@ -413,10 +460,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5f2e67d3e2478902b71bbadcd564ee5bbcc71945a0010a1f0e87a2339c6f3f9" dependencies = [ "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rpc-types-engine", "serde", - "serde_with 3.9.0", + "serde_with 3.11.0", "thiserror", ] @@ -428,7 +475,7 @@ checksum = "6e765962e3b82fd6f276a0873b5bd897e5d75a25f78fa9a6a21bd350d8e98a4e" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -447,7 +494,7 @@ checksum = "ab4123ee21f99ba4bd31bfa36ba89112a18a500f8b452f02b35708b1b951e2b9" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-serde", "alloy-sol-types", @@ -464,7 +511,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567933b1d95fd42cb70b75126e32afec2e5e2c3c16e7100a3f83dc1c80f4dc0e" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -478,7 +525,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3115f4eb1bb9ae9aaa0b24ce875a1d86d6689b16438a12377832def2b09e373c" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -489,7 +536,7 @@ name = "alloy-serde" version = "0.1.4" source = "git+https://github.com/CeciliaZ030/alloy.git?branch=v0.1.4-fix#a95c679c0a6a38803f76d0406a636765e265e378" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "serde", "serde_json", ] @@ -500,7 +547,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b33753c09fa1ad85e5b092b8dc2372f1e337a42e84b9b4cff9fede75ba4adb32" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "async-trait", "auto_impl", "elliptic-curve", @@ -516,7 +563,7 @@ checksum = "6dfc9c26fe6c6f1bad818c9a976de9044dd12e1f75f1f156a801ee3e8148c1b6" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-signer", "async-trait", "k256", @@ -535,7 +582,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -547,11 +594,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.2.6", + "indexmap 2.6.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", "syn-solidity", "tiny-keccak", ] @@ -567,7 +614,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", "syn-solidity", ] @@ -578,7 +625,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ "serde", - "winnow 0.6.15", + "winnow 0.6.20", ] [[package]] @@ -587,7 +634,7 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-sol-macro", "const-hex", "serde", @@ -620,7 +667,7 @@ checksum = "86d65871f9f1cafe1ed25cde2f1303be83e6473e995a2d56c275ae4fcce6119c" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.5", + "reqwest 0.12.8", "serde_json", "tower 0.4.13", "tracing", @@ -633,9 +680,9 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", - "derive_more", + "derive_more 0.99.18", "hashbrown 0.14.5", "nybbles", "serde", @@ -669,9 +716,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -684,33 +731,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -718,9 +765,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" [[package]] name = "approx" @@ -740,6 +787,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + [[package]] name = "ark-bn254" version = "0.4.0" @@ -820,7 +873,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -976,25 +1029,26 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "assert_cmd" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", @@ -1003,9 +1057,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "0cb8f1d480b0ea3783ab015936d2a55c87e219676f0c0b7dec61494043f21857" dependencies = [ "brotli", "flate2", @@ -1019,9 +1073,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -1030,24 +1084,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -1058,7 +1112,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ "futures", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -1096,20 +1150,20 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" +checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core", @@ -1119,7 +1173,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.0", "hyper-util", "itoa", "matchit", @@ -1132,9 +1186,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.1", "tokio", - "tower 0.4.13", + "tower 0.5.1", "tower-layer", "tower-service", "tracing", @@ -1142,9 +1196,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", @@ -1155,7 +1209,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", "tracing", @@ -1163,30 +1217,29 @@ dependencies = [ [[package]] name = "axum-macros" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00c055ee2d014ae5981ce1016374e8213682aa14d9bf40e48ab48b5f3ef20eaa" +checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ - "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line", - "cc", + "addr2line 0.24.2", "cfg-if", "libc", "miniz_oxide", - "object 0.36.1", + "object 0.36.5", "rustc-demangle", "serde", + "windows-targets 0.52.6", ] [[package]] @@ -1255,9 +1308,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.69.4" +version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ "bitflags 2.6.0", "cexpr", @@ -1270,17 +1323,17 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", - "syn 2.0.72", + "syn 2.0.82", "which 4.4.2", ] [[package]] name = "binout" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60b1af88a588fca5fe424ae7d735bc52814f80ff57614f57043cc4e2024f2ea" +checksum = "581d67184175e0c94926cb5e82df97bb6e0d8261d27a88a6ead80994ee73a4ac" [[package]] name = "bit-set" @@ -1314,9 +1367,9 @@ dependencies = [ [[package]] name = "bitm" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06e8e5bec3490b9f6f3adbb78aa4f53e8396fd9994e8a62a346b44ea7c15f35" +checksum = "e7edec3daafc233e78a219c85a77bcf535ee267b0fae7a1aad96bd1a67add5d3" dependencies = [ "dyn_size_of", ] @@ -1356,9 +1409,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", "arrayvec", @@ -1437,7 +1490,7 @@ checksum = "94032d3eece78099780ba07605d8ba6943e47ee152f76d73f1682e2f40cf889c" dependencies = [ "duplicate", "maybe-async", - "reqwest 0.12.5", + "reqwest 0.12.8", "serde", "thiserror", ] @@ -1459,18 +1512,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" dependencies = [ "once_cell", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", "syn_derive", ] [[package]] name = "brotli" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1499,12 +1552,12 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.8", "serde", ] @@ -1522,22 +1575,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.17.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -1548,9 +1601,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -1570,23 +1623,24 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] @@ -1635,12 +1689,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.6" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -1726,9 +1781,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -1736,9 +1791,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", @@ -1748,21 +1803,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "coins-bip32" @@ -1818,9 +1873,19 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "combine" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] [[package]] name = "concat-kdf" @@ -1846,9 +1911,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" dependencies = [ "cfg-if", "cpufeatures", @@ -1865,9 +1930,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1896,9 +1961,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics-types" @@ -1922,18 +1987,18 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" +checksum = "96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d" dependencies = [ "cfg-if", ] [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -2098,7 +2163,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "subtle", "zeroize", ] @@ -2111,7 +2176,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -2181,7 +2246,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -2192,14 +2257,14 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "dary_heap" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" +checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" [[package]] name = "dashmap" @@ -2358,7 +2423,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -2370,8 +2435,29 @@ dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 2.0.72", + "rustc_version 0.4.1", + "syn 2.0.82", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.82", + "unicode-xid", ] [[package]] @@ -2469,7 +2555,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -2498,23 +2584,23 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "downloader" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05213e96f184578b5f70105d4d0a644a168e99e12d7bea0b200c15d67b5c182" +checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" dependencies = [ "digest 0.10.7", "futures", "rand 0.8.5", - "reqwest 0.11.27", + "reqwest 0.12.8", "thiserror", "tokio", ] [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "duplicate" @@ -2534,9 +2620,9 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "dyn_size_of" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d4f78a40b1ec35bf8cafdaaf607ba2f773c366b0b3bda48937cacd7a8d5134" +checksum = "fdbac012a81cc46ca554aceae23c52f4f55adb343f2f32ca99bb4e5ef868cee2" [[package]] name = "ecdsa" @@ -2697,25 +2783,25 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "enumn" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "env_filter" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ "log", "regex", @@ -2723,9 +2809,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" dependencies = [ "anstream", "anstyle", @@ -2734,6 +2820,26 @@ dependencies = [ "log", ] +[[package]] +name = "equator" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c35da53b5a021d2484a7cc49b2ac7f2d840f8236a286f84202369bd338d761ea" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf679796c0322556351f287a51b49e48f7c4986e727b5dd78c972d30e2e16cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.82", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -2909,7 +3015,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.72", + "syn 2.0.82", "toml 0.7.8", "walkdir", ] @@ -2931,8 +3037,8 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.72", - "toml 0.8.15", + "syn 2.0.82", + "toml 0.8.19", "walkdir", ] @@ -2948,7 +3054,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -2964,7 +3070,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -2981,7 +3087,7 @@ dependencies = [ "ethabi", "generic-array 0.14.7", "k256", - "num_enum 0.7.2", + "num_enum 0.7.3", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -2989,7 +3095,7 @@ dependencies = [ "serde", "serde_json", "strum 0.25.0", - "syn 2.0.72", + "syn 2.0.82", "tempfile", "thiserror", "tiny-keccak", @@ -3011,7 +3117,7 @@ dependencies = [ "ethabi", "generic-array 0.14.7", "k256", - "num_enum 0.7.2", + "num_enum 0.7.3", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -3019,7 +3125,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.72", + "syn 2.0.82", "tempfile", "thiserror", "tiny-keccak", @@ -3252,9 +3358,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide", @@ -3299,7 +3405,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -3331,9 +3437,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -3346,9 +3452,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -3356,15 +3462,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -3373,9 +3479,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-locks" @@ -3389,26 +3495,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -3422,9 +3528,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -3524,6 +3630,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "git2" version = "0.19.0" @@ -3599,7 +3711,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3608,9 +3720,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", "bytes", @@ -3618,7 +3730,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.2.6", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3654,7 +3766,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -3664,7 +3776,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -3702,6 +3814,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", + "serde", ] [[package]] @@ -3883,9 +3996,9 @@ checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -3901,9 +4014,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", @@ -3925,14 +4038,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", + "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", "httparse", @@ -3952,7 +4065,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.30", + "hyper 0.14.31", "rustls 0.21.12", "tokio", "tokio-rustls 0.24.1", @@ -3960,20 +4073,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.4.1", + "hyper 1.5.0", "hyper-util", - "rustls 0.23.11", + "rustls 0.23.15", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 0.26.3", + "webpki-roots 0.26.6", ] [[package]] @@ -3983,7 +4096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper 0.14.30", + "hyper 0.14.31", "native-tls", "tokio", "tokio-native-tls", @@ -3997,7 +4110,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.0", "hyper-util", "native-tls", "tokio", @@ -4007,29 +4120,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.5.0", "pin-project-lite", "socket2 0.5.7", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4121,12 +4233,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.0", "serde", ] @@ -4170,15 +4282,15 @@ checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "iri-string" -version = "0.7.2" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f5f6c2df22c009ac44f6f1499308e7a3ac7ba42cd2378475cc691510e1eef1b" +checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" dependencies = [ "memchr", "serde", @@ -4186,9 +4298,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -4225,18 +4337,18 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -4299,9 +4411,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -4322,9 +4434,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4362,7 +4474,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -4382,9 +4494,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libflate" @@ -4461,9 +4573,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.18" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "libc", @@ -4546,9 +4658,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "matrixmultiply" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ "autocfg", "rawpointer", @@ -4562,7 +4674,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -4582,9 +4694,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -4644,11 +4756,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] @@ -4891,11 +5003,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive 0.7.2", + "num_enum_derive 0.7.3", ] [[package]] @@ -4912,14 +5024,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -4981,18 +5093,18 @@ dependencies = [ [[package]] name = "object" -version = "0.36.1" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -5027,9 +5139,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -5048,7 +5160,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -5059,9 +5171,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -5379,7 +5491,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -5428,7 +5540,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -5471,9 +5583,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" [[package]] name = "pbkdf2" @@ -5521,9 +5633,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -5532,15 +5644,16 @@ dependencies = [ [[package]] name = "ph" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b7b74d575d7c11fb653fae69688be5206cafc1ead33c01ce61ac7f36eae45b" +checksum = "b2fbaf8da280599aae4047ea0659a1e79cf61739bce5bdc50ca88dc7e6357060" dependencies = [ + "aligned-vec", "binout", "bitm", "dyn_size_of", "rayon", - "wyhash", + "seedable_hash", ] [[package]] @@ -5550,27 +5663,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ "futures", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -5597,9 +5710,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polyval" @@ -5615,15 +5728,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" [[package]] name = "portable-atomic-util" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdd8420072e66d54a407b3316991fe946ce3ab1083a7f575b2463866624704d" +checksum = "90a7d5beecc52a491b54d6dd05c7a45ba1801666a5baad9fdbfc6fef8d2d206c" dependencies = [ "portable-atomic", ] @@ -5636,15 +5749,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" dependencies = [ "anstyle", "difflib", @@ -5653,15 +5769,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" dependencies = [ "predicates-core", "termtree", @@ -5669,12 +5785,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "910d41a655dac3b764f1ade94821093d3610248694320cd072303a8eedcf221d" dependencies = [ "proc-macro2", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -5703,11 +5819,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.22.22", ] [[package]] @@ -5736,9 +5852,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -5797,7 +5913,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -5823,7 +5939,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -5854,16 +5970,17 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.2" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", - "rustls 0.23.11", + "rustc-hash 2.0.0", + "rustls 0.23.15", + "socket2 0.5.7", "thiserror", "tokio", "tracing", @@ -5871,15 +5988,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.3" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand 0.8.5", "ring 0.17.8", - "rustc-hash", - "rustls 0.23.11", + "rustc-hash 2.0.0", + "rustls 0.23.15", "slab", "thiserror", "tinyvec", @@ -5888,21 +6005,22 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" dependencies = [ "libc", "once_cell", "socket2 0.5.7", - "windows-sys 0.52.0", + "tracing", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -5919,7 +6037,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-provider", "alloy-rlp", "alloy-rlp-derive", @@ -5930,12 +6048,12 @@ dependencies = [ "anyhow", "assert_cmd", "bincode", - "clap 4.5.9", + "clap 4.5.20", "ethers-core 2.0.10", "kzg", "raiko-lib", "reqwest 0.11.27", - "reqwest 0.12.5", + "reqwest 0.12.8", "reth-evm", "reth-evm-ethereum", "reth-primitives", @@ -5946,7 +6064,7 @@ dependencies = [ "rust-kzg-zkcrypto", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "sgx-prover", "sp1-driver", "thiserror", @@ -5961,7 +6079,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-provider", "alloy-rlp", "alloy-rlp-derive", @@ -5976,7 +6094,7 @@ dependencies = [ "bytemuck", "cap", "cfg-if", - "clap 4.5.9", + "clap 4.5.20", "dotenv", "env_logger", "ethers-core 2.0.10", @@ -5991,7 +6109,7 @@ dependencies = [ "raiko-lib", "raiko-tasks", "reqwest 0.11.27", - "reqwest 0.12.5", + "reqwest 0.12.8", "reth-evm", "reth-evm-ethereum", "reth-primitives", @@ -6002,7 +6120,7 @@ dependencies = [ "rust-kzg-zkcrypto", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "sgx-prover", "sha2", "sp1-driver", @@ -6026,7 +6144,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-rlp-derive", "alloy-rpc-types", @@ -6052,7 +6170,7 @@ dependencies = [ "rust-kzg-zkcrypto", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "sha2", "sha3", "thiserror", @@ -6086,7 +6204,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-provider", "alloy-rlp", "alloy-rlp-derive", @@ -6100,7 +6218,7 @@ dependencies = [ "bytemuck", "cap", "cfg-if", - "clap 4.5.9", + "clap 4.5.20", "dirs", "env_logger", "ethers-core 2.0.10", @@ -6112,12 +6230,12 @@ dependencies = [ "proptest", "raiko-lib", "reqwest 0.11.27", - "reqwest 0.12.5", + "reqwest 0.12.8", "rlp", "rstest", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "sgx-prover", "sha2", "structopt", @@ -6134,16 +6252,17 @@ dependencies = [ name = "raiko-tasks" version = "0.1.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "anyhow", "async-trait", "chrono", "hex", - "num_enum 0.7.2", + "num_enum 0.7.3", "raiko-core", "raiko-lib", - "rand 0.9.0-alpha.1", - "rand_chacha 0.9.0-alpha.1", + "rand 0.9.0-alpha.2", + "rand_chacha 0.9.0-alpha.2", + "redis", "rusqlite", "serde", "serde_json", @@ -6176,17 +6295,18 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", + "serde", ] [[package]] name = "rand" -version = "0.9.0-alpha.1" +version = "0.9.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d31e63ea85be51c423e52ba8f2e68a3efd53eed30203ee029dd09947333693e" +checksum = "c3e256ff62cee3e03def855c4d4260106d2bb1696fdc01af03e9935b993720a5" dependencies = [ - "rand_chacha 0.9.0-alpha.1", - "rand_core 0.9.0-alpha.1", - "zerocopy 0.8.0-alpha.6", + "rand_chacha 0.9.0-alpha.2", + "rand_core 0.9.0-alpha.2", + "zerocopy", ] [[package]] @@ -6211,12 +6331,12 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.9.0-alpha.1" +version = "0.9.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78674ef918c19451dbd250f8201f8619b494f64c9aa6f3adb28fd8a0f1f6da46" +checksum = "d299e9db34f6623b2a9e86c015d6e173d5f46d64d4b9b8cc46ae8a982a50b04c" dependencies = [ "ppv-lite86", - "rand_core 0.9.0-alpha.1", + "rand_core 0.9.0-alpha.2", ] [[package]] @@ -6239,12 +6359,12 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.0-alpha.1" +version = "0.9.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc89dffba8377c5ec847d12bb41492bda235dba31a25e8b695cd0fe6589eb8c9" +checksum = "f4e93f5a5e3c528cda9acb0928c31b2ba868c551cc46e67b778075e34aab9906" dependencies = [ "getrandom 0.2.15", - "zerocopy 0.8.0-alpha.6", + "zerocopy", ] [[package]] @@ -6300,6 +6420,23 @@ dependencies = [ "rayon", ] +[[package]] +name = "redis" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92f61607c4c4442b575fbc3f31a5dd4e5dd69cfea8f6afec5b83e24f61c126ab" +dependencies = [ + "arc-swap", + "combine", + "itoa", + "num-bigint 0.4.6", + "percent-encoding", + "ryu", + "sha1_smol", + "socket2 0.5.7", + "url", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -6311,18 +6448,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", @@ -6331,14 +6468,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -6352,13 +6489,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -6369,9 +6506,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" @@ -6393,7 +6530,7 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.31", "hyper-rustls 0.24.2", "hyper-tls 0.5.0", "ipnet", @@ -6410,7 +6547,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", - "system-configuration", + "system-configuration 0.5.1", "tokio", "tokio-native-tls", "tokio-rustls 0.24.1", @@ -6420,14 +6557,14 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots 0.25.4", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64 0.22.1", "bytes", @@ -6435,12 +6572,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.5", + "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", - "hyper-rustls 0.27.2", + "hyper 1.5.0", + "hyper-rustls 0.27.3", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -6452,14 +6589,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.11", - "rustls-pemfile 2.1.2", + "rustls 0.23.15", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", "tokio-rustls 0.26.0", @@ -6470,20 +6607,20 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.3", - "winreg 0.52.0", + "webpki-roots 0.26.6", + "windows-registry", ] [[package]] name = "reqwest-middleware" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.5", + "reqwest 0.12.8", "serde", "thiserror", "tower-service", @@ -6509,9 +6646,9 @@ dependencies = [ "alloy-chains", "alloy-eips", "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-trie", - "derive_more", + "derive_more 0.99.18", "once_cell", "reth-ethereum-forks", "reth-primitives-traits", @@ -6528,7 +6665,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.7.7", "bytes", "modular-bitfield", "reth-codecs-derive", @@ -6543,7 +6680,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -6572,7 +6709,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "bytes", - "derive_more", + "derive_more 0.99.18", "eyre", "metrics", "paste", @@ -6585,7 +6722,7 @@ dependencies = [ "reth-storage-errors", "reth-tracing", "reth-trie-common", - "rustc-hash", + "rustc-hash 1.1.0", "serde", "strum 0.26.3", "sysinfo", @@ -6598,7 +6735,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "bytes", - "derive_more", + "derive_more 0.99.18", "metrics", "modular-bitfield", "parity-scale-codec", @@ -6616,7 +6753,7 @@ name = "reth-discv4" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "discv5", "enr 0.12.1", @@ -6641,7 +6778,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "aes 0.8.4", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "block-padding", "byteorder", @@ -6686,7 +6823,7 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-rlp", "bytes", - "derive_more", + "derive_more 0.99.18", "futures", "pin-project", "reth-chainspec", @@ -6713,7 +6850,7 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-rlp", "bytes", - "derive_more", + "derive_more 0.99.18", "reth-chainspec", "reth-codecs-derive", "reth-primitives", @@ -6739,7 +6876,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "alloy-chains", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "crc", "serde", @@ -6789,7 +6926,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "reth-consensus", "reth-prune-types", "reth-storage-errors", @@ -6835,7 +6972,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -6843,7 +6980,7 @@ name = "reth-net-common" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "tokio", ] @@ -6853,8 +6990,8 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "futures-util", - "reqwest 0.12.5", - "serde_with 3.9.0", + "reqwest 0.12.8", + "serde_with 3.11.0", "thiserror", "tokio", ] @@ -6864,7 +7001,7 @@ name = "reth-network-api" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "enr 0.12.1", "reth-eth-wire", "reth-network-peers", @@ -6897,11 +7034,11 @@ name = "reth-network-peers" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "enr 0.12.1", "secp256k1", - "serde_with 3.9.0", + "serde_with 3.11.0", "thiserror", "tokio", "url", @@ -6915,7 +7052,7 @@ dependencies = [ "anyhow", "bincode", "cuckoofilter", - "derive_more", + "derive_more 0.99.18", "lz4_flex", "memmap2 0.7.1", "ph", @@ -6935,13 +7072,13 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-rpc-types", "byteorder", "bytes", - "c-kzg 1.0.2", - "derive_more", + "c-kzg 1.0.3", + "derive_more 0.99.18", "modular-bitfield", "once_cell", "rayon", @@ -6969,11 +7106,11 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-rpc-types-eth", "bytes", - "derive_more", + "derive_more 0.99.18", "modular-bitfield", "reth-codecs", "revm-primitives", @@ -7023,9 +7160,9 @@ name = "reth-prune-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "bytes", - "derive_more", + "derive_more 0.99.18", "modular-bitfield", "reth-codecs", "serde", @@ -7055,7 +7192,7 @@ name = "reth-rpc-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -7074,7 +7211,7 @@ name = "reth-stages-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "bytes", "modular-bitfield", "reth-codecs", @@ -7087,8 +7224,8 @@ name = "reth-static-file-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives", - "derive_more", + "alloy-primitives 0.7.7", + "derive_more 0.99.18", "serde", "strum 0.26.3", ] @@ -7125,7 +7262,7 @@ name = "reth-tracing" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "clap 4.5.9", + "clap 4.5.20", "eyre", "rolling-file", "tracing", @@ -7142,7 +7279,7 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-rlp", "auto_impl", - "derive_more", + "derive_more 0.99.18", "metrics", "rayon", "reth-db", @@ -7163,11 +7300,11 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-rlp", "alloy-trie", "bytes", - "derive_more", + "derive_more 0.99.18", "itertools 0.12.1", "nybbles", "reth-codecs", @@ -7221,13 +7358,13 @@ name = "revm-primitives" version = "4.0.0" source = "git+https://github.com/taikoxyz/revm.git?branch=v36-taiko#337a98f982e165c5a84cfc25d965344bfd4081bc" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "auto_impl", "bitflags 2.6.0", "bitvec", "c-kzg 1.0.0", "cfg-if", - "derive_more", + "derive_more 0.99.18", "dyn-clone", "enumn", "hashbrown 0.14.5", @@ -7332,7 +7469,7 @@ dependencies = [ "rayon", "sha2", "tempfile", - "which 6.0.1", + "which 6.0.3", ] [[package]] @@ -7365,7 +7502,7 @@ dependencies = [ "serde", "sha2", "tracing", - "zip 2.1.5", + "zip 2.2.0", ] [[package]] @@ -7438,7 +7575,7 @@ dependencies = [ name = "risc0-driver" version = "0.1.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-sol-types", "anyhow", "bincode", @@ -7457,7 +7594,7 @@ dependencies = [ "risc0-zkvm", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "thiserror", "tokio", "tokio-util", @@ -7538,7 +7675,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "614fad8046130321e3be9ca3a36d9edad6ff4c538549ae191ec4d82576bb3893" dependencies = [ - "addr2line", + "addr2line 0.22.0", "anyhow", "bincode", "bonsai-sdk", @@ -7660,7 +7797,7 @@ dependencies = [ "futures", "futures-timer", "rstest_macros", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -7671,13 +7808,13 @@ checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d" dependencies = [ "cfg-if", "glob", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "regex", "relative-path", - "rustc_version 0.4.0", - "syn 2.0.72", + "rustc_version 0.4.1", + "syn 2.0.82", "unicode-ident", ] @@ -7746,7 +7883,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.72", + "syn 2.0.82", "walkdir", ] @@ -7789,6 +7926,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -7806,9 +7949,9 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] @@ -7840,14 +7983,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.11" +version = "0.23.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" +checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -7863,19 +8006,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -7889,9 +8031,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -7900,9 +8042,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rusty-fork" @@ -7923,7 +8065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more", + "derive_more 0.99.18", "twox-hash", ] @@ -7953,23 +8095,23 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "22760a375f81a31817aeaf6f5081e9ccb7ffd7f2da1809a6e3fc82b6656f10d5" dependencies = [ "cfg-if", - "derive_more", + "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", ] [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "abc61ebe25a5c410c0e245028fc9934bf8fa4817199ef5a24a68092edfd34614" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7977,20 +8119,20 @@ dependencies = [ [[package]] name = "scc" -version = "2.1.4" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4465c22496331e20eb047ff46e7366455bc01c0c02015c4a376de0b2cd3a1af" +checksum = "f2c1f7fc6deb21665a9060dfc7d271be784669295a31babdcd4dd2c79ae8cbfb" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -8034,9 +8176,9 @@ dependencies = [ [[package]] name = "sdd" -version = "1.7.0" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85f05a494052771fc5bd0619742363b5e24e5ad72ab3111ec2e27925b8edc5f3" +checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" [[package]] name = "sec1" @@ -8085,14 +8227,23 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", ] +[[package]] +name = "seedable_hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed064ed6aaf88eb6a28ae191f5871a7fcdd2858e1cd6e1ffcc746baef8cd3cfd" +dependencies = [ + "wyhash", +] + [[package]] name = "semver" version = "0.11.0" @@ -8134,9 +8285,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.209" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" dependencies = [ "serde_derive", ] @@ -8152,22 +8303,22 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "itoa", "memchr", "ryu", @@ -8186,9 +8337,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -8223,19 +8374,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", - "serde_with_macros 3.9.0", + "serde_with_macros 3.11.0", "time", ] @@ -8248,19 +8399,19 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -8285,7 +8436,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -8296,7 +8447,7 @@ dependencies = [ "base64 0.22.1", "base64-serde", "bincode", - "clap 4.5.9", + "clap 4.5.20", "dirs", "hex", "raiko-lib", @@ -8329,7 +8480,7 @@ dependencies = [ "raiko-lib", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "tokio", "url", ] @@ -8345,6 +8496,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + [[package]] name = "sha2" version = "0.10.8" @@ -8368,9 +8525,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" dependencies = [ "cc", "cfg-if", @@ -8503,7 +8660,7 @@ dependencies = [ "anyhow", "cargo_metadata 0.18.1", "chrono", - "clap 4.5.9", + "clap 4.5.20", "dirs", ] @@ -8634,7 +8791,7 @@ version = "0.1.0" dependencies = [ "alloy-contract", "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.7.7", "alloy-provider", "alloy-sol-types", "anyhow", @@ -8649,7 +8806,7 @@ dependencies = [ "reth-primitives", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with 3.11.0", "sha3", "sp1-helper", "sp1-sdk", @@ -8692,7 +8849,7 @@ checksum = "cb59f305b4768a441049f46bc52e0d1edfd2d3179d65a3440f7396baa74e1bda" dependencies = [ "anyhow", "bincode", - "clap 4.5.9", + "clap 4.5.20", "dirs", "eyre", "itertools 0.13.0", @@ -8877,7 +9034,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.5", + "reqwest 0.12.8", "reqwest-middleware", "serde", "sp1-core-executor", @@ -8970,7 +9127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9049,7 +9206,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9062,7 +9219,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9116,9 +9273,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" dependencies = [ "proc-macro2", "quote", @@ -9134,7 +9291,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9146,7 +9303,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9160,6 +9317,9 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "sysinfo" @@ -9184,7 +9344,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "system-configuration-sys 0.6.0", ] [[package]] @@ -9197,6 +9368,16 @@ dependencies = [ "libc", ] +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -9233,22 +9414,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9349,9 +9530,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", @@ -9373,7 +9554,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9402,16 +9583,16 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.11", + "rustls 0.23.15", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -9436,9 +9617,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -9462,21 +9643,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.15" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.16", + "toml_edit 0.22.22", ] [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -9487,7 +9668,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -9496,26 +9677,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.2.6", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.16" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.15", + "winnow 0.6.20", ] [[package]] @@ -9545,8 +9715,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tokio", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -9577,7 +9753,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.10.0", + "uuid 1.11.0", ] [[package]] @@ -9624,7 +9800,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9684,9 +9860,9 @@ dependencies = [ [[package]] name = "tracing-logfmt" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22b8e455f6caa5212a102ec530bf86b8dc5a4c536299bffd84b238fed9119be7" +checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" dependencies = [ "time", "tracing", @@ -9771,9 +9947,9 @@ dependencies = [ "futures", "http 1.1.0", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.0", "prost", - "reqwest 0.12.5", + "reqwest 0.12.8", "serde", "serde_json", "thiserror", @@ -9794,9 +9970,9 @@ dependencies = [ [[package]] name = "typeid" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" @@ -9806,9 +9982,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "typetag" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "661d18414ec032a49ece2d56eee03636e43c4e8d577047ab334c0ba892e29aaf" +checksum = "52ba3b6e86ffe0054b2c44f2d86407388b933b16cb0a70eea3929420db1d9bbe" dependencies = [ "erased-serde", "inventory", @@ -9819,20 +9995,20 @@ dependencies = [ [[package]] name = "typetag-impl" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1" +checksum = "70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -9854,51 +10030,48 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -9951,7 +10124,7 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_json", "utoipa-gen", @@ -9959,15 +10132,15 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "4.3.0" +version = "4.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bf0e16c02bc4bf5322ab65f10ab1149bdbcaa782cba66dc7057370a3f8190be" +checksum = "20c24e8ab68ff9ee746aad22d39b5535601e6416d1b0feeabf78be986a5c4392" dependencies = [ "proc-macro-error", "proc-macro2", "quote", "regex", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -9991,7 +10164,7 @@ dependencies = [ "axum", "mime_guess", "regex", - "reqwest 0.12.5", + "reqwest 0.12.8", "rust-embed", "serde", "serde_json", @@ -10012,9 +10185,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom 0.2.15", ] @@ -10049,7 +10222,7 @@ dependencies = [ "approx", "num-integer", "num-traits", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -10067,9 +10240,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wait-timeout" @@ -10113,34 +10286,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -10150,9 +10324,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10160,28 +10334,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" dependencies = [ "futures-util", "js-sys", @@ -10192,9 +10366,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -10218,9 +10392,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -10239,9 +10413,9 @@ dependencies = [ [[package]] name = "which" -version = "6.0.1" +version = "6.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" +checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" dependencies = [ "either", "home", @@ -10267,11 +10441,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -10299,6 +10473,36 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -10458,9 +10662,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.15" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557404e450152cd6795bb558bca69e43c585055f4606e3bcae5894fc6dac9ba0" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -10475,16 +10679,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winsafe" version = "0.0.19" @@ -10502,7 +10696,7 @@ dependencies = [ "js-sys", "log", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "send_wrapper 0.6.0", "thiserror", "wasm-bindgen", @@ -10534,16 +10728,8 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db678a6ee512bd06adf35c35be471cae2f9c82a5aed2b5d15e03628c98bddd57" -dependencies = [ - "zerocopy-derive 0.8.0-alpha.6", + "byteorder", + "zerocopy-derive", ] [[package]] @@ -10554,18 +10740,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201585ea96d37ee69f2ac769925ca57160cef31acb137c16f38b02b76f4c1e62" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -10585,7 +10760,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.82", ] [[package]] @@ -10599,23 +10774,23 @@ dependencies = [ "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.2.6", - "num_enum 0.7.2", + "indexmap 2.6.0", + "num_enum 0.7.3", "thiserror", ] [[package]] name = "zip" -version = "2.1.5" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b895748a3ebcb69b9d38dcfdf21760859a4b0d0b0015277640c2ef4c69640e6f" +checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" dependencies = [ "arbitrary", "crc32fast", "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.2.6", + "indexmap 2.6.0", "memchr", "thiserror", "zopfli", @@ -10673,18 +10848,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.0" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index ec2d62bcf..52129d5c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ members = [ "provers/sgx/setup", "pipeline", "core", - "tasks", + "taskdb", ] # Always optimize; building and running the guest takes much longer without optimization. @@ -36,7 +36,7 @@ opt-level = 3 # raiko raiko-lib = { path = "./lib", features = ["std"] } raiko-core = { path = "./core" } -raiko-tasks = { path = "./tasks" } +raiko-tasks = { path = "./taskdb" } # reth reth-primitives = { git = "https://github.com/taikoxyz/taiko-reth.git", branch = "v1.0.0-rc.2-taiko", default-features = false, features = [ @@ -164,6 +164,9 @@ thiserror-no-std = "2.0.2" # SQLite rusqlite = { version = "0.31.0", features = ["bundled"] } +# redis +redis = { version = "=0.27.3" } + # misc hashbrown = { version = "0.14", features = ["inline-more"] } tempfile = "3.8" diff --git a/Dockerfile b/Dockerfile index cd6beb146..76e2c8cd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM rust:1.75.0 AS builder ENV DEBIAN_FRONTEND=noninteractive ARG BUILD_FLAGS="" +ARG TASKDB=${TASKDB:-raiko-tasks/in-memory} # risc0 dependencies # RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash && \ @@ -10,7 +11,8 @@ ARG BUILD_FLAGS="" WORKDIR /opt/raiko COPY . . -RUN cargo build --release ${BUILD_FLAGS} --features "sgx" --features "docker_build" +RUN echo "Building for sgx with taskdb: ${TASKDB}" +RUN cargo build --release ${BUILD_FLAGS} --features "sgx" --features "docker_build" --features ${TASKDB} FROM gramineproject/gramine:1.7-jammy AS runtime ENV DEBIAN_FRONTEND=noninteractive diff --git a/Dockerfile.zk b/Dockerfile.zk index 2176a7498..12c029c1a 100644 --- a/Dockerfile.zk +++ b/Dockerfile.zk @@ -32,6 +32,7 @@ FROM base-builder AS builder ENV DEBIAN_FRONTEND=noninteractive ARG BUILD_FLAGS="" +ARG TASKDB=${TASKDB:-raiko-tasks/in-memory} WORKDIR /opt/raiko # build related files @@ -45,7 +46,7 @@ COPY harness harness COPY rust-toolchain rust-toolchain COPY kzg_settings_raw.bin kzg_settings_raw.bin COPY core core -COPY tasks tasks +COPY taskdb taskdb COPY makefile makefile COPY script script RUN ls -al > /tmp/file_list.txt @@ -58,7 +59,7 @@ RUN make guest RUN echo "Building for sp1" ENV TARGET=sp1 RUN make guest -RUN cargo build --release ${BUILD_FLAGS} --features "sp1,risc0" --features "docker_build" +RUN cargo build --release ${BUILD_FLAGS} --features "sp1,risc0" --features "docker_build" --features ${TASKDB} FROM ubuntu:22.04 AS raiko-zk RUN mkdir -p \ diff --git a/core/src/interfaces.rs b/core/src/interfaces.rs index 63ad41140..3e34cb550 100644 --- a/core/src/interfaces.rs +++ b/core/src/interfaces.rs @@ -523,6 +523,8 @@ impl From for AggregationRequest { #[serde(default)] /// A request for proof aggregation of multiple proofs. pub struct AggregationOnlyRequest { + /// The block numbers and l1 inclusion block numbers for the blocks to aggregate proofs for. + pub aggregation_ids: Vec, /// The block numbers and l1 inclusion block numbers for the blocks to aggregate proofs for. pub proofs: Vec, /// The proof type. @@ -545,6 +547,7 @@ impl From<(AggregationRequest, Vec)> for AggregationOnlyRequest { fn from((request, proofs): (AggregationRequest, Vec)) -> Self { Self { proofs, + aggregation_ids: request.block_numbers.iter().map(|(id, _)| *id).collect(), proof_type: request.proof_type, prover_args: request.prover_args, } diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 3ba94acab..1f221c27e 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -25,6 +25,7 @@ services: context: .. args: ENABLE_SELF_REGISTER: "true" + TASKDB: ${TASKDB:-raiko-tasks/in-memory} dockerfile: Dockerfile image: us-docker.pkg.dev/evmchain/images/raiko:latest container_name: raiko-init-self-register @@ -46,12 +47,15 @@ services: - HOLESKY_RPC=${HOLESKY_RPC} - HOLESKY_BEACON_RPC=${HOLESKY_BEACON_RPC} - TAIKO_A7_RPC=${TAIKO_A7_RPC} + - REDIS_URL=${REDIS_URL:-redis://redis:6379} #- PCCS_HOST=host.docker.internal:8081 depends_on: - pccs raiko: build: context: .. + args: + TASKDB: ${TASKDB:-raiko-tasks/in-memory} dockerfile: Dockerfile image: us-docker.pkg.dev/evmchain/images/raiko:latest container_name: raiko @@ -78,17 +82,23 @@ services: - TAIKO_MAINNET_RPC=${TAIKO_MAINNET_RPC} - L1_NETWORK=${L1_NETWORK} - NETWORK=${NETWORK} + - REDIS_URL=${REDIS_URL:-redis://redis:6379} # you can use your own PCCS host #- PCCS_HOST=host.docker.internal:8081 - # use the host's network to connect to the PCCS - #extra_hosts: - # - "host.docker.internal:host-gateway" + # use the host's network to connect to the PCCS + #extra_hosts: + # - "host.docker.internal:host-gateway" depends_on: + - redis - pccs + profiles: + - prod-redis raiko-self-register: build: context: .. dockerfile: Dockerfile + args: + TASKDB: ${TASKDB:-raiko-tasks/in-memory} image: us-docker.pkg.dev/evmchain/images/raiko:latest container_name: raiko-self-register command: --config-path=/etc/raiko/config.sgx.json --chain-spec-path=/etc/raiko/chain_spec_list.docker.json @@ -115,6 +125,7 @@ services: - TAIKO_MAINNET_RPC=${TAIKO_MAINNET_RPC} - L1_NETWORK=${L1_NETWORK} - NETWORK=${NETWORK} + - REDIS_URL=${REDIS_URL:-redis://redis:6379} # use the host's network to connect to the PCCS #extra_hosts: # - "host.docker.internal:host-gateway" @@ -124,6 +135,8 @@ services: build: context: .. dockerfile: Dockerfile.zk + args: + TASKDB: ${TASKDB:-raiko-tasks/in-memory} image: us-docker.pkg.dev/evmchain/images/raiko-zk:latest container_name: raiko-zk command: --config-path=/etc/raiko/config.sgx.json --chain-spec-path=/etc/raiko/chain_spec_list.docker.json @@ -153,6 +166,7 @@ services: - SKIP_SIMULATION=true - SP1_VERIFIER_RPC_URL=${SP1_VERIFIER_RPC_URL} - SP1_VERIFIER_ADDRESS=${SP1_VERIFIER_ADDRESS} + - REDIS_URL=${REDIS_URL:-redis://redis:6379} pccs: build: context: .. @@ -162,4 +176,11 @@ services: volumes: - ${HOME}/.config/sgx-pccs/default.json:/opt/intel/pccs/config/default.json - ${HOME}/.config/sgx-pccs/file.crt:/opt/intel/pccs/ssl_key/file.crt - - ${HOME}/.config/sgx-pccs/private.pem:/opt/intel/pccs/ssl_key/private.pem \ No newline at end of file + - ${HOME}/.config/sgx-pccs/private.pem:/opt/intel/pccs/ssl_key/private.pem + redis: + image: redis + container_name: redis + ports: + - "6379:6379" + profiles: + - prod-redis diff --git a/host/src/lib.rs b/host/src/lib.rs index d0b2fb691..e619af967 100644 --- a/host/src/lib.rs +++ b/host/src/lib.rs @@ -8,7 +8,7 @@ use raiko_core::{ merge, }; use raiko_lib::consts::SupportedChainSpecs; -use raiko_tasks::{get_task_manager, TaskDescriptor, TaskManagerOpts, TaskManagerWrapper}; +use raiko_tasks::{get_task_manager, TaskDescriptor, TaskManagerOpts, TaskManagerWrapperImpl}; use serde::{Deserialize, Serialize}; use serde_json::Value; use tokio::sync::mpsc; @@ -81,6 +81,9 @@ pub struct Opts { #[arg(long, require_equals = true, default_value = "1048576")] pub max_db_size: usize, + + #[arg(long, require_equals = true, default_value = "redis://localhost:6379")] + pub redis_url: String, } impl Opts { @@ -128,6 +131,7 @@ impl From for TaskManagerOpts { Self { sqlite_file: val.sqlite_file, max_db_size: val.max_db_size, + redis_url: val.redis_url.to_string(), } } } @@ -137,6 +141,7 @@ impl From<&Opts> for TaskManagerOpts { Self { sqlite_file: val.sqlite_file.clone(), max_db_size: val.max_db_size, + redis_url: val.redis_url.to_string(), } } } @@ -215,7 +220,7 @@ impl ProverState { }) } - pub fn task_manager(&self) -> TaskManagerWrapper { + pub fn task_manager(&self) -> TaskManagerWrapperImpl { get_task_manager(&(&self.opts).into()) } diff --git a/host/src/proof.rs b/host/src/proof.rs index 761b100d2..a0b913984 100644 --- a/host/src/proof.rs +++ b/host/src/proof.rs @@ -16,7 +16,9 @@ use raiko_lib::{ prover::{IdWrite, Proof}, Measurement, }; -use raiko_tasks::{get_task_manager, TaskDescriptor, TaskManager, TaskManagerWrapper, TaskStatus}; +use raiko_tasks::{ + get_task_manager, TaskDescriptor, TaskManager, TaskManagerWrapperImpl, TaskStatus, +}; use reth_primitives::B256; use tokio::{ select, @@ -86,7 +88,12 @@ impl ProofActor { let mut manager = get_task_manager(&self.opts.clone().into()); key.proof_system .cancel_proof( - (key.chain_id, key.blockhash, key.proof_system as u8), + ( + key.chain_id, + key.block_id, + key.blockhash, + key.proof_system as u8, + ), Box::new(&mut manager), ) .await @@ -121,6 +128,7 @@ impl ProofActor { let key = TaskDescriptor::from(( chain_id, + proof_request.block_number, blockhash, proof_request.proof_type, proof_request.prover.clone().to_string(), @@ -299,7 +307,7 @@ impl ProofActor { let status = manager.get_task_proving_status(&key).await?; - if let Some(latest_status) = status.iter().last() { + if let Some(latest_status) = status.0.iter().last() { if !matches!(latest_status.0, TaskStatus::Registered) { return Ok(latest_status.0.clone()); } @@ -332,7 +340,7 @@ impl ProofActor { .get_aggregation_task_proving_status(&request) .await?; - if let Some(latest_status) = status.iter().last() { + if let Some(latest_status) = status.0.iter().last() { if !matches!(latest_status.0, TaskStatus::Registered) { return Ok(()); } @@ -377,7 +385,7 @@ pub async fn handle_proof( proof_request: &ProofRequest, opts: &Opts, chain_specs: &SupportedChainSpecs, - store: Option<&mut TaskManagerWrapper>, + store: Option<&mut TaskManagerWrapperImpl>, ) -> HostResult { info!( "Generating proof for block {} on {}", diff --git a/host/src/server/api/v1/proof.rs b/host/src/server/api/v1/proof.rs index 5bc1725cd..572194fcf 100644 --- a/host/src/server/api/v1/proof.rs +++ b/host/src/server/api/v1/proof.rs @@ -45,8 +45,7 @@ async fn proof_handler( inc_host_req_count(proof_request.block_number); inc_guest_req_count(&proof_request.proof_type, proof_request.block_number); - // In memory task manager only for V1, cannot feature = "sqlite" - let mut manager = get_task_manager(&raiko_tasks::TaskManagerOpts::default()); + let mut manager = get_task_manager(&prover_state.opts.clone().into()); handle_proof( &proof_request, diff --git a/host/src/server/api/v2/proof/cancel.rs b/host/src/server/api/v2/proof/cancel.rs index 0f6b1bb61..16c252af9 100644 --- a/host/src/server/api/v2/proof/cancel.rs +++ b/host/src/server/api/v2/proof/cancel.rs @@ -43,6 +43,7 @@ async fn cancel_handler( let key = TaskDescriptor::from(( chain_id, + proof_request.block_number, block_hash, proof_request.proof_type, proof_request.prover.clone().to_string(), diff --git a/host/src/server/api/v2/proof/mod.rs b/host/src/server/api/v2/proof/mod.rs index d57335cdf..794701926 100644 --- a/host/src/server/api/v2/proof/mod.rs +++ b/host/src/server/api/v2/proof/mod.rs @@ -56,6 +56,7 @@ async fn proof_handler( let key = TaskDescriptor::from(( chain_id, + proof_request.block_number, blockhash, proof_request.proof_type, proof_request.prover.to_string(), @@ -64,7 +65,7 @@ async fn proof_handler( let mut manager = prover_state.task_manager(); let status = manager.get_task_proving_status(&key).await?; - let Some((latest_status, ..)) = status.last() else { + let Some((latest_status, ..)) = status.0.last() else { // If there are no tasks with provided config, create a new one. manager.enqueue_task(&key).await?; diff --git a/host/src/server/api/v3/proof/aggregate.rs b/host/src/server/api/v3/proof/aggregate.rs index 3bbffa00f..4416034af 100644 --- a/host/src/server/api/v3/proof/aggregate.rs +++ b/host/src/server/api/v3/proof/aggregate.rs @@ -56,7 +56,7 @@ async fn aggregation_handler( .get_aggregation_task_proving_status(&aggregation_request) .await?; - let Some((latest_status, ..)) = status.last() else { + let Some((latest_status, ..)) = status.0.last() else { // If there are no tasks with provided config, create a new one. manager .enqueue_aggregation_task(&aggregation_request) diff --git a/host/src/server/api/v3/proof/cancel.rs b/host/src/server/api/v3/proof/cancel.rs index 6e721c716..5794e68b1 100644 --- a/host/src/server/api/v3/proof/cancel.rs +++ b/host/src/server/api/v3/proof/cancel.rs @@ -46,6 +46,7 @@ async fn cancel_handler( let key = TaskDescriptor::from(( chain_id, + proof_request.block_number, block_hash, proof_request.proof_type, proof_request.prover.clone().to_string(), diff --git a/host/src/server/api/v3/proof/mod.rs b/host/src/server/api/v3/proof/mod.rs index 40679c614..7da5e02a6 100644 --- a/host/src/server/api/v3/proof/mod.rs +++ b/host/src/server/api/v3/proof/mod.rs @@ -66,6 +66,7 @@ async fn proof_handler( let key = TaskDescriptor::from(( chain_id, + proof_request.block_number, blockhash, proof_request.proof_type, proof_request.prover.to_string(), @@ -83,7 +84,7 @@ async fn proof_handler( for (key, req) in tasks.iter() { let status = manager.get_task_proving_status(key).await?; - let Some((latest_status, ..)) = status.last() else { + let Some((latest_status, ..)) = status.0.last() else { // If there are no tasks with provided config, create a new one. manager.enqueue_task(key).await?; @@ -123,17 +124,20 @@ async fn proof_handler( } else if is_success { info!("All tasks are successful, aggregating proofs"); let mut proofs = Vec::with_capacity(tasks.len()); + let mut aggregation_ids = Vec::with_capacity(tasks.len()); for (task, req) in tasks { - let raw_proof = manager.get_task_proof(&task).await?; + let raw_proof: Vec = manager.get_task_proof(&task).await?; let proof: Proof = serde_json::from_slice(&raw_proof)?; debug!( "Aggregation sub-req: {req:?} gets proof {:?} with input {:?}.", proof.proof, proof.input ); proofs.push(proof); + aggregation_ids.push(req.block_number); } let aggregation_request = AggregationOnlyRequest { + aggregation_ids, proofs, proof_type: aggregation_request.proof_type, prover_args: aggregation_request.prover_args, @@ -143,7 +147,7 @@ async fn proof_handler( .get_aggregation_task_proving_status(&aggregation_request) .await?; - let Some((latest_status, ..)) = status.last() else { + let Some((latest_status, ..)) = status.0.last() else { // If there are no tasks with provided config, create a new one. manager .enqueue_aggregation_task(&aggregation_request) diff --git a/lib/src/prover.rs b/lib/src/prover.rs index 08de0229a..0b1bf3498 100644 --- a/lib/src/prover.rs +++ b/lib/src/prover.rs @@ -24,7 +24,7 @@ impl From for ProverError { pub type ProverResult = core::result::Result; pub type ProverConfig = serde_json::Value; -pub type ProofKey = (ChainId, B256, u8); +pub type ProofKey = (ChainId, u64, B256, u8); #[derive(Clone, Debug, Serialize, ToSchema, Deserialize, Default, PartialEq, Eq, Hash)] /// The response body of a proof request. diff --git a/provers/risc0/driver/src/lib.rs b/provers/risc0/driver/src/lib.rs index 7fc66f64e..1c5b1c510 100644 --- a/provers/risc0/driver/src/lib.rs +++ b/provers/risc0/driver/src/lib.rs @@ -73,6 +73,7 @@ impl Prover for Risc0Prover { let config = Risc0Param::deserialize(config.get("risc0").unwrap()).unwrap(); let proof_key = ( input.chain_spec.chain_id, + input.block.header.number, output.hash.clone(), RISC0_PROVER_CODE, ); diff --git a/provers/risc0/driver/src/methods/ecdsa.rs b/provers/risc0/driver/src/methods/ecdsa.rs index fc6693437..d59ee3835 100644 --- a/provers/risc0/driver/src/methods/ecdsa.rs +++ b/provers/risc0/driver/src/methods/ecdsa.rs @@ -1,5 +1,5 @@ pub const ECDSA_ELF: &[u8] = include_bytes!("../../../guest/target/riscv32im-risc0-zkvm-elf/release/ecdsa"); pub const ECDSA_ID: [u32; 8] = [ - 3652025223, 1048803843, 2950123308, 1536068232, 1159324221, 1265391242, 958811727, 4248139033, + 46843261, 4287341384, 1164714702, 1381776748, 1542613440, 1347970650, 2481906212, 2285212198, ]; diff --git a/provers/risc0/driver/src/methods/risc0_guest.rs b/provers/risc0/driver/src/methods/risc0_guest.rs index 42ab3eee0..28259dbc7 100644 --- a/provers/risc0/driver/src/methods/risc0_guest.rs +++ b/provers/risc0/driver/src/methods/risc0_guest.rs @@ -1,5 +1,5 @@ pub const RISC0_GUEST_ELF: &[u8] = include_bytes!("../../../guest/target/riscv32im-risc0-zkvm-elf/release/risc0-guest"); pub const RISC0_GUEST_ID: [u32; 8] = [ - 1969729193, 1889995288, 261404698, 2630336538, 339020519, 1410619780, 514721746, 1213424171, + 2705224968, 672422473, 3589767632, 3895344282, 3642477750, 1142566656, 2251137472, 1131663031, ]; diff --git a/provers/risc0/driver/src/methods/sha256.rs b/provers/risc0/driver/src/methods/sha256.rs index 22118b337..70a14274d 100644 --- a/provers/risc0/driver/src/methods/sha256.rs +++ b/provers/risc0/driver/src/methods/sha256.rs @@ -1,5 +1,5 @@ pub const SHA256_ELF: &[u8] = include_bytes!("../../../guest/target/riscv32im-risc0-zkvm-elf/release/sha256"); pub const SHA256_ID: [u32; 8] = [ - 2716313044, 1330228279, 3217062305, 3693970552, 3654025276, 4270078228, 3722528174, 3151280396, + 284623640, 3696386847, 995407058, 1839006951, 4246953846, 4005123554, 3918666326, 939004335, ]; diff --git a/provers/risc0/driver/src/methods/test_risc0_guest.rs b/provers/risc0/driver/src/methods/test_risc0_guest.rs index ad47e6fed..2ba9f245f 100644 --- a/provers/risc0/driver/src/methods/test_risc0_guest.rs +++ b/provers/risc0/driver/src/methods/test_risc0_guest.rs @@ -1,6 +1,6 @@ pub const TEST_RISC0_GUEST_ELF: &[u8] = include_bytes!( - "../../../guest/target/riscv32im-risc0-zkvm-elf/release/deps/risc0_guest-4ff36f602a7f8785" + "../../../guest/target/riscv32im-risc0-zkvm-elf/release/deps/risc0_guest-0bc1e8b3751fcce9" ); pub const TEST_RISC0_GUEST_ID: [u32; 8] = [ - 487317851, 25800719, 3284824055, 1294483162, 678500656, 385631844, 1177387042, 72350148, + 421024105, 3054720816, 1934771990, 3546695673, 239189973, 3330335383, 2486808766, 4291756183, ]; diff --git a/provers/sgx/guest/Cargo.toml b/provers/sgx/guest/Cargo.toml index d583dfa05..c43c913da 100644 --- a/provers/sgx/guest/Cargo.toml +++ b/provers/sgx/guest/Cargo.toml @@ -5,12 +5,16 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[[bin]] +name = "sgx-guest" +required-features = ["sgx"] + [dependencies] raiko-lib = { workspace = true, features = ["sgx"] } tokio = { workspace = true } anyhow = { workspace = true } thiserror = { workspace = true } -secp256k1 = { workspace = true, features = ["rand-std"]} +secp256k1 = { workspace = true, features = ["rand-std"] } serde = { workspace = true } rand = { workspace = true } hex = { workspace = true } @@ -22,3 +26,7 @@ base64-serde = { workspace = true } base64 = { workspace = true } dirs = { workspace = true } bincode = { workspace = true } + +[features] +default = [] +sgx = [] diff --git a/provers/sgx/setup/Cargo.toml b/provers/sgx/setup/Cargo.toml index 26885ea12..fd020a0a4 100644 --- a/provers/sgx/setup/Cargo.toml +++ b/provers/sgx/setup/Cargo.toml @@ -4,6 +4,10 @@ name = "raiko-setup" version = "0.1.0" edition = "2021" +[[bin]] +name = "raiko-setup" +required-features = ["sgx"] + [dependencies] sgx-prover = { path = "../prover", features = ["enable"] } @@ -58,3 +62,6 @@ dirs = { workspace = true } assert_cmd = { workspace = true } rstest = { workspace = true } ethers-core = { workspace = true } + +[features] +sgx = [] \ No newline at end of file diff --git a/provers/sp1/driver/src/lib.rs b/provers/sp1/driver/src/lib.rs index 35c69a2bc..4259472c7 100644 --- a/provers/sp1/driver/src/lib.rs +++ b/provers/sp1/driver/src/lib.rs @@ -152,7 +152,12 @@ impl Prover for Sp1Prover { if let Some(id_store) = id_store { id_store .store_id( - (input.chain_spec.chain_id, output.hash, SP1_PROVER_CODE), + ( + input.chain_spec.chain_id, + input.block.header.number, + output.hash, + SP1_PROVER_CODE, + ), proof_id.clone(), ) .await?; diff --git a/provers/sp1/driver/src/proof_verify/forge_proof_verify.rs b/provers/sp1/driver/src/proof_verify/forge_proof_verify.rs index d037e6463..86337f061 100644 --- a/provers/sp1/driver/src/proof_verify/forge_proof_verify.rs +++ b/provers/sp1/driver/src/proof_verify/forge_proof_verify.rs @@ -21,7 +21,7 @@ fn init_verifier() -> Result { // In cargo run, Cargo sets the working directory to the root of the workspace let contract_path = &*CONTRACT_PATH; info!("Contract dir: {contract_path:?}"); - let artifacts_dir = sp1_sdk::install::try_install_circuit_artifacts(); + let artifacts_dir = sp1_sdk::install::try_install_circuit_artifacts("plonk"); // Create the destination directory if it doesn't exist fs::create_dir_all(contract_path)?; diff --git a/provers/sp1/guest/elf/sp1-guest b/provers/sp1/guest/elf/sp1-guest index d9927bb79..b4231f8a8 100755 Binary files a/provers/sp1/guest/elf/sp1-guest and b/provers/sp1/guest/elf/sp1-guest differ diff --git a/script/build.sh b/script/build.sh index 9be0760aa..b469de31f 100755 --- a/script/build.sh +++ b/script/build.sh @@ -33,6 +33,8 @@ else echo "Warning: in debug mode" fi +TASKDB=${TASKDB:-raiko-tasks/in-memory} + if [ -z "${RUN}" ]; then COMMAND=build else @@ -47,22 +49,22 @@ fi # NATIVE if [ -z "$1" ] || [ "$1" == "native" ]; then if [ -n "${CLIPPY}" ]; then - cargo clippy -- -D warnings + cargo clippy -F ${TASKDB} -- -D warnings elif [ -z "${RUN}" ]; then if [ -z "${TEST}" ]; then echo "Building native prover" - cargo build ${FLAGS} + cargo build ${FLAGS} -F $TASKDB else echo "Building native tests" - cargo test ${FLAGS} --no-run + cargo test ${FLAGS} --no-run -F $TASKDB fi else if [ -z "${TEST}" ]; then echo "Running native prover" - cargo run ${FLAGS} + cargo run ${FLAGS} -F $TASKDB else echo "Running native tests" - cargo test ${FLAGS} + cargo test ${FLAGS} -F $TASKDB fi fi fi @@ -75,22 +77,22 @@ if [ "$1" == "sgx" ]; then echo "SGX_DIRECT is set to $SGX_DIRECT" fi if [ -n "${CLIPPY}" ]; then - cargo ${TOOLCHAIN_SGX} clippy -p raiko-host -p sgx-prover -F "sgx enable" -- -D warnings + cargo ${TOOLCHAIN_SGX} clippy -p raiko-host -p sgx-prover -F "sgx enable" -F $TASKDB -- -D warnings elif [ -z "${RUN}" ]; then if [ -z "${TEST}" ]; then echo "Building SGX prover" - cargo ${TOOLCHAIN_SGX} build ${FLAGS} --features sgx + cargo ${TOOLCHAIN_SGX} build ${FLAGS} --features sgx -F $TASKDB else echo "Building SGX tests" - cargo ${TOOLCHAIN_SGX} test ${FLAGS} -p raiko-host -p sgx-prover --features "sgx enable" --no-run + cargo ${TOOLCHAIN_SGX} test ${FLAGS} -p raiko-host -p sgx-prover --features "sgx enable" -F $TASKDB --no-run fi else if [ -z "${TEST}" ]; then echo "Running SGX prover" - cargo ${TOOLCHAIN_SGX} run ${FLAGS} --features sgx + cargo ${TOOLCHAIN_SGX} run ${FLAGS} --features sgx -F $TASKDB else echo "Running SGX tests" - cargo ${TOOLCHAIN_SGX} test ${FLAGS} -p raiko-host -p sgx-prover --features "sgx enable" + cargo ${TOOLCHAIN_SGX} test ${FLAGS} -p raiko-host -p sgx-prover --features "sgx enable" -F $TASKDB fi fi fi @@ -107,27 +109,27 @@ if [ "$1" == "risc0" ]; then MOCK=1 RISC0_DEV_MODE=1 CI=1 - cargo ${TOOLCHAIN_RISC0} run --bin risc0-builder - cargo ${TOOLCHAIN_RISC0} clippy -F risc0 + cargo ${TOOLCHAIN_RISC0} run --bin risc0-builder -F $TASKDB + cargo ${TOOLCHAIN_RISC0} clippy -F risc0 -F $TASKDB elif [ -z "${RUN}" ]; then if [ -z "${TEST}" ]; then echo "Building Risc0 prover" - cargo ${TOOLCHAIN_RISC0} run --bin risc0-builder + cargo ${TOOLCHAIN_RISC0} run --bin risc0-builder -F $TASKDB else echo "Building test elfs for Risc0 prover" - cargo ${TOOLCHAIN_RISC0} run --bin risc0-builder --features test,bench + cargo ${TOOLCHAIN_RISC0} run --bin risc0-builder --features test,bench -F $TASKDB fi if [ -z "${GUEST}" ]; then - cargo ${TOOLCHAIN_RISC0} build ${FLAGS} --features risc0 + cargo ${TOOLCHAIN_RISC0} build ${FLAGS} --features risc0 -F $TASKDB fi else if [ -z "${TEST}" ]; then echo "Running Risc0 prover" - cargo ${TOOLCHAIN_RISC0} run ${FLAGS} --features risc0 + cargo ${TOOLCHAIN_RISC0} run ${FLAGS} --features risc0 -F $TASKDB else echo "Running Risc0 tests" - cargo ${TOOLCHAIN_RISC0} test ${FLAGS} --lib risc0-driver --features risc0 -- run_unittest_elf - cargo ${TOOLCHAIN_RISC0} test ${FLAGS} -p raiko-host -p risc0-driver --features "risc0 enable" + cargo ${TOOLCHAIN_RISC0} test ${FLAGS} --lib risc0-driver --features risc0 -F $TASKDB -- run_unittest_elf + cargo ${TOOLCHAIN_RISC0} test ${FLAGS} -p raiko-host -p risc0-driver --features "risc0 enable" -F $TASKDB fi fi fi @@ -140,30 +142,30 @@ if [ "$1" == "sp1" ]; then echo "SP1_PROVER is set to $SP1_PROVER" fi if [ -n "${CLIPPY}" ]; then - cargo ${TOOLCHAIN_SP1} clippy -p raiko-host -p sp1-builder -p sp1-driver -F "sp1 enable" + cargo ${TOOLCHAIN_SP1} clippy -p raiko-host -p sp1-builder -p sp1-driver -F "sp1,enable" -F $TASKDB elif [ -z "${RUN}" ]; then if [ -z "${TEST}" ]; then echo "Building Sp1 prover" - cargo ${TOOLCHAIN_SP1} run --bin sp1-builder + cargo ${TOOLCHAIN_SP1} run --bin sp1-builder -F $TASKDB else echo "Building test elfs for Sp1 prover" - cargo ${TOOLCHAIN_SP1} run --bin sp1-builder --features test,bench + cargo ${TOOLCHAIN_SP1} run --bin sp1-builder --features test,bench -F $TASKDB fi if [ -z "${GUEST}" ]; then - cargo ${TOOLCHAIN_SP1} build ${FLAGS} --features sp1 + cargo ${TOOLCHAIN_SP1} build ${FLAGS} --features sp1 -F $TASKDB fi else if [ -z "${TEST}" ]; then echo "Running Sp1 prover" - cargo ${TOOLCHAIN_SP1} run ${FLAGS} --features sp1 + cargo ${TOOLCHAIN_SP1} run ${FLAGS} --features sp1 -F $TASKDB else echo "Running Sp1 unit tests" - cargo ${TOOLCHAIN_SP1} test ${FLAGS} --lib sp1-driver --features sp1 -- run_unittest_elf - cargo ${TOOLCHAIN_SP1} test ${FLAGS} -p raiko-host -p sp1-driver --features "sp1 enable" + cargo ${TOOLCHAIN_SP1} test ${FLAGS} --lib sp1-driver --features sp1 -F $TASKDB -- run_unittest_elf + cargo ${TOOLCHAIN_SP1} test ${FLAGS} -p raiko-host -p sp1-driver --features "sp1 enable" -F $TASKDB # Don't wannt to span Succinct Network and wait 2 hours in CI # echo "Running Sp1 verification" - # cargo ${TOOLCHAIN_SP1} run ${FLAGS} --bin sp1-verifier --features enable + # cargo ${TOOLCHAIN_SP1} run ${FLAGS} --bin sp1-verifier --features enable,sp1-verifier -F $TASKDB fi fi fi diff --git a/script/generate-docs.sh b/script/generate-docs.sh index 219205ee6..138ab9c25 100755 --- a/script/generate-docs.sh +++ b/script/generate-docs.sh @@ -2,7 +2,9 @@ DIR="$(cd "$(dirname "$0")" && pwd)" +TASKDB=${TASKDB:-raiko-tasks/in-memory} + cd $DIR mkdir ../openapi -cargo run --bin docs >../openapi/index.html +cargo run -F ${TASKDB} --bin docs >../openapi/index.html diff --git a/tasks/Cargo.toml b/taskdb/Cargo.toml similarity index 82% rename from tasks/Cargo.toml rename to taskdb/Cargo.toml index 4aad7f9b1..1ccdb19fd 100644 --- a/tasks/Cargo.toml +++ b/taskdb/Cargo.toml @@ -2,12 +2,12 @@ name = "raiko-tasks" version = "0.1.0" authors = ["Taiko Labs"] -edition = "2021" +edition = "2021" [dependencies] raiko-lib = { workspace = true } raiko-core = { workspace = true } -rusqlite = { workspace = true, features = ["chrono"] } +rusqlite = { workspace = true, features = ["chrono"], optional = true } num_enum = { workspace = true } chrono = { workspace = true, features = ["serde"] } thiserror = { workspace = true } @@ -19,6 +19,7 @@ anyhow = { workspace = true } tokio = { workspace = true } async-trait = { workspace = true } utoipa = { workspace = true } +redis = { workspace = true, optional = true } [dev-dependencies] rand = "0.9.0-alpha.1" # This is an alpha version, that has rng.gen_iter::() @@ -28,9 +29,11 @@ alloy-primitives = { workspace = true, features = ["getrandom"] } rusqlite = { workspace = true, features = ["trace"] } [features] -default = ["in-memory"] -sqlite = [] +default = [] +sqlite = ["rusqlite"] in-memory = [] +redis-db = ["redis"] + [[test]] name = "tasks_tests" diff --git a/tasks/src/adv_sqlite.rs b/taskdb/src/adv_sqlite.rs similarity index 97% rename from tasks/src/adv_sqlite.rs rename to taskdb/src/adv_sqlite.rs index 96f9e4bb3..17eb6e747 100644 --- a/tasks/src/adv_sqlite.rs +++ b/taskdb/src/adv_sqlite.rs @@ -501,11 +501,12 @@ impl TaskDb { &self, TaskDescriptor { chain_id, + block_id, blockhash, proof_system, prover, }: &TaskDescriptor, - ) -> TaskManagerResult> { + ) -> TaskManagerResult { let mut statement = self.conn.prepare_cached( r#" INSERT INTO @@ -526,22 +527,24 @@ impl TaskDb { )?; statement.execute(named_params! { ":chain_id": chain_id, + ":block_id": block_id, ":blockhash": blockhash.to_vec(), ":proofsys_id": *proof_system as u8, ":prover": prover, })?; - Ok(vec![( + Ok(TaskProvingStatusRecords(vec![( TaskStatus::Registered, Some(prover.clone()), Utc::now(), - )]) + )])) } pub fn update_task_progress( &self, TaskDescriptor { chain_id, + block_id, blockhash, proof_system, prover, @@ -587,6 +590,7 @@ impl TaskDb { &self, TaskDescriptor { chain_id, + block_id, blockhash, proof_system, prover, @@ -614,6 +618,7 @@ impl TaskDb { let query = statement.query_map( named_params! { ":chain_id": chain_id, + ":block_id": block_id, ":blockhash": blockhash.to_vec(), ":proofsys_id": *proof_system as u8, ":prover": prover, @@ -627,13 +632,16 @@ impl TaskDb { }, )?; - Ok(query.collect::, _>>()?) + Ok(TaskProvingStatusRecords( + query.collect::, _>>()?, + )) } pub fn get_task_proof( &self, TaskDescriptor { chain_id, + block_id, blockhash, proof_system, prover, @@ -658,6 +666,7 @@ impl TaskDb { let query = statement.query_row( named_params! { ":chain_id": chain_id, + ":block_id": block_id, ":blockhash": blockhash.to_vec(), ":proofsys_id": *proof_system as u8, ":prover": prover, @@ -741,6 +750,7 @@ impl TaskDb { Ok(( TaskDescriptor { chain_id: row.get(0)?, + block_id: row.get(1)?, blockhash: B256::from_slice(&row.get::<_, Vec>(1)?), proof_system: row.get::<_, u8>(2)?.try_into().unwrap(), prover: row.get(3)?, @@ -759,7 +769,7 @@ impl TaskDb { fn store_id( &self, - (chain_id, blockhash, proof_key): ProofKey, + (chain_id, block_id, blockhash, proof_key): ProofKey, id: String, ) -> TaskManagerResult<()> { let mut statement = self.conn.prepare_cached( @@ -790,7 +800,10 @@ impl TaskDb { Ok(()) } - fn remove_id(&self, (chain_id, blockhash, proof_key): ProofKey) -> TaskManagerResult<()> { + fn remove_id( + &self, + (chain_id, block_id, blockhash, proof_key): ProofKey, + ) -> TaskManagerResult<()> { let mut statement = self.conn.prepare_cached( r#" DELETE FROM @@ -810,7 +823,10 @@ impl TaskDb { Ok(()) } - fn read_id(&self, (chain_id, blockhash, proof_key): ProofKey) -> TaskManagerResult { + fn read_id( + &self, + (chain_id, block_id, blockhash, proof_key): ProofKey, + ) -> TaskManagerResult { let mut statement = self.conn.prepare_cached( r#" SELECT @@ -895,8 +911,8 @@ impl TaskManager for SqliteTaskManager { async fn enqueue_task( &mut self, params: &TaskDescriptor, - ) -> Result, TaskManagerError> { - let task_db = self.arc_task_db.lock().await; + ) -> Result { + let task_db: tokio::sync::MutexGuard<'_, TaskDb> = self.arc_task_db.lock().await; task_db.enqueue_task(params) } diff --git a/tasks/src/lib.rs b/taskdb/src/lib.rs similarity index 66% rename from tasks/src/lib.rs rename to taskdb/src/lib.rs index cc7523e35..e05cf5850 100644 --- a/tasks/src/lib.rs +++ b/taskdb/src/lib.rs @@ -9,23 +9,37 @@ use raiko_lib::{ primitives::{ChainId, B256}, prover::{IdStore, IdWrite, ProofKey, ProverResult}, }; -use rusqlite::Error as SqlError; +#[cfg(feature = "sqlite")] +use rusqlite::Error as RustSQLiteError; use serde::{Deserialize, Serialize}; +use tracing::debug; use utoipa::ToSchema; -use crate::{adv_sqlite::SqliteTaskManager, mem_db::InMemoryTaskManager}; +#[cfg(feature = "sqlite")] +use crate::adv_sqlite::SqliteTaskManager; +#[cfg(feature = "in-memory")] +use crate::mem_db::InMemoryTaskManager; +#[cfg(feature = "redis-db")] +use crate::redis_db::RedisTaskManager; +#[cfg(feature = "sqlite")] mod adv_sqlite; +#[cfg(feature = "in-memory")] mod mem_db; +#[cfg(feature = "redis-db")] +mod redis_db; // Types // ---------------------------------------------------------------- -#[derive(PartialEq, Debug, thiserror::Error)] +#[derive(Debug, thiserror::Error)] pub enum TaskManagerError { #[error("IO Error {0}")] IOError(IOErrorKind), #[error("SQL Error {0}")] SqlError(String), + #[cfg(feature = "redis-db")] + #[error("Redis Error {0}")] + RedisError(#[from] crate::redis_db::RedisDbError), #[error("No data for query")] NoData, #[error("Anyhow error: {0}")] @@ -40,8 +54,9 @@ impl From for TaskManagerError { } } -impl From for TaskManagerError { - fn from(error: SqlError) -> TaskManagerError { +#[cfg(feature = "sqlite")] +impl From for TaskManagerError { + fn from(error: RustSQLiteError) -> TaskManagerError { TaskManagerError::SqlError(error.to_string()) } } @@ -142,17 +157,25 @@ impl<'a> FromIterator<&'a TaskStatus> for TaskStatus { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] pub struct TaskDescriptor { pub chain_id: ChainId, + pub block_id: u64, pub blockhash: B256, pub proof_system: ProofType, pub prover: String, } -impl From<(ChainId, B256, ProofType, String)> for TaskDescriptor { +impl From<(ChainId, u64, B256, ProofType, String)> for TaskDescriptor { fn from( - (chain_id, blockhash, proof_system, prover): (ChainId, B256, ProofType, String), + (chain_id, block_id, blockhash, proof_system, prover): ( + ChainId, + u64, + B256, + ProofType, + String, + ), ) -> Self { TaskDescriptor { chain_id, + block_id, blockhash, proof_system, prover, @@ -172,10 +195,30 @@ impl From for (ChainId, B256) { } } +#[derive(Default, Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Hash)] +#[serde(default)] +/// A request for proof aggregation of multiple proofs. +pub struct AggregationTaskDescriptor { + /// The block numbers and l1 inclusion block numbers for the blocks to aggregate proofs for. + pub aggregation_ids: Vec, + /// The proof type. + pub proof_type: Option, +} + +impl From<&AggregationOnlyRequest> for AggregationTaskDescriptor { + fn from(request: &AggregationOnlyRequest) -> Self { + Self { + aggregation_ids: request.aggregation_ids.clone(), + proof_type: request.proof_type.clone().map(|p| p.to_string()), + } + } +} + /// Task status triplet (status, proof, timestamp). pub type TaskProvingStatus = (TaskStatus, Option, DateTime); -pub type TaskProvingStatusRecords = Vec; +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub struct TaskProvingStatusRecords(pub Vec); pub type TaskReport = (TaskDescriptor, TaskStatus); @@ -183,10 +226,11 @@ pub type TaskReport = (TaskDescriptor, TaskStatus); pub struct TaskManagerOpts { pub sqlite_file: PathBuf, pub max_db_size: usize, + pub redis_url: String, } #[async_trait::async_trait] -pub trait TaskManager: IdStore + IdWrite { +pub trait TaskManager: IdStore + IdWrite + Send + Sync { /// Create a new task manager. fn new(opts: &TaskManagerOpts) -> Self; @@ -259,51 +303,32 @@ pub fn ensure(expression: bool, message: &str) -> TaskManagerResult<()> { Ok(()) } -enum TaskManagerInstance { - InMemory(InMemoryTaskManager), - Sqlite(SqliteTaskManager), -} - -pub struct TaskManagerWrapper { - manager: TaskManagerInstance, +pub struct TaskManagerWrapper { + manager: T, } #[async_trait::async_trait] -impl IdWrite for TaskManagerWrapper { +impl IdWrite for TaskManagerWrapper { async fn store_id(&mut self, key: ProofKey, id: String) -> ProverResult<()> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.store_id(key, id).await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.store_id(key, id).await, - } + self.manager.store_id(key, id).await } async fn remove_id(&mut self, key: ProofKey) -> ProverResult<()> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.remove_id(key).await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.remove_id(key).await, - } + self.manager.remove_id(key).await } } #[async_trait::async_trait] -impl IdStore for TaskManagerWrapper { +impl IdStore for TaskManagerWrapper { async fn read_id(&self, key: ProofKey) -> ProverResult { - match &self.manager { - TaskManagerInstance::InMemory(manager) => manager.read_id(key).await, - TaskManagerInstance::Sqlite(manager) => manager.read_id(key).await, - } + self.manager.read_id(key).await } } #[async_trait::async_trait] -impl TaskManager for TaskManagerWrapper { +impl TaskManager for TaskManagerWrapper { fn new(opts: &TaskManagerOpts) -> Self { - let manager = if cfg!(feature = "sqlite") { - TaskManagerInstance::Sqlite(SqliteTaskManager::new(opts)) - } else { - TaskManagerInstance::InMemory(InMemoryTaskManager::new(opts)) - }; - + let manager = T::new(opts); Self { manager } } @@ -311,10 +336,7 @@ impl TaskManager for TaskManagerWrapper { &mut self, request: &TaskDescriptor, ) -> TaskManagerResult { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.enqueue_task(request).await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.enqueue_task(request).await, - } + self.manager.enqueue_task(request).await } async fn update_task_progress( @@ -323,77 +345,41 @@ impl TaskManager for TaskManagerWrapper { status: TaskStatus, proof: Option<&[u8]>, ) -> TaskManagerResult<()> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => { - manager.update_task_progress(key, status, proof).await - } - TaskManagerInstance::Sqlite(ref mut manager) => { - manager.update_task_progress(key, status, proof).await - } - } + self.manager.update_task_progress(key, status, proof).await } async fn get_task_proving_status( &mut self, key: &TaskDescriptor, ) -> TaskManagerResult { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => { - manager.get_task_proving_status(key).await - } - TaskManagerInstance::Sqlite(ref mut manager) => { - manager.get_task_proving_status(key).await - } - } + self.manager.get_task_proving_status(key).await } async fn get_task_proof(&mut self, key: &TaskDescriptor) -> TaskManagerResult> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.get_task_proof(key).await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.get_task_proof(key).await, - } + self.manager.get_task_proof(key).await } async fn get_db_size(&mut self) -> TaskManagerResult<(usize, Vec<(String, usize)>)> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.get_db_size().await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.get_db_size().await, - } + self.manager.get_db_size().await } async fn prune_db(&mut self) -> TaskManagerResult<()> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.prune_db().await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.prune_db().await, - } + self.manager.prune_db().await } async fn list_all_tasks(&mut self) -> TaskManagerResult> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => manager.list_all_tasks().await, - TaskManagerInstance::Sqlite(ref mut manager) => manager.list_all_tasks().await, - } + self.manager.list_all_tasks().await } async fn list_stored_ids(&mut self) -> TaskManagerResult> { - match &mut self.manager { - TaskManagerInstance::InMemory(manager) => manager.list_stored_ids().await, - TaskManagerInstance::Sqlite(manager) => manager.list_stored_ids().await, - } + self.manager.list_stored_ids().await } async fn enqueue_aggregation_task( &mut self, request: &AggregationOnlyRequest, ) -> TaskManagerResult<()> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => { - manager.enqueue_aggregation_task(request).await - } - TaskManagerInstance::Sqlite(ref mut manager) => { - manager.enqueue_aggregation_task(request).await - } - } + self.manager.enqueue_aggregation_task(request).await } async fn update_aggregation_task_progress( @@ -402,51 +388,38 @@ impl TaskManager for TaskManagerWrapper { status: TaskStatus, proof: Option<&[u8]>, ) -> TaskManagerResult<()> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => { - manager - .update_aggregation_task_progress(request, status, proof) - .await - } - TaskManagerInstance::Sqlite(ref mut manager) => { - manager - .update_aggregation_task_progress(request, status, proof) - .await - } - } + self.manager + .update_aggregation_task_progress(request, status, proof) + .await } async fn get_aggregation_task_proving_status( &mut self, request: &AggregationOnlyRequest, ) -> TaskManagerResult { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => { - manager.get_aggregation_task_proving_status(request).await - } - TaskManagerInstance::Sqlite(ref mut manager) => { - manager.get_aggregation_task_proving_status(request).await - } - } + self.manager + .get_aggregation_task_proving_status(request) + .await } async fn get_aggregation_task_proof( &mut self, request: &AggregationOnlyRequest, ) -> TaskManagerResult> { - match &mut self.manager { - TaskManagerInstance::InMemory(ref mut manager) => { - manager.get_aggregation_task_proof(request).await - } - TaskManagerInstance::Sqlite(ref mut manager) => { - manager.get_aggregation_task_proof(request).await - } - } + self.manager.get_aggregation_task_proof(request).await } } -pub fn get_task_manager(opts: &TaskManagerOpts) -> TaskManagerWrapper { - TaskManagerWrapper::new(opts) +#[cfg(feature = "in-memory")] +pub type TaskManagerWrapperImpl = TaskManagerWrapper; +#[cfg(feature = "sqlite")] +pub type TaskManagerWrapperImpl = TaskManagerWrapper; +#[cfg(feature = "redis-db")] +pub type TaskManagerWrapperImpl = TaskManagerWrapper; + +pub fn get_task_manager(opts: &TaskManagerOpts) -> TaskManagerWrapperImpl { + debug!("get task manager with options: {:?}", opts); + TaskManagerWrapperImpl::new(opts) } #[cfg(test)] @@ -465,6 +438,7 @@ mod test { let opts = TaskManagerOpts { sqlite_file: sqlite_file.to_path_buf(), max_db_size: 1024 * 1024, + redis_url: "redis://localhost:6379".to_string(), }; let mut task_manager = get_task_manager(&opts); @@ -472,12 +446,14 @@ mod test { task_manager .enqueue_task(&TaskDescriptor { chain_id: 1, + block_id: 0, blockhash: B256::default(), proof_system: ProofType::Native, prover: "test".to_string(), }) .await .unwrap() + .0 .len(), 1 ); diff --git a/tasks/src/mem_db.rs b/taskdb/src/mem_db.rs similarity index 94% rename from tasks/src/mem_db.rs rename to taskdb/src/mem_db.rs index f3bee7883..2307b64aa 100644 --- a/tasks/src/mem_db.rs +++ b/taskdb/src/mem_db.rs @@ -51,12 +51,13 @@ impl InMemoryTaskDb { Some(task_proving_records) => { debug!( "Task already exists: {:?}", - task_proving_records.last().unwrap().0 + task_proving_records.0.last().unwrap().0 ); } // do nothing None => { info!("Enqueue new task: {key:?}"); - self.tasks_queue.insert(key.clone(), vec![task_status]); + self.tasks_queue + .insert(key.clone(), TaskProvingStatusRecords(vec![task_status])); } } } @@ -70,9 +71,9 @@ impl InMemoryTaskDb { ensure(self.tasks_queue.contains_key(&key), "no task found")?; self.tasks_queue.entry(key).and_modify(|entry| { - if let Some(latest) = entry.last() { + if let Some(latest) = entry.0.last() { if latest.0 != status { - entry.push((status, proof.map(hex::encode), Utc::now())); + entry.0.push((status, proof.map(hex::encode), Utc::now())); } } }); @@ -96,6 +97,7 @@ impl InMemoryTaskDb { .ok_or_else(|| TaskManagerError::SqlError("no task in db".to_owned()))?; let (_, proof, ..) = proving_status_records + .0 .iter() .filter(|(status, ..)| (status == &TaskStatus::Success)) .last() @@ -124,6 +126,7 @@ impl InMemoryTaskDb { .iter() .flat_map(|(descriptor, statuses)| { statuses + .0 .last() .map(|status| (descriptor.clone(), status.0.clone())) }) @@ -161,13 +164,13 @@ impl InMemoryTaskDb { Some(task_proving_records) => { debug!( "Task already exists: {:?}", - task_proving_records.last().unwrap().0 + task_proving_records.0.last().unwrap().0 ); } // do nothing None => { info!("Enqueue new task: {request}"); self.aggregation_tasks_queue - .insert(request.clone(), vec![task_status]); + .insert(request.clone(), TaskProvingStatusRecords(vec![task_status])); } } Ok(()) @@ -198,9 +201,9 @@ impl InMemoryTaskDb { self.aggregation_tasks_queue .entry(request.clone()) .and_modify(|entry| { - if let Some(latest) = entry.last() { + if let Some(latest) = entry.0.last() { if latest.0 != status { - entry.push((status, proof.map(hex::encode), Utc::now())); + entry.0.push((status, proof.map(hex::encode), Utc::now())); } } }); @@ -223,6 +226,7 @@ impl InMemoryTaskDb { .ok_or_else(|| TaskManagerError::SqlError("no task in db".to_owned()))?; let (_, proof, ..) = proving_status_records + .0 .iter() .filter(|(status, ..)| (status == &TaskStatus::Success)) .last() @@ -286,7 +290,7 @@ impl TaskManager for InMemoryTaskManager { ) -> TaskManagerResult { let mut db = self.db.lock().await; let status = db.get_task_proving_status(params)?; - if !status.is_empty() { + if !status.0.is_empty() { return Ok(status); } @@ -391,6 +395,7 @@ mod tests { let mut db = InMemoryTaskDb::new(); let params = TaskDescriptor { chain_id: 1, + block_id: 1, blockhash: B256::default(), proof_system: ProofType::Native, prover: "0x1234".to_owned(), diff --git a/taskdb/src/redis_db.rs b/taskdb/src/redis_db.rs new file mode 100644 index 000000000..279156b44 --- /dev/null +++ b/taskdb/src/redis_db.rs @@ -0,0 +1,613 @@ +#![cfg(feature = "redis-db")] +// Raiko +// Copyright (c) 2024 Taiko Labs +// Licensed and distributed under either of +// * MIT license (license terms in the root directory or at http://opensource.org/licenses/MIT). +// * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). +// at your option. This file may not be copied, modified, or distributed except according to those terms. + +// Imports +// ---------------------------------------------------------------- +use chrono::Utc; +use raiko_core::interfaces::AggregationOnlyRequest; +use raiko_lib::prover::{IdStore, IdWrite, ProofKey, ProverError, ProverResult}; +use redis::{Client, Commands, Connection, RedisError, RedisWrite, ToRedisArgs}; +use std::sync::{Arc, Once}; +use thiserror::Error; +use tokio::sync::Mutex; +use tracing::{error, info, warn}; + +use crate::{ + AggregationTaskDescriptor, TaskDescriptor, TaskManager, TaskManagerError, TaskManagerOpts, + TaskManagerResult, TaskProvingStatus, TaskProvingStatusRecords, TaskReport, TaskStatus, +}; + +pub struct RedisTaskDb { + conn: Connection, +} + +pub struct RedisTaskManager { + arc_task_db: Arc>, +} + +type RedisDbResult = Result; + +#[derive(Error, Debug)] +pub enum RedisDbError { + #[error("Redis DB error: {0}")] + RedisDb(#[from] RedisError), + #[error("Redis Task Manager error: {0}")] + TaskManager(String), + #[error("Serialization error: {0}")] + Serialization(#[from] serde_json::Error), + #[error("Redis key non-exist: {0}")] + KeyNotFound(String), +} + +impl ToRedisArgs for TaskDescriptor { + fn write_redis_args(&self, out: &mut W) + where + W: ?Sized + RedisWrite, + { + let serialized = serde_json::to_string(self).expect("Failed to serialize TaskDescriptor"); + out.write_arg(serialized.as_bytes()); + } +} + +impl ToRedisArgs for AggregationTaskDescriptor { + fn write_redis_args(&self, out: &mut W) + where + W: ?Sized + RedisWrite, + { + let serialized = + serde_json::to_string(self).expect("Failed to serialize AggregationTaskDescriptor"); + out.write_arg(serialized.as_bytes()); + } +} + +impl ToRedisArgs for TaskProvingStatusRecords { + fn write_redis_args(&self, out: &mut W) + where + W: ?Sized + RedisWrite, + { + let serialized = + serde_json::to_string(self).expect("Failed to serialize TaskProvingStatusRecords"); + out.write_arg(serialized.as_bytes()); + } +} + +// redis key ttl +const TTL_SECS: u64 = 2 * 24 * 3600; // 2 days + +impl RedisTaskDb { + fn new(url: &str) -> RedisDbResult { + let client = Client::open(url).map_err(RedisDbError::RedisDb)?; + let conn = client.get_connection().map_err(RedisDbError::RedisDb)?; + Ok(RedisTaskDb { conn }) + } + + fn insert_proof_task( + &mut self, + key: &TaskDescriptor, + value: &TaskProvingStatusRecords, + ) -> RedisDbResult<()> { + self.insert_redis(key, value) + } + + fn insert_aggregation_task( + &mut self, + key: &AggregationTaskDescriptor, + value: &TaskProvingStatusRecords, + ) -> RedisDbResult<()> { + self.insert_redis(key, value) + } + + fn insert_redis(&mut self, key: &K, value: &V) -> RedisDbResult<()> + where + K: ToRedisArgs, + V: ToRedisArgs, + { + self.conn + .set_ex(key, value, TTL_SECS) + .map_err(RedisDbError::RedisDb)?; + Ok(()) + } + + fn query_proof_task( + &mut self, + key: &TaskDescriptor, + ) -> RedisDbResult> { + match self.query_redis(&key) { + Ok(Some(v)) => { + if let Some(records) = serde_json::from_str(&v)? { + Ok(Some(records)) + } else { + error!("Failed to deserialize TaskProvingStatusRecords"); + Err(RedisDbError::TaskManager( + format!("Failed to deserialize TaskProvingStatusRecords").to_owned(), + )) + } + } + Ok(None) => Ok(None), + Err(e) => Err(e), + } + } + + fn query_aggregation_task( + &mut self, + key: &AggregationTaskDescriptor, + ) -> RedisDbResult> { + match self.query_redis(&key) { + Ok(Some(v)) => Ok(Some(serde_json::from_str(&v)?)), + Ok(None) => Ok(None), + Err(e) => Err(e), + } + } + + fn query_redis(&mut self, key: &impl ToRedisArgs) -> RedisDbResult> { + match self.conn.get(key) { + Ok(value) => Ok(Some(value)), + Err(e) if e.kind() == redis::ErrorKind::TypeError => Ok(None), + Err(e) => Err(RedisDbError::RedisDb(e)), + } + } + + fn delete_redis(&mut self, key: &impl ToRedisArgs) -> RedisDbResult<()> { + let result: i32 = self.conn.del(key).map_err(RedisDbError::RedisDb)?; + if result != 1 { + return Err(RedisDbError::TaskManager("redis del".to_owned())); + } + Ok(()) + } + + fn update_proof_task_status( + &mut self, + key: &TaskDescriptor, + new_status: TaskProvingStatus, + ) -> RedisDbResult<()> { + let old_value = self.query_proof_task(key).unwrap_or_default(); + let mut records = match old_value { + Some(v) => v, + None => { + warn!("Update a unknown task: {key:?} to {new_status:?}"); + TaskProvingStatusRecords(vec![]) + } + }; + + records.0.push(new_status); + let k = serde_json::to_string(&key)?; + let v = serde_json::to_string(&records)?; + + self.update_status_redis(&k, &v) + } + + fn update_aggregation_status( + &mut self, + key: &AggregationTaskDescriptor, + new_status: TaskProvingStatus, + ) -> RedisDbResult<()> { + let old_value = self.query_aggregation_task(key.into()).unwrap_or_default(); + let mut records = match old_value { + Some(v) => v, + None => { + warn!("Update a unknown task: {key:?} to {new_status:?}"); + TaskProvingStatusRecords(vec![]) + } + }; + + records.0.push(new_status); + let k = serde_json::to_string(&key)?; + let v = serde_json::to_string(&records)?; + + self.update_status_redis(&k, &v) + } + + fn update_status_redis(&mut self, k: &String, v: &String) -> RedisDbResult<()> { + self.conn.set_ex(k, v, TTL_SECS)?; + Ok(()) + } +} + +impl RedisTaskDb { + fn enqueue_task(&mut self, key: &TaskDescriptor) -> RedisDbResult { + let task_status = (TaskStatus::Registered, None, Utc::now()); + + match self.query_proof_task(key) { + Ok(Some(task_proving_records)) => { + warn!("Task already exists: {:?}", task_proving_records.0.last()); + Ok(task_proving_records.0.last().unwrap().clone()) + } // do nothing + Ok(None) => { + info!("Enqueue new task: {key:?}"); + self.insert_proof_task(key, &TaskProvingStatusRecords(vec![task_status.clone()]))?; + Ok(task_status) + } + Err(e) => { + error!("Enqueue task failed: {e:?}"); + Err(e) + } + } + } + + fn update_task_progress( + &mut self, + key: TaskDescriptor, + status: TaskStatus, + proof: Option<&[u8]>, + ) -> RedisDbResult<()> { + match self.query_proof_task(&key) { + Ok(Some(records)) => { + if let Some(latest) = records.0.last() { + if latest.0 != status { + let new_statue = (status, proof.map(hex::encode), Utc::now()); + self.update_proof_task_status(&key, new_statue)?; + } + } else { + return Err(RedisDbError::TaskManager( + format!("task {key:?} not found").to_owned(), + )); + } + Ok(()) + } + Ok(None) => Err(RedisDbError::TaskManager( + format!("task {key:?} not found").to_owned(), + )), + Err(e) => Err(RedisDbError::TaskManager( + format!("query {key:?} error: {e:?}").to_owned(), + )), + } + } + + fn get_task_proving_status( + &mut self, + key: &TaskDescriptor, + ) -> RedisDbResult { + match self.query_proof_task(key) { + Ok(Some(records)) => Ok(records), + Ok(None) => Err(RedisDbError::KeyNotFound( + format!("task {key:?} not found").to_owned(), + )), + Err(e) => Err(RedisDbError::TaskManager( + format!("query {key:?} error: {e:?}").to_owned(), + )), + } + } + + fn get_task_proof(&mut self, key: &TaskDescriptor) -> RedisDbResult> { + let proving_status_records = self + .query_proof_task(key) + .map_err(|e| RedisDbError::TaskManager(format!("query error: {e:?}").to_owned()))? + .unwrap_or_default(); + + let (_, proof, ..) = proving_status_records + .0 + .iter() + .filter(|(status, ..)| (status == &TaskStatus::Success)) + .last() + .ok_or_else(|| { + RedisDbError::TaskManager(format!("task {key:?} not success.").to_owned()) + })?; + + if let Some(proof_str) = proof { + hex::decode(proof_str).map_err(|e| { + RedisDbError::TaskManager( + format!("task {key:?} hex decode failed for {e:?}").to_owned(), + ) + }) + } else { + Ok(vec![]) + } + } + + fn prune(&mut self) -> RedisDbResult<()> { + todo!(); + } + + fn list_all_tasks(&mut self) -> RedisDbResult> { + todo!(); + } + + fn enqueue_aggregation_task(&mut self, request: &AggregationOnlyRequest) -> RedisDbResult<()> { + let task_status = (TaskStatus::Registered, None, Utc::now()); + let agg_task_descriptor = request.into(); + match self.query_aggregation_task(&agg_task_descriptor)? { + Some(task_proving_records) => { + info!( + "Task already exists: {:?}", + task_proving_records.0.last().unwrap().0 + ); + } // do nothing + None => { + info!("Enqueue new aggregatino task: {request}"); + self.insert_aggregation_task( + &agg_task_descriptor, + &TaskProvingStatusRecords(vec![task_status]), + )?; + } + } + Ok(()) + } + + fn get_aggregation_task_proving_status( + &mut self, + request: &AggregationOnlyRequest, + ) -> RedisDbResult { + let agg_task_descriptor = request.into(); + match self.query_aggregation_task(&agg_task_descriptor)? { + Some(records) => Ok(records), + None => Err(RedisDbError::KeyNotFound( + format!("task {agg_task_descriptor:?} not found").to_owned(), + )), + } + } + + fn update_aggregation_task_progress( + &mut self, + request: &AggregationOnlyRequest, + status: TaskStatus, + proof: Option<&[u8]>, + ) -> RedisDbResult<()> { + let agg_task_descriptor = request.into(); + match self.query_aggregation_task(&agg_task_descriptor)? { + Some(records) => { + if let Some(latest) = records.0.last() { + if latest.0 != status { + let new_record = (status, proof.map(hex::encode), Utc::now()); + self.update_aggregation_status(&agg_task_descriptor, new_record)?; + } + } else { + return Err(RedisDbError::TaskManager( + format!("task {agg_task_descriptor:?} not found").to_owned(), + )); + } + Ok(()) + } + None => Err(RedisDbError::TaskManager( + format!("task {agg_task_descriptor:?} not found").to_owned(), + )), + } + } + + fn get_aggregation_task_proof( + &mut self, + request: &AggregationOnlyRequest, + ) -> RedisDbResult> { + let agg_task_descriptor = request.into(); + let proving_status_records = self + .query_aggregation_task(&agg_task_descriptor)? + .unwrap_or_default(); + + let (_, proof, ..) = proving_status_records + .0 + .iter() + .filter(|(status, ..)| (status == &TaskStatus::Success)) + .last() + .ok_or_else(|| { + RedisDbError::TaskManager( + format!("task {agg_task_descriptor:?} not found").to_owned(), + ) + })?; + + if let Some(proof) = proof { + hex::decode(proof).map_err(|e| { + RedisDbError::TaskManager( + format!("task {agg_task_descriptor:?} hex decode failed for {e:?}").to_owned(), + ) + }) + } else { + Ok(vec![]) + } + } + + fn get_db_size(&self) -> TaskManagerResult<(usize, Vec<(String, usize)>)> { + todo!(); + } +} + +impl RedisTaskDb { + async fn store_id(&mut self, key: ProofKey, id: String) -> RedisDbResult<()> { + let serialized_k = serde_json::to_string(&key)?; + let serialized_v = serde_json::to_string(&id)?; + self.insert_redis(&serialized_k, &serialized_v) + } + + async fn remove_id(&mut self, key: ProofKey) -> RedisDbResult<()> { + let serialized = serde_json::to_string(&key)?; + self.delete_redis(&serialized) + } + + async fn read_id(&mut self, key: ProofKey) -> RedisDbResult { + let serialized = serde_json::to_string(&key)?; + match self.query_redis(&serialized) { + Ok(Some(v)) => Ok(serde_json::from_str(&v)?), + Ok(None) => Err(RedisDbError::TaskManager( + format!("id {key:?} not found").to_owned(), + )), + Err(e) => Err(RedisDbError::TaskManager( + format!("id {key:?} query error: {e:?}").to_owned(), + )), + } + } + + fn list_stored_ids(&mut self) -> RedisDbResult> { + todo!(); + } +} + +#[async_trait::async_trait] +impl IdStore for RedisTaskManager { + async fn read_id(&self, key: ProofKey) -> ProverResult { + let mut db = self.arc_task_db.lock().await; + db.read_id(key) + .await + .map_err(|e| ProverError::StoreError(e.to_string())) + } +} + +#[async_trait::async_trait] +impl IdWrite for RedisTaskManager { + async fn store_id(&mut self, key: ProofKey, id: String) -> ProverResult<()> { + let mut db = self.arc_task_db.lock().await; + db.store_id(key, id) + .await + .map_err(|e| ProverError::StoreError(e.to_string())) + } + + async fn remove_id(&mut self, key: ProofKey) -> ProverResult<()> { + let mut db = self.arc_task_db.lock().await; + db.remove_id(key) + .await + .map_err(|e| ProverError::StoreError(e.to_string())) + } +} + +#[async_trait::async_trait] +impl TaskManager for RedisTaskManager { + fn new(opts: &TaskManagerOpts) -> Self { + static INIT: Once = Once::new(); + static mut CONN: Option>> = None; + INIT.call_once(|| { + unsafe { + CONN = Some(Arc::new(Mutex::new({ + let db = RedisTaskDb::new(&opts.redis_url).unwrap(); + db + }))) + }; + }); + Self { + arc_task_db: unsafe { CONN.clone().unwrap() }, + } + } + + async fn enqueue_task( + &mut self, + params: &TaskDescriptor, + ) -> Result { + let mut task_db = self.arc_task_db.lock().await; + let enq_status = task_db.enqueue_task(params)?; + Ok(TaskProvingStatusRecords(vec![enq_status])) + } + + async fn update_task_progress( + &mut self, + key: TaskDescriptor, + status: TaskStatus, + proof: Option<&[u8]>, + ) -> TaskManagerResult<()> { + let mut task_db = self.arc_task_db.lock().await; + task_db.update_task_progress(key, status, proof)?; + Ok(()) + } + + /// Returns the latest triplet (submitter or fulfiller, status, last update time) + async fn get_task_proving_status( + &mut self, + key: &TaskDescriptor, + ) -> TaskManagerResult { + let mut task_db = self.arc_task_db.lock().await; + match task_db.get_task_proving_status(key) { + Ok(records) => Ok(records), + Err(RedisDbError::KeyNotFound(_)) => Ok(TaskProvingStatusRecords(vec![])), + Err(e) => Err(TaskManagerError::RedisError(e)), + } + } + + async fn get_task_proof(&mut self, key: &TaskDescriptor) -> TaskManagerResult> { + let mut task_db = self.arc_task_db.lock().await; + let proof = task_db.get_task_proof(key)?; + Ok(proof) + } + + /// Returns the total and detailed database size + async fn get_db_size(&mut self) -> TaskManagerResult<(usize, Vec<(String, usize)>)> { + let task_db = self.arc_task_db.lock().await; + let res = task_db.get_db_size()?; + Ok(res) + } + + async fn prune_db(&mut self) -> TaskManagerResult<()> { + let mut task_db = self.arc_task_db.lock().await; + task_db.prune().map_err(TaskManagerError::RedisError) + } + + async fn list_all_tasks(&mut self) -> TaskManagerResult> { + let mut task_db = self.arc_task_db.lock().await; + task_db + .list_all_tasks() + .map_err(TaskManagerError::RedisError) + } + + async fn list_stored_ids(&mut self) -> TaskManagerResult> { + let mut task_db = self.arc_task_db.lock().await; + task_db + .list_stored_ids() + .map_err(TaskManagerError::RedisError) + } + + async fn enqueue_aggregation_task( + &mut self, + request: &AggregationOnlyRequest, + ) -> TaskManagerResult<()> { + let mut task_db = self.arc_task_db.lock().await; + task_db + .enqueue_aggregation_task(request) + .map_err(TaskManagerError::RedisError) + } + + async fn get_aggregation_task_proving_status( + &mut self, + request: &AggregationOnlyRequest, + ) -> TaskManagerResult { + let mut task_db = self.arc_task_db.lock().await; + match task_db.get_aggregation_task_proving_status(request) { + Ok(records) => Ok(records), + Err(RedisDbError::KeyNotFound(_)) => Ok(TaskProvingStatusRecords(vec![])), + Err(e) => Err(TaskManagerError::RedisError(e)), + } + } + + async fn update_aggregation_task_progress( + &mut self, + request: &AggregationOnlyRequest, + status: TaskStatus, + proof: Option<&[u8]>, + ) -> TaskManagerResult<()> { + let mut task_db = self.arc_task_db.lock().await; + task_db + .update_aggregation_task_progress(request, status, proof) + .map_err(TaskManagerError::RedisError) + } + + async fn get_aggregation_task_proof( + &mut self, + request: &AggregationOnlyRequest, + ) -> TaskManagerResult> { + let mut task_db = self.arc_task_db.lock().await; + task_db + .get_aggregation_task_proof(request) + .map_err(TaskManagerError::RedisError) + } +} + +#[cfg(test)] +mod tests { + use alloy_primitives::B256; + + use super::*; + use crate::ProofType; + + #[test] + fn test_db_enqueue() { + let mut db = RedisTaskDb::new("redis://localhost:6379").unwrap(); + let params = TaskDescriptor { + chain_id: 1, + block_id: 1, + blockhash: B256::default(), + proof_system: ProofType::Native, + prover: "0x1234".to_owned(), + }; + db.enqueue_task(¶ms).expect("enqueue task failed"); + let status = db.get_task_proving_status(¶ms); + assert!(status.is_ok()); + } +} diff --git a/tasks/tests/main.rs b/taskdb/tests/main.rs similarity index 63% rename from tasks/tests/main.rs rename to taskdb/tests/main.rs index 5dfee896f..949becd4c 100644 --- a/tasks/tests/main.rs +++ b/taskdb/tests/main.rs @@ -7,7 +7,7 @@ #[cfg(test)] mod tests { - use std::{collections::HashMap, time::Duration}; + use std::{collections::HashMap, env, time::Duration}; use alloy_primitives::Address; use raiko_core::interfaces::{ProofRequest, ProofType}; @@ -15,7 +15,7 @@ mod tests { use rand_chacha::ChaCha8Rng; use raiko_lib::{input::BlobProofType, primitives::B256}; - use raiko_tasks::{get_task_manager, TaskManager, TaskManagerOpts, TaskStatus}; + use raiko_tasks::{get_task_manager, TaskDescriptor, TaskManager, TaskManagerOpts, TaskStatus}; fn create_random_task(rng: &mut ChaCha8Rng) -> (u64, B256, ProofRequest) { let chain_id = 100; @@ -65,6 +65,7 @@ mod tests { let mut tama = get_task_manager(&TaskManagerOpts { sqlite_file: file, max_db_size: 1_000_000, + redis_url: env::var("REDIS_URL").unwrap_or_default(), }); let (chain_id, blockhash, request) = @@ -72,6 +73,7 @@ mod tests { tama.enqueue_task( &( chain_id, + request.block_number, blockhash, request.proof_type, request.prover.to_string(), @@ -101,6 +103,7 @@ mod tests { let mut tama = get_task_manager(&TaskManagerOpts { sqlite_file: file, max_db_size: 1_000_000, + redis_url: env::var("REDIS_URL").unwrap_or_default(), }); let mut rng = ChaCha8Rng::seed_from_u64(123); @@ -112,6 +115,7 @@ mod tests { tama.enqueue_task( &( chain_id, + request.block_number, blockhash, request.proof_type, request.prover.to_string(), @@ -125,6 +129,7 @@ mod tests { .get_task_proving_status( &( chain_id, + request.block_number, blockhash, request.proof_type, request.prover.to_string(), @@ -132,7 +137,8 @@ mod tests { .into(), ) .await - .unwrap(); + .unwrap() + .0; assert_eq!(task_status.len(), 1); let status = task_status .first() @@ -151,27 +157,25 @@ mod tests { std::thread::sleep(Duration::from_millis(1)); { - let task_status = tama - .get_task_proving_status( - &(tasks[0].0, tasks[0].1, tasks[0].3, tasks[0].4.to_string()).into(), - ) - .await - .unwrap(); + let task_0_desc: &TaskDescriptor = &( + tasks[0].0, + tasks[0].2, + tasks[0].1, + tasks[0].3, + tasks[0].4.to_string(), + ) + .into(); + let task_status = tama.get_task_proving_status(task_0_desc).await.unwrap().0; println!("{task_status:?}"); tama.update_task_progress( - (tasks[0].0, tasks[0].1, tasks[0].3, tasks[0].4.to_string()).into(), + task_0_desc.clone(), TaskStatus::Cancelled_NeverStarted, None, ) .await .unwrap(); - let task_status = tama - .get_task_proving_status( - &(tasks[0].0, tasks[0].1, tasks[0].3, tasks[0].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_0_desc).await.unwrap().0; println!("{task_status:?}"); assert_eq!(task_status.len(), 2); assert_eq!(task_status[1].0, TaskStatus::Cancelled_NeverStarted); @@ -179,21 +183,20 @@ mod tests { } // ----------------------- { - tama.update_task_progress( - (tasks[1].0, tasks[1].1, tasks[1].3, tasks[1].4.to_string()).into(), - TaskStatus::WorkInProgress, - None, + let task_1_desc: &TaskDescriptor = &( + tasks[1].0, + tasks[1].2, + tasks[1].1, + tasks[1].3, + tasks[1].4.to_string(), ) - .await - .unwrap(); + .into(); + tama.update_task_progress(task_1_desc.clone(), TaskStatus::WorkInProgress, None) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[1].0, tasks[1].1, tasks[1].3, tasks[1].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_1_desc).await.unwrap().0; assert_eq!(task_status.len(), 2); assert_eq!(task_status[1].0, TaskStatus::WorkInProgress); assert_eq!(task_status[0].0, TaskStatus::Registered); @@ -202,7 +205,7 @@ mod tests { std::thread::sleep(Duration::from_millis(1)); tama.update_task_progress( - (tasks[1].0, tasks[1].1, tasks[1].3, tasks[1].4.to_string()).into(), + task_1_desc.clone(), TaskStatus::CancellationInProgress, None, ) @@ -210,12 +213,7 @@ mod tests { .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[1].0, tasks[1].1, tasks[1].3, tasks[1].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_1_desc).await.unwrap().0; assert_eq!(task_status.len(), 3); assert_eq!(task_status[2].0, TaskStatus::CancellationInProgress); assert_eq!(task_status[1].0, TaskStatus::WorkInProgress); @@ -224,21 +222,12 @@ mod tests { std::thread::sleep(Duration::from_millis(1)); - tama.update_task_progress( - (tasks[1].0, tasks[1].1, tasks[1].3, tasks[1].4.to_string()).into(), - TaskStatus::Cancelled, - None, - ) - .await - .unwrap(); + tama.update_task_progress(task_1_desc.clone(), TaskStatus::Cancelled, None) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[1].0, tasks[1].1, tasks[1].3, tasks[1].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_1_desc).await.unwrap().0; assert_eq!(task_status.len(), 4); assert_eq!(task_status[3].0, TaskStatus::Cancelled); assert_eq!(task_status[2].0, TaskStatus::CancellationInProgress); @@ -249,21 +238,20 @@ mod tests { // ----------------------- { - tama.update_task_progress( - (tasks[2].0, tasks[2].1, tasks[2].3, tasks[2].4.to_string()).into(), - TaskStatus::WorkInProgress, - None, + let task_2_desc: &TaskDescriptor = &( + tasks[2].0, + tasks[2].2, + tasks[2].1, + tasks[2].3, + tasks[2].4.to_string(), ) - .await - .unwrap(); + .into(); + tama.update_task_progress(task_2_desc.clone(), TaskStatus::WorkInProgress, None) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[2].0, tasks[2].1, tasks[2].3, tasks[2].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_2_desc).await.unwrap().0; assert_eq!(task_status.len(), 2); assert_eq!(task_status[1].0, TaskStatus::WorkInProgress); assert_eq!(task_status[0].0, TaskStatus::Registered); @@ -272,54 +260,37 @@ mod tests { std::thread::sleep(Duration::from_millis(1)); let proof: Vec<_> = (&mut rng).gen_iter::().take(128).collect(); - tama.update_task_progress( - (tasks[2].0, tasks[2].1, tasks[2].3, tasks[2].4.to_string()).into(), - TaskStatus::Success, - Some(&proof), - ) - .await - .unwrap(); + tama.update_task_progress(task_2_desc.clone(), TaskStatus::Success, Some(&proof)) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[2].0, tasks[2].1, tasks[2].3, tasks[2].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_2_desc).await.unwrap().0; assert_eq!(task_status.len(), 3); assert_eq!(task_status[2].0, TaskStatus::Success); assert_eq!(task_status[1].0, TaskStatus::WorkInProgress); assert_eq!(task_status[0].0, TaskStatus::Registered); } - assert_eq!( - proof, - tama.get_task_proof( - &(tasks[2].0, tasks[2].1, tasks[2].3, tasks[2].4.to_string()).into() - ) - .await - .unwrap() - ); + assert_eq!(proof, tama.get_task_proof(task_2_desc,).await.unwrap()); } // ----------------------- { - tama.update_task_progress( - (tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - TaskStatus::WorkInProgress, - None, + let task_3_desc: &TaskDescriptor = &( + tasks[3].0, + tasks[3].2, + tasks[3].1, + tasks[3].3, + tasks[3].4.to_string(), ) - .await - .unwrap(); + .into(); + tama.update_task_progress(task_3_desc.clone(), TaskStatus::WorkInProgress, None) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_3_desc).await.unwrap().0; assert_eq!(task_status.len(), 2); assert_eq!(task_status[1].0, TaskStatus::WorkInProgress); assert_eq!(task_status[0].0, TaskStatus::Registered); @@ -327,21 +298,12 @@ mod tests { std::thread::sleep(Duration::from_millis(1)); - tama.update_task_progress( - (tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - TaskStatus::NetworkFailure, - None, - ) - .await - .unwrap(); + tama.update_task_progress(task_3_desc.clone(), TaskStatus::NetworkFailure, None) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_3_desc).await.unwrap().0; assert_eq!(task_status.len(), 3); assert_eq!(task_status[2].0, TaskStatus::NetworkFailure); assert_eq!(task_status[1].0, TaskStatus::WorkInProgress); @@ -350,21 +312,12 @@ mod tests { std::thread::sleep(Duration::from_millis(1)); - tama.update_task_progress( - (tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - TaskStatus::WorkInProgress, - None, - ) - .await - .unwrap(); + tama.update_task_progress(task_3_desc.clone(), TaskStatus::WorkInProgress, None) + .await + .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_3_desc).await.unwrap().0; assert_eq!(task_status.len(), 4); assert_eq!(task_status[3].0, TaskStatus::WorkInProgress); assert_eq!(task_status[2].0, TaskStatus::NetworkFailure); @@ -376,7 +329,7 @@ mod tests { let proof: Vec<_> = (&mut rng).gen_iter::().take(128).collect(); tama.update_task_progress( - (tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), + task_3_desc.clone(), TaskStatus::Success, Some(proof.as_slice()), ) @@ -384,12 +337,7 @@ mod tests { .unwrap(); { - let task_status = tama - .get_task_proving_status( - &(tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into(), - ) - .await - .unwrap(); + let task_status = tama.get_task_proving_status(task_3_desc).await.unwrap().0; assert_eq!(task_status.len(), 5); assert_eq!(task_status[4].0, TaskStatus::Success); assert_eq!(task_status[3].0, TaskStatus::WorkInProgress); @@ -398,14 +346,7 @@ mod tests { assert_eq!(task_status[0].0, TaskStatus::Registered); } - assert_eq!( - proof, - tama.get_task_proof( - &(tasks[3].0, tasks[3].1, tasks[3].3, tasks[3].4.to_string()).into() - ) - .await - .unwrap() - ); + assert_eq!(proof, tama.get_task_proof(task_3_desc,).await.unwrap()); } } }