mirror of
https://github.com/Cuprate/cuprate.git
synced 2024-12-22 19:49:28 +00:00
9c27ba5791
* write: impl write_block()
* ops: add `get_block_info()`
* read: impl block fn's
* read: fix signatures
* service: wrap `ConcreteEnv` in `RwLock` and doc why
* heed: use `read-txn-no-tls` for `Send` read transactions
* service: remove RwLock, impl some read functions
* read: impl `outputs()`
* read: flatten indentation, add `thread_local()`
* read: impl `number_outputs_with_amount()`
* tests: add `AssertTableLen`
* ops: replace all table len asserts with `AssertTableLen`
* service: initial tests
* service: finish most tests
* service: fix bad block data in test
* tables: fix incorrect doc
* service: add `ReadRequest::Outputs` test
* read: use macros for set/getting `ThreadLocal`'s based on backend
* small fixes
* fix review
* small fixes
* read: fix ThreadLocal macros for `redb`
* read: move `Output` mapping to `crate::free`
it's needed in tests too
* service: check output value correctness in tests
* helper: add timelock <-> u64 mapping functions
* free: use `u64_to_timelock()`
* read: rct outputs
* read: fix variable name
* read: use ThreadLocal for both backends
* heed: use Mutex for `HeedTableRo`'s read tx
* block: add miner_tx
* heed: remove Table bound
oops
* Revert "heed: use Mutex for `HeedTableRo`'s read tx"
This reverts commit 7e8aae016c
.
* add `UnsafeSendable`
* read: use `UnsafeSendable` for `heed`, branch on backend
* read: safety docs
* cargo.toml: re-add `read-txn-no-tls` for heed
* ops: fix tests, remove miner_tx
* fix tx_idx calculation, account for RCT outputs in tests
* read: docs, fix `get_tables!()` for both backends
* fix clippy
* database: `unsafe trait DatabaseRo`
* tx: use correct tx_id
* free: remove miner_tx comment
* free: remove `amount` input for rct outputs
* ops: split `add_tx` inputs
* read: use `UnsafeSendable` for all backends
* heed: update safety comment
* move output functions `free` -> `ops`
* read: fix `chain_height()` handling
* remove serde on `UnsafeSendable`
* de-dup docs on `trait DatabaseRo`, `get_tables!()`
* Update database/src/unsafe_sendable.rs
Co-authored-by: Boog900 <boog900@tutanota.com>
---------
Co-authored-by: Boog900 <boog900@tutanota.com>
59 lines
No EOL
2.5 KiB
TOML
59 lines
No EOL
2.5 KiB
TOML
[package]
|
|
name = "cuprate-database"
|
|
version = "0.0.0"
|
|
edition = "2021"
|
|
description = "Cuprate's database abstraction"
|
|
license = "MIT"
|
|
authors = ["hinto-janai"]
|
|
repository = "https://github.com/Cuprate/cuprate/tree/main/database"
|
|
keywords = ["cuprate", "database"]
|
|
|
|
[features]
|
|
default = ["heed", "redb", "service"]
|
|
# default = ["redb", "service"]
|
|
# default = ["redb-memory", "service"]
|
|
heed = ["dep:heed"]
|
|
redb = ["dep:redb"]
|
|
redb-memory = ["redb"]
|
|
service = ["dep:crossbeam", "dep:futures", "dep:tokio", "dep:tokio-util", "dep:tower", "dep:rayon"]
|
|
|
|
[dependencies]
|
|
bitflags = { workspace = true, features = ["serde", "bytemuck"] }
|
|
bytemuck = { version = "1.14.3", features = ["must_cast", "derive", "min_const_generics", "extern_crate_alloc"] }
|
|
bytes = { workspace = true }
|
|
cfg-if = { workspace = true }
|
|
# FIXME:
|
|
# We only need the `thread` feature if `service` is enabled.
|
|
# Figure out how to enable features of an already pulled in dependency conditionally.
|
|
cuprate-helper = { path = "../helper", features = ["fs", "thread", "map"] }
|
|
cuprate-types = { path = "../types", features = ["service"] }
|
|
curve25519-dalek = { workspace = true }
|
|
monero-pruning = { path = "../pruning" }
|
|
monero-serai = { workspace = true, features = ["std"] }
|
|
paste = { workspace = true }
|
|
page_size = { version = "0.6.0" } # Needed for database resizes, they must be a multiple of the OS page size.
|
|
thiserror = { workspace = true }
|
|
|
|
# `service` feature.
|
|
crossbeam = { workspace = true, features = ["std"], optional = true }
|
|
futures = { workspace = true, optional = true }
|
|
tokio = { workspace = true, features = ["full"], optional = true }
|
|
tokio-util = { workspace = true, features = ["full"], optional = true }
|
|
tower = { workspace = true, features = ["full"], optional = true }
|
|
thread_local = { workspace = true }
|
|
rayon = { workspace = true, optional = true }
|
|
|
|
# Optional features.
|
|
heed = { version = "0.20.0", features = ["read-txn-no-tls"], optional = true }
|
|
redb = { version = "2.1.0", optional = true }
|
|
serde = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
bytemuck = { version = "1.14.3", features = ["must_cast", "derive", "min_const_generics", "extern_crate_alloc"] }
|
|
cuprate-helper = { path = "../helper", features = ["thread"] }
|
|
cuprate-test-utils = { path = "../test-utils" }
|
|
page_size = { version = "0.6.0" }
|
|
tempfile = { version = "3.10.0" }
|
|
pretty_assertions = { workspace = true }
|
|
hex = { workspace = true }
|
|
hex-literal = { workspace = true } |