mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2024-09-21 00:24:37 +03:00
Checkpoint changes.
This commit is contained in:
parent
9b73f7e97c
commit
5351de02ff
@ -245,8 +245,7 @@ class DataLayer:
|
||||
await self.data_store.build_ancestor_table_for_latest_root(tree_id=tree_id)
|
||||
await self.data_store.clear_pending_roots(tree_id=tree_id)
|
||||
|
||||
async def fetch_and_validate(self, subscription: Subscription) -> None:
|
||||
tree_id = subscription.tree_id
|
||||
async def fetch_and_validate(self, tree_id: bytes32) -> None:
|
||||
singleton_record: Optional[SingletonRecord] = await self.wallet_rpc.dl_latest_singleton(tree_id, True)
|
||||
if singleton_record is None:
|
||||
self.log.info(f"Fetch data: No singleton record for {tree_id}.")
|
||||
@ -279,7 +278,7 @@ class DataLayer:
|
||||
break
|
||||
|
||||
self.log.info(
|
||||
f"Downloading files {subscription.tree_id}. "
|
||||
f"Downloading files {tree_id}. "
|
||||
f"Current wallet generation: {root.generation}. "
|
||||
f"Target wallet generation: {singleton_record.generation}. "
|
||||
f"Server used: {url}."
|
||||
@ -294,7 +293,7 @@ class DataLayer:
|
||||
try:
|
||||
success = await insert_from_delta_file(
|
||||
self.data_store,
|
||||
subscription.tree_id,
|
||||
tree_id,
|
||||
root.generation,
|
||||
[record.root for record in reversed(to_download)],
|
||||
server_info,
|
||||
@ -303,7 +302,7 @@ class DataLayer:
|
||||
)
|
||||
if success:
|
||||
self.log.info(
|
||||
f"Finished downloading and validating {subscription.tree_id}. "
|
||||
f"Finished downloading and validating {tree_id}. "
|
||||
f"Wallet generation saved: {singleton_record.generation}. "
|
||||
f"Root hash saved: {singleton_record.root}."
|
||||
)
|
||||
@ -427,7 +426,7 @@ class DataLayer:
|
||||
async with self.subscription_lock:
|
||||
for subscription in subscriptions:
|
||||
try:
|
||||
await self.fetch_and_validate(subscription)
|
||||
await self.fetch_and_validate(subscription.tree_id)
|
||||
await self.upload_files(subscription.tree_id)
|
||||
except asyncio.CancelledError:
|
||||
raise
|
||||
|
@ -1304,18 +1304,17 @@ class DataStore:
|
||||
self, tree_id: bytes32, server_info: ServerInfo, timestamp: int, *, lock: bool = True
|
||||
) -> None:
|
||||
SEVEN_DAYS_BAN = 7 * 24 * 60 * 60
|
||||
new_server_info = ServerInfo(
|
||||
server_info.url,
|
||||
server_info.num_consecutive_failures + 1,
|
||||
max(server_info.ignore_till, timestamp + SEVEN_DAYS_BAN),
|
||||
new_server_info = replace(
|
||||
server_info,
|
||||
num_consecutive_failures=server_info.num_consecutive_failures + 1,
|
||||
ignore_till=max(server_info.ignore_till, timestamp + SEVEN_DAYS_BAN),
|
||||
)
|
||||
await self.update_server_info(tree_id, new_server_info, lock=lock)
|
||||
|
||||
async def received_correct_file(self, tree_id: bytes32, server_info: ServerInfo, *, lock: bool = True) -> None:
|
||||
new_server_info = ServerInfo(
|
||||
server_info.url,
|
||||
0,
|
||||
server_info.ignore_till,
|
||||
new_server_info = replace(
|
||||
server_info,
|
||||
num_consecutive_failures=0,
|
||||
)
|
||||
await self.update_server_info(tree_id, new_server_info, lock=lock)
|
||||
|
||||
@ -1324,10 +1323,10 @@ class DataStore:
|
||||
) -> None:
|
||||
BAN_TIME_BY_MISSING_COUNT = [5 * 60] * 3 + [15 * 60] * 3 + [60 * 60] * 2 + [240 * 60]
|
||||
index = min(server_info.num_consecutive_failures, len(BAN_TIME_BY_MISSING_COUNT) - 1)
|
||||
new_server_info = ServerInfo(
|
||||
server_info.url,
|
||||
server_info.num_consecutive_failures + 1,
|
||||
max(server_info.ignore_till, timestamp + BAN_TIME_BY_MISSING_COUNT[index]),
|
||||
new_server_info = replace(
|
||||
server_info,
|
||||
num_consecutive_failures=server_info.num_consecutive_failures + 1,
|
||||
ignore_till=max(server_info.ignore_till, timestamp + BAN_TIME_BY_MISSING_COUNT[index]),
|
||||
)
|
||||
await self.update_server_info(tree_id, new_server_info, lock=lock)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user