Skip to content

Commit 1c94f69

Browse files
authored
Merge pull request #2426 from blockstack/fix/disable-atlas
Disabling Atlas
2 parents 80db5fb + e8888d8 commit 1c94f69

File tree

3 files changed

+109
-101
lines changed

3 files changed

+109
-101
lines changed

src/chainstate/coordinator/mod.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -671,13 +671,14 @@ impl<'a, T: BlockEventDispatcher, N: CoordinatorNotices, U: RewardSetProvider>
671671
}
672672
}
673673
if !attachments_instances.is_empty() {
674-
match self.attachments_tx.send(attachments_instances) {
675-
Ok(_) => {}
676-
Err(e) => {
677-
error!("Error dispatching attachments {}", e);
678-
panic!();
679-
}
680-
};
674+
warn!("Atlas disabled");
675+
// match self.attachments_tx.send(attachments_instances) {
676+
// Ok(_) => {}
677+
// Err(e) => {
678+
// error!("Error dispatching attachments {}", e);
679+
// panic!();
680+
// }
681+
// };
681682
}
682683

683684
if let Some(dispatcher) = self.dispatcher {

src/net/p2p.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4074,7 +4074,7 @@ impl PeerNetwork {
40744074
self.do_network_neighbor_walk()?;
40754075

40764076
// download attachments
4077-
self.do_attachment_downloads(chainstate, dns_client_opt, network_result)?;
4077+
// self.do_attachment_downloads(chainstate, dns_client_opt, network_result)?;
40784078

40794079
// remove timed-out requests from other threads
40804080
for (_, convo) in self.peers.iter_mut() {
@@ -4240,17 +4240,17 @@ impl PeerNetwork {
42404240
// This operation needs to be performed before any early return:
42414241
// Events are being parsed and dispatched here once and we want to
42424242
// enqueue them.
4243-
match PeerNetwork::with_attachments_downloader(self, |network, attachments_downloader| {
4244-
let mut known_attachments = attachments_downloader
4245-
.enqueue_new_attachments(attachment_requests, &mut network.atlasdb)?;
4246-
network_result.attachments.append(&mut known_attachments);
4247-
Ok(())
4248-
}) {
4249-
Ok(_) => {}
4250-
Err(e) => {
4251-
warn!("Atlas: updating attachment inventory failed {}", e);
4252-
}
4253-
}
4243+
// match PeerNetwork::with_attachments_downloader(self, |network, attachments_downloader| {
4244+
// let mut known_attachments = attachments_downloader
4245+
// .enqueue_new_attachments(attachment_requests, &mut network.atlasdb)?;
4246+
// network_result.attachments.append(&mut known_attachments);
4247+
// Ok(())
4248+
// }) {
4249+
// Ok(_) => {}
4250+
// Err(e) => {
4251+
// warn!("Atlas: updating attachment inventory failed {}", e);
4252+
// }
4253+
// }
42544254

42554255
PeerNetwork::with_network_state(self, |ref mut network, ref mut network_state| {
42564256
let http_stacks_msgs = network.http.run(

src/net/rpc.rs

Lines changed: 89 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -590,89 +590,96 @@ impl ConversationHttp {
590590
_options: &ConnectionOptions,
591591
) -> Result<(), net_error> {
592592
let response_metadata = HttpResponseMetadata::from(req);
593-
if pages_indexes.len() > MAX_ATTACHMENT_INV_PAGES_PER_REQUEST {
594-
let msg = format!(
595-
"Number of attachment inv pages is limited by {} per request",
596-
MAX_ATTACHMENT_INV_PAGES_PER_REQUEST
597-
);
598-
warn!("{}", msg);
599-
let response = HttpResponseType::ServerError(response_metadata, msg);
600-
response.send(http, fd)?;
601-
return Ok(());
602-
}
603-
604-
let mut pages_indexes = pages_indexes.iter().map(|i| *i).collect::<Vec<u32>>();
605-
pages_indexes.sort();
606-
let tip = StacksBlockHeader::make_index_block_hash(&tip_consensus_hash, &tip_block_hash);
607-
608-
let (oldest_page_index, newest_page_index, pages_indexes) = if pages_indexes.len() > 0 {
609-
(
610-
*pages_indexes.first().unwrap(),
611-
*pages_indexes.last().unwrap(),
612-
pages_indexes.clone(),
613-
)
614-
} else {
615-
// Pages indexes not provided, aborting
616-
let msg = format!("Page indexes missing");
617-
warn!("{}", msg);
618-
let response = HttpResponseType::BadRequest(response_metadata, msg.clone());
619-
response.send(http, fd)?;
620-
return Err(net_error::ClientError(ClientError::Message(msg)));
621-
};
622-
623-
// We need to rebuild an ancestry tree, but we're still missing some informations at this point
624-
let (min_block_height, max_block_height) = match atlasdb
625-
.get_minmax_heights_window_for_page_index(oldest_page_index, newest_page_index)
626-
{
627-
Ok(window) => window,
628-
Err(e) => {
629-
let msg = format!("Unable to read Atlas DB");
630-
warn!("{}", msg);
631-
let response = HttpResponseType::ServerError(response_metadata, msg);
632-
response.send(http, fd)?;
633-
return Err(net_error::DBError(e));
634-
}
635-
};
636-
637-
let mut blocks_ids = vec![];
638-
let mut headers_tx = chainstate.index_tx_begin()?;
639-
let tip_index_hash =
640-
StacksBlockHeader::make_index_block_hash(tip_consensus_hash, tip_block_hash);
641-
642-
for block_height in min_block_height..=max_block_height {
643-
match StacksChainState::get_index_tip_ancestor(
644-
&mut headers_tx,
645-
&tip_index_hash,
646-
block_height,
647-
)? {
648-
Some(header) => blocks_ids.push(header.index_block_hash()),
649-
_ => {}
650-
}
651-
}
593+
let msg = format!("Atlas disabled");
594+
warn!("{}", msg);
595+
let response = HttpResponseType::NotFound(response_metadata, msg.clone());
596+
response.send(http, fd)?;
597+
Ok(())
652598

653-
match atlasdb.get_attachments_available_at_pages_indexes(&pages_indexes, &blocks_ids) {
654-
Ok(pages) => {
655-
let pages = pages
656-
.into_iter()
657-
.zip(pages_indexes)
658-
.map(|(inventory, index)| AttachmentPage { index, inventory })
659-
.collect();
660-
661-
let content = GetAttachmentsInvResponse {
662-
block_id: tip.clone(),
663-
pages,
664-
};
665-
let response = HttpResponseType::GetAttachmentsInv(response_metadata, content);
666-
response.send(http, fd)
667-
}
668-
Err(e) => {
669-
let msg = format!("Unable to read Atlas DB");
670-
warn!("{}", msg);
671-
let response = HttpResponseType::ServerError(response_metadata, msg);
672-
response.send(http, fd)?;
673-
return Err(net_error::DBError(e));
674-
}
675-
}
599+
// let response_metadata = HttpResponseMetadata::from(req);
600+
// if pages_indexes.len() > MAX_ATTACHMENT_INV_PAGES_PER_REQUEST {
601+
// let msg = format!(
602+
// "Number of attachment inv pages is limited by {} per request",
603+
// MAX_ATTACHMENT_INV_PAGES_PER_REQUEST
604+
// );
605+
// warn!("{}", msg);
606+
// let response = HttpResponseType::ServerError(response_metadata, msg);
607+
// response.send(http, fd)?;
608+
// return Ok(());
609+
// }
610+
611+
// let mut pages_indexes = pages_indexes.iter().map(|i| *i).collect::<Vec<u32>>();
612+
// pages_indexes.sort();
613+
// let tip = StacksBlockHeader::make_index_block_hash(&tip_consensus_hash, &tip_block_hash);
614+
615+
// let (oldest_page_index, newest_page_index, pages_indexes) = if pages_indexes.len() > 0 {
616+
// (
617+
// *pages_indexes.first().unwrap(),
618+
// *pages_indexes.last().unwrap(),
619+
// pages_indexes.clone(),
620+
// )
621+
// } else {
622+
// // Pages indexes not provided, aborting
623+
// let msg = format!("Page indexes missing");
624+
// warn!("{}", msg);
625+
// let response = HttpResponseType::BadRequest(response_metadata, msg.clone());
626+
// response.send(http, fd)?;
627+
// return Err(net_error::ClientError(ClientError::Message(msg)));
628+
// };
629+
630+
// // We need to rebuild an ancestry tree, but we're still missing some informations at this point
631+
// let (min_block_height, max_block_height) = match atlasdb
632+
// .get_minmax_heights_window_for_page_index(oldest_page_index, newest_page_index)
633+
// {
634+
// Ok(window) => window,
635+
// Err(e) => {
636+
// let msg = format!("Unable to read Atlas DB");
637+
// warn!("{}", msg);
638+
// let response = HttpResponseType::ServerError(response_metadata, msg);
639+
// response.send(http, fd)?;
640+
// return Err(net_error::DBError(e));
641+
// }
642+
// };
643+
644+
// let mut blocks_ids = vec![];
645+
// let mut headers_tx = chainstate.index_tx_begin()?;
646+
// let tip_index_hash =
647+
// StacksBlockHeader::make_index_block_hash(tip_consensus_hash, tip_block_hash);
648+
649+
// for block_height in min_block_height..=max_block_height {
650+
// match StacksChainState::get_index_tip_ancestor(
651+
// &mut headers_tx,
652+
// &tip_index_hash,
653+
// block_height,
654+
// )? {
655+
// Some(header) => blocks_ids.push(header.index_block_hash()),
656+
// _ => {}
657+
// }
658+
// }
659+
660+
// match atlasdb.get_attachments_available_at_pages_indexes(&pages_indexes, &blocks_ids) {
661+
// Ok(pages) => {
662+
// let pages = pages
663+
// .into_iter()
664+
// .zip(pages_indexes)
665+
// .map(|(inventory, index)| AttachmentPage { index, inventory })
666+
// .collect();
667+
668+
// let content = GetAttachmentsInvResponse {
669+
// block_id: tip.clone(),
670+
// pages,
671+
// };
672+
// let response = HttpResponseType::GetAttachmentsInv(response_metadata, content);
673+
// response.send(http, fd)
674+
// }
675+
// Err(e) => {
676+
// let msg = format!("Unable to read Atlas DB");
677+
// warn!("{}", msg);
678+
// let response = HttpResponseType::ServerError(response_metadata, msg);
679+
// response.send(http, fd)?;
680+
// return Err(net_error::DBError(e));
681+
// }
682+
// }
676683
}
677684

678685
fn handle_getattachment<W: Write>(

0 commit comments

Comments
 (0)