* do not reinsert blocks
* warn mail about bad sigs
This commit is contained in:
parent
cfbc834eb5
commit
9655bfd872
@ -624,6 +624,18 @@ class Core:
|
||||
'''
|
||||
retData = False
|
||||
|
||||
# check nonce
|
||||
dataNonce = self._utils.bytesToStr(self._crypto.sha3Hash(data))
|
||||
try:
|
||||
with open(self.dataNonceFile, 'r') as nonces:
|
||||
if dataNonce in nonces:
|
||||
return retData
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
# record nonce
|
||||
with open(self.dataNonceFile, 'a') as nonceFile:
|
||||
nonceFile.write(dataNonce + '\n')
|
||||
|
||||
if meta is None:
|
||||
meta = dict()
|
||||
|
||||
@ -684,12 +696,6 @@ class Core:
|
||||
metadata['signer'] = signer
|
||||
metadata['time'] = str(self._utils.getEpoch())
|
||||
|
||||
nonce = self._utils.bytesToStr(self._crypto.sha3Hash(data))
|
||||
|
||||
# TODO check in advance
|
||||
with open(self.dataNonceFile, 'a') as nonceFile:
|
||||
nonceFile.write(nonce + '\n')
|
||||
|
||||
# send block data (and metadata) to POW module to get tokenized block data
|
||||
proof = onionrproofs.POW(metadata, data)
|
||||
payload = proof.waitForResult()
|
||||
|
@ -17,7 +17,7 @@
|
||||
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 core, config, logger
|
||||
import core, config, logger, sqlite3
|
||||
class PeerProfiles:
|
||||
'''
|
||||
PeerProfiles
|
||||
@ -89,7 +89,10 @@ def peerCleanup(coreInst):
|
||||
# Remove peers that go below the negative score
|
||||
if PeerProfiles(address, coreInst).score < minScore:
|
||||
coreInst.removeAddress(address)
|
||||
coreInst._blacklist.addToDB(address, dataType=1, expire=300)
|
||||
try:
|
||||
coreInst._blacklist.addToDB(address, dataType=1, expire=300)
|
||||
except sqlite3.IntegrityError: #TODO just make sure its not a unique constraint issue
|
||||
pass
|
||||
logger.warn('Removed address ' + address + '.')
|
||||
|
||||
# Unban probably not malicious peers TODO improve
|
||||
|
@ -109,14 +109,13 @@ class OnionrMail:
|
||||
pass
|
||||
else:
|
||||
readBlock.verifySig()
|
||||
print('Message recieved from', readBlock.signer)
|
||||
print('Message recieved from %s' % (readBlock.signer,))
|
||||
print('Valid signature:', readBlock.validSig)
|
||||
if not readBlock.validSig:
|
||||
logger.warn('This message has an INVALID signature. Anyone could have sent this message.')
|
||||
logger.readline('Press enter to continue to message.')
|
||||
|
||||
print(draw_border(self.myCore._utils.escapeAnsi(readBlock.bcontent.decode().strip())))
|
||||
|
||||
logger.warn('This message has an INVALID signature. ANYONE could have sent this message.')
|
||||
cancel = logger.readline('Press enter to continue to message, or -q to not open the message (recommended).')
|
||||
if cancel != '-q':
|
||||
print(draw_border(self.myCore._utils.escapeAnsi(readBlock.bcontent.decode().strip())))
|
||||
return
|
||||
|
||||
def draftMessage(self):
|
||||
|
Loading…
Reference in New Issue
Block a user