diff --git a/.github/release-please/config.json b/.github/release-please/config.json index 44419fc..88aa023 100644 --- a/.github/release-please/config.json +++ b/.github/release-please/config.json @@ -14,7 +14,8 @@ "components": [ "trust-graph", "trust-graph-api", - "trust-graph-wasm" + "trust-graph-wasm", + "distro" ] } ], @@ -31,6 +32,9 @@ }, "keypair": { "component": "keypair" + }, + "distro": { + "component": "distro" } } } diff --git a/.github/release-please/manifest.json b/.github/release-please/manifest.json index 4108d7f..7a175ce 100644 --- a/.github/release-please/manifest.json +++ b/.github/release-please/manifest.json @@ -2,5 +2,6 @@ "trust-graph": "0.4.5", "aqua": "0.4.5", "service": "0.4.5", - "keypair": "0.10.1" + "keypair": "0.10.1", + "distro": "0.4.5" } diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 94a7c82..850a770 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -42,7 +42,8 @@ jobs: env: NEXTEST_RETRIES: 10 NEXTEST_TEST_THREADS: 10 - run: cargo nextest run --release --all-features --no-fail-fast + # exclude distro since at this point we don't have compiled wasms which are required for compilation + run: cargo nextest run --release --all-features --no-fail-fast --workspace --exclude trust-graph-distro - name: Setup node uses: actions/setup-node@v3 diff --git a/.gitignore b/.gitignore index c09a3ef..cd9bf0b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ service/target service/artifacts builtin-package/*.wasm trust-graph.tar.gz +distro/trust-graph-service +distro/target **/*.rs.bk **/.idea diff --git a/Cargo.lock b/Cargo.lock index 2a5262b..7aed6a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,9 +50,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" dependencies = [ "memchr", ] @@ -63,6 +63,12 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -123,7 +129,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -234,10 +240,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] -name = "bumpalo" -version = "3.12.2" +name = "built" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" +checksum = "5b9c056b9ed43aee5e064b683aa1ec783e19c6acec7559e3ae931b7490472fbe" +dependencies = [ + "cargo-lock", +] + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byteorder" @@ -256,9 +271,9 @@ dependencies = [ [[package]] name = "cap-fs-ext" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1742f5106155d46a41eac5f730ee189bf92fde6ae109fbf2cdb67176726ca5d" +checksum = "58bc48200a1a0fa6fba138b1802ad7def18ec1cdd92f7b2a04e21f1bd887f7b9" dependencies = [ "cap-primitives", "cap-std", @@ -268,9 +283,9 @@ dependencies = [ [[package]] name = "cap-primitives" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42068f579028e856717d61423645c85d2d216dde8eff62c9b30140e725c79177" +checksum = "a4b6df5b295dca8d56f35560be8c391d59f0420f72e546997154e24e765e6451" dependencies = [ "ambient-authority", "fs-set-times 0.19.1", @@ -285,9 +300,9 @@ dependencies = [ [[package]] name = "cap-rand" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3be2ededc13f42a5921c08e565b854cb5ff9b88753e2c6ec12c58a24e7e8d4e" +checksum = "4d25555efacb0b5244cf1d35833d55d21abc916fff0eaad254b8e2453ea9b8ab" dependencies = [ "ambient-authority", "rand 0.8.5", @@ -295,9 +310,9 @@ dependencies = [ [[package]] name = "cap-std" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559ad6fab5fedcc9bd5877160e1433fcd481f8af615068d6ca49472b1201cc6c" +checksum = "3373a62accd150b4fcba056d4c5f3b552127f0ec86d3c8c102d60b978174a012" dependencies = [ "cap-primitives", "io-extras", @@ -307,9 +322,9 @@ dependencies = [ [[package]] name = "cap-time-ext" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a74e04cd32787bfa3a911af745b0fd5d99d4c3fc16c64449e1622c06fa27c8e" +checksum = "e95002993b7baee6b66c8950470e59e5226a23b3af39fc59c47fe416dd39821a" dependencies = [ "cap-primitives", "once_cell", @@ -317,6 +332,18 @@ dependencies = [ "winx", ] +[[package]] +name = "cargo-lock" +version = "8.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031718ddb8f78aa5def78a09e90defe30151d1f6c672f937af4dd916429ed996" +dependencies = [ + "semver", + "serde", + "toml", + "url", +] + [[package]] name = "cc" version = "1.0.79" @@ -334,13 +361,13 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", "time 0.1.45", @@ -622,7 +649,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -644,20 +671,20 @@ checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" dependencies = [ "darling_core 0.20.1", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-encoding-macro" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -665,9 +692,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", "syn 1.0.109", @@ -695,9 +722,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "crypto-common", @@ -945,9 +972,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -959,7 +986,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "857cf27edcb26c2a36d84b2954019573d335bb289876113aceacacdca47a4fd4" dependencies = [ "io-lifetimes", - "rustix 0.36.13", + "rustix 0.36.14", "windows-sys 0.45.0", ] @@ -1159,9 +1186,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1196,9 +1223,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi 0.3.1", "libc", @@ -1340,9 +1367,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.144" +version = "0.2.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" +checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81" [[package]] name = "libp2p-identity" @@ -1431,9 +1458,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" @@ -1447,12 +1474,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" [[package]] name = "mach" @@ -1879,7 +1903,7 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", "sha2 0.10.6", "sha3", @@ -1925,16 +1949,6 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aeaf4ad7403de93e699c191202f017118df734d3850b01e13a3a8b2e6953d3c9" -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -1977,9 +1991,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2018,9 +2032,9 @@ checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pin-project-lite" @@ -2087,9 +2101,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.57" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16" +checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" dependencies = [ "unicode-ident", ] @@ -2125,9 +2139,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" dependencies = [ "proc-macro2", ] @@ -2262,7 +2276,7 @@ checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2279,9 +2293,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" dependencies = [ "aho-corasick", "memchr", @@ -2290,9 +2304,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "ring" @@ -2353,9 +2367,9 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.36.13" +version = "0.36.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" +checksum = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62" dependencies = [ "bitflags", "errno", @@ -2376,7 +2390,7 @@ dependencies = [ "io-lifetimes", "itoa", "libc", - "linux-raw-sys 0.3.7", + "linux-raw-sys 0.3.8", "once_cell", "windows-sys 0.48.0", ] @@ -2404,6 +2418,9 @@ name = "semver" version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +dependencies = [ + "serde", +] [[package]] name = "serde" @@ -2431,7 +2448,7 @@ checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2470,7 +2487,7 @@ dependencies = [ "darling 0.20.1", "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2494,7 +2511,7 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -2503,7 +2520,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -2577,9 +2594,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" dependencies = [ "proc-macro2", "quote", @@ -2646,7 +2663,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2732,7 +2749,7 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2761,6 +2778,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "trust-graph-distro" +version = "0.4.5" +dependencies = [ + "built", + "lazy_static", + "maplit", + "serde", + "serde_json", +] + [[package]] name = "trust-graph-wasm" version = "0.4.5" @@ -2796,9 +2824,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" [[package]] name = "unicode-normalization" @@ -2841,9 +2869,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", "idna", @@ -2942,7 +2970,7 @@ dependencies = [ "io-lifetimes", "is-terminal", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", "system-interface", "tracing", "wasi-common", @@ -2960,7 +2988,7 @@ dependencies = [ "cap-rand", "cap-std", "io-extras", - "rustix 0.36.13", + "rustix 0.36.14", "thiserror", "tracing", "wasmtime", @@ -2989,7 +3017,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", "wasm-bindgen-shared", ] @@ -3011,7 +3039,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3024,9 +3052,9 @@ checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" [[package]] name = "wasm-encoder" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e77053dc709db790691d3732cfc458adc5acc881dec524965c608effdcd9c581" +checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881" dependencies = [ "leb128", ] @@ -3128,7 +3156,7 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.36.13", + "rustix 0.36.14", "serde", "sha2 0.10.6", "toml", @@ -3209,7 +3237,7 @@ checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" dependencies = [ "object 0.29.0", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", ] [[package]] @@ -3240,7 +3268,7 @@ dependencies = [ "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix 0.36.13", + "rustix 0.36.14", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", @@ -3292,9 +3320,9 @@ dependencies = [ [[package]] name = "wast" -version = "58.0.0" +version = "60.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372eecae2d10a5091c2005b32377d7ecd6feecdf2c05838056d02d8b4f07c429" +checksum = "bd06cc744b536e30387e72a48fdd492105b9c938bb4f415c39c616a7a0a697ad" dependencies = [ "leb128", "memchr", @@ -3304,11 +3332,11 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.64" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d47446190e112ab1579ab40b3ad7e319d859d74e5134683f04e9f0747bf4173" +checksum = "5abe520f0ab205366e9ac7d3e6b2fc71de44e32a2b58f2ec871b6b575bdcea3b" dependencies = [ - "wast 58.0.0", + "wast 60.0.0", ] [[package]] @@ -3590,7 +3618,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3ed209e..0b690eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,8 @@ members = [ "trust-graph", "keypair", - "service" + "service", + "distro" ] [workspace.dependencies] diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..6140916 --- /dev/null +++ b/build.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -o errexit -o nounset -o pipefail + +# set current working directory to script directory to run script from everywhere +cd "$(dirname "$0")" + +./service/build.sh + +TARGET="distro/trust-graph-service/" + +mkdir -p "$TARGET" +cp -v ./distro/on_start.json service/artifacts/trust-graph.wasm service/artifacts/sqlite3.wasm distro/Config.toml "$TARGET" + +cd distro +cargo build diff --git a/distro/Cargo.toml b/distro/Cargo.toml new file mode 100644 index 0000000..bb9e460 --- /dev/null +++ b/distro/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "trust-graph-distro" +version = "0.4.5" +edition = "2021" +build = "build.rs" +license = "Apache-2.0" +include = [ "/src", "build.rs", "Cargo.toml", "trust-graph-service"] +description = "Distribution package for the trust-graph service" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[dependencies] +maplit = "1.0.2" +serde = "1.0.160" +serde_json = "1.0.96" +lazy_static = "1.4.0" + +[build-dependencies] +built = "0.5.2" diff --git a/distro/Config.toml b/distro/Config.toml new file mode 100644 index 0000000..dc90cff --- /dev/null +++ b/distro/Config.toml @@ -0,0 +1,14 @@ +modules_dir = "." + +[[module]] + name = "sqlite3" + logger_enabled = true + + [module.wasi] + mapped_dirs = { "tmp" = "data" } +[[module]] + name = "trust-graph" + logger_enabled = true + + [module.wasi] + mapped_dirs = { "tmp" = "data" } diff --git a/distro/build.rs b/distro/build.rs new file mode 100644 index 0000000..4306bb7 --- /dev/null +++ b/distro/build.rs @@ -0,0 +1,3 @@ +fn main() { + built::write_built_file().expect("Failed to acquire build-time information") +} diff --git a/distro/init_certs.json b/distro/init_certs.json new file mode 100644 index 0000000..ac242fb --- /dev/null +++ b/distro/init_certs.json @@ -0,0 +1 @@ +{"root_node":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","max_chain_length":5,"certs":[{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWD2vAZva1u3TQgoxebBUBsaGMNawKjVkp57M6UcwNwXNv","signature":"2pTTV9B7rZNAZ1kriqN7s64MwE6t2Jwu8HCQZeXaBincZs63BT8HsmfE15sdhyjPeamFirkdfrjbTcGmnj6rUqT4"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e","signature":"wRpqimG2Lg8wAu3PGfmTxGuQMaYTZrd5QmjsbwZTfWJELWpqfngrFpDgNUqPZHHj4cfZTJ9gyRSTqTMFDDU2TXv"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWR4cv1a8tv7pps4HH6wePNaK6gf1Hww5wcCMzeWxyNw51","signature":"VYcXmcRHaSH8BbN5qrV7WCQs9WHJ7Hj25YUqVM1ptv6U4AbY5PPZa75ToRnmYA3jacVbHr7aUiSCup6DA6wxbbs"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA","signature":"4SBUyxAykijkX7WSPFoSjBBjW8yN5SNefU7ojqqS18pPAD7TJZvD2wunASsAah6ctfvng7gUeQKfYRqDpTo46Y9Y"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWHLxVhUQyAuZe6AHMB29P7wkvTNMn7eDMcsqimJYLKREf","signature":"2dTSfzds7ySvqDVZTAXXGg2wnYnXAqfA8n7mceG7tpi55qCyzF8X86YaQHWhwzKazvfG68vY4za6e5UHDLZwsFcy"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWJd3HaMJ1rpLY1kQvcjRPEvnDwcXrH8mJvk7ypcZXqXGE","signature":"3ppaDSfnSFGK9hRMr5dZTkUDx27TKDS6P119WS75sTXdBEdVexQLTSynP2efczmfCxxthYLWYShATGejs9mfeVsT"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi","signature":"4j6h2z7aHmipWagZdjtow1n9ptJi8fvJNwgLGeaottGepa3rbCcUfByaP3D5CDZP5AeUUXwAW2E91dnPa9NQELAx"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWCMr9mU894i8JXAFqpgoFtx6qnV1LFPSfVc3Y34N4h4LS","signature":"3YEf3dEGdHZqYcM1B1sE3BsEMt337LU8xS8Pv9v8XtGynghqK6K6pKWzE9qX1C7zHfRPcaq4juTc9xLrYfC2QytR"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWDUszU2NeWyUVjCXhGEt1MoZrhvdmaQQwtZUriuGN1jTr","signature":"37cEiDjMYywY7Lh1RC3H32qpTcBkgmykPLUyVrW1qmoaSEmXWV6rWdXDaXdVF2VhxxVpwXzSeTAMhJXYDVEn18ch"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWEFFCZnar1cUJQ3rMWjvPQg6yMV2aXWs2DkJNSRbduBWn","signature":"4J4NbEtFYzpgpdYQaV6zWjwaSxt9HezarAHVHpWvKCr2dn7tGLAuf9D3SnUAAeV537rzvvLdMP9vHHGSdnsccFDt"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWFtf3rfCDAfWwt6oLZYZbDfn9Vn7bv7g6QjjQxUUEFVBt","signature":"pfYMm7enoq69WVPgcAFYTmWUAejSJXXdKRpk2ffweSVwzJTVE3DwdWYEmbS96emcVFP3gWPm4sLeM5yVLXuzx87"}]},{"chain":[{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWNbZKaPWRZ8wgjGvrxdJFz9Fq5uVwkR6ERV1f74HhPdyB","signature":"5ckmaNEw1gNVGk2h8sPsSr7JSumADu6XvuWn8eaZ33etcvfGU5UvnUUtAPwtmc45PZ5dw7F1hbWDQQzu9irFgR4d"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWM45u7AQxsb4MuQJNYT3NWHHMLU7JTbBV66RTfF3KSzdR","signature":"3KxewKYjYvv4XaSpKRpnY6rNaawArLfHCeCsB95tZX9BWdwK3kJTbnsXG8WSUDip9oMC48QJMKinLrivuPDy5Egy"},{"sig_type":"ed25519","expires_at":1737828468,"issued_at":1674756468,"issued_for":"12D3KooWD7CvsYcpF9HE9CCV9aY3SJ317tkXVykjtZnht2EbzDPm","signature":"3FHZheEHCbveBEoS1m41nTESsfSBBixLpdKYSMTgmnk1s5hB9o1VjPdC9XPTnSHsBpnog4ASeRB8b9bzAiz3ZxDD"}]}]} diff --git a/distro/src/lib.rs b/distro/src/lib.rs new file mode 100644 index 0000000..fc09a74 --- /dev/null +++ b/distro/src/lib.rs @@ -0,0 +1,60 @@ +use lazy_static::lazy_static; +use serde::{Deserialize, Serialize}; + +#[cfg(not(feature = "cargo-clippy"))] +pub const TRUST_GRAPH_WASM: &[u8] = include_bytes!("../trust-graph-service/trust-graph.wasm"); +#[cfg(feature = "cargo-clippy")] +pub const TRUST_GRAPH_WASM: &[u8] = &[]; + +#[cfg(not(feature = "cargo-clippy"))] +pub const SQLITE_WASM: &[u8] = include_bytes!("../trust-graph-service/sqlite3.wasm"); +#[cfg(feature = "cargo-clippy")] +pub const SQLITE_WASM: &[u8] = &[]; + +#[cfg(not(feature = "cargo-clippy"))] +pub const CONFIG: &[u8] = include_bytes!("../trust-graph-service/Config.toml"); +#[cfg(feature = "cargo-clippy")] +pub const CONFIG: &[u8] = &[]; + +#[cfg(not(feature = "cargo-clippy"))] +pub const KRAS_CERTS_JSON: &str = include_str!("../trust-graph-service/init_certs.json"); +#[cfg(feature = "cargo-clippy")] +pub const KRAS_CERTS_JSON: &str = "{}"; + +pub mod build_info { + include!(concat!(env!("OUT_DIR"), "/built.rs")); +} + +pub use build_info::PKG_VERSION as VERSION; + +pub fn modules() -> std::collections::HashMap<&'static str, &'static [u8]> { + maplit::hashmap! { + "sqlite3" => SQLITE_WASM, + "trust-graph" => TRUST_GRAPH_WASM, + } +} + +#[derive(Deserialize, Serialize)] +pub struct Certs { + pub root_node: String, + pub max_chain_length: u32, + pub certs: Vec, +} + +#[derive(Deserialize, Serialize)] +pub struct Cert { + pub chain: Vec, +} + +#[derive(Deserialize, Serialize)] +pub struct Trust { + pub issued_for: String, + pub expires_at: u64, + pub signature: String, + pub sig_type: String, + pub issued_at: u64, +} + +lazy_static! { + pub static ref KRAS_CERTS: Certs = serde_json::from_str(KRAS_CERTS_JSON).unwrap(); +}