moved blockmetadata to onionrblocks
This commit is contained in:
parent
44112750ec
commit
f0cd2fb2b9
@ -17,7 +17,7 @@ import onionrpeers
|
||||
|
||||
from communicator import peeraction
|
||||
from communicator import onlinepeers
|
||||
from onionrutils import blockmetadata
|
||||
from onionrblocks import blockmetadata
|
||||
from onionrutils import validatemetadata
|
||||
from coredb import blockmetadb
|
||||
from onionrutils.localcommand import local_command
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
Add an entry to the block metadata database
|
||||
"""
|
||||
import os
|
||||
import sqlite3
|
||||
import secrets
|
||||
from onionrutils import epoch, blockmetadata
|
||||
from onionrutils import epoch
|
||||
from onionrblocks import blockmetadata
|
||||
from etc import onionrvalues
|
||||
from .. import dbfiles
|
||||
from onionrexceptions import BlockMetaEntryExists
|
||||
@ -34,7 +34,8 @@ def add_to_block_DB(newHash, selfInsert=False, dataSaved=False):
|
||||
|
||||
if blockmetadata.has_block(newHash):
|
||||
raise BlockMetaEntryExists
|
||||
conn = sqlite3.connect(dbfiles.block_meta_db, timeout=onionrvalues.DATABASE_LOCK_TIMEOUT)
|
||||
conn = sqlite3.connect(
|
||||
dbfiles.block_meta_db, timeout=onionrvalues.DATABASE_LOCK_TIMEOUT)
|
||||
c = conn.cursor()
|
||||
currentTime = epoch.get_epoch() + secrets.randbelow(61)
|
||||
if selfInsert or dataSaved:
|
||||
@ -42,6 +43,7 @@ def add_to_block_DB(newHash, selfInsert=False, dataSaved=False):
|
||||
else:
|
||||
selfInsert = 0
|
||||
data = (newHash, currentTime, '', selfInsert)
|
||||
c.execute('INSERT INTO hashes (hash, dateReceived, dataType, dataSaved) VALUES(?, ?, ?, ?);', data)
|
||||
c.execute(
|
||||
'INSERT INTO hashes (hash, dateReceived, dataType, dataSaved) VALUES(?, ?, ?, ?);', data)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
11
src/onionrblocks/blockdecrypt.py
Normal file
11
src/onionrblocks/blockdecrypt.py
Normal file
@ -0,0 +1,11 @@
|
||||
import ujson
|
||||
import nacl.utils
|
||||
from nacl.public import PrivateKey, SealedBox
|
||||
|
||||
from .blockmetadata import get_block_metadata_from_data
|
||||
|
||||
def block_decrypt(raw_block) -> DecryptedBlock:
|
||||
block_header, user_meta, block_data = get_block_metadata_from_data(
|
||||
raw_block)
|
||||
|
||||
|
@ -8,9 +8,9 @@ from onionrexceptions import InvalidProof
|
||||
from onionrexceptions import InvalidMetadata
|
||||
import logger
|
||||
from onionrutils import validatemetadata
|
||||
from onionrutils import blockmetadata
|
||||
from onionrutils import bytesconverter
|
||||
from coredb import blockmetadb
|
||||
from onionrblocks import blockmetadata
|
||||
import onionrstorage
|
||||
import onionrcrypto as crypto
|
||||
from . import onionrblacklist
|
||||
|
@ -1,9 +1,13 @@
|
||||
'''
|
||||
Onionr - Private P2P Communication
|
||||
"""Onionr - Private P2P Communication.
|
||||
|
||||
Returns a bool if a block is in the block metadata db or not
|
||||
'''
|
||||
'''
|
||||
Return a bool if a block is in the block metadata db or not
|
||||
"""
|
||||
import sqlite3
|
||||
from coredb import dbfiles
|
||||
import onionrexceptions
|
||||
from onionrutils import stringvalidators
|
||||
from etc import onionrvalues
|
||||
"""
|
||||
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
|
||||
@ -16,18 +20,13 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
'''
|
||||
import sqlite3
|
||||
from coredb import dbfiles
|
||||
import onionrexceptions
|
||||
from .. import stringvalidators
|
||||
from etc import onionrvalues
|
||||
"""
|
||||
|
||||
|
||||
def has_block(hash: str) -> bool:
|
||||
'''
|
||||
Check for new block in the block meta db
|
||||
'''
|
||||
conn = sqlite3.connect(dbfiles.block_meta_db,
|
||||
"""Check for new block in the block meta db."""
|
||||
conn = sqlite3.connect(
|
||||
dbfiles.block_meta_db,
|
||||
timeout=onionrvalues.DATABASE_LOCK_TIMEOUT)
|
||||
c = conn.cursor()
|
||||
if not stringvalidators.validate_hash(hash):
|
@ -1,9 +1,17 @@
|
||||
'''
|
||||
Onionr - Private P2P Communication
|
||||
"""Onionr - Private P2P Communication.
|
||||
|
||||
Process block metadata with relevant actions
|
||||
'''
|
||||
'''
|
||||
Process block metadata with relevant actions
|
||||
"""
|
||||
from etc import onionrvalues
|
||||
from onionrblocks import onionrblockapi
|
||||
from onionrutils import epoch, bytesconverter
|
||||
from coredb import blockmetadb
|
||||
import logger
|
||||
from onionrplugins import onionrevents
|
||||
import onionrexceptions
|
||||
from onionrusers import onionrusers
|
||||
from onionrutils import updater
|
||||
"""
|
||||
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
|
||||
@ -16,25 +24,15 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
'''
|
||||
"""
|
||||
|
||||
from etc import onionrvalues
|
||||
from onionrblocks import onionrblockapi
|
||||
from .. import epoch, bytesconverter
|
||||
from coredb import blockmetadb
|
||||
import logger
|
||||
from onionrplugins import onionrevents
|
||||
import onionrexceptions
|
||||
from onionrusers import onionrusers
|
||||
from onionrutils import updater
|
||||
from gevent import sleep
|
||||
|
||||
def process_block_metadata(blockHash: str):
|
||||
'''
|
||||
Read metadata from a block and cache it to the block database
|
||||
"""
|
||||
Read metadata from a block and cache it to the block database.
|
||||
|
||||
blockHash -> sha3_256 hex formatted hash of Onionr block
|
||||
'''
|
||||
blockHash -> sha3_256 hex formatted hash of Onionr block
|
||||
"""
|
||||
curTime = epoch.get_rounded_epoch(roundS=60)
|
||||
myBlock = onionrblockapi.Block(blockHash)
|
||||
if myBlock.isEncrypted:
|
@ -17,7 +17,8 @@ import config
|
||||
import onionrcrypto as crypto
|
||||
import onionrexceptions
|
||||
from onionrusers import onionrusers
|
||||
from onionrutils import localcommand, blockmetadata, stringvalidators
|
||||
from onionrutils import localcommand, stringvalidators
|
||||
from .. import blockmetadata
|
||||
import coredb
|
||||
from onionrproofs import subprocesspow
|
||||
import logger
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
OnionrBlocks class for abstraction of blocks
|
||||
"""
|
||||
import binascii
|
||||
import datetime
|
||||
import onionrstorage
|
||||
|
||||
@ -207,33 +206,6 @@ class Block:
|
||||
return False
|
||||
|
||||
|
||||
def save(self, sign = False, recreate = True):
|
||||
"""
|
||||
Saves a block to file and imports it into Onionr
|
||||
|
||||
Inputs:
|
||||
- sign (bool): whether or not to sign the block before saving
|
||||
- recreate (bool): if the block already exists, whether or not to recreate the block and save under a new hash
|
||||
|
||||
Outputs:
|
||||
- (bool): whether or not the operation was successful
|
||||
"""
|
||||
|
||||
try:
|
||||
if self.isValid() is True:
|
||||
|
||||
self.hash = onionrblocks.insert(self.getRaw(), header = self.getType(), sign = sign, meta = self.getMetadata(), expire = self.getExpire())
|
||||
if self.hash != False:
|
||||
self.update()
|
||||
|
||||
return self.getHash()
|
||||
else:
|
||||
logger.warn('Not writing block; it is invalid.')
|
||||
except Exception as e:
|
||||
logger.error('Failed to save block.', error = e, timestamp = False)
|
||||
|
||||
return False
|
||||
|
||||
# getters
|
||||
|
||||
def getExpire(self):
|
||||
|
@ -9,9 +9,9 @@ import onionrstorage
|
||||
import onionrexceptions
|
||||
import onionrcrypto as crypto
|
||||
import filepaths
|
||||
from onionrblocks import storagecounter
|
||||
from onionrblocks import storagecounter, blockmetadata
|
||||
from coredb import dbfiles
|
||||
from onionrutils import blockmetadata, bytesconverter
|
||||
from onionrutils import bytesconverter
|
||||
from etc.onionrvalues import DATABASE_LOCK_TIMEOUT
|
||||
from onionrtypes import BlockHash
|
||||
"""
|
||||
|
@ -5,7 +5,7 @@ import new blocks from disk, providing transport agnosticism
|
||||
import glob
|
||||
|
||||
import logger
|
||||
from onionrutils import blockmetadata
|
||||
from onionrblocks import blockmetadata
|
||||
from coredb import blockmetadb
|
||||
import filepaths
|
||||
import onionrcrypto as crypto
|
||||
|
Loading…
Reference in New Issue
Block a user