moved blockmetadata to onionrblocks
parent
44112750ec
commit
f0cd2fb2b9
|
@ -17,7 +17,7 @@ import onionrpeers
|
||||||
|
|
||||||
from communicator import peeraction
|
from communicator import peeraction
|
||||||
from communicator import onlinepeers
|
from communicator import onlinepeers
|
||||||
from onionrutils import blockmetadata
|
from onionrblocks import blockmetadata
|
||||||
from onionrutils import validatemetadata
|
from onionrutils import validatemetadata
|
||||||
from coredb import blockmetadb
|
from coredb import blockmetadb
|
||||||
from onionrutils.localcommand import local_command
|
from onionrutils.localcommand import local_command
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
Add an entry to the block metadata database
|
Add an entry to the block metadata database
|
||||||
"""
|
"""
|
||||||
import os
|
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import secrets
|
import secrets
|
||||||
from onionrutils import epoch, blockmetadata
|
from onionrutils import epoch
|
||||||
|
from onionrblocks import blockmetadata
|
||||||
from etc import onionrvalues
|
from etc import onionrvalues
|
||||||
from .. import dbfiles
|
from .. import dbfiles
|
||||||
from onionrexceptions import BlockMetaEntryExists
|
from onionrexceptions import BlockMetaEntryExists
|
||||||
|
@ -34,7 +34,8 @@ def add_to_block_DB(newHash, selfInsert=False, dataSaved=False):
|
||||||
|
|
||||||
if blockmetadata.has_block(newHash):
|
if blockmetadata.has_block(newHash):
|
||||||
raise BlockMetaEntryExists
|
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()
|
c = conn.cursor()
|
||||||
currentTime = epoch.get_epoch() + secrets.randbelow(61)
|
currentTime = epoch.get_epoch() + secrets.randbelow(61)
|
||||||
if selfInsert or dataSaved:
|
if selfInsert or dataSaved:
|
||||||
|
@ -42,6 +43,7 @@ def add_to_block_DB(newHash, selfInsert=False, dataSaved=False):
|
||||||
else:
|
else:
|
||||||
selfInsert = 0
|
selfInsert = 0
|
||||||
data = (newHash, currentTime, '', selfInsert)
|
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.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
|
@ -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
|
from onionrexceptions import InvalidMetadata
|
||||||
import logger
|
import logger
|
||||||
from onionrutils import validatemetadata
|
from onionrutils import validatemetadata
|
||||||
from onionrutils import blockmetadata
|
|
||||||
from onionrutils import bytesconverter
|
from onionrutils import bytesconverter
|
||||||
from coredb import blockmetadb
|
from coredb import blockmetadb
|
||||||
|
from onionrblocks import blockmetadata
|
||||||
import onionrstorage
|
import onionrstorage
|
||||||
import onionrcrypto as crypto
|
import onionrcrypto as crypto
|
||||||
from . import onionrblacklist
|
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
|
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
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
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
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
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:
|
def has_block(hash: str) -> bool:
|
||||||
'''
|
"""Check for new block in the block meta db."""
|
||||||
Check for new block in the block meta db
|
conn = sqlite3.connect(
|
||||||
'''
|
dbfiles.block_meta_db,
|
||||||
conn = sqlite3.connect(dbfiles.block_meta_db,
|
|
||||||
timeout=onionrvalues.DATABASE_LOCK_TIMEOUT)
|
timeout=onionrvalues.DATABASE_LOCK_TIMEOUT)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
if not stringvalidators.validate_hash(hash):
|
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
|
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
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
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
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
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):
|
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)
|
curTime = epoch.get_rounded_epoch(roundS=60)
|
||||||
myBlock = onionrblockapi.Block(blockHash)
|
myBlock = onionrblockapi.Block(blockHash)
|
||||||
if myBlock.isEncrypted:
|
if myBlock.isEncrypted:
|
|
@ -17,7 +17,8 @@ import config
|
||||||
import onionrcrypto as crypto
|
import onionrcrypto as crypto
|
||||||
import onionrexceptions
|
import onionrexceptions
|
||||||
from onionrusers import onionrusers
|
from onionrusers import onionrusers
|
||||||
from onionrutils import localcommand, blockmetadata, stringvalidators
|
from onionrutils import localcommand, stringvalidators
|
||||||
|
from .. import blockmetadata
|
||||||
import coredb
|
import coredb
|
||||||
from onionrproofs import subprocesspow
|
from onionrproofs import subprocesspow
|
||||||
import logger
|
import logger
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
OnionrBlocks class for abstraction of blocks
|
OnionrBlocks class for abstraction of blocks
|
||||||
"""
|
"""
|
||||||
import binascii
|
|
||||||
import datetime
|
import datetime
|
||||||
import onionrstorage
|
import onionrstorage
|
||||||
|
|
||||||
|
@ -207,33 +206,6 @@ class Block:
|
||||||
return False
|
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
|
# getters
|
||||||
|
|
||||||
def getExpire(self):
|
def getExpire(self):
|
||||||
|
|
|
@ -9,9 +9,9 @@ import onionrstorage
|
||||||
import onionrexceptions
|
import onionrexceptions
|
||||||
import onionrcrypto as crypto
|
import onionrcrypto as crypto
|
||||||
import filepaths
|
import filepaths
|
||||||
from onionrblocks import storagecounter
|
from onionrblocks import storagecounter, blockmetadata
|
||||||
from coredb import dbfiles
|
from coredb import dbfiles
|
||||||
from onionrutils import blockmetadata, bytesconverter
|
from onionrutils import bytesconverter
|
||||||
from etc.onionrvalues import DATABASE_LOCK_TIMEOUT
|
from etc.onionrvalues import DATABASE_LOCK_TIMEOUT
|
||||||
from onionrtypes import BlockHash
|
from onionrtypes import BlockHash
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -5,7 +5,7 @@ import new blocks from disk, providing transport agnosticism
|
||||||
import glob
|
import glob
|
||||||
|
|
||||||
import logger
|
import logger
|
||||||
from onionrutils import blockmetadata
|
from onionrblocks import blockmetadata
|
||||||
from coredb import blockmetadb
|
from coredb import blockmetadb
|
||||||
import filepaths
|
import filepaths
|
||||||
import onionrcrypto as crypto
|
import onionrcrypto as crypto
|
||||||
|
|
Loading…
Reference in New Issue