diff --git a/Cargo.lock b/Cargo.lock index f27bb55bb..d845137bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -116,6 +116,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -903,19 +904,6 @@ dependencies = [ "rustc_version 0.4.1", ] -[[package]] -name = "asynchronous-codec" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" -dependencies = [ - "bytes 1.8.0", - "futures-sink", - "futures-util", - "memchr", - "pin-project-lite 0.2.15", -] - [[package]] name = "asynchronous-codec" version = "0.7.0" @@ -938,6 +926,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "atomic" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" +dependencies = [ + "bytemuck", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1267,7 +1264,7 @@ dependencies = [ "hotshot", "hotshot-builder-api", "hotshot-builder-core", - "hotshot-events-service", + "hotshot-events-service 0.1.56", "hotshot-state-prover", "hotshot-types", "jf-signature 0.2.0", @@ -1320,6 +1317,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "bytemuck" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "byteorder" version = "1.5.0" @@ -1718,6 +1735,17 @@ dependencies = [ "vbs", ] +[[package]] +name = "coarsetime" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4252bf230cb600c19826a575b31c8c9c84c6f11acfab6dfcad2e941b10b6f8e2" +dependencies = [ + "libc", + "wasix", + "wasm-bindgen", +] + [[package]] name = "coins-bip32" version = "0.8.7" @@ -3991,8 +4019,8 @@ dependencies = [ [[package]] name = "hotshot" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-broadcast", @@ -4035,7 +4063,7 @@ dependencies = [ [[package]] name = "hotshot-builder-api" version = "0.1.7" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "async-trait", "clap", @@ -4053,14 +4081,17 @@ dependencies = [ [[package]] name = "hotshot-builder-core" -version = "0.1.57" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.57#cf9d2cbf154809a31bcf2dccc1218ee9c6875f1e" +version = "0.1.58" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core//?branch=ma%2Fhotshot-0.5.83#8b6361e251840bb601f7af893b9bd868797c6362" dependencies = [ "anyhow", "async-broadcast", "async-lock 3.4.0", "async-trait", + "atomic", "bincode", + "bytemuck", + "coarsetime", "committable", "derive_more 1.0.0", "futures", @@ -4069,6 +4100,7 @@ dependencies = [ "hotshot-types", "lru 0.12.5", "marketplace-builder-shared", + "once_cell", "serde", "sha2 0.10.8", "tagged-base64", @@ -4099,7 +4131,7 @@ dependencies = [ "jf-pcs", "jf-plonk", "jf-utils", - "libp2p", + "libp2p 0.53.2", "num-bigint", "num-traits", "rand 0.8.5", @@ -4133,10 +4165,37 @@ dependencies = [ "vbs", ] +[[package]] +name = "hotshot-events-service" +version = "0.1.57" +source = "git+https://github.com/EspressoSystems/hotshot-events-service//?branch=ma%2Fhotshot-0.5.83#89b06b6007e88fd20bfc855d3f400b8fa045f379" +dependencies = [ + "async-broadcast", + "async-lock 2.8.0", + "async-trait", + "clap", + "derivative", + "derive_more 0.99.18", + "either", + "futures", + "hotshot-types", + "libp2p-identity", + "rand 0.8.5", + "serde", + "snafu 0.8.5", + "tagged-base64", + "tide-disco", + "tokio", + "toml 0.8.19", + "tracing", + "tracing-test", + "vbs", +] + [[package]] name = "hotshot-example-types" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4160,8 +4219,8 @@ dependencies = [ [[package]] name = "hotshot-fakeapi" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4178,8 +4237,8 @@ dependencies = [ [[package]] name = "hotshot-macros" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "derive_builder", "proc-macro2", @@ -4189,8 +4248,8 @@ dependencies = [ [[package]] name = "hotshot-orchestrator" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4267,8 +4326,8 @@ dependencies = [ [[package]] name = "hotshot-stake-table" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "ark-bn254", "ark-ed-on-bn254", @@ -4329,8 +4388,8 @@ dependencies = [ [[package]] name = "hotshot-task" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "async-broadcast", "async-trait", @@ -4342,8 +4401,8 @@ dependencies = [ [[package]] name = "hotshot-task-impls" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-broadcast", @@ -4376,8 +4435,8 @@ dependencies = [ [[package]] name = "hotshot-testing" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-broadcast", @@ -4418,7 +4477,7 @@ dependencies = [ [[package]] name = "hotshot-types" version = "0.1.11" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "ark-bn254", @@ -5568,20 +5627,44 @@ dependencies = [ "futures-timer", "getrandom 0.2.15", "instant", - "libp2p-allow-block-list", + "libp2p-allow-block-list 0.3.0", + "libp2p-connection-limits 0.3.1", + "libp2p-core 0.41.3", + "libp2p-gossipsub 0.46.1", + "libp2p-identity", + "libp2p-kad 0.45.3", + "libp2p-swarm 0.44.2", + "multiaddr", + "pin-project", + "rw-stream-sink", + "thiserror 1.0.69", +] + +[[package]] +name = "libp2p" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbe80f9c7e00526cd6b838075b9c171919404a4732cb2fa8ece0a093223bfc4" +dependencies = [ + "bytes 1.8.0", + "either", + "futures", + "futures-timer", + "getrandom 0.2.15", + "libp2p-allow-block-list 0.4.0", "libp2p-autonat", - "libp2p-connection-limits", - "libp2p-core", + "libp2p-connection-limits 0.4.0", + "libp2p-core 0.42.0", "libp2p-dns", - "libp2p-gossipsub", + "libp2p-gossipsub 0.47.0", "libp2p-identify", "libp2p-identity", - "libp2p-kad", + "libp2p-kad 0.46.2", "libp2p-mdns", "libp2p-metrics", "libp2p-quic", "libp2p-request-response", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "libp2p-tcp", "libp2p-upnp", "multiaddr", @@ -5596,31 +5679,49 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "107b238b794cb83ab53b74ad5dcf7cca3200899b72fe662840cfb52f5b0a32e6" dependencies = [ - "libp2p-core", + "libp2p-core 0.41.3", + "libp2p-identity", + "libp2p-swarm 0.44.2", + "void", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1027ccf8d70320ed77e984f273bc8ce952f623762cb9bf2d126df73caef8041" +dependencies = [ + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "void", ] [[package]] name = "libp2p-autonat" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95151726170e41b591735bf95c42b888fe4aa14f65216a9fbf0edcc04510586" +checksum = "a083675f189803d0682a2726131628e808144911dad076858bfbe30b13065499" dependencies = [ "async-trait", - "asynchronous-codec 0.6.2", + "asynchronous-codec", + "bytes 1.8.0", + "either", "futures", + "futures-bounded", "futures-timer", - "instant", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", "libp2p-request-response", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "quick-protobuf", - "quick-protobuf-codec 0.2.0", + "quick-protobuf-codec", "rand 0.8.5", + "rand_core 0.6.4", + "thiserror 1.0.69", "tracing", + "void", + "web-time", ] [[package]] @@ -5629,9 +5730,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7cd50a78ccfada14de94cbacd3ce4b0138157f376870f13d3a8422cd075b4fd" dependencies = [ - "libp2p-core", + "libp2p-core 0.41.3", + "libp2p-identity", + "libp2p-swarm 0.44.2", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d003540ee8baef0d254f7b6bfd79bac3ddf774662ca0abf69186d517ef82ad8" +dependencies = [ + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "void", ] @@ -5664,16 +5777,45 @@ dependencies = [ "web-time", ] +[[package]] +name = "libp2p-core" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a61f26c83ed111104cd820fe9bc3aaabbac5f1652a1d213ed6e900b7918a1298" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "libp2p-identity", + "multiaddr", + "multihash", + "multistream-select", + "once_cell", + "parking_lot", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "serde", + "smallvec", + "thiserror 1.0.69", + "tracing", + "unsigned-varint 0.8.0", + "void", + "web-time", +] + [[package]] name = "libp2p-dns" -version = "0.41.1" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17cbcf7160ff35c3e8e560de4a068fe9d6cb777ea72840e48eb76ff9576c4b6" +checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ "async-trait", "futures", "hickory-resolver", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", "parking_lot", "smallvec", @@ -5686,7 +5828,7 @@ version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d665144a616dadebdc5fff186b1233488cdcd8bfb1223218ff084b6d052c94f7" dependencies = [ - "asynchronous-codec 0.7.0", + "asynchronous-codec", "base64 0.21.7", "byteorder", "bytes 1.8.0", @@ -5697,12 +5839,12 @@ dependencies = [ "getrandom 0.2.15", "hex_fmt", "instant", - "libp2p-core", + "libp2p-core 0.41.3", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.44.2", "prometheus-client", "quick-protobuf", - "quick-protobuf-codec 0.3.1", + "quick-protobuf-codec", "rand 0.8.5", "regex", "serde", @@ -5712,23 +5854,55 @@ dependencies = [ "void", ] +[[package]] +name = "libp2p-gossipsub" +version = "0.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4e830fdf24ac8c444c12415903174d506e1e077fbe3875c404a78c5935a8543" +dependencies = [ + "asynchronous-codec", + "base64 0.22.1", + "byteorder", + "bytes 1.8.0", + "either", + "fnv", + "futures", + "futures-ticker", + "getrandom 0.2.15", + "hex_fmt", + "libp2p-core 0.42.0", + "libp2p-identity", + "libp2p-swarm 0.45.1", + "prometheus-client", + "quick-protobuf", + "quick-protobuf-codec", + "rand 0.8.5", + "regex", + "serde", + "sha2 0.10.8", + "smallvec", + "tracing", + "void", + "web-time", +] + [[package]] name = "libp2p-identify" -version = "0.44.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5d635ebea5ca0c3c3e77d414ae9b67eccf2a822be06091b9c1a0d13029a1e2f" +checksum = "1711b004a273be4f30202778856368683bd9a83c4c7dcc8f848847606831a4e3" dependencies = [ - "asynchronous-codec 0.7.0", + "asynchronous-codec", "either", "futures", "futures-bounded", "futures-timer", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "lru 0.12.5", "quick-protobuf", - "quick-protobuf-codec 0.3.1", + "quick-protobuf-codec", "smallvec", "thiserror 1.0.69", "tracing", @@ -5763,7 +5937,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc5767727d062c4eac74dd812c998f0e488008e82cce9c33b463d38423f9ad2" dependencies = [ "arrayvec", - "asynchronous-codec 0.7.0", + "asynchronous-codec", "bytes 1.8.0", "either", "fnv", @@ -5771,11 +5945,40 @@ dependencies = [ "futures-bounded", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.41.3", + "libp2p-identity", + "libp2p-swarm 0.44.2", + "quick-protobuf", + "quick-protobuf-codec", + "rand 0.8.5", + "serde", + "sha2 0.10.8", + "smallvec", + "thiserror 1.0.69", + "tracing", + "uint", + "void", +] + +[[package]] +name = "libp2p-kad" +version = "0.46.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced237d0bd84bbebb7c2cad4c073160dacb4fe40534963c32ed6d4c6bb7702a3" +dependencies = [ + "arrayvec", + "asynchronous-codec", + "bytes 1.8.0", + "either", + "fnv", + "futures", + "futures-bounded", + "futures-timer", + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "quick-protobuf", - "quick-protobuf-codec 0.3.1", + "quick-protobuf-codec", "rand 0.8.5", "serde", "sha2 0.10.8", @@ -5784,21 +5987,22 @@ dependencies = [ "tracing", "uint", "void", + "web-time", ] [[package]] name = "libp2p-mdns" -version = "0.45.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49007d9a339b3e1d7eeebc4d67c05dbf23d300b7d091193ec2d3f26802d7faf2" +checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", "futures", "hickory-proto", "if-watch", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "rand 0.8.5", "smallvec", "socket2 0.5.7", @@ -5809,26 +6013,26 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.14.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdac91ae4f291046a3b2660c039a2830c931f84df2ee227989af92f7692d3357" +checksum = "77ebafa94a717c8442d8db8d3ae5d1c6a15e30f2d347e0cd31d057ca72e42566" dependencies = [ "futures", - "instant", - "libp2p-core", - "libp2p-gossipsub", + "libp2p-core 0.42.0", + "libp2p-gossipsub 0.47.0", "libp2p-identify", "libp2p-identity", - "libp2p-kad", - "libp2p-swarm", + "libp2p-kad 0.46.2", + "libp2p-swarm 0.45.1", "pin-project", "prometheus-client", + "web-time", ] [[package]] name = "libp2p-networking" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "anyhow", "async-trait", @@ -5841,7 +6045,7 @@ dependencies = [ "futures", "hotshot-types", "lazy_static", - "libp2p", + "libp2p 0.54.1", "libp2p-identity", "libp2p-swarm-derive", "pin-project", @@ -5854,15 +6058,15 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c67296ad4e092e23f92aea3d2bdb6f24eab79c0929ed816dfb460ea2f4567d2b" +checksum = "46352ac5cd040c70e88e7ff8257a2ae2f891a4076abad2c439584a31c15fd24e" dependencies = [ "bytes 1.8.0", "futures", "futures-timer", "if-watch", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", "libp2p-tls", "parking_lot", @@ -5878,24 +6082,24 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.26.3" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c314fe28368da5e3a262553fb0ad575c1c8934c461e10de10265551478163836" +checksum = "1356c9e376a94a75ae830c42cdaea3d4fe1290ba409a22c809033d1b7dcab0a6" dependencies = [ "async-trait", "cbor4ii", "futures", "futures-bounded", "futures-timer", - "instant", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "rand 0.8.5", "serde", "smallvec", "tracing", "void", + "web-time", ] [[package]] @@ -5909,7 +6113,28 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.41.3", + "libp2p-identity", + "lru 0.12.5", + "multistream-select", + "once_cell", + "rand 0.8.5", + "smallvec", + "tracing", + "void", +] + +[[package]] +name = "libp2p-swarm" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7dd6741793d2c1fb2088f67f82cf07261f25272ebe3c0b0c311e0c6b50e851a" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "libp2p-core 0.42.0", "libp2p-identity", "libp2p-swarm-derive", "lru 0.12.5", @@ -5920,13 +6145,14 @@ dependencies = [ "tokio", "tracing", "void", + "web-time", ] [[package]] name = "libp2p-swarm-derive" -version = "0.34.2" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5daceb9dd908417b6dfcfe8e94098bc4aac54500c282e78120b885dadc09b999" +checksum = "206e0aa0ebe004d778d79fb0966aa0de996c19894e2c0605ba2f8524dd4443d8" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -5936,15 +6162,15 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2460fc2748919adff99ecbc1aab296e4579e41f374fb164149bd2c9e529d4c" +checksum = "ad964f312c59dcfcac840acd8c555de8403e295d39edf96f5240048b5fcaa314" dependencies = [ "futures", "futures-timer", "if-watch", "libc", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", "socket2 0.5.7", "tokio", @@ -5953,13 +6179,13 @@ dependencies = [ [[package]] name = "libp2p-tls" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b7b831e55ce2aa6c354e6861a85fdd4dd0a2b97d5e276fabac0e4810a71776" +checksum = "47b23dddc2b9c355f73c1e36eb0c3ae86f7dc964a3715f0731cfad352db4d847" dependencies = [ "futures", "futures-rustls", - "libp2p-core", + "libp2p-core 0.42.0", "libp2p-identity", "rcgen 0.11.3", "ring 0.17.8", @@ -5972,15 +6198,15 @@ dependencies = [ [[package]] name = "libp2p-upnp" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccf04b0e3ff3de52d07d5fd6c3b061d0e7f908ffc683c32d9638caedce86fc8" +checksum = "01bf2d1b772bd3abca049214a3304615e6a36fa6ffc742bdd1ba774486200b8f" dependencies = [ "futures", "futures-timer", "igd-next", - "libp2p-core", - "libp2p-swarm", + "libp2p-core 0.42.0", + "libp2p-swarm 0.45.1", "tokio", "tracing", "void", @@ -6185,7 +6411,7 @@ dependencies = [ "futures", "hotshot", "hotshot-builder-api", - "hotshot-events-service", + "hotshot-events-service 0.1.56", "hotshot-orchestrator", "hotshot-query-service", "hotshot-stake-table", @@ -6210,8 +6436,8 @@ dependencies = [ [[package]] name = "marketplace-builder-core" -version = "0.1.57" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.57#cf9d2cbf154809a31bcf2dccc1218ee9c6875f1e" +version = "0.1.58" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core//?branch=ma%2Fhotshot-0.5.83#8b6361e251840bb601f7af893b9bd868797c6362" dependencies = [ "anyhow", "async-broadcast", @@ -6223,7 +6449,6 @@ dependencies = [ "hotshot", "hotshot-builder-api", "hotshot-types", - "lru 0.12.5", "marketplace-builder-shared", "sha2 0.10.8", "tagged-base64", @@ -6236,8 +6461,8 @@ dependencies = [ [[package]] name = "marketplace-builder-shared" -version = "0.1.57" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.57#cf9d2cbf154809a31bcf2dccc1218ee9c6875f1e" +version = "0.1.58" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core//?branch=ma%2Fhotshot-0.5.83#8b6361e251840bb601f7af893b9bd868797c6362" dependencies = [ "anyhow", "async-broadcast", @@ -6252,16 +6477,20 @@ dependencies = [ "hex", "hotshot", "hotshot-builder-api", - "hotshot-events-service", + "hotshot-events-service 0.1.57", "hotshot-example-types", "hotshot-task-impls", "hotshot-testing", "hotshot-types", "jf-vid", "nonempty-collections", + "once_cell", + "quick_cache", "rand 0.8.5", "serde", + "sha2 0.10.8", "surf-disco", + "thiserror 2.0.3", "tokio", "tracing", "tracing-subscriber 0.3.18", @@ -6283,7 +6512,7 @@ dependencies = [ "espresso-types", "futures", "hotshot", - "hotshot-events-service", + "hotshot-events-service 0.1.56", "hotshot-query-service", "hotshot-types", "marketplace-solver", @@ -7562,7 +7791,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.87", @@ -7620,28 +7849,27 @@ dependencies = [ [[package]] name = "quick-protobuf-codec" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98" +checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" dependencies = [ - "asynchronous-codec 0.6.2", + "asynchronous-codec", "bytes 1.8.0", "quick-protobuf", "thiserror 1.0.69", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", ] [[package]] -name = "quick-protobuf-codec" -version = "0.3.1" +name = "quick_cache" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" +checksum = "7d7c94f8935a9df96bb6380e8592c70edf497a643f94bd23b2f76b399385dbf4" dependencies = [ - "asynchronous-codec 0.7.0", - "bytes 1.8.0", - "quick-protobuf", - "thiserror 1.0.69", - "unsigned-varint 0.8.0", + "ahash 0.8.11", + "equivalent", + "hashbrown 0.14.5", + "parking_lot", ] [[package]] @@ -8636,7 +8864,7 @@ dependencies = [ "futures", "hotshot", "hotshot-contract-adapter", - "hotshot-events-service", + "hotshot-events-service 0.1.56", "hotshot-example-types", "hotshot-orchestrator", "hotshot-query-service", @@ -8651,7 +8879,7 @@ dependencies = [ "jf-rescue", "jf-signature 0.2.0", "jf-vid", - "libp2p", + "libp2p 0.53.2", "libp2p-networking", "marketplace-builder-core", "marketplace-builder-shared", @@ -9097,7 +9325,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ - "heck 0.5.0", + "heck 0.4.1", "proc-macro2", "quote", "syn 2.0.87", @@ -10644,10 +10872,6 @@ name = "unsigned-varint" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" -dependencies = [ - "asynchronous-codec 0.6.2", - "bytes 1.8.0", -] [[package]] name = "unsigned-varint" @@ -10721,8 +10945,8 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.82#ecfd22a4b3d20b7cf89282b172f178ab2ebf81a4" +version = "0.5.83" +source = "git+https://github.com/EspressoSystems/HotShot//?branch=bump%2F0.5.83#f9bf48ebf53a5fa934614a13f4cbb3069c1e0fda" dependencies = [ "tracing", ] @@ -10906,6 +11130,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +[[package]] +name = "wasix" +version = "0.12.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" +dependencies = [ + "wasi 0.11.0+wasi-snapshot-preview1", +] + [[package]] name = "wasm-bindgen" version = "0.2.95" diff --git a/Cargo.toml b/Cargo.toml index 630d32d08..23cbe53fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -168,3 +168,27 @@ opt-level = 3 opt-level = 3 [profile.test.package.diff-test-hotshot] opt-level = 3 + +[patch.'https://github.com/EspressoSystems/hotshot.git'] +hotshot = { git = 'https://github.com/EspressoSystems/HotShot//', branch = 'bump/0.5.83' } +hotshot-builder-api = { git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +hotshot-orchestrator ={ git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +hotshot-stake-table = { git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +hotshot-task = { git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +hotshot-task-impls = { git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +hotshot-testing = { git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +hotshot-types ={ git = 'https://github.com/EspressoSystems/hotshot//', branch = 'bump/0.5.83' } +libp2p-networking = { git = "https://github.com/EspressoSystems/hotshot//", branch = 'bump/0.5.83' } +hotshot-example-types = { git = "https://github.com/EspressoSystems/hotshot//", branch = 'bump/0.5.83' } +utils = { git = "https://github.com/EspressoSystems/hotshot//", branch = 'bump/0.5.83' } + +[patch.'https://github.com/EspressoSystems/marketplace-builder-core.git'] +marketplace-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core//", branch = "ma/hotshot-0.5.83" } +marketplace-builder-shared = { git = "https://github.com/EspressoSystems/marketplace-builder-core//", branch = "ma/hotshot-0.5.83" } +hotshot-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core//", branch = "ma/hotshot-0.5.83" } + +[patch.'https://github.com/EspressoSystems/hotshot-events-service.git'] +hotshot-events-service = { git = "https://github.com/EspressoSystems/hotshot-events-service//", branch = "ma/hotshot-0.5.83" } + +# patch +# https://github.com/rust-lang/cargo/issues/5478 diff --git a/builder/src/non_permissioned.rs b/builder/src/non_permissioned.rs index e07509d6d..83b751bb8 100644 --- a/builder/src/non_permissioned.rs +++ b/builder/src/non_permissioned.rs @@ -145,6 +145,8 @@ impl BuilderConfig { vid_commitment, leaf_commit: fake_commitment(), builder_commitment, + tx_count: todo!(), + last_nonempty_view: todo!(), }, decide_receiver, da_receiver, diff --git a/marketplace-builder/src/builder.rs b/marketplace-builder/src/builder.rs index f0daf5e31..5f42783ca 100644 --- a/marketplace-builder/src/builder.rs +++ b/marketplace-builder/src/builder.rs @@ -1,4 +1,4 @@ -use std::{collections::HashSet, num::NonZeroUsize, time::Duration}; +use std::{arch::global_asm, collections::HashSet, num::NonZeroUsize, time::Duration}; use anyhow::Context; use async_broadcast::{ @@ -169,15 +169,16 @@ impl BuilderConfig { }; // create the global state - let global_state: Arc> = GlobalState::new( - (builder_key_pair.fee_account(), builder_key_pair), - api_timeout, - maximize_txns_count_timeout_duration, - Duration::from_secs(60), - tx_channel_capacity.get(), - base_fee.as_u64().expect("Base fee too high"), - hooks, - ); + // let global_state: Arc> = GlobalState::new( + // (builder_key_pair.fee_account(), builder_key_pair), + // api_timeout, + // maximize_txns_count_timeout_duration, + // Duration::from_secs(60), + // tx_channel_capacity.get(), + // base_fee.as_u64().expect("Base fee too high"), + // hooks, + // ); + let global_state = todo!(); Self::start_service( Arc::clone(&global_state), diff --git a/sequencer/src/persistence/fs.rs b/sequencer/src/persistence/fs.rs index 43e5541aa..b0c65815d 100644 --- a/sequencer/src/persistence/fs.rs +++ b/sequencer/src/persistence/fs.rs @@ -313,7 +313,7 @@ impl Inner { let info = LeafInfo { leaf: leaf.into(), - vid_share, + vid_share: vid_share.map(Into::into), // Note: the following fields are not used in Decide event processing, and should be // removed. For now, we just default them. diff --git a/sequencer/src/persistence/sql.rs b/sequencer/src/persistence/sql.rs index 61c624355..ec64b2e6d 100644 --- a/sequencer/src/persistence/sql.rs +++ b/sequencer/src/persistence/sql.rs @@ -746,7 +746,7 @@ impl Persistence { LeafInfo { leaf: leaf.into(), - vid_share, + vid_share: vid_share.map(Into::into), // Note: the following fields are not used in Decide event processing, and // should be removed. For now, we just default them. state: Default::default(), @@ -1508,6 +1508,7 @@ mod test { use futures::stream::TryStreamExt; use hotshot_example_types::node_types::TestVersions; use hotshot_types::{ + data::EpochNumber, drb::{INITIAL_DRB_RESULT, INITIAL_DRB_SEED_INPUT}, simple_certificate::QuorumCertificate, traits::{block_contents::vid_commitment, signature_key::SignatureKey, EncodeBytes}, @@ -1540,6 +1541,7 @@ mod test { view_change_evidence: None, drb_seed: INITIAL_DRB_SEED_INPUT, drb_result: INITIAL_DRB_RESULT, + next_epoch_justify_qc: None, }, signature, _pd: Default::default(), @@ -1629,6 +1631,7 @@ mod test { view_change_evidence: None, drb_seed: INITIAL_DRB_SEED_INPUT, drb_result: INITIAL_DRB_RESULT, + next_epoch_justify_qc: None, }; let quorum_proposal_signature = BLSPubKey::sign(&privkey, &bincode::serialize(&quorum_proposal).unwrap()) @@ -1646,6 +1649,7 @@ mod test { encoded_transactions: leaf_payload_bytes_arc, metadata: leaf_payload.ns_table().clone(), view_number: ViewNumber::new(0), + epoch: EpochNumber::new(1), }, signature: block_payload_signature, _pd: Default::default(), @@ -1753,6 +1757,7 @@ mod test { view_change_evidence: None, drb_seed: INITIAL_DRB_SEED_INPUT, drb_result: INITIAL_DRB_RESULT, + next_epoch_justify_qc: None, }; let quorum_proposal_signature = BLSPubKey::sign(&privkey, &bincode::serialize(&quorum_proposal).unwrap()) @@ -1770,6 +1775,7 @@ mod test { encoded_transactions: leaf_payload_bytes_arc.clone(), metadata: leaf_payload.ns_table().clone(), view_number: data_view, + epoch: EpochNumber::new(1), }, signature: block_payload_signature, _pd: Default::default(), diff --git a/sequencer/src/proposal_fetcher.rs b/sequencer/src/proposal_fetcher.rs index 5c753ece8..48b7ba6a2 100644 --- a/sequencer/src/proposal_fetcher.rs +++ b/sequencer/src/proposal_fetcher.rs @@ -10,7 +10,7 @@ use espresso_types::{parse_duration, v0::traits::SequencerPersistence, PubKey, V use futures::stream::StreamExt; use hotshot::types::EventType; use hotshot_types::{ - data::{EpochNumber, Leaf2, ViewNumber}, + data::{Leaf2, ViewNumber}, traits::{ metrics::{Counter, Gauge, Metrics}, network::ConnectedNetwork, @@ -190,11 +190,7 @@ where } } - let future = - self.consensus - .read() - .await - .request_proposal(view, EpochNumber::genesis(), leaf)?; + let future = self.consensus.read().await.request_proposal(view, leaf)?; let proposal = timeout(self.cfg.fetch_timeout, future) .await .context("timed out fetching proposal")? diff --git a/types/src/v0/mod.rs b/types/src/v0/mod.rs index da643b268..32e361a03 100644 --- a/types/src/v0/mod.rs +++ b/types/src/v0/mod.rs @@ -143,6 +143,8 @@ impl NodeType for SeqTypes { type Membership = EpochCommittees; type BuilderSignatureKey = FeeAccount; type AuctionResult = SolverAuctionResults; + // TODO this associated constant will be removed to make it configurable + const EPOCH_HEIGHT: u64 = 42; } #[derive(Clone, Default, Debug, Copy)] diff --git a/types/src/v0/traits.rs b/types/src/v0/traits.rs index 17b33ad7a..4728c644e 100644 --- a/types/src/v0/traits.rs +++ b/types/src/v0/traits.rs @@ -10,11 +10,14 @@ use hotshot::{types::EventType, HotShotInitializer}; use hotshot_types::{ consensus::CommitmentMap, data::{ - DaProposal, EpochNumber, QuorumProposal, QuorumProposal2, VidDisperseShare, ViewNumber, + DaProposal, DaProposal2, EpochNumber, QuorumProposal, QuorumProposal2, VidDisperseShare, + VidDisperseShare2, ViewNumber, }, event::{HotShotAction, LeafInfo}, message::{convert_proposal, Proposal}, - simple_certificate::{QuorumCertificate, QuorumCertificate2, UpgradeCertificate}, + simple_certificate::{ + NextEpochQuorumCertificate2, QuorumCertificate, QuorumCertificate2, UpgradeCertificate, + }, traits::{ node_implementation::{ConsensusTime, Versions}, storage::Storage, @@ -493,6 +496,9 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { ViewNumber::genesis() } }; + + // TODO load from storage + let next_epoch_high_qc = None; let (leaf, high_qc, anchor_view) = match self .load_anchor_leaf() .await @@ -581,6 +587,7 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { highest_voted_view, saved_proposals, high_qc, + next_epoch_high_qc, upgrade_certificate, undecided_leaves.into_values().collect(), undecided_state, @@ -726,6 +733,14 @@ impl Storage for Arc

{ (**self).append_vid(proposal).await } + async fn append_vid2( + &self, + proposal: &Proposal>, + ) -> anyhow::Result<()> { + let proposal_1 = convert_proposal(proposal.clone()); + (**self).append_vid(&proposal_1).await + } + async fn append_da( &self, proposal: &Proposal>, @@ -734,6 +749,15 @@ impl Storage for Arc

{ (**self).append_da(proposal, vid_commit).await } + async fn append_da2( + &self, + proposal: &Proposal>, + vid_commit: ::Commit, + ) -> anyhow::Result<()> { + let proposal_1 = convert_proposal(proposal.clone()); + (**self).append_da(&proposal_1, vid_commit).await + } + async fn record_action(&self, view: ViewNumber, action: HotShotAction) -> anyhow::Result<()> { (**self).record_action(view, action).await } @@ -809,6 +833,14 @@ impl Storage for Arc

{ .migrate_consensus(migrate_leaf, migrate_proposal) .await } + + async fn update_next_epoch_high_qc2( + &self, + _high_qc: NextEpochQuorumCertificate2, + ) -> anyhow::Result<()> { + // TODO + Ok(()) + } } /// Data that can be deserialized from a subslice of namespace payload bytes.