Skip to content

Commit 566e4a6

Browse files
committed
add liteserver mode
1 parent a82ad84 commit 566e4a6

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

modules/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
from modules.single_pool import SingleNominatorModule
88
from modules.validator import ValidatorModule
99
from modules.controller import ControllerModule
10+
from modules.liteserver import LiteserverModule
1011

1112

1213
MODES = {
1314
'validator': ValidatorModule,
1415
'nominator-pool': NominatorPoolModule,
1516
'single-nominator': SingleNominatorModule,
1617
'liquid-staking': ControllerModule,
18+
'liteserver': LiteserverModule
1719
}
1820

1921

modules/liteserver.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import psutil
2+
3+
from modules.module import MtcModule
4+
from mytoninstaller.mytoninstaller import set_node_argument
5+
from mytoninstaller.node_args import get_node_args
6+
7+
8+
class LiteserverModule(MtcModule):
9+
10+
description = 'For liteserver usage only - can\'t be used with validator.'
11+
default_value = False
12+
13+
def enable(self):
14+
set_node_argument(self.local, ["--celldb-no-preload-all"])
15+
data = psutil.virtual_memory()
16+
ram = round(data.total / 2**30, 2)
17+
if ram < 100:
18+
set_node_argument(self.local, ["--celldb-cache-size", "1073741824"])
19+
20+
def disable(self):
21+
set_node_argument(self.local, ["--celldb-no-preload-all", "-d"])
22+
if get_node_args()['--celldb-cache-size']:
23+
set_node_argument(self.local, ["--celldb-cache-size", "-d"])
24+
25+
def add_console_commands(self, console):
26+
...

mytoncore/mytoncore.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3261,9 +3261,21 @@ def get_modes(self):
32613261
current_modes[name] = mode.default_value # assign default mode value
32623262
return current_modes
32633263

3264+
def check_enable_mode(self, name):
3265+
if name == 'liteserver':
3266+
if self.using_validator():
3267+
raise Exception(f'Cannot enable liteserver mode while validator mode is enabled. '
3268+
f'Use `disable_mode validator` first.')
3269+
MODES['liteserver'].enable()
3270+
if name == 'validator':
3271+
if self.using_liteserver():
3272+
raise Exception(f'Cannot enable validator mode while liteserver mode is enabled. '
3273+
f'Use `disable_mode liteserver` first.')
3274+
32643275
def enable_mode(self, name):
32653276
if name not in MODES:
32663277
raise Exception(f'Unknown module name: {name}. Available modes: {", ".join(MODES)}')
3278+
self.check_enable_mode(name)
32673279
current_modes = self.get_modes()
32683280
current_modes[name] = True
32693281
self.local.save()
@@ -3272,6 +3284,8 @@ def disable_mode(self, name):
32723284
current_modes = self.get_modes()
32733285
if name not in current_modes:
32743286
raise Exception(f'Unknown module name: {name}. Available modes: {", ".join(MODES)}')
3287+
if name == 'liteserver':
3288+
MODES['liteserver'].disable()
32753289
current_modes[name] = False
32763290
self.local.save()
32773291

@@ -3296,6 +3310,9 @@ def using_pool(self) -> bool:
32963310
def using_validator(self):
32973311
return self.get_mode_value('validator')
32983312

3313+
def using_liteserver(self):
3314+
return self.get_mode_value('liteserver')
3315+
32993316
def Tlb2Json(self, text):
33003317
# Заменить скобки
33013318
start = 0

mytonctrl/mytonctrl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def inject_globals(func):
141141
module = NominatorPoolModule(ton, local)
142142
module.add_console_commands(console)
143143

144-
if ton.get_mode_value('single-nominator'):
144+
if ton.using_single_nominator():
145145
from modules.single_pool import SingleNominatorModule
146146
module = SingleNominatorModule(ton, local)
147147
module.add_console_commands(console)

0 commit comments

Comments
 (0)