Implement get validator block endpoint for EIP-4844

This commit is contained in:
Jimmy Chen
2023-02-15 16:44:13 +11:00
parent ae3e5f73d6
commit 6ec0ce6070
13 changed files with 201 additions and 34 deletions

View File

@@ -1,12 +1,12 @@
use lru::LruCache;
use parking_lot::Mutex;
use types::{BlobsSidecar, EthSpec, Hash256};
use types::{BlobSidecars, EthSpec, Hash256};
pub const DEFAULT_BLOB_CACHE_SIZE: usize = 10;
/// A cache blobs by beacon block root.
pub struct BlobCache<T: EthSpec> {
blobs: Mutex<LruCache<BlobCacheId, BlobsSidecar<T>>>,
blobs: Mutex<LruCache<BlobCacheId, BlobSidecars<T>>>,
}
#[derive(Hash, PartialEq, Eq)]
@@ -21,11 +21,11 @@ impl<T: EthSpec> Default for BlobCache<T> {
}
impl<T: EthSpec> BlobCache<T> {
pub fn put(&self, beacon_block: Hash256, blobs: BlobsSidecar<T>) -> Option<BlobsSidecar<T>> {
pub fn put(&self, beacon_block: Hash256, blobs: BlobSidecars<T>) -> Option<BlobSidecars<T>> {
self.blobs.lock().put(BlobCacheId(beacon_block), blobs)
}
pub fn pop(&self, root: &Hash256) -> Option<BlobsSidecar<T>> {
pub fn pop(&self, root: &Hash256) -> Option<BlobSidecars<T>> {
self.blobs.lock().pop(&BlobCacheId(*root))
}
}