Skip to content

Commit d7544b5

Browse files
committed
download blocks to /var/ton-work/
1 parent 25aecda commit d7544b5

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

mytoninstaller/settings.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,24 +120,23 @@ def FirstNodeSettings(local):
120120
StartValidator(local)
121121
#end define
122122

123-
def download_blocks(local, bag: dict):
123+
def download_blocks(local, bag: dict, downloads_path: str):
124124
local.add_log(f"Downloading blocks from {bag['from']} to {bag['to']}", "info")
125-
if not download_bag(local, bag['bag']):
125+
if not download_bag(local, bag['bag'], downloads_path):
126126
local.add_log("Error downloading archive bag", "error")
127127
return
128128

129129

130-
def download_master_blocks(local, bag: dict):
130+
def download_master_blocks(local, bag: dict, downloads_path: str):
131131
local.add_log(f"Downloading master blocks from {bag['from']} to {bag['to']}", "info")
132-
if not download_bag(local, bag['bag'], download_all=False, download_file=lambda f: ':' not in f['name']):
132+
if not download_bag(local, bag['bag'], downloads_path, download_all=False, download_file=lambda f: ':' not in f['name']):
133133
local.add_log("Error downloading master bag", "error")
134134
return
135135

136136

137-
def download_bag(local, bag_id: str, download_all: bool = True, download_file: typing.Callable = None):
137+
def download_bag(local, bag_id: str, downloads_path: str, download_all: bool = True, download_file: typing.Callable = None):
138138
indexes = []
139139
local_ts_url = f"http://127.0.0.1:{local.buffer.ton_storage.api_port}"
140-
downloads_path = '/tmp/ts-downloads/'
141140

142141
resp = requests.post(local_ts_url + '/api/v1/add', json={'bag_id': bag_id, 'download_all': download_all, 'path': downloads_path})
143142
if not resp.json()['ok']:
@@ -201,6 +200,10 @@ def parse_block_value(local, block: str):
201200

202201
def download_archive_from_ts(local):
203202
archive_blocks = os.getenv('ARCHIVE_BLOCKS')
203+
downloads_path = '/var/ton-work/ts-downloads/'
204+
os.makedirs(downloads_path, exist_ok=True)
205+
subprocess.run(["chmod", "o+wx", downloads_path])
206+
204207
if archive_blocks is None:
205208
return
206209
block_from, block_to = archive_blocks, None
@@ -241,17 +244,18 @@ def download_archive_from_ts(local):
241244
return
242245

243246
local.add_log(f"Downloading blockchain state for block {state_bag['at_block']}", "info")
244-
if not download_bag(local, state_bag['bag']):
247+
if not download_bag(local, state_bag['bag'], downloads_path):
245248
local.add_log("Error downloading state bag", "error")
246249
return
247250

251+
248252
update_init_block(local, state_bag['at_block'])
249253
estimated_size = len(block_bags) * 4 * 2**30 + len(master_block_bags) * 4 * 2**30 * 0.2 # 4 GB per bag, 20% for master blocks
250254

251255
local.add_log(f"Downloading archive blocks. Rough estimate total blocks size is {int(estimated_size / 2**30)} GB", "info")
252256
with ThreadPoolExecutor(max_workers=4) as executor:
253-
futures = [executor.submit(download_blocks, local, bag) for bag in block_bags]
254-
futures += [executor.submit(download_master_blocks, local, bag) for bag in master_block_bags]
257+
futures = [executor.submit(download_blocks, local, bag, downloads_path) for bag in block_bags]
258+
futures += [executor.submit(download_master_blocks, local, bag, downloads_path) for bag in master_block_bags]
255259
for future in as_completed(futures):
256260
try:
257261
future.result()
@@ -265,7 +269,6 @@ def download_archive_from_ts(local):
265269
import_dir = local.buffer.ton_db_dir + 'import/'
266270
os.makedirs(import_dir, exist_ok=True)
267271
states_dir = archive_dir + '/states'
268-
downloads_path = '/tmp/ts-downloads/'
269272

270273
os.makedirs(states_dir, exist_ok=True)
271274
os.makedirs(import_dir, exist_ok=True)
@@ -275,7 +278,7 @@ def download_archive_from_ts(local):
275278
for bag in block_bags + master_block_bags:
276279
subprocess.run(f'mv {downloads_path}/{bag["bag"]}/*/*/* {import_dir}', shell=True)
277280
# subprocess.run(['rm', '-rf', f"{downloads_path}/{bag['bag']}"])
278-
subprocess.run(f'rm -rf {downloads_path}*', shell=True)
281+
subprocess.run(f'rm -rf {downloads_path}', shell=True)
279282

280283
stop_service(local, "ton_storage") # stop TS
281284
disable_service(local, "ton_storage")

0 commit comments

Comments
 (0)