Skip to content

Commit

Permalink
Almost fix
Browse files Browse the repository at this point in the history
  • Loading branch information
stanislav-tkach committed Feb 8, 2025
1 parent 70124e5 commit 23f21cb
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 127 deletions.
12 changes: 2 additions & 10 deletions catalyst-gateway/bin/src/db/index/block/rbac509/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ use std::sync::{Arc, LazyLock};

use cardano_blockchain_types::{Cip0134Uri, MultiEraBlock, Slot, TransactionHash, TxnIndex};
use catalyst_types::id_uri::IdUri;
use der_parser::{asn1_rs::oid, Oid};
use moka::{policy::EvictionPolicy, sync::Cache};
use pallas::ledger::addresses::Address;
use rbac_registration::cardano::cip509::{Cip509, Cip509RbacMetadata};
Expand All @@ -27,13 +26,6 @@ use crate::{
settings::cassandra_db::EnvVars,
};

/// Context-specific primitive type with tag number 6 (`raw_tag` 134) for
/// uniform resource identifier (URI) in the subject alternative name extension.
pub const SAN_URI: u8 = 134;

/// Subject Alternative Name OID
pub(crate) const SUBJECT_ALT_NAME_OID: Oid = oid!(2.5.29 .17);

/// A Catalyst ID by transaction ID cache.
static CATALYST_ID_BY_TXN_ID_CACHE: LazyLock<Cache<TransactionHash, IdUri>> = LazyLock::new(|| {
Cache::builder()
Expand Down Expand Up @@ -192,7 +184,7 @@ impl Rbac509InsertQuery {
query_handles.push(tokio::spawn(async move {
inner_session
.execute_batch(
PreparedQuery::CatalystIdForTxnIdInsertQuery,
PreparedQuery::RbacCatalystIdForTxnIdInsertQuery,
self.catalyst_id_for_txn_id,
)
.await
Expand All @@ -204,7 +196,7 @@ impl Rbac509InsertQuery {
query_handles.push(tokio::spawn(async move {
inner_session
.execute_batch(
PreparedQuery::CatalystIdForStakeAddressInsertQuery,
PreparedQuery::RbacCatalystIdForStakeAddressInsertQuery,
self.catalyst_id_for_stake_address,
)
.await
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
SELECT
slot_no,
txn,
chain_root,
chain_root_slot,
chain_root_txn
catalyst_id,
FROM
rbac_chain_root_for_stake_addr
rbac_catalyst_id_for_stake_addr
WHERE
stake_addr = :stake_address
82 changes: 46 additions & 36 deletions catalyst-gateway/bin/src/db/index/queries/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ use super::block::{
certs::CertInsertQuery, cip36::Cip36InsertQuery, rbac509::Rbac509InsertQuery,
txi::TxiInsertQuery, txo::TxoInsertQuery,
};
use crate::settings::cassandra_db;
use crate::{
db::index::queries::rbac::get_catalyst_id_from_transaction_id, settings::cassandra_db,
};

/// Batches of different sizes, prepared and ready for use.
pub(crate) type SizedBatch = SkipMap<u16, Arc<Batch>>;
Expand Down Expand Up @@ -68,9 +70,9 @@ pub(crate) enum PreparedQuery {
/// Invalid RBAC 509 registration Insert query.
Rbac509InvalidInsertQuery,
/// Chain Root For Transaction ID Insert query.
CatalystIdForTxnIdInsertQuery,
RbacCatalystIdForTxnIdInsertQuery,
/// Chain Root For Stake Address Insert query.
CatalystIdForStakeAddressInsertQuery,
RbacCatalystIdForStakeAddressInsertQuery,
}

/// All prepared SELECT query statements (return data).
Expand All @@ -93,8 +95,8 @@ pub(crate) enum PreparedSelectQuery {
CatalystIdByTransactionId,
/// Get Catalyst ID by stake address.
CatalystIdByStakeAddress,
/// Get registrations by chain root
RegistrationsByChainRoot,
/// Get registrations by Catalyst ID.
RegistrationsByCatalystId,
/// Get all stake and vote keys for snapshot (`stake_pub_key,vote_key`)
GetAllStakesAndVoteKeys,
}
Expand Down Expand Up @@ -137,9 +139,9 @@ pub(crate) struct PreparedQueries {
/// Invalid RBAC 509 registrations.
rbac509_invalid_registration_insert_queries: SizedBatch,
/// Chain Root for TX ID Insert Query..
catalyst_id_for_txn_id_insert_queries: SizedBatch,
rbac509_catalyst_id_for_txn_id_insert_queries: SizedBatch,
/// Chain Root for Stake Address Insert Query..
catalyst_id_for_stake_address_insert_queries: SizedBatch,
rbac509_catalyst_id_for_stake_address_insert_queries: SizedBatch,
/// Get native assets by stake address query.
native_assets_by_stake_address_query: PreparedStatement,
/// Get registrations
Expand All @@ -154,10 +156,10 @@ pub(crate) struct PreparedQueries {
sync_status_insert: PreparedStatement,
/// Get chain root by stake address
catalyst_id_by_stake_address_query: PreparedStatement,
/// Get registrations by chain root
registrations_by_chain_root_query: PreparedStatement,
/// Get chain root by transaction ID
catalyst_id_by_transaction_id_query: PreparedStatement,
/// Get registrations by chain root
registrations_by_catalyst_id_query: PreparedStatement,
/// Get all stake and vote keys (`stake_key,vote_key`) for snapshot
get_all_stakes_and_vote_keys_query: PreparedStatement,
}
Expand All @@ -174,12 +176,13 @@ impl PreparedQueries {
session: Arc<Session>, cfg: &cassandra_db::EnvVars,
) -> anyhow::Result<Self> {
// We initialize like this, so that all errors preparing querys get shown before aborting.
let txi_insert_queries = TxiInsertQuery::prepare_batch(&session, cfg).await;
let txi_insert_queries = TxiInsertQuery::prepare_batch(&session, cfg).await?;
let all_txo_queries = TxoInsertQuery::prepare_batch(&session, cfg).await;
let stake_registration_insert_queries = CertInsertQuery::prepare_batch(&session, cfg).await;
let stake_registration_insert_queries =
CertInsertQuery::prepare_batch(&session, cfg).await?;
let all_cip36_queries = Cip36InsertQuery::prepare_batch(&session, cfg).await;
let txo_spent_update_queries =
UpdateTxoSpentQuery::prepare_batch(session.clone(), cfg).await;
UpdateTxoSpentQuery::prepare_batch(session.clone(), cfg).await?;
let txo_by_stake_address_query = GetTxoByStakeAddressQuery::prepare(session.clone()).await;
let txi_by_txn_hash_query = GetTxiByTxnHashesQuery::prepare(session.clone()).await;
let all_rbac_queries = Rbac509InsertQuery::prepare_batch(&session, cfg).await;
Expand All @@ -190,13 +193,15 @@ impl PreparedQueries {
let stake_addr_from_stake_hash = GetStakeAddrQuery::prepare(session.clone()).await;
let stake_addr_from_vote_key = GetStakeAddrFromVoteKeyQuery::prepare(session.clone()).await;
let invalid_registrations = GetInvalidRegistrationQuery::prepare(session.clone()).await;
let sync_status_insert = SyncStatusInsertQuery::prepare(session.clone()).await;
let chain_root_by_stake_address =
get_catalyst_id_from_stake_addr::Query::prepare(session.clone()).await;
let registrations_by_chain_root =
GetRegistrationsByCatalystIdQuery::prepare(session.clone()).await;
let sync_status_insert = SyncStatusInsertQuery::prepare(session.clone()).await?;
let catalyst_id_by_stake_address_query =
get_catalyst_id_from_stake_addr::Query::prepare(session.clone()).await?;
let catalyst_id_by_transaction_id_query =
get_catalyst_id_from_transaction_id::Query::prepare(session.clone()).await?;
let registrations_by_catalyst_id_query =
GetRegistrationsByCatalystIdQuery::prepare(session.clone()).await?;
let get_all_stakes_and_vote_keys_query =
GetAllStakesAndVoteKeysQuery::prepare(session).await;
GetAllStakesAndVoteKeysQuery::prepare(session).await?;

let (
txo_insert_queries,
Expand All @@ -214,35 +219,37 @@ impl PreparedQueries {
let (
rbac509_registration_insert_queries,
rbac509_invalid_registration_insert_queries,
chain_root_for_txn_id_insert_queries,
chain_root_for_stake_address_insert_queries,
rbac509_catalyst_id_for_txn_id_insert_queries,
rbac509_catalyst_id_for_stake_address_insert_queries,
) = all_rbac_queries?;

Ok(Self {
txo_insert_queries,
txo_asset_insert_queries,
unstaked_txo_insert_queries,
unstaked_txo_asset_insert_queries,
txi_insert_queries: txi_insert_queries?,
stake_registration_insert_queries: stake_registration_insert_queries?,
txi_insert_queries,
stake_registration_insert_queries,
cip36_registration_insert_queries,
cip36_registration_error_insert_queries,
cip36_registration_for_stake_address_insert_queries,
txo_spent_update_queries: txo_spent_update_queries?,
txo_spent_update_queries,
txo_by_stake_address_query: txo_by_stake_address_query?,
txi_by_txn_hash_query: txi_by_txn_hash_query?,
rbac509_registration_insert_queries,
rbac509_invalid_registration_insert_queries,
chain_root_for_txn_id_insert_queries,
chain_root_for_stake_address_insert_queries,
rbac509_catalyst_id_for_txn_id_insert_queries,
rbac509_catalyst_id_for_stake_address_insert_queries,
native_assets_by_stake_address_query: native_assets_by_stake_address_query?,
registration_from_stake_addr_query: registration_from_stake_addr_query?,
stake_addr_from_stake_hash_query: stake_addr_from_stake_hash?,
stake_addr_from_vote_key_query: stake_addr_from_vote_key?,
invalid_registrations_from_stake_addr_query: invalid_registrations?,
sync_status_insert: sync_status_insert?,
registrations_by_chain_root_query: registrations_by_chain_root?,
get_all_stakes_and_vote_keys_query: get_all_stakes_and_vote_keys_query?,
sync_status_insert,
registrations_by_catalyst_id_query,
get_all_stakes_and_vote_keys_query,
catalyst_id_by_stake_address_query,
catalyst_id_by_transaction_id_query,
})
}

Expand Down Expand Up @@ -328,11 +335,14 @@ impl PreparedQueries {
PreparedSelectQuery::InvalidRegistrationsFromStakeAddr => {
&self.invalid_registrations_from_stake_addr_query
},
PreparedSelectQuery::RegistrationsByChainRoot => {
&self.registrations_by_chain_root_query
PreparedSelectQuery::RegistrationsByCatalystId => {
&self.registrations_by_catalyst_id_query
},
PreparedSelectQuery::CatalystIdByTransactionId => {
&self.catalyst_id_by_transaction_id_query
},
PreparedSelectQuery::ChainRootByTransactionId => {
&self.chain_root_by_transaction_id_query
PreparedSelectQuery::CatalystIdByStakeAddress => {
&self.catalyst_id_by_stake_address_query
},
PreparedSelectQuery::GetAllStakesAndVoteKeys => {
&self.get_all_stakes_and_vote_keys_query
Expand Down Expand Up @@ -371,11 +381,11 @@ impl PreparedQueries {
PreparedQuery::Rbac509InvalidInsertQuery => {
&self.rbac509_invalid_registration_insert_queries
},
PreparedQuery::CatalystIdForTxnIdInsertQuery => {
&self.catalyst_id_for_txn_id_insert_queries
PreparedQuery::RbacCatalystIdForTxnIdInsertQuery => {
&self.rbac509_catalyst_id_for_txn_id_insert_queries
},
PreparedQuery::CatalystIdForStakeAddressInsertQuery => {
&self.catalyst_id_for_stake_address_insert_queries
PreparedQuery::RbacCatalystIdForStakeAddressInsertQuery => {
&self.rbac509_catalyst_id_for_stake_address_insert_queries
},
};
session_execute_batch(session, query_map, cfg, query, values).await
Expand Down
14 changes: 14 additions & 0 deletions catalyst-gateway/bin/src/db/index/queries/purge/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ pub(crate) enum PreparedDeleteQuery {
Cip36RegistrationForVoteKey,
/// RBAC 509 Registration Delete query.
Rbac509,
/// Invalid RBAC 509 Registration Delete query.
Rbac509Invalid,
/// Chain Root For Transaction ID Delete query.
ChainRootForTxnId,
/// Chain Root For Stake Address Delete query.
Expand Down Expand Up @@ -79,6 +81,8 @@ pub(crate) enum PreparedSelectQuery {
Cip36RegistrationForVoteKey,
/// RBAC 509 Registration Select query.
Rbac509,
/// Invalid RBAC 509 Registration Select query.
Rbac509Invalid,
/// Chain Root For Transaction ID Select query.
CatalystIdForTxnId,
/// Chain Root For Stake Address Select query.
Expand Down Expand Up @@ -127,6 +131,10 @@ pub(crate) struct PreparedQueries {
select_rbac509_registration: PreparedStatement,
/// RBAC 509 Registrations Delete Query.
delete_rbac509_registration: SizedBatch,
/// RBAC 509 invalid registrations Primary Key Query.
select_rbac509_invalid_registration: PreparedStatement,
/// RBAC 509 invalid registrations Delete Query.
delete_rbac509_invalid_registration: SizedBatch,
/// Chain Root for TX ID Primary Key Query..
select_chain_root_for_txn_id: PreparedStatement,
/// Chain Root for TX ID Delete Query..
Expand Down Expand Up @@ -185,6 +193,10 @@ impl PreparedQueries {
&session, cfg,
)
.await?,
select_rbac509_invalid_registration:
rbac509_invalid_registration::PrimaryKeyQuery::prepare(&session).await?,
delete_rbac509_invalid_registration:
rbac509_invalid_registration::DeleteQuery::prepare_batch(&session, cfg).await?,
select_chain_root_for_txn_id: catalyst_id_for_txn_id::PrimaryKeyQuery::prepare(
&session,
)
Expand Down Expand Up @@ -241,6 +253,7 @@ impl PreparedQueries {
&self.select_cip36_registration_for_vote_key
},
PreparedSelectQuery::Rbac509 => &self.select_rbac509_registration,
PreparedSelectQuery::Rbac509Invalid => &self.select_rbac509_invalid_registration,
PreparedSelectQuery::CatalystIdForTxnId => &self.select_chain_root_for_txn_id,
PreparedSelectQuery::ChainRootForStakeAddress => {
&self.select_chain_root_for_stake_address
Expand Down Expand Up @@ -270,6 +283,7 @@ impl PreparedQueries {
&self.delete_cip36_registration_for_vote_key
},
PreparedDeleteQuery::Rbac509 => &self.delete_rbac509_registration,
PreparedDeleteQuery::Rbac509Invalid => &self.delete_rbac509_invalid_registration,
PreparedDeleteQuery::ChainRootForTxnId => &self.delete_chain_root_for_txn_id,
PreparedDeleteQuery::ChainRootForStakeAddress => {
&self.delete_chain_root_for_stake_address
Expand Down
Loading

0 comments on commit 23f21cb

Please sign in to comment.