added setup kvvars

master
Kevin 2020-07-29 20:23:48 -05:00
parent 5bde99967b
commit 6f1daf50d3
3 changed files with 50 additions and 27 deletions

View File

@ -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)

View File

@ -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,

View File

@ -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)