mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-15 18:08:05 +00:00
perf: optimize event processing and add gRPC instruction parsing
This commit is contained in:
@@ -282,9 +282,8 @@ impl PooledTransactionPretty {
|
||||
self.transaction.signature =
|
||||
Signature::try_from(tx.signature.as_slice()).expect("valid signature");
|
||||
self.transaction.is_vote = tx.is_vote;
|
||||
self.transaction.tx = yellowstone_grpc_proto::convert_from::create_tx_with_meta(tx)
|
||||
.expect("valid tx with meta");
|
||||
self.transaction.program_received_time_us = get_high_perf_clock();
|
||||
self.transaction.grpc_tx = tx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,14 +2,17 @@ use solana_sdk::{pubkey::Pubkey, signature::Signature};
|
||||
use solana_transaction_status::{TransactionWithStatusMeta, VersionedTransactionWithStatusMeta};
|
||||
use std::{collections::HashMap, fmt};
|
||||
use yellowstone_grpc_proto::{
|
||||
geyser::{SubscribeRequestFilterAccounts, SubscribeRequestFilterTransactions},
|
||||
geyser::{
|
||||
SubscribeRequestFilterAccounts, SubscribeRequestFilterTransactions,
|
||||
SubscribeUpdateTransactionInfo,
|
||||
},
|
||||
prost_types::Timestamp,
|
||||
};
|
||||
|
||||
pub type TransactionsFilterMap = HashMap<String, SubscribeRequestFilterTransactions>;
|
||||
pub type AccountsFilterMap = HashMap<String, SubscribeRequestFilterAccounts>;
|
||||
|
||||
#[derive(Clone)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum EventPretty {
|
||||
BlockMeta(BlockMetaPretty),
|
||||
Transaction(TransactionPretty),
|
||||
@@ -71,8 +74,8 @@ pub struct TransactionPretty {
|
||||
pub block_time: Option<Timestamp>,
|
||||
pub signature: Signature,
|
||||
pub is_vote: bool,
|
||||
pub tx: TransactionWithStatusMeta,
|
||||
pub program_received_time_us: i64,
|
||||
pub grpc_tx: SubscribeUpdateTransactionInfo,
|
||||
}
|
||||
|
||||
impl fmt::Debug for TransactionPretty {
|
||||
@@ -96,10 +99,7 @@ impl Default for TransactionPretty {
|
||||
block_time: None,
|
||||
signature: Signature::default(),
|
||||
is_vote: false,
|
||||
tx: TransactionWithStatusMeta::Complete(VersionedTransactionWithStatusMeta {
|
||||
transaction: solana_sdk::transaction::VersionedTransaction::default(),
|
||||
meta: solana_transaction_status::TransactionStatusMeta::default(),
|
||||
}),
|
||||
grpc_tx: SubscribeUpdateTransactionInfo::default(),
|
||||
program_received_time_us: 0,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user