* Add --enable-bigtable-ledger-upload flag (cherry picked from commitd8e2038dda
) * Relocate BigTable uploader to ledger/ crate (cherry picked from commit91a56caed2
) # Conflicts: # ledger/Cargo.toml * Cargo.lock (cherry picked from commit2b8a521562
) * Add BigTableUploadService (cherry picked from commitbc7731b969
) * Add BigTableUploadService (cherry picked from commitbafdcf24f5
) * Add exit flag for bigtable upload operations (cherry picked from commitd3611f74c8
) * Remove dead code (cherry picked from commitcd3c134b58
) * Request correct access (cherry picked from commit4ba43c29ce
) * Add LARGEST_CONFIRMED_ROOT_UPLOAD_DELAY (cherry picked from commitb64fb295a1
) * Resolve merge conflicts Co-authored-by: Michael Vines <mvines@gmail.com>
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
//! The `rpc_service` module implements the Solana JSON RPC service.
|
||||
|
||||
use crate::{cluster_info::ClusterInfo, rpc::*, rpc_health::*, validator::ValidatorExit};
|
||||
use crate::{
|
||||
bigtable_upload_service::BigTableUploadService, cluster_info::ClusterInfo, rpc::*,
|
||||
rpc_health::*, validator::ValidatorExit,
|
||||
};
|
||||
use jsonrpc_core::MetaIoHandler;
|
||||
use jsonrpc_http_server::{
|
||||
hyper, AccessControlAllowOrigin, CloseHandle, DomainsValidation, RequestMiddleware,
|
||||
@@ -260,20 +263,37 @@ impl JsonRpcService {
|
||||
.build()
|
||||
.expect("Runtime");
|
||||
|
||||
let bigtable_ledger_storage = if config.enable_bigtable_ledger_storage {
|
||||
runtime
|
||||
.block_on(solana_storage_bigtable::LedgerStorage::new(false))
|
||||
.map(|x| {
|
||||
info!("BigTable ledger storage initialized");
|
||||
Some(x)
|
||||
})
|
||||
.unwrap_or_else(|err| {
|
||||
error!("Failed to initialize BigTable ledger storage: {:?}", err);
|
||||
None
|
||||
})
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let exit_bigtable_ledger_upload_service = Arc::new(AtomicBool::new(false));
|
||||
|
||||
let (bigtable_ledger_storage, _bigtable_ledger_upload_service) =
|
||||
if config.enable_bigtable_ledger_storage || config.enable_bigtable_ledger_upload {
|
||||
runtime
|
||||
.block_on(solana_storage_bigtable::LedgerStorage::new(
|
||||
!config.enable_bigtable_ledger_upload,
|
||||
))
|
||||
.map(|bigtable_ledger_storage| {
|
||||
info!("BigTable ledger storage initialized");
|
||||
|
||||
let bigtable_ledger_upload_service = Arc::new(BigTableUploadService::new(
|
||||
runtime.handle().clone(),
|
||||
bigtable_ledger_storage.clone(),
|
||||
blockstore.clone(),
|
||||
block_commitment_cache.clone(),
|
||||
exit_bigtable_ledger_upload_service.clone(),
|
||||
));
|
||||
|
||||
(
|
||||
Some(bigtable_ledger_storage),
|
||||
Some(bigtable_ledger_upload_service),
|
||||
)
|
||||
})
|
||||
.unwrap_or_else(|err| {
|
||||
error!("Failed to initialize BigTable ledger storage: {:?}", err);
|
||||
(None, None)
|
||||
})
|
||||
} else {
|
||||
(None, None)
|
||||
};
|
||||
|
||||
let (request_processor, receiver) = JsonRpcRequestProcessor::new(
|
||||
config,
|
||||
@@ -341,6 +361,7 @@ impl JsonRpcService {
|
||||
close_handle_sender.send(server.close_handle()).unwrap();
|
||||
server.wait();
|
||||
exit_send_transaction_service.store(true, Ordering::Relaxed);
|
||||
exit_bigtable_ledger_upload_service.store(true, Ordering::Relaxed);
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
|
Reference in New Issue
Block a user