added setup kvvars
parent
5bde99967b
commit
6f1daf50d3
|
@ -23,9 +23,8 @@ from communicatorutils import announcenode, deniableinserts
|
||||||
from communicatorutils import cooldownpeer
|
from communicatorutils import cooldownpeer
|
||||||
from communicatorutils import housekeeping
|
from communicatorutils import housekeeping
|
||||||
from communicatorutils import netcheck
|
from communicatorutils import netcheck
|
||||||
from onionrutils import epoch
|
from onionrthreads import add_onionr_thread
|
||||||
from onionrcommands.openwebinterface import get_url
|
from onionrcommands.openwebinterface import get_url
|
||||||
from etc import humanreadabletime
|
|
||||||
import onionrservices
|
import onionrservices
|
||||||
from netcontroller import NetController
|
from netcontroller import NetController
|
||||||
from . import bootstrappeers
|
from . import bootstrappeers
|
||||||
|
@ -61,22 +60,6 @@ class OnionrCommunicatorDaemon:
|
||||||
|
|
||||||
# populate kv values
|
# populate kv values
|
||||||
self.kv = self.shared_state.get_by_string('DeadSimpleKV')
|
self.kv = self.shared_state.get_by_string('DeadSimpleKV')
|
||||||
self.kv.put('blockQueue', {})
|
|
||||||
self.kv.put('shutdown', False)
|
|
||||||
self.kv.put('onlinePeers', [])
|
|
||||||
self.kv.put('offlinePeers', [])
|
|
||||||
self.kv.put('peerProfiles', [])
|
|
||||||
self.kv.put('connectTimes', {})
|
|
||||||
self.kv.put('currentDownloading', [])
|
|
||||||
self.kv.put('announceCache', {})
|
|
||||||
self.kv.put('newPeers', [])
|
|
||||||
self.kv.put('dbTimestamps', {})
|
|
||||||
self.kv.put('blocksToUpload', [])
|
|
||||||
self.kv.put('cooldownPeer', {})
|
|
||||||
self.kv.put('generating_blocks', [])
|
|
||||||
self.kv.put('lastNodeSeen', None)
|
|
||||||
self.kv.put('startTime', epoch.get_epoch())
|
|
||||||
self.kv.put('isOnline', True)
|
|
||||||
|
|
||||||
if config.get('general.offline_mode', False):
|
if config.get('general.offline_mode', False):
|
||||||
self.kv.put('isOnline', False)
|
self.kv.put('isOnline', False)
|
||||||
|
@ -103,8 +86,6 @@ class OnionrCommunicatorDaemon:
|
||||||
# extends our upload list and saves our list when Onionr exits
|
# extends our upload list and saves our list when Onionr exits
|
||||||
uploadqueue.UploadQueue(self)
|
uploadqueue.UploadQueue(self)
|
||||||
|
|
||||||
if developmentMode:
|
|
||||||
OnionrCommunicatorTimers(self, self.heartbeat, 30)
|
|
||||||
|
|
||||||
# Set timers, function reference, seconds
|
# Set timers, function reference, seconds
|
||||||
# requires_peer True means the timer function won't fire if we
|
# requires_peer True means the timer function won't fire if we
|
||||||
|
@ -302,13 +283,6 @@ class OnionrCommunicatorDaemon:
|
||||||
self.kv.get('peerProfiles').append(retData)
|
self.kv.get('peerProfiles').append(retData)
|
||||||
return retData
|
return retData
|
||||||
|
|
||||||
def heartbeat(self):
|
|
||||||
"""Show a heartbeat debug message."""
|
|
||||||
logger.debug('Heartbeat. Node running for %s.' %
|
|
||||||
humanreadabletime.human_readable_time(
|
|
||||||
self.kv.get('startTime')))
|
|
||||||
self.decrementThreadCount('heartbeat')
|
|
||||||
|
|
||||||
|
|
||||||
def startCommunicator(shared_state):
|
def startCommunicator(shared_state):
|
||||||
OnionrCommunicatorDaemon(shared_state)
|
OnionrCommunicatorDaemon(shared_state)
|
||||||
|
|
|
@ -39,6 +39,7 @@ from lan import LANManager
|
||||||
from lan.server import LANServer
|
from lan.server import LANServer
|
||||||
from sneakernet import sneakernet_import_thread
|
from sneakernet import sneakernet_import_thread
|
||||||
from onionrstatistics.devreporting import statistics_reporter
|
from onionrstatistics.devreporting import statistics_reporter
|
||||||
|
from setupkvvars import setup_kv
|
||||||
"""
|
"""
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -135,6 +136,9 @@ def daemon():
|
||||||
# Add DeadSimpleKV for quasi-global variables (ephemeral key-value)
|
# Add DeadSimpleKV for quasi-global variables (ephemeral key-value)
|
||||||
shared_state.get(DeadSimpleKV)
|
shared_state.get(DeadSimpleKV)
|
||||||
|
|
||||||
|
# Initialize the quasi-global variables
|
||||||
|
setup_kv(shared_state.get(DeadSimpleKV))
|
||||||
|
|
||||||
shared_state.get(daemoneventsapi.DaemonEventsBP)
|
shared_state.get(daemoneventsapi.DaemonEventsBP)
|
||||||
|
|
||||||
Thread(target=shared_state.get(apiservers.ClientAPI).start,
|
Thread(target=shared_state.get(apiservers.ClientAPI).start,
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
"""Onionr - Private P2P Communication.
|
||||||
|
|
||||||
|
Initialize singleton deadsimplekv pseudo globals
|
||||||
|
"""
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
from onionrutils import epoch
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from deadsimplekv import DeadSimpleKV
|
||||||
|
"""
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def setup_kv(shared_vars: 'DeadSimpleKV'):
|
||||||
|
"""Init initial pseudo-variables."""
|
||||||
|
shared_vars.put('blockQueue', {})
|
||||||
|
shared_vars.put('shutdown', False)
|
||||||
|
shared_vars.put('onlinePeers', [])
|
||||||
|
shared_vars.put('offlinePeers', [])
|
||||||
|
shared_vars.put('peerProfiles', [])
|
||||||
|
shared_vars.put('connectTimes', {})
|
||||||
|
shared_vars.put('currentDownloading', [])
|
||||||
|
shared_vars.put('announceCache', {})
|
||||||
|
shared_vars.put('newPeers', [])
|
||||||
|
shared_vars.put('dbTimestamps', {})
|
||||||
|
shared_vars.put('blocksToUpload', [])
|
||||||
|
shared_vars.put('cooldownPeer', {})
|
||||||
|
shared_vars.put('generating_blocks', [])
|
||||||
|
shared_vars.put('lastNodeSeen', None)
|
||||||
|
shared_vars.put('startTime', epoch.get_epoch())
|
||||||
|
shared_vars.put('isOnline', True)
|
Loading…
Reference in New Issue