mirror of
https://github.com/Cuprate/cuprate.git
synced 2025-03-20 14:18:50 +00:00
small fixes
This commit is contained in:
parent
9a507e7053
commit
3a172e05ac
4 changed files with 2 additions and 96 deletions
|
@ -44,9 +44,8 @@ thread_local = { workspace = true }
|
||||||
rayon = { workspace = true, optional = true }
|
rayon = { workspace = true, optional = true }
|
||||||
|
|
||||||
# Optional features.
|
# Optional features.
|
||||||
# SAFETY: Do not remove the `read-txn-no-tls` feature.
|
# SAFETY: Do not remove the `read-txn-no-tls` feature,
|
||||||
# Required for `heed`'s read transaction to be `Send`.
|
# required for `heed`'s read transaction to be `Send`.
|
||||||
# See <TODO: link_to_safety_commit_line> for more info.
|
|
||||||
heed = { version = "0.20.0-alpha.9", features = ["read-txn-no-tls"], optional = true }
|
heed = { version = "0.20.0-alpha.9", features = ["read-txn-no-tls"], optional = true }
|
||||||
redb = { version = "2.0.0", optional = true }
|
redb = { version = "2.0.0", optional = true }
|
||||||
serde = { workspace = true, optional = true }
|
serde = { workspace = true, optional = true }
|
||||||
|
|
|
@ -1,86 +0,0 @@
|
||||||
//! General constants used throughout `cuprate-database`.
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Import
|
|
||||||
use cfg_if::cfg_if;
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Version
|
|
||||||
/// Current major version of the database.
|
|
||||||
///
|
|
||||||
/// Returned by [`crate::ops::property::db_version`].
|
|
||||||
///
|
|
||||||
/// This is incremented by 1 when `cuprate_database`'s
|
|
||||||
/// structure/schema/tables change.
|
|
||||||
///
|
|
||||||
/// This is akin to `VERSION` in `monerod`:
|
|
||||||
/// <https://github.com/monero-project/monero/blob/c8214782fb2a769c57382a999eaf099691c836e7/src/blockchain_db/lmdb/db_lmdb.cpp#L57>
|
|
||||||
pub const DATABASE_VERSION: u64 = 0;
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Error Messages
|
|
||||||
/// Corrupt database error message.
|
|
||||||
///
|
|
||||||
/// The error message shown to end-users in panic
|
|
||||||
/// messages if we think the database is corrupted.
|
|
||||||
///
|
|
||||||
/// This is meant to be user-friendly.
|
|
||||||
pub const DATABASE_CORRUPT_MSG: &str = r"Cuprate has encountered a fatal error. The database may be corrupted.
|
|
||||||
|
|
||||||
TODO: instructions on:
|
|
||||||
1. What to do
|
|
||||||
2. How to fix (re-sync, recover, etc)
|
|
||||||
3. General advice for preventing corruption
|
|
||||||
4. etc";
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Misc
|
|
||||||
/// Static string of the `crate` being used as the database backend.
|
|
||||||
///
|
|
||||||
/// | Backend | Value |
|
|
||||||
/// |---------|-------|
|
|
||||||
/// | `heed` | "heed"
|
|
||||||
/// | `redb` | "redb"
|
|
||||||
pub const DATABASE_BACKEND: &str = {
|
|
||||||
cfg_if! {
|
|
||||||
if #[cfg(all(feature = "redb", not(feature = "heed")))] {
|
|
||||||
"redb"
|
|
||||||
} else {
|
|
||||||
"heed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// Cuprate's database filename.
|
|
||||||
///
|
|
||||||
/// Used in [`Config::db_file`](crate::config::Config::db_file).
|
|
||||||
///
|
|
||||||
/// | Backend | Value |
|
|
||||||
/// |---------|-------|
|
|
||||||
/// | `heed` | "data.mdb"
|
|
||||||
/// | `redb` | "data.redb"
|
|
||||||
pub const DATABASE_DATA_FILENAME: &str = {
|
|
||||||
cfg_if! {
|
|
||||||
if #[cfg(all(feature = "redb", not(feature = "heed")))] {
|
|
||||||
"data.redb"
|
|
||||||
} else {
|
|
||||||
"data.mdb"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// Cuprate's database lock filename.
|
|
||||||
///
|
|
||||||
/// | Backend | Value |
|
|
||||||
/// |---------|-------|
|
|
||||||
/// | `heed` | Some("lock.mdb")
|
|
||||||
/// | `redb` | None (redb doesn't use a file lock)
|
|
||||||
pub const DATABASE_LOCK_FILENAME: Option<&str> = {
|
|
||||||
cfg_if! {
|
|
||||||
if #[cfg(all(feature = "redb", not(feature = "heed")))] {
|
|
||||||
None
|
|
||||||
} else {
|
|
||||||
Some("lock.mdb")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Tests
|
|
||||||
#[cfg(test)]
|
|
||||||
mod test {}
|
|
|
@ -1,10 +1,5 @@
|
||||||
//! Database reader thread-pool definitions and logic.
|
//! Database reader thread-pool definitions and logic.
|
||||||
|
|
||||||
// `EnvInner` is a RwLock for `heed`.
|
|
||||||
// Clippy thinks it should be dropped earlier but it
|
|
||||||
// needs to be open until most functions return.
|
|
||||||
#![allow(clippy::significant_drop_tightening)]
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Import
|
//---------------------------------------------------------------------------------------------------- Import
|
||||||
use std::{
|
use std::{
|
||||||
collections::{HashMap, HashSet},
|
collections::{HashMap, HashSet},
|
||||||
|
@ -476,7 +471,6 @@ fn number_outputs_with_amount(env: &ConcreteEnv, amounts: Vec<Amount>) -> Respon
|
||||||
// INVARIANT: #[cfg] @ lib.rs asserts `usize == u64`
|
// INVARIANT: #[cfg] @ lib.rs asserts `usize == u64`
|
||||||
#[allow(clippy::cast_possible_truncation)]
|
#[allow(clippy::cast_possible_truncation)]
|
||||||
Ok(count) => Ok((amount, count as usize)),
|
Ok(count) => Ok((amount, count as usize)),
|
||||||
Err(RuntimeError::KeyNotFound) => Ok((amount, 0)),
|
|
||||||
Err(e) => Err(e),
|
Err(e) => Err(e),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -228,7 +228,6 @@ impl DatabaseWriter {
|
||||||
|
|
||||||
/// [`WriteRequest::WriteBlock`].
|
/// [`WriteRequest::WriteBlock`].
|
||||||
#[inline]
|
#[inline]
|
||||||
#[allow(clippy::significant_drop_tightening)]
|
|
||||||
fn write_block(env: &ConcreteEnv, block: &VerifiedBlockInformation) -> ResponseResult {
|
fn write_block(env: &ConcreteEnv, block: &VerifiedBlockInformation) -> ResponseResult {
|
||||||
let env_inner = env.env_inner();
|
let env_inner = env.env_inner();
|
||||||
let tx_rw = env_inner.tx_rw()?;
|
let tx_rw = env_inner.tx_rw()?;
|
||||||
|
|
Loading…
Reference in a new issue