Parcourir la source

runtime: Port to wasmer-6.0

parazyd il y a 1 an
Parent
commit
c7d9414bf2
3 fichiers modifiés avec 71 ajouts et 171 suppressions
  1. 66 166
      Cargo.lock
  2. 3 3
      Cargo.toml
  3. 2 2
      src/runtime/vm_runtime.rs

+ 66 - 166
Cargo.lock

@@ -102,7 +102,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "cfg-if 1.0.0",
  "once_cell",
  "once_cell",
  "version_check",
  "version_check",
- "zerocopy",
+ "zerocopy 0.7.35",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -271,9 +271,6 @@ name = "arbitrary"
 version = "1.4.1"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
 checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
-dependencies = [
- "derive_arbitrary",
-]
 
 
 [[package]]
 [[package]]
 name = "arg"
 name = "arg"
@@ -1156,27 +1153,6 @@ version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9"
 checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9"
 
 
-[[package]]
-name = "bzip2"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
-dependencies = [
- "bzip2-sys",
- "libc",
-]
-
-[[package]]
-name = "bzip2-sys"
-version = "0.1.12+1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72ebc2f1a417f01e1da30ef264ee86ae31d2dcd2d603ea283d3c244a883ca2a9"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
 [[package]]
 [[package]]
 name = "camino"
 name = "camino"
 version = "1.1.9"
 version = "1.1.9"
@@ -1738,21 +1714,6 @@ version = "0.110.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "56b08621c00321efcfa3eee6a3179adc009e21ea8d24ca7adc3c326184bc3f48"
 checksum = "56b08621c00321efcfa3eee6a3179adc009e21ea8d24ca7adc3c326184bc3f48"
 
 
-[[package]]
-name = "crc"
-version = "3.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
-dependencies = [
- "crc-catalog",
-]
-
-[[package]]
-name = "crc-catalog"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
-
 [[package]]
 [[package]]
 name = "crc32fast"
 name = "crc32fast"
 version = "1.4.2"
 version = "1.4.2"
@@ -2495,12 +2456,6 @@ dependencies = [
  "url",
  "url",
 ]
 ]
 
 
-[[package]]
-name = "deflate64"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b"
-
 [[package]]
 [[package]]
 name = "der"
 name = "der"
 version = "0.7.9"
 version = "0.7.9"
@@ -2578,17 +2533,6 @@ dependencies = [
  "void",
  "void",
 ]
 ]
 
 
-[[package]]
-name = "derive_arbitrary"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.98",
-]
-
 [[package]]
 [[package]]
 name = "derive_builder"
 name = "derive_builder"
 version = "0.9.0"
 version = "0.9.0"
@@ -4576,6 +4520,12 @@ dependencies = [
  "vcpkg",
  "vcpkg",
 ]
 ]
 
 
+[[package]]
+name = "libunwind"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c6639b70a7ce854b79c70d7e83f16b5dc0137cc914f3d7d03803b513ecc67ac"
+
 [[package]]
 [[package]]
 name = "libz-sys"
 name = "libz-sys"
 version = "1.1.21"
 version = "1.1.21"
@@ -4638,12 +4588,6 @@ dependencies = [
  "scopeguard",
  "scopeguard",
 ]
 ]
 
 
-[[package]]
-name = "lockfree-object-pool"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e"
-
 [[package]]
 [[package]]
 name = "log"
 name = "log"
 version = "0.4.26"
 version = "0.4.26"
@@ -4654,16 +4598,6 @@ dependencies = [
  "value-bag",
  "value-bag",
 ]
 ]
 
 
-[[package]]
-name = "lzma-rs"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e"
-dependencies = [
- "byteorder",
- "crc",
-]
-
 [[package]]
 [[package]]
 name = "lzma-sys"
 name = "lzma-sys"
 version = "0.1.20"
 version = "0.1.20"
@@ -4684,6 +4618,17 @@ dependencies = [
  "libc",
  "libc",
 ]
 ]
 
 
+[[package]]
+name = "macho-unwind-info"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb4bdc8b0ce69932332cf76d24af69c3a155242af95c226b2ab6c2e371ed1149"
+dependencies = [
+ "thiserror 2.0.11",
+ "zerocopy 0.8.20",
+ "zerocopy-derive 0.8.20",
+]
+
 [[package]]
 [[package]]
 name = "matchers"
 name = "matchers"
 version = "0.1.0"
 version = "0.1.0"
