diff --git a/onionr/filepaths/__init__.py b/onionr/filepaths/__init__.py
index c8c14fa2..889da5e1 100644
--- a/onionr/filepaths/__init__.py
+++ b/onionr/filepaths/__init__.py
@@ -14,4 +14,6 @@ tor_hs_address_file = home + 'hs/hostname'
run_check_file = home + '.runcheck'
-data_nonce_file = home + 'block-nonces.dat'
\ No newline at end of file
+data_nonce_file = home + 'block-nonces.dat'
+
+keys_file = home + 'keys.txt'
\ No newline at end of file
diff --git a/onionr/httpapi/insertblock.py b/onionr/httpapi/insertblock.py
index d208bf70..bdc29f72 100644
--- a/onionr/httpapi/insertblock.py
+++ b/onionr/httpapi/insertblock.py
@@ -19,13 +19,11 @@
'''
import json, threading
from flask import Blueprint, Response, request
-import core
-
+import onionrblocks
ib = Blueprint('insertblock', __name__)
@ib.route('/insertblock', methods=['POST'])
def client_api_insert_block():
- c = core.Core()
encrypt = False
bData = request.get_json(force=True)
message = bData['message']
@@ -59,5 +57,5 @@ def client_api_insert_block():
meta = json.loads(bData['meta'])
except KeyError:
pass
- threading.Thread(target=c.insertBlock, args=(message,), kwargs={'header': bType, 'encryptType': encryptType, 'sign':sign, 'asymPeer': to, 'meta': meta}).start()
+ threading.Thread(target=onionrblocks.insert.insert_block, args=(message,), kwargs={'header': bType, 'encryptType': encryptType, 'sign':sign, 'asymPeer': to, 'meta': meta}).start()
return Response('success')
\ No newline at end of file
diff --git a/onionr/httpapi/miscpublicapi/announce.py b/onionr/httpapi/miscpublicapi/announce.py
index 060bead4..89b9fbb3 100755
--- a/onionr/httpapi/miscpublicapi/announce.py
+++ b/onionr/httpapi/miscpublicapi/announce.py
@@ -32,7 +32,7 @@ def handle_announce(clientAPI, request):
powHash = ''
randomData = ''
newNode = ''
- ourAdder = clientAPI._core.hsAddress.encode()
+ ourAdder = clientAPI.hsAddress.encode()
try:
newNode = request.form['node'].encode()
except KeyError:
@@ -45,17 +45,17 @@ def handle_announce(clientAPI, request):
except KeyError:
logger.warn('No random data specified for upload')
else:
- nodes = newNode + clientAPI._core.hsAddress.encode()
- nodes = clientAPI._core._crypto.blake2bHash(nodes)
- powHash = clientAPI._core._crypto.blake2bHash(randomData + nodes)
+ nodes = newNode + clientAPI.hsAddress.encode()
+ nodes = clientAPI.crypto.blake2bHash(nodes)
+ powHash = clientAPI.crypto.blake2bHash(randomData + nodes)
try:
powHash = powHash.decode()
except AttributeError:
pass
if powHash.startswith('0' * onionrvalues.OnionrValues().announce_pow):
newNode = bytesconverter.bytes_to_str(newNode)
- if stringvalidators.validate_transport(newNode) and not newNode in clientAPI._core.onionrInst.communicatorInst.newPeers:
- clientAPI._core.onionrInst.communicatorInst.newPeers.append(newNode)
+ if stringvalidators.validate_transport(newNode) and not newNode in clientAPI.onionrInst.communicatorInst.newPeers:
+ clientAPI.onionrInst.communicatorInst.newPeers.append(newNode)
resp = 'Success'
else:
logger.warn(newNode.decode() + ' failed to meet POW: ' + powHash)
diff --git a/onionr/httpapi/miscpublicapi/endpoints.py b/onionr/httpapi/miscpublicapi/endpoints.py
index 05e824a6..7a5db32b 100644
--- a/onionr/httpapi/miscpublicapi/endpoints.py
+++ b/onionr/httpapi/miscpublicapi/endpoints.py
@@ -19,10 +19,11 @@
'''
from flask import Response, Blueprint, request, send_from_directory, abort
from . import getblocks, upload, announce
+from coredb import keydb
class PublicEndpoints:
def __init__(self, public_api):
client_API = public_api.clientAPI
- config = client_API._core.config
+ config = client_API.config
public_endpoints_bp = Blueprint('publicendpoints', __name__)
self.public_endpoints_bp = public_endpoints_bp
@@ -61,7 +62,7 @@ class PublicEndpoints:
@public_endpoints_bp.route('/pex')
def peer_exchange():
- response = ','.join(client_API._core.listAdders(recent=3600))
+ response = ','.join(keydb.listkeys.list_adders(recent=3600))
if len(response) == 0:
response = ''
return Response(response)
diff --git a/onionr/httpapi/miscpublicapi/getblocks.py b/onionr/httpapi/miscpublicapi/getblocks.py
index c7857966..9092e9f1 100755
--- a/onionr/httpapi/miscpublicapi/getblocks.py
+++ b/onionr/httpapi/miscpublicapi/getblocks.py
@@ -26,7 +26,7 @@ def get_public_block_list(clientAPI, publicAPI, request):
# Provide a list of our blocks, with a date offset
dateAdjust = request.args.get('date')
bList = blockmetadb.get_block_list(dateRec=dateAdjust)
- if clientAPI._core.config.get('general.hide_created_blocks', True):
+ if clientAPI.config.get('general.hide_created_blocks', True):
for b in publicAPI.hideBlocks:
if b in bList:
# Don't share blocks we created if they haven't been *uploaded* yet, makes it harder to find who created a block
@@ -37,7 +37,7 @@ def get_block_data(clientAPI, publicAPI, data):
'''data is the block hash in hex'''
resp = ''
if stringvalidators.validate_hash(data):
- if not clientAPI._core.config.get('general.hide_created_blocks', True) or data not in publicAPI.hideBlocks:
+ if not clientAPI.config.get('general.hide_created_blocks', True) or data not in publicAPI.hideBlocks:
if data in blockmetadb.get_block_list():
block = clientAPI.getBlockData(data, raw=True)
try:
diff --git a/onionr/httpapi/miscpublicapi/upload.py b/onionr/httpapi/miscpublicapi/upload.py
index 5fd0f32c..bc8ceac9 100755
--- a/onionr/httpapi/miscpublicapi/upload.py
+++ b/onionr/httpapi/miscpublicapi/upload.py
@@ -30,7 +30,7 @@ def accept_upload(clientAPI, request):
else:
if sys.getsizeof(data) < 100000000:
try:
- if blockimporter.importBlockFromData(data, clientAPI._core):
+ if blockimporter.importBlockFromData(data):
resp = 'success'
else:
logger.warn('Error encountered importing uploaded block')
diff --git a/onionr/httpapi/onionrsitesapi/__init__.py b/onionr/httpapi/onionrsitesapi/__init__.py
index 82805192..f491cc1c 100644
--- a/onionr/httpapi/onionrsitesapi/__init__.py
+++ b/onionr/httpapi/onionrsitesapi/__init__.py
@@ -19,7 +19,7 @@
'''
import base64
from flask import Blueprint, Response, request, abort
-import core, onionrblockapi, onionrexceptions
+import onionrblockapi, onionrexceptions
from onionrutils import stringvalidators
site_api = Blueprint('siteapi', __name__)
diff --git a/onionr/httpapi/profilesapi/__init__.py b/onionr/httpapi/profilesapi/__init__.py
index 681212be..1536727b 100755
--- a/onionr/httpapi/profilesapi/__init__.py
+++ b/onionr/httpapi/profilesapi/__init__.py
@@ -17,7 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
'''
-import core
from flask import Blueprint, Response, request, abort
from . import profiles
diff --git a/onionr/onionrcommands/__init__.py b/onionr/onionrcommands/__init__.py
index 39a272f2..370876e1 100755
--- a/onionr/onionrcommands/__init__.py
+++ b/onionr/onionrcommands/__init__.py
@@ -114,7 +114,6 @@ def get_commands(onionr_inst):
'import-blocks': importnewblocks.import_new_blocks,
'importblocks': importnewblocks.import_new_blocks,
- 'introduce': onionr_inst.onionrCore.introduceNode,
'pex': dopex.do_PEX,
'getpassword': onionr_inst.printWebPassword,
@@ -158,7 +157,6 @@ cmd_help = {
'listconn': 'list connected peers',
'pex': 'exchange addresses with peers (done automatically)',
'blacklist-block': 'deletes a block by hash and permanently removes it from your node',
- 'introduce': 'Introduce your node to the public Onionr network',
'friend': '[add|remove] [public key/id]',
'add-id': 'Generate a new ID (key pair)',
'change-id': 'Change active ID',
diff --git a/onionr/onionrcommands/banblocks.py b/onionr/onionrcommands/banblocks.py
index 426e852e..22bc5cf7 100755
--- a/onionr/onionrcommands/banblocks.py
+++ b/onionr/onionrcommands/banblocks.py
@@ -20,16 +20,17 @@
import sys
import logger
from onionrutils import stringvalidators
+from onionrstorage import removeblock
def ban_block(o_inst):
try:
ban = sys.argv[2]
except IndexError:
ban = logger.readline('Enter a block hash:')
if stringvalidators.validate_hash(ban):
- if not o_inst.onionrCore._blacklist.inBlacklist(ban):
+ if not o_inst.blacklist.inBlacklist(ban):
try:
- o_inst.onionrCore._blacklist.addToDB(ban)
- o_inst.onionrCore.removeBlock(ban)
+ o_inst.blacklist.addToDB(ban)
+ removeblock.remove_block(ban)
except Exception as error:
logger.error('Could not blacklist block', error=error, terminal=True)
else:
diff --git a/onionr/onionrcommands/daemonlaunch.py b/onionr/onionrcommands/daemonlaunch.py
index d2c81ea5..81030cd1 100755
--- a/onionr/onionrcommands/daemonlaunch.py
+++ b/onionr/onionrcommands/daemonlaunch.py
@@ -24,10 +24,11 @@ import onionr, apiservers, logger, communicator
import onionrevents as events
from netcontroller import NetController
from onionrutils import localcommand
+import filepaths
from coredb import daemonqueue
def _proper_shutdown(o_inst):
- localcommand.local_command(o_inst.onionrCore, 'shutdown')
+ localcommand.local_command('shutdown')
sys.exit(1)
def daemon(o_inst):
@@ -36,9 +37,9 @@ def daemon(o_inst):
'''
# remove runcheck if it exists
- if os.path.isfile('%s/.runcheck' % (o_inst.onionrCore.dataDir,)):
+ if os.path.isfile(filepaths.run_check_file):
logger.debug('Runcheck file found on daemon start, deleting in advance.')
- os.remove('%s/.runcheck' % (o_inst.onionrCore.dataDir,))
+ os.remove(filepaths.run_check_file)
Thread(target=apiservers.ClientAPI, args=(o_inst, o_inst.debug, onionr.API_VERSION), daemon=True).start()
Thread(target=apiservers.PublicAPI, args=[o_inst.getClientApi()], daemon=True).start()
@@ -46,7 +47,7 @@ def daemon(o_inst):
apiHost = ''
while apiHost == '':
try:
- with open(o_inst.onionrCore.publicApiHostFile, 'r') as hostFile:
+ with open(filepaths.public_API_host_file, 'r') as hostFile:
apiHost = hostFile.read()
except FileNotFoundError:
pass
@@ -55,30 +56,30 @@ def daemon(o_inst):
logger.raw('', terminal=True)
# print nice header thing :)
- if o_inst.onionrCore.config.get('general.display_header', True):
+ if o_inst.config.get('general.display_header', True):
o_inst.header()
o_inst.version(verbosity = 5, function = logger.info)
logger.debug('Python version %s' % platform.python_version())
if o_inst._developmentMode:
logger.warn('Development mode enabled', timestamp = False, terminal=True)
- net = NetController(o_inst.onionrCore.config.get('client.public.port', 59497), apiServerIP=apiHost)
+ net = NetController(o_inst.config.get('client.public.port', 59497), apiServerIP=apiHost)
logger.info('Tor is starting...', terminal=True)
if not net.startTor():
- localcommand.local_command(o_inst.onionrCore, 'shutdown')
+ localcommand.local_command('shutdown')
sys.exit(1)
- if len(net.myID) > 0 and o_inst.onionrCore.config.get('general.security_level', 1) == 0:
+ if len(net.myID) > 0 and o_inst.config.get('general.security_level', 1) == 0:
logger.debug('Started .onion service: %s' % (logger.colors.underline + net.myID))
else:
logger.debug('.onion service disabled')
- logger.info('Using public key: %s' % (logger.colors.underline + o_inst.onionrCore._crypto.pubKey[:52]), terminal=True)
+ logger.info('Using public key: %s' % (logger.colors.underline + o_inst._crypto.pubKey[:52]), terminal=True)
try:
time.sleep(1)
except KeyboardInterrupt:
_proper_shutdown(o_inst)
- o_inst.onionrCore.torPort = net.socksPort
+ o_inst.torPort = net.socksPort
communicatorThread = Thread(target=communicator.startCommunicator, args=(o_inst, str(net.socksPort)), daemon=True)
communicatorThread.start()
@@ -105,7 +106,7 @@ def daemon(o_inst):
signal.signal(signal.SIGINT, _ignore_sigint)
daemonqueue.daemon_queue_add('shutdown')
- localcommand.local_command(o_inst.onionrCore, 'shutdown')
+ localcommand.local_command('shutdown')
net.killTor()
time.sleep(5) # Time to allow threads to finish, if not any "daemon" threads will be slaughtered http://docs.python.org/library/threading.html#threading.Thread.daemon
@@ -123,7 +124,7 @@ def kill_daemon(o_inst):
logger.warn('Stopping the running daemon...', timestamp = False, terminal=True)
try:
events.event('daemon_stop', onionr = o_inst)
- net = NetController(o_inst.onionrCore.config.get('client.port', 59496))
+ net = NetController(o_inst.config.get('client.port', 59496))
try:
daemonqueue.daemon_queue_qdd('shutdown')
except sqlite3.OperationalError:
diff --git a/onionr/onionrcommands/filecommands.py b/onionr/onionrcommands/filecommands.py
index 7e2cd086..5df0e9f8 100755
--- a/onionr/onionrcommands/filecommands.py
+++ b/onionr/onionrcommands/filecommands.py
@@ -22,6 +22,7 @@ import base64, sys, os
import logger
from onionrblockapi import Block
from onionrutils import stringvalidators
+from onionrblocks import insert
def add_file(o_inst, singleBlock=False, blockType='bin'):
'''
Adds a file to the onionr network
@@ -37,7 +38,7 @@ def add_file(o_inst, singleBlock=False, blockType='bin'):
logger.info('Adding file... this might take a long time.', terminal=True)
try:
with open(filename, 'rb') as singleFile:
- blockhash = o_inst.onionrCore.insertBlock(base64.b64encode(singleFile.read()), header=blockType)
+ blockhash = insert.insert_block(base64.b64encode(singleFile.read()), header=blockType)
if len(blockhash) > 0:
logger.info('File %s saved in block %s' % (filename, blockhash), terminal=True)
except:
@@ -66,5 +67,5 @@ def getFile(o_inst):
return
with open(fileName, 'wb') as myFile:
- myFile.write(base64.b64decode(Block(bHash, core=o_inst.onionrCore).bcontent))
+ myFile.write(base64.b64decode(Block(bHash).bcontent))
return
\ No newline at end of file
diff --git a/onionr/onionrcommands/keyadders.py b/onionr/onionrcommands/keyadders.py
index b9401d60..3f590142 100755
--- a/onionr/onionrcommands/keyadders.py
+++ b/onionr/onionrcommands/keyadders.py
@@ -19,18 +19,19 @@
'''
import sys
import logger
+from coredb import keydb
def add_peer(o_inst):
try:
newPeer = sys.argv[2]
except IndexError:
pass
else:
- if newPeer in o_inst.onionrCore.listPeers():
+ if newPeer in keydb.listkeys.list_peers():
logger.info('We already have that key', terminal=True)
return
logger.info("Adding peer: " + logger.colors.underline + newPeer, terminal=True)
try:
- if o_inst.onionrCore.addPeer(newPeer):
+ if keydb.addkeys.add_peer(newPeer):
logger.info('Successfully added key', terminal=True)
except AssertionError:
logger.error('Failed to add key', terminal=True)
@@ -43,7 +44,7 @@ def add_address(o_inst):
pass
else:
logger.info("Adding address: " + logger.colors.underline + newAddress, terminal=True)
- if o_inst.onionrCore.addAddress(newAddress):
+ if keydb.addkeys.add_address(newAddress):
logger.info("Successfully added address.", terminal=True)
else:
logger.warn("Unable to add address.", terminal=True)
\ No newline at end of file
diff --git a/onionr/onionrcommands/onionrstatistics.py b/onionr/onionrcommands/onionrstatistics.py
index e17d23e3..4a9e6350 100755
--- a/onionr/onionrcommands/onionrstatistics.py
+++ b/onionr/onionrcommands/onionrstatistics.py
@@ -23,7 +23,9 @@ from onionrblockapi import Block
import onionr
from onionrutils import checkcommunicator, mnemonickeys
from utils import sizeutils
-from coredb import blockmetadb, daemonqueue
+from coredb import blockmetadb, daemonqueue, keydb
+import onionrcrypto
+crypto = onionrcrypto.OnionrCrypto()
def show_stats(o_inst):
try:
# define stats messages here
@@ -31,7 +33,7 @@ def show_stats(o_inst):
signedBlocks = len(Block.getBlocks(signed = True))
messages = {
# info about local client
- 'Onionr Daemon Status' : ((logger.colors.fg.green + 'Online') if checkcommunicator.is_communicator_running(o_inst.onionrCore, timeout = 9) else logger.colors.fg.red + 'Offline'),
+ 'Onionr Daemon Status' : ((logger.colors.fg.green + 'Online') if checkcommunicator.is_communicator_running(timeout = 9) else logger.colors.fg.red + 'Offline'),
# file and folder size stats
'div1' : True, # this creates a solid line across the screen, a div
@@ -41,8 +43,8 @@ def show_stats(o_inst):
# count stats
'div2' : True,
- 'Known Peers' : str(max(len(o_inst.onionrCore.listPeers()) - 1, 0)),
- 'Enabled Plugins' : str(len(o_inst.onionrCore.config.get('plugins.enabled', list()))) + ' / ' + str(len(os.listdir(o_inst.dataDir + 'plugins/'))),
+ 'Known Peers' : str(max(len(keydb.listkeys.list_peers()) - 1, 0)),
+ 'Enabled Plugins' : str(len(o_inst.config.get('plugins.enabled', list()))) + ' / ' + str(len(os.listdir(o_inst.dataDir + 'plugins/'))),
'Stored Blocks' : str(totalBlocks),
'Percent Blocks Signed' : str(round(100 * signedBlocks / max(totalBlocks, 1), 2)) + '%'
}
@@ -87,8 +89,8 @@ def show_details(o_inst):
details = {
'Node Address' : o_inst.get_hostname(),
'Web Password' : o_inst.getWebPassword(),
- 'Public Key' : o_inst.onionrCore._crypto.pubKey,
- 'Human-readable Public Key' : mnemonickeys.get_human_readable_ID(o_inst.onionrCore)
+ 'Public Key' : crypto.pubKey,
+ 'Human-readable Public Key' : mnemonickeys.get_human_readable_ID()
}
for detail in details:
diff --git a/onionr/onionrcommands/openwebinterface.py b/onionr/onionrcommands/openwebinterface.py
index 42c80b57..b0cacfa4 100755
--- a/onionr/onionrcommands/openwebinterface.py
+++ b/onionr/onionrcommands/openwebinterface.py
@@ -22,10 +22,10 @@ import logger
from onionrutils import getclientapiserver
def open_home(o_inst):
try:
- url = getclientapiserver.get_client_API_server(o_inst.onionrCore)
+ url = getclientapiserver.get_client_API_server()
except FileNotFoundError:
logger.error('Onionr seems to not be running (could not get api host)', terminal=True)
else:
- url = 'http://%s/#%s' % (url, o_inst.onionrCore.config.get('client.webpassword'))
+ url = 'http://%s/#%s' % (url, o_inst.config.get('client.webpassword'))
logger.info('If Onionr does not open automatically, use this URL: ' + url, terminal=True)
webbrowser.open_new_tab(url)
\ No newline at end of file
diff --git a/onionr/onionrcommands/pubkeymanager.py b/onionr/onionrcommands/pubkeymanager.py
index 72db422a..8b20a769 100755
--- a/onionr/onionrcommands/pubkeymanager.py
+++ b/onionr/onionrcommands/pubkeymanager.py
@@ -28,25 +28,25 @@ def add_ID(o_inst):
sys.argv[2]
assert sys.argv[2] == 'true'
except (IndexError, AssertionError) as e:
- newID = o_inst.onionrCore._crypto.keyManager.addKey()[0]
+ newID = o_inst.crypto.keyManager.addKey()[0]
else:
logger.warn('Deterministic keys require random and long passphrases.', terminal=True)
logger.warn('If a good passphrase is not used, your key can be easily stolen.', terminal=True)
logger.warn('You should use a series of hard to guess words, see this for reference: https://www.xkcd.com/936/', terminal=True)
- pass1 = getpass.getpass(prompt='Enter at least %s characters: ' % (o_inst.onionrCore._crypto.deterministicRequirement,))
+ pass1 = getpass.getpass(prompt='Enter at least %s characters: ' % (o_inst.crypto.deterministicRequirement,))
pass2 = getpass.getpass(prompt='Confirm entry: ')
- if o_inst.onionrCore._crypto.safeCompare(pass1, pass2):
+ if o_inst.crypto.safeCompare(pass1, pass2):
try:
logger.info('Generating deterministic key. This can take a while.', terminal=True)
- newID, privKey = o_inst.onionrCore._crypto.generateDeterministic(pass1)
+ newID, privKey = o_inst.crypto.generateDeterministic(pass1)
except onionrexceptions.PasswordStrengthError:
- logger.error('Passphrase must use at least %s characters.' % (o_inst.onionrCore._crypto.deterministicRequirement,), terminal=True)
+ logger.error('Passphrase must use at least %s characters.' % (o_inst.crypto.deterministicRequirement,), terminal=True)
sys.exit(1)
else:
logger.error('Passwords do not match.', terminal=True)
sys.exit(1)
try:
- o_inst.onionrCore._crypto.keyManager.addKey(pubKey=newID,
+ o_inst.crypto.keyManager.addKey(pubKey=newID,
privKey=privKey)
except ValueError:
logger.error('That ID is already available, you can change to it with the change-id command.', terminal=True)
@@ -61,9 +61,9 @@ def change_ID(o_inst):
logger.warn('Specify pubkey to use', terminal=True)
else:
if stringvalidators.validate_pub_key(key):
- if key in o_inst.onionrCore._crypto.keyManager.getPubkeyList():
- o_inst.onionrCore.config.set('general.public_key', key)
- o_inst.onionrCore.config.save()
+ if key in o_inst.crypto.keyManager.getPubkeyList():
+ o_inst.config.set('general.public_key', key)
+ o_inst.config.save()
logger.info('Set active key to: %s' % (key,), terminal=True)
logger.info('Restart Onionr if it is running.', terminal=True)
else:
@@ -82,22 +82,22 @@ def friend_command(o_inst):
action = action.lower()
if action == 'list':
# List out peers marked as our friend
- for friend in contactmanager.ContactManager.list_friends(o_inst.onionrCore):
+ for friend in contactmanager.ContactManager.list_friends(o_inst.):
logger.info(friend.publicKey + ' - ' + friend.get_info('name'), terminal=True)
elif action in ('add', 'remove'):
try:
friend = sys.argv[3]
if not stringvalidators.validate_pub_key(friend):
raise onionrexceptions.InvalidPubkey('Public key is invalid')
- if friend not in o_inst.onionrCore.listPeers():
+ if friend not in o_inst..listPeers():
raise onionrexceptions.KeyNotKnown
- friend = onionrusers.OnionrUser(o_inst.onionrCore, friend)
+ friend = onionrusers.OnionrUser(o_inst., friend)
except IndexError:
logger.warn('Friend ID is required.', terminal=True)
action = 'error' # set to 'error' so that the finally block does not process anything
except onionrexceptions.KeyNotKnown:
- o_inst.onionrCore.addPeer(friend)
- friend = onionrusers.OnionrUser(o_inst.onionrCore, friend)
+ o_inst..addPeer(friend)
+ friend = onionrusers.OnionrUser(o_inst., friend)
finally:
if action == 'add':
friend.setTrust(1)
diff --git a/onionr/onionrcommands/resettor.py b/onionr/onionrcommands/resettor.py
index e327bccc..86bc9c3f 100755
--- a/onionr/onionrcommands/resettor.py
+++ b/onionr/onionrcommands/resettor.py
@@ -18,14 +18,13 @@
along with this program. If not, see .
'''
import os, shutil
-import logger, core
+import logger
from onionrutils import localcommand
def reset_tor():
- c = core.Core()
tor_dir = c.dataDir + 'tordata'
if os.path.exists(tor_dir):
- if localcommand.local_command(c, '/ping') == 'pong!':
+ if localcommand.local_command('/ping') == 'pong!':
logger.warn('Cannot delete Tor data while Onionr is running', terminal=True)
else:
shutil.rmtree(tor_dir)
\ No newline at end of file
diff --git a/onionr/onionrcrypto/__init__.py b/onionr/onionrcrypto/__init__.py
index 957733eb..f6252863 100755
--- a/onionr/onionrcrypto/__init__.py
+++ b/onionr/onionrcrypto/__init__.py
@@ -22,14 +22,14 @@ import nacl.signing, nacl.encoding, nacl.public, nacl.hash, nacl.pwhash, nacl.ut
import unpaddedbase32
import logger, onionrproofs
from onionrutils import stringvalidators, epoch, bytesconverter
-import onionrexceptions, keymanager, core, onionrutils
+import filepaths
+import onionrexceptions, keymanager, onionrutils
import config
config.reload()
class OnionrCrypto:
- def __init__(self, coreInstance):
- self._core = coreInstance
- self._keyFile = self._core.dataDir + 'keys.txt'
+ def __init__(self):
+ self._keyFile = filepaths.keys_file
self.pubKey = None
self.privKey = None
self.secrets = secrets
@@ -39,8 +39,8 @@ class OnionrCrypto:
# Load our own pub/priv Ed25519 keys, gen & save them if they don't exist
if os.path.exists(self._keyFile):
- if len(self._core.config.get('general.public_key', '')) > 0:
- self.pubKey = self._core.config.get('general.public_key')
+ if len(config.get('general.public_key', '')) > 0:
+ self.pubKey = config.get('general.public_key')
else:
self.pubKey = self.keyManager.getPubkeyList()[0]
self.privKey = self.keyManager.getPrivkey(self.pubKey)
@@ -249,10 +249,10 @@ class OnionrCrypto:
except AttributeError:
pass
- difficulty = onionrproofs.getDifficultyForNewBlock(blockContent, ourBlock=False, coreInst=self._core)
+ difficulty = onionrproofs.getDifficultyForNewBlock(blockContent, ourBlock=False)
- if difficulty < int(self._core.config.get('general.minimum_block_pow')):
- difficulty = int(self._core.config.get('general.minimum_block_pow'))
+ if difficulty < int(config.get('general.minimum_block_pow')):
+ difficulty = int(config.get('general.minimum_block_pow'))
mainHash = '0000000000000000000000000000000000000000000000000000000000000000'#nacl.hash.blake2b(nacl.utils.random()).decode()
puzzle = mainHash[:difficulty]