Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4892eb4e1a | ||
|
2d930052dc | ||
|
70c9ca061f | ||
|
e4aecd9320 | ||
|
1dd6dc3709 |
21
Cargo.lock
generated
21
Cargo.lock
generated
@@ -468,6 +468,26 @@ version = "0.6.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b0017894339f586ccb943b01b9555de56770c11cda818e7e3d8bd93f4ed7f46e"
|
checksum = "b0017894339f586ccb943b01b9555de56770c11cda818e7e3d8bd93f4ed7f46e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck"
|
||||||
|
version = "1.7.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck_derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck_derive"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2 1.0.24",
|
||||||
|
"quote 1.0.9",
|
||||||
|
"syn 1.0.60",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "byteorder"
|
name = "byteorder"
|
||||||
version = "1.3.4"
|
version = "1.3.4"
|
||||||
@@ -5101,6 +5121,7 @@ dependencies = [
|
|||||||
"borsh-derive",
|
"borsh-derive",
|
||||||
"bs58",
|
"bs58",
|
||||||
"bv",
|
"bv",
|
||||||
|
"bytemuck",
|
||||||
"curve25519-dalek 2.1.0",
|
"curve25519-dalek 2.1.0",
|
||||||
"hex",
|
"hex",
|
||||||
"itertools 0.9.0",
|
"itertools 0.9.0",
|
||||||
|
@@ -75,9 +75,9 @@ fn broadcast_shreds_bench(bencher: &mut Bencher) {
|
|||||||
&cluster_nodes_cache,
|
&cluster_nodes_cache,
|
||||||
&last_datapoint,
|
&last_datapoint,
|
||||||
&mut TransmitShredsStats::default(),
|
&mut TransmitShredsStats::default(),
|
||||||
&SocketAddrSpace::Unspecified,
|
|
||||||
&cluster_info,
|
&cluster_info,
|
||||||
&bank_forks,
|
&bank_forks,
|
||||||
|
&SocketAddrSpace::Unspecified,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
});
|
});
|
||||||
|
@@ -22,8 +22,10 @@ use {
|
|||||||
solana_metrics::{inc_new_counter_error, inc_new_counter_info},
|
solana_metrics::{inc_new_counter_error, inc_new_counter_info},
|
||||||
solana_poh::poh_recorder::WorkingBankEntry,
|
solana_poh::poh_recorder::WorkingBankEntry,
|
||||||
solana_runtime::{bank::Bank, bank_forks::BankForks},
|
solana_runtime::{bank::Bank, bank_forks::BankForks},
|
||||||
solana_sdk::timing::{timestamp, AtomicInterval},
|
solana_sdk::{
|
||||||
solana_sdk::{clock::Slot, pubkey::Pubkey},
|
timing::{timestamp, AtomicInterval},
|
||||||
|
{clock::Slot, pubkey::Pubkey},
|
||||||
|
},
|
||||||
solana_streamer::{
|
solana_streamer::{
|
||||||
sendmmsg::{batch_send, SendPktsError},
|
sendmmsg::{batch_send, SendPktsError},
|
||||||
socket::SocketAddrSpace,
|
socket::SocketAddrSpace,
|
||||||
@@ -31,9 +33,11 @@ use {
|
|||||||
std::{
|
std::{
|
||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
net::UdpSocket,
|
net::UdpSocket,
|
||||||
sync::atomic::{AtomicBool, Ordering},
|
sync::{
|
||||||
sync::mpsc::{channel, Receiver, RecvError, RecvTimeoutError, Sender},
|
atomic::{AtomicBool, Ordering},
|
||||||
sync::{Arc, Mutex, RwLock},
|
mpsc::{channel, Receiver, RecvError, RecvTimeoutError, Sender},
|
||||||
|
Arc, Mutex, RwLock,
|
||||||
|
},
|
||||||
thread::{self, Builder, JoinHandle},
|
thread::{self, Builder, JoinHandle},
|
||||||
time::{Duration, Instant},
|
time::{Duration, Instant},
|
||||||
},
|
},
|
||||||
@@ -399,9 +403,9 @@ pub fn broadcast_shreds(
|
|||||||
cluster_nodes_cache: &ClusterNodesCache<BroadcastStage>,
|
cluster_nodes_cache: &ClusterNodesCache<BroadcastStage>,
|
||||||
last_datapoint_submit: &Arc<AtomicInterval>,
|
last_datapoint_submit: &Arc<AtomicInterval>,
|
||||||
transmit_stats: &mut TransmitShredsStats,
|
transmit_stats: &mut TransmitShredsStats,
|
||||||
socket_addr_space: &SocketAddrSpace,
|
|
||||||
cluster_info: &ClusterInfo,
|
cluster_info: &ClusterInfo,
|
||||||
bank_forks: &Arc<RwLock<BankForks>>,
|
bank_forks: &Arc<RwLock<BankForks>>,
|
||||||
|
socket_addr_space: &SocketAddrSpace,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let mut result = Ok(());
|
let mut result = Ok(());
|
||||||
let mut shred_select = Measure::start("shred_select");
|
let mut shred_select = Measure::start("shred_select");
|
||||||
|
@@ -145,9 +145,9 @@ impl BroadcastRun for FailEntryVerificationBroadcastRun {
|
|||||||
&self.cluster_nodes_cache,
|
&self.cluster_nodes_cache,
|
||||||
&Arc::new(AtomicInterval::default()),
|
&Arc::new(AtomicInterval::default()),
|
||||||
&mut TransmitShredsStats::default(),
|
&mut TransmitShredsStats::default(),
|
||||||
cluster_info.socket_addr_space(),
|
|
||||||
cluster_info,
|
cluster_info,
|
||||||
bank_forks,
|
bank_forks,
|
||||||
|
cluster_info.socket_addr_space(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
fn record(
|
fn record(
|
||||||
|
@@ -362,9 +362,9 @@ impl StandardBroadcastRun {
|
|||||||
&self.cluster_nodes_cache,
|
&self.cluster_nodes_cache,
|
||||||
&self.last_datapoint_submit,
|
&self.last_datapoint_submit,
|
||||||
&mut transmit_stats,
|
&mut transmit_stats,
|
||||||
cluster_info.socket_addr_space(),
|
|
||||||
cluster_info,
|
cluster_info,
|
||||||
bank_forks,
|
bank_forks,
|
||||||
|
cluster_info.socket_addr_space(),
|
||||||
)?;
|
)?;
|
||||||
transmit_time.stop();
|
transmit_time.stop();
|
||||||
|
|
||||||
|
21
programs/bpf/Cargo.lock
generated
21
programs/bpf/Cargo.lock
generated
@@ -294,6 +294,26 @@ version = "0.3.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
|
checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck"
|
||||||
|
version = "1.7.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck_derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck_derive"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2 1.0.24",
|
||||||
|
"quote 1.0.6",
|
||||||
|
"syn 1.0.67",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "byteorder"
|
name = "byteorder"
|
||||||
version = "0.5.3"
|
version = "0.5.3"
|
||||||
@@ -3283,6 +3303,7 @@ dependencies = [
|
|||||||
"borsh-derive",
|
"borsh-derive",
|
||||||
"bs58",
|
"bs58",
|
||||||
"bv",
|
"bv",
|
||||||
|
"bytemuck",
|
||||||
"curve25519-dalek 2.1.0",
|
"curve25519-dalek 2.1.0",
|
||||||
"hex",
|
"hex",
|
||||||
"itertools 0.9.0",
|
"itertools 0.9.0",
|
||||||
|
@@ -213,6 +213,12 @@ impl RecentItems {
|
|||||||
.checked_sub(item.len())
|
.checked_sub(item.len())
|
||||||
.expect("total bytes underflow");
|
.expect("total bytes underflow");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
datapoint_info!(
|
||||||
|
"rpc_subscriptions_recent_items",
|
||||||
|
("num", self.queue.len(), i64),
|
||||||
|
("total_bytes", self.total_bytes, i64),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@ bincode = "1.3.1"
|
|||||||
borsh = "0.9.0"
|
borsh = "0.9.0"
|
||||||
borsh-derive = "0.9.0"
|
borsh-derive = "0.9.0"
|
||||||
bs58 = "0.3.1"
|
bs58 = "0.3.1"
|
||||||
|
bytemuck = { version = "1.7.2", features = ["derive"] }
|
||||||
bv = { version = "0.11.1", features = ["serde"] }
|
bv = { version = "0.11.1", features = ["serde"] }
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
itertools = "0.9.0"
|
itertools = "0.9.0"
|
||||||
|
@@ -1,14 +1,16 @@
|
|||||||
#![allow(clippy::integer_arithmetic)]
|
#![allow(clippy::integer_arithmetic)]
|
||||||
use crate::{decode_error::DecodeError, hash::hashv};
|
use {
|
||||||
|
crate::{decode_error::DecodeError, hash::hashv},
|
||||||
use borsh::{BorshDeserialize, BorshSchema, BorshSerialize};
|
borsh::{BorshDeserialize, BorshSchema, BorshSerialize},
|
||||||
use num_derive::{FromPrimitive, ToPrimitive};
|
bytemuck::{Pod, Zeroable},
|
||||||
use std::{
|
num_derive::{FromPrimitive, ToPrimitive},
|
||||||
convert::{Infallible, TryFrom},
|
std::{
|
||||||
fmt, mem,
|
convert::{Infallible, TryFrom},
|
||||||
str::FromStr,
|
fmt, mem,
|
||||||
|
str::FromStr,
|
||||||
|
},
|
||||||
|
thiserror::Error,
|
||||||
};
|
};
|
||||||
use thiserror::Error;
|
|
||||||
|
|
||||||
/// Number of bytes in a pubkey
|
/// Number of bytes in a pubkey
|
||||||
pub const PUBKEY_BYTES: usize = 32;
|
pub const PUBKEY_BYTES: usize = 32;
|
||||||
@@ -48,20 +50,22 @@ impl From<u64> for PubkeyError {
|
|||||||
|
|
||||||
#[repr(transparent)]
|
#[repr(transparent)]
|
||||||
#[derive(
|
#[derive(
|
||||||
Serialize,
|
AbiExample,
|
||||||
Deserialize,
|
|
||||||
BorshSerialize,
|
|
||||||
BorshDeserialize,
|
BorshDeserialize,
|
||||||
BorshSchema,
|
BorshSchema,
|
||||||
|
BorshSerialize,
|
||||||
Clone,
|
Clone,
|
||||||
Copy,
|
Copy,
|
||||||
Default,
|
Default,
|
||||||
|
Deserialize,
|
||||||
Eq,
|
Eq,
|
||||||
PartialEq,
|
|
||||||
Ord,
|
|
||||||
PartialOrd,
|
|
||||||
Hash,
|
Hash,
|
||||||
AbiExample,
|
Ord,
|
||||||
|
PartialEq,
|
||||||
|
PartialOrd,
|
||||||
|
Pod,
|
||||||
|
Serialize,
|
||||||
|
Zeroable,
|
||||||
)]
|
)]
|
||||||
pub struct Pubkey([u8; 32]);
|
pub struct Pubkey([u8; 32]);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user