Skip to main content

Db

Struct Db 

Source
pub struct Db { /* private fields */ }
Expand description

The Store’s database.

Every write serializes on the single framework writer connection. Every read runs on the framework reader pool.

Implementations§

Source§

impl Db

Source

pub async fn bootstrap( database_filepath: PathBuf, genesis: GenesisBlock, ) -> Result<()>

Creates a new database and inserts the genesis block.

Source

pub async fn load(database_filepath: PathBuf) -> Result<Self, DatabaseError>

Open a connection to the DB after verifying that it is at the latest schema version.

Source

pub async fn load_with_pool_size( database_filepath: PathBuf, connection_pool_size: NonZeroUsize, ) -> Result<Self, DatabaseError>

Open a connection to the DB with a specific pool size after verifying that it is at the latest schema version.

Source

pub async fn select_protocol_config_by_commitment( &self, commitment: Word, ) -> Result<Option<ProtocolConfig>, DatabaseError>

Selects a protocol configuration by its commitment.

Source

pub async fn select_protocol_config_commitment_at( &self, block_number: ScopedBlockNum, ) -> Result<Option<Word>, DatabaseError>

Selects the configuration commitment active at the specified block.

Source

pub fn migrate(database_filepath: impl AsRef<Path>) -> Result<(), DatabaseError>

Applies all pending migrations to an existing DB.

Source

pub async fn select_nullifiers_paged( &self, page_size: NonZeroUsize, after_nullifier: Option<Nullifier>, ) -> Result<NullifiersPage, DatabaseError>

Returns a page of nullifiers for tree rebuilding.

Source

pub async fn select_nullifiers_by_prefix( &self, prefix_len: u32, nullifier_prefixes: Vec<u32>, block_range: ScopedBlockRange, ) -> Result<(Vec<NullifierInfo>, BlockNumber), DatabaseError>

Loads the nullifiers that match the prefixes from the DB.

Source

pub async fn select_block_header_by_block_num( &self, maybe_block_number: Option<ScopedBlockNum>, ) -> Result<Option<BlockHeader>, DatabaseError>

Search for a BlockHeader from the database by its block_num.

When block_number is None, the latest block header is returned.

Source

pub async fn select_block_header_and_signatures_by_block_num( &self, block_number: ScopedBlockNum, ) -> Result<Option<(BlockHeader, BlockSignatures)>, DatabaseError>

Search for a BlockHeader and its BlockSignatures from the database by its block_num.

Source

pub async fn select_block_headers( &self, blocks: impl Iterator<Item = ScopedBlockNum> + Send + 'static, ) -> Result<Vec<BlockHeader>, DatabaseError>

Loads multiple block headers from the DB.

Source

pub async fn select_all_block_header_commitments( &self, ) -> Result<Vec<BlockHeaderCommitment>, DatabaseError>

Loads all the block headers from the DB.

Source

pub async fn select_account_commitments_paged( &self, page_size: NonZeroUsize, after_account_id: Option<AccountId>, ) -> Result<AccountCommitmentsPage, DatabaseError>

Returns a page of account commitments for tree rebuilding.

Source

pub async fn select_public_account_ids_paged( &self, page_size: NonZeroUsize, after_account_id: Option<AccountId>, ) -> Result<PublicAccountIdsPage, DatabaseError>

Returns a page of public account IDs for forest rebuilding.

Source

pub async fn select_public_account_state_roots_paged( &self, page_size: NonZeroUsize, after_account_id: Option<AccountId>, ) -> Result<PublicAccountStateRootsPage, DatabaseError>

Returns a page of public account state roots for forest consistency verification.

Source

pub async fn select_account( &self, id: AccountId, ) -> Result<AccountInfo, DatabaseError>

Loads public account details from the DB.

Source

pub async fn filter_network_accounts( &self, account_ids: Vec<AccountId>, ) -> Result<HashSet<AccountId>, DatabaseError>

Returns the subset of the provided account IDs that classify as network accounts.

Source

pub async fn select_account_code_by_commitment( &self, code_commitment: Word, ) -> Result<Option<AccountCode>, DatabaseError>

Queries the account code by its commitment hash.

Returns None if no code exists with that commitment.

Source

pub async fn select_account_header_with_storage_header_at_block( &self, account_id: AccountId, block_num: ScopedBlockNum, ) -> Result<Option<(AccountHeader, AccountStorageHeader)>, DatabaseError>

Queries the account header and storage header for a specific account at a block.

Returns both in a single query to avoid querying the database twice. Returns None if the account doesn’t exist at that block.

Source

pub async fn get_note_sync_multi( &self, block_range: ScopedBlockRange, note_tags: Arc<[u32]>, ) -> Result<Vec<NoteSyncUpdate>, NoteSyncError>

Source

pub async fn select_notes_by_id( &self, note_ids: Vec<NoteId>, ) -> Result<Vec<NoteRecord>, DatabaseError>

Loads all the miden_protocol::note::Notes matching a certain NoteId from the database.

Source

pub async fn select_existing_note_ids( &self, note_ids: Vec<NoteId>, up_to_block: ScopedBlockNum, ) -> Result<HashSet<NoteId>, DatabaseError>

Returns the requested note IDs that the database contains at or before up_to_block.

Source

pub async fn select_note_inclusion_proofs( &self, note_commitments: BTreeSet<Word>, up_to_block: ScopedBlockNum, ) -> Result<BTreeMap<NoteId, NoteInclusionProof>, DatabaseError>

Loads inclusion proofs for notes matching the given note commitments that were committed at or before up_to_block.

Source

pub async fn select_vault_at_block( &self, account_id: AccountId, block_num: ScopedBlockNum, ) -> Result<Vec<Asset>, DatabaseError>

Reconstructs the account vault from the database for a specific account at a block.

Used as fallback when the AccountStateForest vault-key cache misses (historical or evicted queries). Returns the latest asset for each vault key at or before block_num.

Source

pub async fn get_account_vault_sync( &self, account_id: AccountId, block_range: ScopedBlockRange, ) -> Result<(BlockNumber, Vec<AccountVaultValue>), DatabaseError>

Source

pub async fn select_note_script_by_root( &self, root: Word, ) -> Result<Option<NoteScript>, DatabaseError>

Returns the script for a note by its root.

Source

pub async fn select_transactions_records( &self, account_ids: Vec<AccountId>, block_range: ScopedBlockRange, ) -> Result<(BlockNumber, Vec<TransactionRecord>), DatabaseError>

Returns the complete transaction records for the specified accounts within the specified block range, including state commitments and note IDs.

Note: This method is size-limited (~5MB) and may not return all matching transactions if the limit is exceeded. Transactions from partial blocks are excluded to maintain consistency.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Db

§

impl !UnwindSafe for Db

§

impl Freeze for Db

§

impl Send for Db

§

impl Sync for Db

§

impl Unpin for Db

§

impl UnsafeUnpin for Db

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self> ⓘ

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more