@@ -5374,16 +5319,6 @@ dependencies = [
  "rustc_version 0.4.1",
  "rustc_version 0.4.1",
 ]
 ]
 
 
-[[package]]
-name = "pbkdf2"
-version = "0.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
-dependencies = [
- "digest 0.10.7",
- "hmac 0.12.1",
-]
-
 [[package]]
 [[package]]
 name = "pem"
 name = "pem"
 version = "3.0.5"
 version = "3.0.5"
@@ -5677,7 +5612,7 @@ version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
 checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
 dependencies = [
 dependencies = [
- "zerocopy",
+ "zerocopy 0.7.35",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -9375,17 +9310,19 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmer"
 name = "wasmer"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14e31f8a2e0568af0f661825a70f1762098d1c5b0552c4d7205a3e57badf3ae6"
+checksum = "f1ae107044759408d9720bfa858590ec4c859dccfbd8746f11336cfe2c306786"
 dependencies = [
 dependencies = [
  "bindgen 0.70.1",
  "bindgen 0.70.1",
  "bytes 1.10.0",
  "bytes 1.10.0",
  "cfg-if 1.0.0",
  "cfg-if 1.0.0",
  "cmake",
  "cmake",
- "indexmap 1.9.3",
+ "derive_more 1.0.0",
+ "indexmap 2.7.1",
  "js-sys",
  "js-sys",
  "more-asserts",
  "more-asserts",
+ "paste",
  "rustc-demangle",
  "rustc-demangle",
  "serde",
  "serde",
  "serde-wasm-bindgen",
  "serde-wasm-bindgen",
@@ -9398,29 +9335,29 @@ dependencies = [
  "wasm-bindgen",
  "wasm-bindgen",
  "wasmer-compiler",
  "wasmer-compiler",
  "wasmer-compiler-cranelift",
  "wasmer-compiler-cranelift",
+ "wasmer-compiler-singlepass",
  "wasmer-derive",
  "wasmer-derive",
  "wasmer-types",
  "wasmer-types",
  "wasmer-vm",
  "wasmer-vm",
+ "wasmparser 0.224.1",
  "wat",
  "wat",
  "windows-sys 0.59.0",
  "windows-sys 0.59.0",
- "xz",
- "zip",
 ]
 ]
 
 
 [[package]]
 [[package]]
 name = "wasmer-compiler"
 name = "wasmer-compiler"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a032262211c8323c9ddb8226e2ecfa410e1e1ba8149c905510111b981ffb5aa"
+checksum = "532c1437cce4be2d170fca0b6af78d29b0755dcdeca966a19afcebbe32a1193d"
 dependencies = [
 dependencies = [
  "backtrace",
  "backtrace",
  "bytes 1.10.0",
  "bytes 1.10.0",
  "cfg-if 1.0.0",
  "cfg-if 1.0.0",
  "enum-iterator",
  "enum-iterator",
  "enumset",
  "enumset",
- "lazy_static",
  "leb128",
  "leb128",
  "libc",
  "libc",
+ "macho-unwind-info",
  "memmap2 0.6.2",
  "memmap2 0.6.2",
  "more-asserts",
  "more-asserts",
  "object 0.32.2",
  "object 0.32.2",
@@ -9433,16 +9370,16 @@ dependencies = [
  "thiserror 1.0.69",
  "thiserror 1.0.69",
  "wasmer-types",
  "wasmer-types",
  "wasmer-vm",
  "wasmer-vm",
- "wasmparser 0.216.1",
+ "wasmparser 0.224.1",
  "windows-sys 0.59.0",
  "windows-sys 0.59.0",
  "xxhash-rust",
  "xxhash-rust",
 ]
 ]
 
 
 [[package]]
 [[package]]
 name = "wasmer-compiler-cranelift"
 name = "wasmer-compiler-cranelift"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c919ade1140a342a778eeeb811231ce65c1735e309c0876154f8a4735da6452"
+checksum = "2add307a17348c84ae28e82033843d96d712fd2285a22007ff6623fed9bfdd4c"
 dependencies = [
 dependencies = [
  "cranelift-codegen",
  "cranelift-codegen",
  "cranelift-entity",
  "cranelift-entity",
@@ -9460,16 +9397,15 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmer-compiler-singlepass"
 name = "wasmer-compiler-singlepass"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5abfef88ceced02d034675f67f318d2ac6bf79c052a3367aa49b9c4c45de73e2"
+checksum = "6d973d1866d96c39da89a15249d3edc5854a6dd2f9a20dd35102f836d52766c2"
 dependencies = [
 dependencies = [
  "byteorder",
  "byteorder",
  "dynasm",
  "dynasm",
  "dynasmrt",
  "dynasmrt",
  "enumset",
  "enumset",
  "gimli 0.28.1",
  "gimli 0.28.1",
- "lazy_static",
  "more-asserts",
  "more-asserts",
  "rayon",
  "rayon",
  "smallvec",
  "smallvec",
@@ -9479,9 +9415,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmer-derive"
 name = "wasmer-derive"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd49fd1afd7c5dd0aa36d91f7e75f5b55331725a1038ca359c6c420d33844313"
+checksum = "08ecee999807b8e3e0d1ac8c77efdce1744accc4d1d6af9bf4c8d1ae690892f5"
 dependencies = [
 dependencies = [
  "proc-macro-error2",
  "proc-macro-error2",
  "proc-macro2",
  "proc-macro2",
@@ -9491,9 +9427,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmer-middlewares"
 name = "wasmer-middlewares"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5842f2ec3addfb93f97aa476308aaf6c99e76c58bb64801a7bde3c8313d63586"
+checksum = "4bfed325d425669ea5db1d319bbe891490ad662cfe2c7041cd09fe8ec5ed0c0e"
 dependencies = [
 dependencies = [
  "wasmer",
  "wasmer",
  "wasmer-types",
  "wasmer-types",
@@ -9502,9 +9438,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmer-types"
 name = "wasmer-types"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d1acd6dc9529b216159b66b082c574e5dbaf1c188e75b007f947d6d06c64a82"
+checksum = "cbb525cd386f099bbe506c785469096e06b3d22ea815d51524236dac90b90fa9"
 dependencies = [
 dependencies = [
  "bytecheck 0.6.12",
  "bytecheck 0.6.12",
  "enum-iterator",
  "enum-iterator",
@@ -9522,9 +9458,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmer-vm"
 name = "wasmer-vm"
-version = "5.0.5-rc1"
+version = "6.0.0-alpha.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dabeac4f84113353e7e1711dd095d4b47020fd705905c4b084b07f4be1413eb7"
+checksum = "2d9f13c58deb54b2b340a7dd7d4b354335424e5ac7885b6ae82c0d0d637c115a"
 dependencies = [
 dependencies = [
  "backtrace",
  "backtrace",
  "cc",
  "cc",
@@ -9535,8 +9471,8 @@ dependencies = [
  "enum-iterator",
  "enum-iterator",
  "fnv",
  "fnv",
  "indexmap 2.7.1",
  "indexmap 2.7.1",
- "lazy_static",
  "libc",
  "libc",
+ "libunwind",
  "mach2",
  "mach2",
  "memoffset",
  "memoffset",
  "more-asserts",
  "more-asserts",
@@ -9549,15 +9485,11 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "wasmparser"
 name = "wasmparser"
-version = "0.216.1"
+version = "0.224.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cc7c63191ae61c70befbe6045b9be65ef2082fa89421a386ae172cb1e08e92d"
+checksum = "04f17a5917c2ddd3819e84c661fae0d6ba29d7b9c1f0e96c708c65a9c4188e11"
 dependencies = [
 dependencies = [
- "ahash",
  "bitflags 2.8.0",
  "bitflags 2.8.0",
- "hashbrown 0.14.5",
- "indexmap 2.7.1",
- "semver 1.0.25",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -10014,15 +9946,6 @@ version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
 checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
 
 
-[[package]]
-name = "xz"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c887690ff2a2e233e8e49633461521f98ec57fbff9d59a884c9a4f04ec1da34"
-dependencies = [
- "xz2",
-]
-
 [[package]]
 [[package]]
 name = "xz2"
 name = "xz2"
 version = "0.1.7"
 version = "0.1.7"
@@ -10083,7 +10006,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
 checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
 dependencies = [
 dependencies = [
  "byteorder",
  "byteorder",
- "zerocopy-derive",
+ "zerocopy-derive 0.7.35",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c"
+dependencies = [
+ "zerocopy-derive 0.8.20",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -10097,6 +10029,17 @@ dependencies = [
  "syn 2.0.98",
  "syn 2.0.98",
 ]
 ]
 
 
+[[package]]
+name = "zerocopy-derive"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.98",
+]
+
 [[package]]
 [[package]]
 name = "zerofrom"
 name = "zerofrom"
 version = "0.1.5"
 version = "0.1.5"
@@ -10160,35 +10103,6 @@ dependencies = [
  "syn 2.0.98",
  "syn 2.0.98",
 ]
 ]
 
 
-[[package]]
-name = "zip"
-version = "2.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae9c1ea7b3a5e1f4b922ff856a129881167511563dc219869afe3787fc0c1a45"
-dependencies = [
- "aes 0.8.4",
- "arbitrary",
- "bzip2",
- "constant_time_eq 0.3.1",
- "crc32fast",
- "crossbeam-utils",
- "deflate64",
- "displaydoc",
- "flate2",
- "hmac 0.12.1",
- "indexmap 2.7.1",
- "lzma-rs",
- "memchr",
- "pbkdf2",
- "rand 0.8.5",
- "sha1 0.10.6",
- "thiserror 2.0.11",
- "time 0.3.37",
- "zeroize",
- "zopfli",
- "zstd",
-]
-
 [[package]]
 [[package]]
 name = "zkas"
 name = "zkas"
 version = "0.4.1"
 version = "0.4.1"
@@ -10197,20 +10111,6 @@ dependencies = [
  "darkfi",
  "darkfi",
 ]
 ]
 
 
-[[package]]
-name = "zopfli"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946"
-dependencies = [
- "bumpalo",
- "crc32fast",
- "lockfree-object-pool",
- "log",
- "once_cell",
- "simd-adler32",
-]
-
 [[package]]
 [[package]]
 name = "zstd"
 name = "zstd"
 version = "0.13.3"
 version = "0.13.3"

+ 3 - 3
Cargo.toml

@@ -118,9 +118,9 @@ halo2_gadgets = {version = "0.3.1", features = ["circuit-params"], optional = tr
 
 
 # Smart contract runtime
 # Smart contract runtime
 darkfi-sdk = {path = "src/sdk", optional = true}
 darkfi-sdk = {path = "src/sdk", optional = true}
-wasmer = {version = "5.0.5-rc1", optional = true}
-wasmer-compiler-singlepass = {version = "5.0.5-rc1", optional = true}
-wasmer-middlewares = {version = "5.0.5-rc1", optional = true}
+wasmer = {version = "6.0.0-alpha.1", features = ["singlepass"], optional = true}
+wasmer-compiler-singlepass = {version = "6.0.0-alpha.1", optional = true}
+wasmer-middlewares = {version = "6.0.0-alpha.1", optional = true}
 
 
 # Blockchain store
 # Blockchain store
 sled-overlay = {version = "0.1.6", optional = true}
 sled-overlay = {version = "0.1.6", optional = true}

+ 2 - 2
src/runtime/vm_runtime.rs

@@ -25,8 +25,8 @@ use darkfi_sdk::{crypto::ContractId, tx::TransactionHash, wasm, AsHex};
 use darkfi_serial::serialize;
 use darkfi_serial::serialize;
 use log::{debug, error, info};
 use log::{debug, error, info};
 use wasmer::{
 use wasmer::{
-    imports, wasmparser::Operator, AsStoreMut, AsStoreRef, CompilerConfig, Function, FunctionEnv,
-    Instance, Memory, MemoryView, Module, Pages, Store, Value, WASM_PAGE_SIZE,
+    imports, sys::CompilerConfig, wasmparser::Operator, AsStoreMut, AsStoreRef, Function,
+    FunctionEnv, Instance, Memory, MemoryView, Module, Pages, Store, Value, WASM_PAGE_SIZE,
 };
 };
 use wasmer_compiler_singlepass::Singlepass;
 use wasmer_compiler_singlepass::Singlepass;
 use wasmer_middlewares::{
 use wasmer_middlewares::{