From 2f1615802c284fd1ffbe64a9944187e6f344fd61 Mon Sep 17 00:00:00 2001 From: quake Date: Wed, 22 May 2024 14:09:17 +0900 Subject: [PATCH 1/5] parent 63b234516064ce2480c4a2c238a20bcad255840e author quake 1716354557 +0900 committer quake 1716793125 +0900 feat: add store impl --- Cargo.lock | 380 +++++++++++++++--- Cargo.toml | 6 +- src/ckb/channel.rs | 218 ++++++++-- src/ckb/network.rs | 68 +++- src/ckb/serde_utils.rs | 63 +-- src/ckb/test_utils.rs | 37 ++ src/ckb/types.rs | 10 +- src/ckb_chain/funding/funding_tx.rs | 6 +- src/invoice/invoice_impl.rs | 6 +- src/lib.rs | 1 + src/storage.rs | 57 +++ src/store.rs | 152 +++++++ .../3-nodes-transfer/11-node3-gen-invoice.bru | 3 + tests/deploy/run-dev-node.sh | 52 +++ 14 files changed, 903 insertions(+), 156 deletions(-) create mode 100644 src/storage.rs create mode 100644 src/store.rs create mode 100755 tests/deploy/run-dev-node.sh diff --git a/Cargo.lock b/Cargo.lock index c346ef52..2d8c3788 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -261,6 +261,29 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bindgen" +version = "0.68.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +dependencies = [ + "bitflags 2.5.0", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.52", + "which", +] + [[package]] name = "bit-vec" version = "0.6.3" @@ -323,6 +346,9 @@ name = "bitflags" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +dependencies = [ + "serde", +] [[package]] name = "blake2b-ref" @@ -351,9 +377,12 @@ dependencies = [ [[package]] name = "bs58" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] [[package]] name = "bumpalo" @@ -382,7 +411,7 @@ version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "142316461ed3a3dfcba10417317472da5bfd0461e4d276bf7c07b330766d9490" dependencies = [ - "digest 0.10.7", + "digest", "either", "futures", "hex", @@ -408,6 +437,19 @@ name = "cc" version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] [[package]] name = "cfg-if" @@ -613,7 +655,7 @@ dependencies = [ "ckb-fixed-hash", "ckb-hash 0.114.0", "ckb-occupied-capacity", - "molecule", + "molecule 0.7.5", "numext-fixed-uint", ] @@ -649,6 +691,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "ckb-librocksdb-sys" +version = "8.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e68e0993f54ba0d21152419a0668caa92adc928b5a9b01e45871ec055a31ce2" +dependencies = [ + "bindgen", + "cc", + "glob", + "libc", + "pkg-config", + "rust-ini", +] + [[package]] name = "ckb-logger" version = "0.114.0" @@ -725,6 +781,7 @@ dependencies = [ "ckb-crypto", "ckb-hash 0.115.0", "ckb-jsonrpc-types", + "ckb-rocksdb", "ckb-sdk", "ckb-testtool", "ckb-types", @@ -734,7 +791,6 @@ dependencies = [ "futures", "hex", "home", - "libc", "lightning", "lightning-background-processor", "lightning-block-sync", @@ -743,7 +799,7 @@ dependencies = [ "lightning-persister", "lightning-rapid-gossip-sync", "log", - "molecule", + "molecule 0.7.5", "musig2", "nom", "once_cell", @@ -801,6 +857,17 @@ dependencies = [ "walkdir", ] +[[package]] +name = "ckb-rocksdb" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "050f7c70a451b9606a5d4e1cf696fec2517e65c3bfcbefadb6b114cc0fa7673b" +dependencies = [ + "ckb-librocksdb-sys", + "libc", + "tempfile", +] + [[package]] name = "ckb-script" version = "0.114.0" @@ -930,7 +997,7 @@ dependencies = [ "derive_more", "golomb-coded-set", "merkle-cbt", - "molecule", + "molecule 0.7.5", "numext-fixed-uint", "once_cell", "paste", @@ -993,6 +1060,17 @@ dependencies = [ "paste", ] +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.2" @@ -1061,6 +1139,26 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.12", + "once_cell", + "tiny-keccak", +] + [[package]] name = "convert_case" version = "0.4.0" @@ -1116,6 +1214,12 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -1135,17 +1239,31 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" [[package]] name = "curve25519-dalek" -version = "3.2.0" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "platforms", + "rustc_version", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.52", +] + [[package]] name = "darling" version = "0.20.8" @@ -1228,15 +1346,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" @@ -1248,6 +1357,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + [[package]] name = "dyn-clone" version = "1.0.17" @@ -1344,6 +1462,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ad8c7269456fd609f700340399dca5fa160c4785c9623f87b6079e5a479f28b" +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "flate2" version = "1.0.28" @@ -1490,10 +1614,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if 1.0.0", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -1503,8 +1625,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if 1.0.0", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1513,6 +1637,12 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "goblin" version = "0.2.3" @@ -1572,6 +1702,12 @@ dependencies = [ "ahash 0.7.8", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" + [[package]] name = "hashbrown" version = "0.14.3" @@ -1627,7 +1763,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -1888,6 +2024,15 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.69" @@ -1927,12 +2072,28 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "libc" version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if 1.0.0", + "windows-targets 0.52.4", +] + [[package]] name = "lightning" version = "0.0.121" @@ -2140,6 +2301,17 @@ dependencies = [ "faster-hex", ] +[[package]] +name = "molecule" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6efe1c7efcd0bdf4ca590e104bcb13087d9968956ae4ae98e92fb8c1da0f3730" +dependencies = [ + "bytes", + "cfg-if 1.0.0", + "faster-hex", +] + [[package]] name = "musig2" version = "0.0.11" @@ -2327,6 +2499,16 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-multimap" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e" +dependencies = [ + "dlv-list", + "hashbrown 0.13.2", +] + [[package]] name = "parking_lot" version = "0.12.1" @@ -2356,6 +2538,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + [[package]] name = "percent-encoding" version = "2.3.1" @@ -2444,6 +2632,12 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "platforms" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" + [[package]] name = "poly1305" version = "0.8.0" @@ -2467,6 +2661,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +dependencies = [ + "proc-macro2", + "syn 2.0.52", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -2696,17 +2900,27 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.20" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if 1.0.0", + "getrandom 0.2.12", "libc", - "once_cell", "spin", "untrusted", - "web-sys", - "winapi", + "windows-sys 0.52.0", +] + +[[package]] +name = "rust-ini" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091" +dependencies = [ + "cfg-if 1.0.0", + "ordered-multimap", ] [[package]] @@ -2715,6 +2929,12 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc_version" version = "0.4.0" @@ -2847,6 +3067,15 @@ dependencies = [ "serde", ] +[[package]] +name = "secp256k1" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" +dependencies = [ + "secp256k1-sys 0.10.0", +] + [[package]] name = "secp256k1-sys" version = "0.6.1" @@ -2874,6 +3103,15 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1433bd67156263443f14d603720b082dd3121779323fce20cba2aa07b874bc1b" +dependencies = [ + "cc", +] + [[package]] name = "security-framework" version = "2.9.2" @@ -3017,7 +3255,7 @@ checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -3028,7 +3266,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -3039,7 +3277,7 @@ checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -3048,10 +3286,16 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.7", + "digest", "keccak", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -3115,9 +3359,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.5.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "ssri" @@ -3126,7 +3370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da7a2b3c2bc9693bcb40870c4e9b5bf0d79f9cb46273321bf855ec513e919082" dependencies = [ "base64 0.21.7", - "digest 0.10.7", + "digest", "hex", "miette", "serde", @@ -3223,9 +3467,8 @@ dependencies = [ [[package]] name = "tentacle" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ffbbdb4f54a9605ceda168884efcf5fb24ef655103362af211e6cfe61eff832" +version = "0.6.0" +source = "git+https://github.com/nervosnetwork/tentacle?branch=bump-to-0.6.0#f61c53bee718a256a3b5dee17a927cf5bf6270a4" dependencies = [ "async-trait", "bytes", @@ -3233,7 +3476,7 @@ dependencies = [ "js-sys", "libc", "log", - "molecule", + "molecule 0.8.0", "nohash-hasher", "once_cell", "rand 0.8.5", @@ -3251,9 +3494,8 @@ dependencies = [ [[package]] name = "tentacle-multiaddr" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "895b25a7de42f7bba27b011495a4a48ea7f0591c079f59c8fdb07936ca8aa3d1" +version = "0.3.4" +source = "git+https://github.com/nervosnetwork/tentacle?branch=bump-to-0.6.0#f61c53bee718a256a3b5dee17a927cf5bf6270a4" dependencies = [ "bs58", "bytes", @@ -3264,24 +3506,23 @@ dependencies = [ [[package]] name = "tentacle-secio" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a41abd9ae459d1f744f59670d8f4e9a25c4597b12b9060740fbd17bf9687fc" +version = "0.6.2" +source = "git+https://github.com/nervosnetwork/tentacle?branch=bump-to-0.6.0#f61c53bee718a256a3b5dee17a927cf5bf6270a4" dependencies = [ "bs58", "bytes", "chacha20poly1305", "futures", + "getrandom 0.2.12", "hmac", "log", - "molecule", + "molecule 0.8.0", "openssl", "openssl-sys", - "rand 0.7.3", "rand 0.8.5", - "rand_core 0.5.1", + "rand_core 0.6.4", "ring", - "secp256k1 0.24.3", + "secp256k1 0.29.0", "sha2", "tokio", "tokio-util", @@ -3340,6 +3581,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3425,8 +3675,7 @@ dependencies = [ [[package]] name = "tokio-yamux" version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ed88a04bfbf9e70343a5748a423200ee0591c55e7e487d784a55ee8af17db9" +source = "git+https://github.com/nervosnetwork/tentacle?branch=bump-to-0.6.0#f61c53bee718a256a3b5dee17a927cf5bf6270a4" dependencies = [ "bytes", "futures", @@ -3562,15 +3811,15 @@ checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" [[package]] name = "unsigned-varint" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" @@ -3708,6 +3957,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "winapi" version = "0.3.9" @@ -3921,12 +4182,13 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "1.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", - "rand_core 0.5.1", + "rand_core 0.6.4", + "serde", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index f3b1f0d4..beb23123 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,6 @@ base64 = "0.13.0" bitcoin = { version = "0.30.2", features = ["serde", "rand"] } bitcoin-bech32 = "0.12" bech32 = "0.8" -libc = "0.2" chrono = { version = "0.4", default-features = false, features = ["clock"] } rand = "0.8.5" serde_json = { version = "1.0" } @@ -43,7 +42,7 @@ ckb-sdk = "3.1.0" thiserror = "1.0.58" anyhow = "1.0.81" env_logger = "0.11.3" -tentacle = "0.4.2" +tentacle = { git = "https://github.com/nervosnetwork/tentacle", branch = "bump-to-0.6.0" } log = "0.4.21" futures = "0.3.30" once_cell = "1.19.0" @@ -52,11 +51,12 @@ molecule = { version = "0.7.5", default-features = false } ckb-types = "0.114.0" ckb-jsonrpc-types = "0.114.0" ckb-crypto = "0.114.0" +rocksdb = { package = "ckb-rocksdb", version ="=0.21.1", features = ["snappy"], default-features = false } serde_with = { version = "3.7.0", features = ["macros", "base64"] } hex = "0.4.3" tower = "0.4.13" axum = { version = "0.7.5", features = ["json"] } -bitflags = "2.5.0" +bitflags = { version = "2.5.0", features = ["serde"] } ckb-hash = "0.115.0" secp256k1 = { version = "0.28.0", features = ["serde", "recovery"] } musig2 = { version = "0.0.11", features = ["secp256k1", "serde"] } diff --git a/src/ckb/channel.rs b/src/ckb/channel.rs index d7be4dfe..948d7936 100644 --- a/src/ckb/channel.rs +++ b/src/ckb/channel.rs @@ -20,7 +20,7 @@ use ractor::{ }; use serde::{Deserialize, Serialize}; -use serde_with::serde_as; +use serde_with::{serde_as, DisplayFromStr}; use tentacle::secio::PeerId; use thiserror::Error; use tokio::sync::{mpsc::error::TrySendError, oneshot}; @@ -40,7 +40,7 @@ use crate::{ use super::{ key::blake2b_hash_with_salt, network::PCNMessageWithPeerId, - serde_utils::EntityWrapperHex, + serde_utils::EntityHex, types::{ AcceptChannel, AddTlc, ChannelReady, ClosingSigned, CommitmentSigned, Hash256, LockTime, OpenChannel, PCNMessage, Privkey, Pubkey, RemoveTlc, RemoveTlcReason, RevokeAndAck, @@ -103,7 +103,7 @@ pub struct RemoveTlcCommand { #[serde_as] #[derive(Clone, Debug, Deserialize)] pub struct ShutdownCommand { - #[serde_as(as = "EntityWrapperHex