Added LXMF transfer size limit options

This commit is contained in:
Mark Qvist 2024-03-02 00:11:17 +01:00
parent 4a3c987cef
commit d9bba6fd69
2 changed files with 56 additions and 2 deletions

View File

@ -119,7 +119,7 @@ class NomadNetworkApp:
self.should_run_jobs = True self.should_run_jobs = True
self.job_interval = 5 self.job_interval = 5
self.defer_jobs = 90 self.defer_jobs = 90
self.page_refresh_interval = 0 self.page_refresh_interval = 0
self.file_refresh_interval = 0 self.file_refresh_interval = 0
self.peer_announce_at_start = True self.peer_announce_at_start = True
@ -127,6 +127,9 @@ class NomadNetworkApp:
self.disable_propagation = False self.disable_propagation = False
self.notify_on_new_message = True self.notify_on_new_message = True
self.lxmf_max_propagation_size = None
self.lxmf_max_incoming_size = None
self.periodic_lxmf_sync = True self.periodic_lxmf_sync = True
self.lxmf_sync_interval = 360*60 self.lxmf_sync_interval = 360*60
self.lxmf_sync_limit = 8 self.lxmf_sync_limit = 8
@ -283,7 +286,11 @@ class NomadNetworkApp:
self.directory = nomadnet.Directory(self) self.directory = nomadnet.Directory(self)
self.message_router = LXMF.LXMRouter(identity = self.identity, storagepath = self.storagepath, autopeer = True) self.message_router = LXMF.LXMRouter(
identity = self.identity, storagepath = self.storagepath, autopeer = True,
propagation_limit = self.lxmf_max_propagation_size, delivery_limit = self.lxmf_max_incoming_size,
)
self.message_router.register_delivery_callback(self.lxmf_delivery) self.message_router.register_delivery_callback(self.lxmf_delivery)
for destination_hash in self.ignored_list: for destination_hash in self.ignored_list:
@ -731,6 +738,14 @@ class NomadNetworkApp:
else: else:
self.lxmf_sync_limit = None self.lxmf_sync_limit = None
if option == "max_accepted_size":
value = self.config["client"].as_float(option)
if value > 0:
self.lxmf_max_incoming_size = value
else:
self.lxmf_max_incoming_size = 500
if option == "compact_announce_stream": if option == "compact_announce_stream":
value = self.config["client"].as_bool(option) value = self.config["client"].as_bool(option)
self.compact_stream = value self.compact_stream = value
@ -829,6 +844,14 @@ class NomadNetworkApp:
else: else:
self.disable_propagation = self.config["node"].as_bool("disable_propagation") self.disable_propagation = self.config["node"].as_bool("disable_propagation")
if not "max_transfer_size" in self.config["node"]:
self.lxmf_max_propagation_size = 256
else:
value = self.config["node"].as_float("max_transfer_size")
if value < 1:
value = 1
self.lxmf_max_propagation_size = value
if not "announce_at_start" in self.config["node"]: if not "announce_at_start" in self.config["node"]:
self.node_announce_at_start = False self.node_announce_at_start = False
else: else:
@ -994,6 +1017,13 @@ lxmf_sync_interval = 360
# the limit, and download everything every time. # the limit, and download everything every time.
lxmf_sync_limit = 8 lxmf_sync_limit = 8
# The maximum accepted unpacked size for mes-
# sages received directly from other peers,
# specified in kilobytes. Messages larger than
# this will be rejected before the transfer
# begins.
max_accepted_size = 500
# The announce stream will only show one entry # The announce stream will only show one entry
# per destination or node by default. You can # per destination or node by default. You can
# change this to show as many announces as have # change this to show as many announces as have
@ -1082,6 +1112,18 @@ announce_at_start = Yes
# and defaults to 2 gigabytes. # and defaults to 2 gigabytes.
# message_storage_limit = 2000 # message_storage_limit = 2000
# The maximum accepted transfer size per in-
# coming propagation transfer, in kilobytes.
# This also sets the upper limit for the size
# of single messages accepted onto this node.
#
# If a node wants to propagate a larger number
# of messages to this node, than what can fit
# within this limit, it will prioritise sending
# the smallest, newest messages first, and try
# with any remaining messages at a later point.
max_transfer_size = 256
# You can tell the LXMF message router to # You can tell the LXMF message router to
# prioritise storage for one or more # prioritise storage for one or more
# destinations. If the message store reaches # destinations. If the message store reaches

View File

@ -515,6 +515,12 @@ The number of minutes between each automatic sync. The default is equal to 6 hou
On low-bandwidth networks, it can be useful to limit the amount of messages downloaded in each sync. The default is 8. Set to 0 to download all available messages every time a sync occurs. On low-bandwidth networks, it can be useful to limit the amount of messages downloaded in each sync. The default is 8. Set to 0 to download all available messages every time a sync occurs.
< <
>>>
`!max_accepted_size = 500`!
>>>>
The maximum accepted unpacked size for messages received directly from other peers, specified in kilobytes. Messages larger than this will be rejected before the transfer begins.
<
>>> >>>
`!compact_announce_stream = yes`! `!compact_announce_stream = yes`!
>>>> >>>>
@ -653,6 +659,12 @@ By default, when Nomad Network is hosting a node, it will also run an LXMF propa
Configures the maximum amount of storage, in megabytes, that the LXMF Propagation Node will use to store messages. Configures the maximum amount of storage, in megabytes, that the LXMF Propagation Node will use to store messages.
< <
>>>
`!max_transfer_size = 256`!
>>>>
The maximum accepted transfer size per incoming propagation transfer, in kilobytes. This also sets the upper limit for the size of single messages accepted onto this propagation node. If a node wants to propagate a larger number of messages to this node, than what can fit within this limit, it will prioritise sending the smallest, newest messages first, and try with any remaining messages at a later point.
<
>>> >>>
`!prioritise_destinations = 41d20c727598a3fbbdf9106133a3a0ed, d924b81822ca24e68e2effea99bcb8cf`! `!prioritise_destinations = 41d20c727598a3fbbdf9106133a3a0ed, d924b81822ca24e68e2effea99bcb8cf`!
>>>> >>>>