mirror of
https://github.com/Cuprate/cuprate.git
synced 2024-12-22 19:49:28 +00:00
repo be like
This commit is contained in:
parent
c337de37ca
commit
65664a2962
8 changed files with 1132 additions and 0 deletions
645
Cargo.lock
generated
Normal file
645
Cargo.lock
generated
Normal file
|
@ -0,0 +1,645 @@
|
||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base58-monero"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9d079cdf47e1ca75554200bb2f30bff5a5af16964cac4a566b18de9a5d48db2b"
|
||||||
|
dependencies = [
|
||||||
|
"thiserror",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bincode"
|
||||||
|
version = "1.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck"
|
||||||
|
version = "1.13.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "byteorder"
|
||||||
|
version = "1.4.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cc"
|
||||||
|
version = "1.0.79"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-queue"
|
||||||
|
version = "0.3.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-utils"
|
||||||
|
version = "0.8.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crunchy"
|
||||||
|
version = "0.2.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cuprate"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"heed",
|
||||||
|
"monero",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "curve25519-dalek"
|
||||||
|
version = "3.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"digest",
|
||||||
|
"rand_core 0.5.1",
|
||||||
|
"serde",
|
||||||
|
"subtle",
|
||||||
|
"zeroize",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "digest"
|
||||||
|
version = "0.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
|
||||||
|
dependencies = [
|
||||||
|
"generic-array",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "doxygen-rs"
|
||||||
|
version = "0.2.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bff670ea0c9bbb8414e7efa6e23ebde2b8f520a7eef78273a3918cf1903e7505"
|
||||||
|
dependencies = [
|
||||||
|
"phf",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fixed-hash"
|
||||||
|
version = "0.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"rand",
|
||||||
|
"rustc-hex",
|
||||||
|
"static_assertions",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "form_urlencoded"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
|
||||||
|
dependencies = [
|
||||||
|
"percent-encoding",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "generic-array"
|
||||||
|
version = "0.14.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
|
||||||
|
dependencies = [
|
||||||
|
"typenum",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "getrandom"
|
||||||
|
version = "0.1.16"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"libc",
|
||||||
|
"wasi 0.9.0+wasi-snapshot-preview1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "getrandom"
|
||||||
|
version = "0.2.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"libc",
|
||||||
|
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heck"
|
||||||
|
version = "0.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-segmentation",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heed"
|
||||||
|
version = "0.20.0-alpha.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e0a4868f289367555634a24254fc552c728b765d11f4411a28fe4e5e7bfb3498"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck",
|
||||||
|
"byteorder",
|
||||||
|
"heed-traits",
|
||||||
|
"heed-types",
|
||||||
|
"libc",
|
||||||
|
"lmdb-master-sys",
|
||||||
|
"once_cell",
|
||||||
|
"page_size",
|
||||||
|
"serde",
|
||||||
|
"synchronoise",
|
||||||
|
"url",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heed-traits"
|
||||||
|
version = "0.20.0-alpha.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "00cf93d01e9a00a575c3698f594aebdf7d25c4e08a91b18ef81b804ee3c2acd5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heed-types"
|
||||||
|
version = "0.20.0-alpha.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "718efb3af4d2157d591ccdaf4d5028c47d482a591bc144aeb1982906e760ac92"
|
||||||
|
dependencies = [
|
||||||
|
"bincode",
|
||||||
|
"bytemuck",
|
||||||
|
"byteorder",
|
||||||
|
"heed-traits",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hex"
|
||||||
|
version = "0.4.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hex-literal"
|
||||||
|
version = "0.3.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "idna"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-bidi",
|
||||||
|
"unicode-normalization",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itoa"
|
||||||
|
version = "1.0.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.139"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lmdb-master-sys"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "629c123f5321b48fa4f8f4d3b868165b748d9ba79c7103fb58e3a94f736bcedd"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"doxygen-rs",
|
||||||
|
"libc",
|
||||||
|
"pkg-config",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "monero"
|
||||||
|
version = "0.18.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5a8965a7510c5d9389e2086e406c292d6bbecac099eef195be55a2d2043448b9"
|
||||||
|
dependencies = [
|
||||||
|
"base58-monero",
|
||||||
|
"curve25519-dalek",
|
||||||
|
"fixed-hash",
|
||||||
|
"hex",
|
||||||
|
"hex-literal",
|
||||||
|
"sealed",
|
||||||
|
"serde",
|
||||||
|
"serde-big-array",
|
||||||
|
"thiserror",
|
||||||
|
"tiny-keccak",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "once_cell"
|
||||||
|
version = "1.17.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "page_size"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1b7663cbd190cfd818d08efa8497f6cd383076688c49a391ef7c0d03cd12b561"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "percent-encoding"
|
||||||
|
version = "2.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf"
|
||||||
|
version = "0.11.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
|
||||||
|
dependencies = [
|
||||||
|
"phf_macros",
|
||||||
|
"phf_shared",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_generator"
|
||||||
|
version = "0.11.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
|
||||||
|
dependencies = [
|
||||||
|
"phf_shared",
|
||||||
|
"rand",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_macros"
|
||||||
|
version = "0.11.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66"
|
||||||
|
dependencies = [
|
||||||
|
"phf_generator",
|
||||||
|
"phf_shared",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_shared"
|
||||||
|
version = "0.11.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
|
||||||
|
dependencies = [
|
||||||
|
"siphasher",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pkg-config"
|
||||||
|
version = "0.3.26"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ppv-lite86"
|
||||||
|
version = "0.2.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro2"
|
||||||
|
version = "1.0.50"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quote"
|
||||||
|
version = "1.0.23"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand"
|
||||||
|
version = "0.8.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"rand_chacha",
|
||||||
|
"rand_core 0.6.4",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_chacha"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||||
|
dependencies = [
|
||||||
|
"ppv-lite86",
|
||||||
|
"rand_core 0.6.4",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_core"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
|
||||||
|
dependencies = [
|
||||||
|
"getrandom 0.1.16",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_core"
|
||||||
|
version = "0.6.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||||
|
dependencies = [
|
||||||
|
"getrandom 0.2.8",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustc-hex"
|
||||||
|
version = "2.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ryu"
|
||||||
|
version = "1.0.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sealed"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6b5e421024b5e5edfbaa8e60ecf90bda9dbffc602dbb230e6028763f85f0c68c"
|
||||||
|
dependencies = [
|
||||||
|
"heck",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde"
|
||||||
|
version = "1.0.152"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
|
||||||
|
dependencies = [
|
||||||
|
"serde_derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde-big-array"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3323f09a748af288c3dc2474ea6803ee81f118321775bffa3ac8f7e65c5e90e7"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_derive"
|
||||||
|
version = "1.0.152"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_json"
|
||||||
|
version = "1.0.91"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
|
||||||
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"ryu",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "siphasher"
|
||||||
|
version = "0.3.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "static_assertions"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "subtle"
|
||||||
|
version = "2.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn"
|
||||||
|
version = "1.0.107"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "synchronoise"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3dbc01390fc626ce8d1cffe3376ded2b72a11bb70e1c75f404a210e4daa4def2"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-queue",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thiserror"
|
||||||
|
version = "1.0.38"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
|
||||||
|
dependencies = [
|
||||||
|
"thiserror-impl",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thiserror-impl"
|
||||||
|
version = "1.0.38"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[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"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
|
||||||
|
dependencies = [
|
||||||
|
"tinyvec_macros",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tinyvec_macros"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typenum"
|
||||||
|
version = "1.16.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-bidi"
|
||||||
|
version = "0.3.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-ident"
|
||||||
|
version = "1.0.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-normalization"
|
||||||
|
version = "0.1.22"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
|
||||||
|
dependencies = [
|
||||||
|
"tinyvec",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-segmentation"
|
||||||
|
version = "1.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "url"
|
||||||
|
version = "2.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
|
||||||
|
dependencies = [
|
||||||
|
"form_urlencoded",
|
||||||
|
"idna",
|
||||||
|
"percent-encoding",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version_check"
|
||||||
|
version = "0.9.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasi"
|
||||||
|
version = "0.9.0+wasi-snapshot-preview1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasi"
|
||||||
|
version = "0.11.0+wasi-snapshot-preview1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu",
|
||||||
|
"winapi-x86_64-pc-windows-gnu",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zeroize"
|
||||||
|
version = "1.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
|
464
src/blockchain_db/mod.rs
Normal file
464
src/blockchain_db/mod.rs
Normal file
|
@ -0,0 +1,464 @@
|
||||||
|
use monero::{Hash, Transaction};
|
||||||
|
|
||||||
|
use crate::{cryptonote_protocol::enums::{RelayMethod}, cryptonote_basic::difficulty::difficulty_type, blockchain_db::{}};
|
||||||
|
use std::error::Error;
|
||||||
|
|
||||||
|
const MONERO_DEFAULT_LOG_CATEGORY: &str = "blockchain.db";
|
||||||
|
|
||||||
|
type Blobldata = Vec<u8>;
|
||||||
|
type TxOutIndex = (monero::cryptonote::hash::Hash, u64);
|
||||||
|
|
||||||
|
pub(in super) enum RelayCategory {
|
||||||
|
broadcasted, //< Public txes received via block/fluff
|
||||||
|
relayable, //< Every tx not marked `relay_method::none`
|
||||||
|
legacy, //< `relay_category::broadcasted` + `relay_method::none` for rpc relay requests or historical reasons
|
||||||
|
all //< Everything in the db
|
||||||
|
}
|
||||||
|
|
||||||
|
fn matches_category(relay_method: RelayMethod, relay_category: RelayCategory) -> bool {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief a struct containing output metadata
|
||||||
|
*/
|
||||||
|
pub struct output_data_t {
|
||||||
|
pubkey: monero::util::key::PublicKey, //< the output's public key (for spend verification)
|
||||||
|
unlock_time: u64, //< the output's unlock time (or height)
|
||||||
|
height: u64, //< the height of the block which created the output
|
||||||
|
commitment: monero::util::ringct::Key, //< the output's amount commitment (for spend verification)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct tx_data_t {
|
||||||
|
tx_id: u64,
|
||||||
|
unlock_time: u64,
|
||||||
|
block_id: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct alt_block_data_t {
|
||||||
|
height: u64,
|
||||||
|
cumulative_weight: u64,
|
||||||
|
cumulative_difficulty_low: u64,
|
||||||
|
cumulative_difficulty_high: u64,
|
||||||
|
already_generated_coins: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct txpool_tx_meta_t {
|
||||||
|
max_used_block_id: monero::cryptonote::hash::Hash,
|
||||||
|
last_failed_id: monero::cryptonote::hash::Hash,
|
||||||
|
weight: u64,
|
||||||
|
fee: u64,
|
||||||
|
max_used_block_height: u64,
|
||||||
|
last_failed_height: u64,
|
||||||
|
receive_time: u64,
|
||||||
|
last_relayed_time: u64, //< If received over i2p/tor, randomized forward time. If Dandelion++stem, randomized embargo time. Otherwise, last relayed timestamp
|
||||||
|
// 112 bytes
|
||||||
|
kept_by_block: u8,
|
||||||
|
relayed: u8,
|
||||||
|
do_not_relay: u8,
|
||||||
|
double_spend_seen: u8,
|
||||||
|
pruned: u8,
|
||||||
|
is_local: u8,
|
||||||
|
dandelionpp_stem: u8,
|
||||||
|
is_forwarding: u8,
|
||||||
|
bf_padding: u8,
|
||||||
|
|
||||||
|
padding: [u8; 76],
|
||||||
|
}
|
||||||
|
|
||||||
|
impl txpool_tx_meta_t {
|
||||||
|
fn set_relay_method(relay_method: RelayMethod) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fn upgrade_relay_method(relay_method: RelayMethod) -> bool {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// See `relay_category` description
|
||||||
|
fn matches(category: RelayCategory) -> bool {
|
||||||
|
return matches_category(todo!(), category)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// TODO : String -> Vec<u8> they are cryptonote::blobdata
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum DB_FAILURES {
|
||||||
|
DB_ERROR,
|
||||||
|
DB_EXCEPTION,
|
||||||
|
BLOCK_DNE,
|
||||||
|
OUTPUT_DNE,
|
||||||
|
TX_DNE,
|
||||||
|
ARITHEMTIC_COUNT,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(in super) trait BlockchainDB {
|
||||||
|
|
||||||
|
// supposed to be private
|
||||||
|
|
||||||
|
fn add_block() -> Result<(), DB_FAILURES>;
|
||||||
|
|
||||||
|
fn remove_block() -> Result<(), DB_FAILURES>;
|
||||||
|
|
||||||
|
fn add_transaction_data() -> Result<u64, DB_FAILURES>;
|
||||||
|
|
||||||
|
fn remove_transaction_data() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn add_output() -> Result<u64, DB_FAILURES>;
|
||||||
|
|
||||||
|
fn add_tx_amount_output_indices() -> Result<(), DB_FAILURES>;
|
||||||
|
|
||||||
|
fn add_spent_key() -> Result<(), DB_FAILURES>;
|
||||||
|
|
||||||
|
fn remove_spent_key() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn pop_block();
|
||||||
|
|
||||||
|
fn remove_transaction();
|
||||||
|
|
||||||
|
// uint64_t num_calls = 0; //!< a performance metric
|
||||||
|
// uint64_t time_blk_hash = 0; //!< a performance metric
|
||||||
|
// uint64_t time_add_block1 = 0; //!< a performance metric
|
||||||
|
// uint64_t time_add_transaction = 0; //!< a performance metric
|
||||||
|
|
||||||
|
// supposed to be protected
|
||||||
|
|
||||||
|
fn add_transaction();
|
||||||
|
|
||||||
|
// mutable uint64_t time_tx_exists = 0; //!< a performance metric
|
||||||
|
// uint64_t time_commit1 = 0; //!< a performance metric
|
||||||
|
// bool m_auto_remove_logs = true; //!< whether or not to automatically remove old logs
|
||||||
|
|
||||||
|
// HardFork* m_hardfork; | protected: int *m_hardfork
|
||||||
|
|
||||||
|
// supposed to be public
|
||||||
|
|
||||||
|
// a constructor maybe
|
||||||
|
fn a_constructor_maybe() -> Self where Self: Sized;
|
||||||
|
|
||||||
|
// a destructor maybe
|
||||||
|
fn well_i_really_dont_know_here();
|
||||||
|
|
||||||
|
fn init_options();
|
||||||
|
|
||||||
|
fn reset_stats();
|
||||||
|
|
||||||
|
fn show_stats();
|
||||||
|
|
||||||
|
fn open() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn is_open() -> bool;
|
||||||
|
|
||||||
|
fn close() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn sync() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn safesyncmode(onoff: &'static bool) -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn reset() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Primarly used by unit tests
|
||||||
|
fn get_filenames() -> Vec<String>;
|
||||||
|
|
||||||
|
fn get_db_name() -> String;
|
||||||
|
|
||||||
|
// Reset the database (used only fore core tests, functional tests, etc)
|
||||||
|
fn remove_data_file(folder: &'static String) -> bool; // may not be static
|
||||||
|
|
||||||
|
fn lock() -> Result<bool,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn unlock() -> Result<bool,DB_FAILURES>;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fn batch_start(batch_num_blocks: u64, batch_bytes: u64) -> Result<bool,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn batch_abort() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn set_batch_transactions() -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn block_wtxn_start();
|
||||||
|
fn block_wtxn_stop();
|
||||||
|
fn block_wtxn_abort();
|
||||||
|
|
||||||
|
fn block_rtxn_start();
|
||||||
|
fn block_rtxn_stop();
|
||||||
|
fn block_rtxn_abort();
|
||||||
|
|
||||||
|
fn set_hard_fork(); // (HardFork* hf)
|
||||||
|
|
||||||
|
fn add_block_public() -> Result<u64, DB_FAILURES>;
|
||||||
|
|
||||||
|
fn block_exists(h: monero::cryptonote::hash::Hash, height: u64) -> bool;
|
||||||
|
|
||||||
|
fn get_block_blob(h: monero::cryptonote::hash::Hash) -> Result<String,DB_FAILURES>; // cryptonote::blobdata which is String underhood
|
||||||
|
|
||||||
|
fn get_block(h: monero::cryptonote::hash::Hash) -> Result<monero::Block,DB_FAILURES>; // Result<block,DB_FAILURES> and block is int
|
||||||
|
|
||||||
|
fn get_block_height(h: monero::cryptonote::hash::Hash) -> Result<u64,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_header(h: monero::cryptonote::hash::Hash) -> Result<monero::BlockHeader,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_blob_from_height(height: u64) -> Result<String,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_from_height(height: u64) -> Result<monero::Block,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_timestamp(height: u64) -> Result<u64,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_cumulative_rct_outputs(heights: Vec<u64>) -> Result<Vec<u64>,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_top_block_timestamp() -> Result<u64,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_weight(weight: u64) -> Result<usize, DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_weights(start_height: u64, count: usize) -> Result<Vec<u64>,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_cumulative_difficulty(height: u64) -> Result<difficulty_type,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_difficulty(height: u64) -> Result<difficulty_type,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn correct_block_cumulative_difficulties(start_height: u64, new_cumulative_difficulties: Vec<difficulty_type>) -> Result<(),DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_already_generated_coins(height: u64) -> Result<u64,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_block_long_term_weight(height: u64) -> Result<u64,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_long_term_block_weights(height: u64, count: usize) -> Result<Vec<u64>,DB_FAILURES>; // Shouldn't have DB_FAILURES
|
||||||
|
|
||||||
|
fn get_block_hash_from_height(height: u64) -> Result<monero::cryptonote::hash::Hash,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_blocks_range(h1: u64, h2: u64) -> Result<Vec<monero::Block>, DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_hashes_range(h1: u64, h2: u64) -> Result<Vec<monero::cryptonote::hash::Hash>,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn top_block_hash(block_height: u64) -> monero::cryptonote::hash::Hash;
|
||||||
|
|
||||||
|
fn get_top_block() -> monero::Block;
|
||||||
|
|
||||||
|
fn height() -> u64;
|
||||||
|
|
||||||
|
// TODO idk never done a todo in my life
|
||||||
|
// Gonna use this as an excuse to split this hell one more time
|
||||||
|
//. a dot. because dot. is cool.
|
||||||
|
|
||||||
|
fn pop_block_public(blk: &mut monero::Block, txs: Vec<monero::Transaction>);
|
||||||
|
|
||||||
|
// fn tx_exists(h: monero::cryptonote::hash::Hash, tx_id: Option<u64>) -> Result<(),()>; // Maybe error should be DB_FAILURES, not specified in docs
|
||||||
|
|
||||||
|
// started renaming
|
||||||
|
|
||||||
|
// issues. They want to use mut reference to edit the hash if it exist or not. | arg is return and return in Result
|
||||||
|
// Confirmed. These are indirect functions that take return their results through mutable references and report success with a boolean.
|
||||||
|
// Seems important to refactor this
|
||||||
|
|
||||||
|
//fn tx_exist(h: monero::cryptonote::hash::Hash, tx: monero::Transaction) -> bool;
|
||||||
|
|
||||||
|
fn tx_pruned_exist(h: monero::cryptonote::hash::Hash, tx: monero::Transaction) -> bool;
|
||||||
|
|
||||||
|
//fn get_tx_blob(h: monero::cryptonote::hash::Hash, tx: String) -> bool;
|
||||||
|
|
||||||
|
//fn get_pruned_tx_blob(h: monero::cryptonote::hash::Hash, tx: &mut String) -> bool;
|
||||||
|
|
||||||
|
fn get_blocks_from(start_height: u64, min_block_count: usize, max_block_count: usize, max_tx_count: usize, max_size: usize, blocks: &mut Vec<((String, monero::cryptonote::hash::Hash), Vec<(monero::cryptonote::hash::Hash, String)>)>, pruned: bool, skip_coinbase: bool, get_miner_tx_hash: bool) -> bool;
|
||||||
|
|
||||||
|
fn get_prunable_tx_hash(tx_hash: &monero::cryptonote::hash::Hash, prunable_hash: &mut monero::cryptonote::hash::Hash) -> bool;
|
||||||
|
|
||||||
|
fn get_tx_count() -> u64;
|
||||||
|
|
||||||
|
fn get_tx_list(hlist: &Vec<monero::cryptonote::hash::Hash>) -> Vec<monero::Transaction>;
|
||||||
|
|
||||||
|
fn get_tx_block_height(h: monero::cryptonote::hash::Hash) -> Result<u64,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_num_outputs(amount: &u64) -> u64;
|
||||||
|
|
||||||
|
// Should be hidden but it isn't????
|
||||||
|
fn get_indexing_base() -> u64 { return 0;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FINNALY SOME BLOCKCHAIN_DB.H STUFF OUT THERE!!!
|
||||||
|
|
||||||
|
fn get_output_key(amount: &u64, index: &u64, include_commitmemt: bool) -> Result<output_data_t, DB_FAILURES>;
|
||||||
|
|
||||||
|
fn get_output_tx_and_index_from_global(index: &u64) -> TxOutIndex;
|
||||||
|
|
||||||
|
fn get_output_tx_and_index(amount: &u64, index: &u64,) -> TxOutIndex;
|
||||||
|
|
||||||
|
fn get_output_tx_and_index_void(amount: &u64, offsets: &Vec<u64>, indices: &Vec<TxOutIndex>);
|
||||||
|
|
||||||
|
fn get_output_key_void(amounts: &Vec<u64>, offsets: &Vec<u64>, outputs: &Vec<output_data_t>, allow_partial: bool); // wtf is std::span|epee::span. I see no difference with a Rust vector, also allow_partial is be default false
|
||||||
|
|
||||||
|
// LMAO WTF IS CAN_THREAD_BULK_INDICES
|
||||||
|
|
||||||
|
fn get_tx_amount_output_indices(tx_id: u64, n_txes: usize) -> Vec<Vec<u64>>;
|
||||||
|
|
||||||
|
fn has_key_image(img: &monero::blockdata::transaction::KeyImage) -> bool;
|
||||||
|
|
||||||
|
fn add_txpool_tx(txid: &monero::cryptonote::hash::Hash, blob: &Vec<u8>, details: &txpool_tx_meta_t);
|
||||||
|
|
||||||
|
fn update_txpool_tx(txid: &monero::Hash, details: &txpool_tx_meta_t);
|
||||||
|
|
||||||
|
fn get_txpool_tx_count(tx_category: RelayCategory) -> u64;
|
||||||
|
|
||||||
|
fn txpool_has_tx(txid: &monero::Hash, tx_category: &RelayCategory) -> bool;
|
||||||
|
|
||||||
|
fn remove_txpool_tx(txid: &monero::Hash);
|
||||||
|
|
||||||
|
fn get_txpool_tx_meta(txid: &monero::Hash, meta: &txpool_tx_meta_t) -> bool;
|
||||||
|
|
||||||
|
fn get_txpool_tx_blob(txid: &monero::Hash, bd: &mut Vec<u8>, tx_category: RelayCategory) -> bool;
|
||||||
|
|
||||||
|
fn get_txpool_tx_blob_but_blob(txid: &monero::Hash, tx_category: RelayCategory) -> Vec<u8>;
|
||||||
|
|
||||||
|
fn txpool_tx_matches_category(tx_hash: &monero::Hash, category: RelayCategory) -> bool;
|
||||||
|
|
||||||
|
fn prune_outputs(amount: u64);
|
||||||
|
|
||||||
|
// Wtf no more arguments
|
||||||
|
|
||||||
|
fn get_blockchain_pruning_seed() -> u32;
|
||||||
|
|
||||||
|
fn update_pruning() -> bool;
|
||||||
|
|
||||||
|
fn check_pruning() -> bool;
|
||||||
|
|
||||||
|
fn get_max_block_size() -> u64;
|
||||||
|
|
||||||
|
fn add_max_block_size() -> u64;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fn add_alt_block(blkid: &monero::Hash, data: &alt_block_data_t, blob: &Vec<u8>);
|
||||||
|
|
||||||
|
fn get_alt_block(blkid: &monero::Hash, data: *mut alt_block_data_t, blob: *mut Vec<u8>) -> bool;
|
||||||
|
|
||||||
|
fn remove_alt_block(blkid: &monero::Hash);
|
||||||
|
|
||||||
|
fn get_alt_block_count() -> u64;
|
||||||
|
|
||||||
|
fn drop_alt_blocks();
|
||||||
|
|
||||||
|
fn for_all_txpool_txes(wat: fn(wat1: &monero::Hash, wat2: &txpool_tx_meta_t, wat3: &String) -> bool, include_blob: bool, category: RelayCategory) -> Result<bool,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn for_all_keys_images(wat: fn(ki: &monero::blockdata::transaction::KeyImage) -> bool) -> Result<bool,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn for_blocks_range(h1: &u64, h2: &u64, wat: fn(u: u64, h: &monero::Hash, blk: &monero::Block) -> bool) -> Result<bool,DB_FAILURES>; // u: u64 should be mut u: u64
|
||||||
|
|
||||||
|
fn for_all_transactions(wat: fn(h: &monero::Hash, tx: &monero::Transaction) -> bool, pruned: bool) -> Result<bool,DB_FAILURES>;
|
||||||
|
|
||||||
|
fn for_all_outputs();
|
||||||
|
|
||||||
|
fn for_all_alt_blocks();
|
||||||
|
|
||||||
|
fn set_hard_fork_version();
|
||||||
|
|
||||||
|
fn get_hard_fork_version();
|
||||||
|
|
||||||
|
fn check_hard_fork_info();
|
||||||
|
|
||||||
|
fn drop_hard_fork_info();
|
||||||
|
|
||||||
|
fn get_output_histogram();
|
||||||
|
|
||||||
|
fn get_output_distribution();
|
||||||
|
|
||||||
|
fn is_read_only();
|
||||||
|
|
||||||
|
fn get_database_size();
|
||||||
|
|
||||||
|
fn fixup();
|
||||||
|
|
||||||
|
fn set_auto_remove_logs();
|
||||||
|
|
||||||
|
// some note to help me
|
||||||
|
|
||||||
|
// get_*_tx group : get_tx, get_pruned_tx. they are duplicate
|
||||||
|
|
||||||
|
// Confirmed part that don't need to be redfined or smthg
|
||||||
|
|
||||||
|
// -----------------------------| Transactions |-----------------------------------------
|
||||||
|
|
||||||
|
/// `tx_exists` check if a transaction exist with the given hash.
|
||||||
|
///
|
||||||
|
/// Return `true` if the transaction exist, `false` otherwise. In case of failure, a DB_FAILURES will be return.
|
||||||
|
///
|
||||||
|
/// Parameters :
|
||||||
|
/// `h` is the given hash of transaction to check.
|
||||||
|
/// `tx_id` is an optional mutable reference to get the transaction id out of the found transaction.
|
||||||
|
fn tx_exists(h: &monero::Hash, tx_id: &mut Option<u64>) -> Result<bool, DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_tx_unlock_time` fetch a transaction's unlock time/height
|
||||||
|
///
|
||||||
|
/// Should return the unlock time/height in u64. In case of failure, a DB_FAILURES will be return.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of the transaction to check.
|
||||||
|
fn get_tx_unlock_time(h: &Hash) -> Result<u64, DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_tx` fetches the transaction with the given hash.
|
||||||
|
///
|
||||||
|
/// Should return the transaction. In case of failure, a DB_FAILURES will be return.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of transaction to fetch.
|
||||||
|
fn get_tx(h: &Hash) -> Result<Transaction,DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_pruned_tx` fetches the transaction base with the given hash.
|
||||||
|
///
|
||||||
|
/// Should return the transaction. In case of failure, a DB_FAILURES will be return.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of transaction to fetch
|
||||||
|
fn get_pruned_tx(h: &Hash) -> Result<Transaction,DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_tx_blob` fetches the transaction blob with the given hash.
|
||||||
|
///
|
||||||
|
/// Should return the transaction blob. In case of failure, a DB_FAILURES will be return.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of the transaction to fetch.
|
||||||
|
fn get_tx_blob(h: &Hash) -> Result<Blobldata,DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_pruned_tx_blob` fetches the pruned transaction blob with the given hash.
|
||||||
|
///
|
||||||
|
/// Should return the transaction blob. In case of failure, a DB_FAILURES will be return.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of the transaction to fetch.
|
||||||
|
fn get_pruned_tx_blob(h: &Hash) -> Result<Blobldata,DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_prunable_tx_blob` fetches the prunable transaction blob with the given hash.
|
||||||
|
///
|
||||||
|
/// Should return the transaction blob, In case of failure, a DB_FAILURES, will be return.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of the transaction to fetch.
|
||||||
|
fn get_prunable_tx_blob(h: &Hash) -> Result<Blobldata,DB_FAILURES>;
|
||||||
|
|
||||||
|
/// `get_pruned_tx_blobs_from` fetches a number of pruned transaction blob from the given hash, in canonical blockchain order.
|
||||||
|
///
|
||||||
|
/// Should return the pruned transactions stored from the one with the given hash. In case of failure, a DB_FAILURES will be return.
|
||||||
|
/// Precisly, an ARITHMETIC_COUNT error will be returned if the first transaction does not exist or their are fewer transactions than the count.
|
||||||
|
///
|
||||||
|
/// Parameters:
|
||||||
|
/// `h`: is the given hash of the first transaction/
|
||||||
|
/// `count`: is the number of transaction to fetch in canoncial blockchain order.
|
||||||
|
fn get_pruned_tx_blobs_from(h: &Hash, count: usize) -> Result<Vec<Blobldata>,DB_FAILURES>;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// bool m_open;
|
||||||
|
// mutable epee::critical_section m_synchronization_lock; //!< A lock, currently for when BlockchainLMDB needs to resize the backing db file
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
3
src/blocks/main.rs
Normal file
3
src/blocks/main.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
pub mod blocks {
|
||||||
|
|
||||||
|
}
|
1
src/cryptonote_basic/difficulty.rs
Normal file
1
src/cryptonote_basic/difficulty.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
pub type difficulty_type = u128;
|
1
src/cryptonote_basic/mod.rs
Normal file
1
src/cryptonote_basic/mod.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
pub mod difficulty;
|
9
src/cryptonote_protocol/enums.rs
Normal file
9
src/cryptonote_protocol/enums.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
/// Methods tracking how a tx was received and relayed
|
||||||
|
pub enum RelayMethod {
|
||||||
|
none, //< Received via RPC with `do_not_relay` set
|
||||||
|
local, //< Received via RPC; trying to send over i2p/tor, etc.
|
||||||
|
forward, //< Received over i2p/tor; timer delayed before ipv4/6 public broadcast
|
||||||
|
stem, //< Received/send over network using Dandelion++ stem
|
||||||
|
fluff, //< Received/sent over network using Dandelion++ fluff
|
||||||
|
block, //< Received in block, takes precedence over others
|
||||||
|
}
|
1
src/cryptonote_protocol/mod.rs
Normal file
1
src/cryptonote_protocol/mod.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
pub mod enums;
|
8
src/main.rs
Normal file
8
src/main.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
pub mod blockchain_db;
|
||||||
|
pub mod cryptonote_protocol;
|
||||||
|
pub mod cryptonote_basic;
|
||||||
|
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
Loading…
Reference in a new issue