set hard date for encrypted-broadcast switchover
This commit is contained in:
parent
0b78e36639
commit
5d7c5f0c2b
|
@ -15,6 +15,7 @@ maximumAgeOfObjectsThatIAdvertiseToOthers = 216000 #Equals two days and 12 hours
|
||||||
maximumAgeOfNodesThatIAdvertiseToOthers = 10800 #Equals three hours
|
maximumAgeOfNodesThatIAdvertiseToOthers = 10800 #Equals three hours
|
||||||
storeConfigFilesInSameDirectoryAsProgramByDefault = False #The user may de-select Portable Mode in the settings if they want the config files to stay in the application data folder.
|
storeConfigFilesInSameDirectoryAsProgramByDefault = False #The user may de-select Portable Mode in the settings if they want the config files to stay in the application data folder.
|
||||||
useVeryEasyProofOfWorkForTesting = False #If you set this to True while on the normal network, you won't be able to send or sometimes receive messages.
|
useVeryEasyProofOfWorkForTesting = False #If you set this to True while on the normal network, you won't be able to send or sometimes receive messages.
|
||||||
|
encryptedBroadcastSwitchoverTime = 1369735200
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
try:
|
try:
|
||||||
|
@ -2360,9 +2361,10 @@ class sqlThread(QThread):
|
||||||
self.cur.execute( '''CREATE TABLE pubkeys (hash blob, transmitdata blob, time int, usedpersonally text, UNIQUE(hash) ON CONFLICT REPLACE)''' )
|
self.cur.execute( '''CREATE TABLE pubkeys (hash blob, transmitdata blob, time int, usedpersonally text, UNIQUE(hash) ON CONFLICT REPLACE)''' )
|
||||||
self.cur.execute( '''CREATE TABLE inventory (hash blob, objecttype text, streamnumber int, payload blob, receivedtime integer, UNIQUE(hash) ON CONFLICT REPLACE)''' )
|
self.cur.execute( '''CREATE TABLE inventory (hash blob, objecttype text, streamnumber int, payload blob, receivedtime integer, UNIQUE(hash) ON CONFLICT REPLACE)''' )
|
||||||
self.cur.execute( '''CREATE TABLE knownnodes (timelastseen int, stream int, services blob, host blob, port blob, UNIQUE(host, stream, port) ON CONFLICT REPLACE)''' ) #This table isn't used in the program yet but I have a feeling that we'll need it.
|
self.cur.execute( '''CREATE TABLE knownnodes (timelastseen int, stream int, services blob, host blob, port blob, UNIQUE(host, stream, port) ON CONFLICT REPLACE)''' ) #This table isn't used in the program yet but I have a feeling that we'll need it.
|
||||||
self.cur.execute( '''INSERT INTO subscriptions VALUES('Bitmessage new releases/announcements','BM-BbkPSZbzPwpVcYZpU4yHwf9ZPEapN5Zx',1)''')
|
self.cur.execute( '''INSERT INTO subscriptions VALUES('Bitmessage new releases/announcements','BM-GtovgYdgs7qXPkoYaRgrLFuFKz1SFpsw',1)''')
|
||||||
self.cur.execute( '''CREATE TABLE settings (key blob, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' )
|
self.cur.execute( '''CREATE TABLE settings (key blob, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' )
|
||||||
self.cur.execute( '''INSERT INTO settings VALUES('version','1')''')
|
self.cur.execute( '''INSERT INTO settings VALUES('version','1')''')
|
||||||
|
self.cur.execute( '''INSERT INTO settings VALUES('lastvacuumtime',?)''',(int(time.time()),))
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
print 'Created messages database file'
|
print 'Created messages database file'
|
||||||
except Exception, err:
|
except Exception, err:
|
||||||
|
@ -2418,6 +2420,7 @@ class sqlThread(QThread):
|
||||||
print 'In messages.dat database, creating new \'settings\' table.'
|
print 'In messages.dat database, creating new \'settings\' table.'
|
||||||
self.cur.execute( '''CREATE TABLE settings (key text, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' )
|
self.cur.execute( '''CREATE TABLE settings (key text, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' )
|
||||||
self.cur.execute( '''INSERT INTO settings VALUES('version','1')''')
|
self.cur.execute( '''INSERT INTO settings VALUES('version','1')''')
|
||||||
|
self.cur.execute( '''INSERT INTO settings VALUES('lastvacuumtime',?)''',(int(time.time()),))
|
||||||
print 'In messages.dat database, removing an obsolete field from the pubkeys table.'
|
print 'In messages.dat database, removing an obsolete field from the pubkeys table.'
|
||||||
self.cur.execute( '''CREATE TEMPORARY TABLE pubkeys_backup(hash blob, transmitdata blob, time int, usedpersonally text, UNIQUE(hash) ON CONFLICT REPLACE);''')
|
self.cur.execute( '''CREATE TEMPORARY TABLE pubkeys_backup(hash blob, transmitdata blob, time int, usedpersonally text, UNIQUE(hash) ON CONFLICT REPLACE);''')
|
||||||
self.cur.execute( '''INSERT INTO pubkeys_backup SELECT hash, transmitdata, time, usedpersonally FROM pubkeys;''')
|
self.cur.execute( '''INSERT INTO pubkeys_backup SELECT hash, transmitdata, time, usedpersonally FROM pubkeys;''')
|
||||||
|
@ -2427,9 +2430,9 @@ class sqlThread(QThread):
|
||||||
self.cur.execute( '''DROP TABLE pubkeys_backup;''')
|
self.cur.execute( '''DROP TABLE pubkeys_backup;''')
|
||||||
print 'Deleting all pubkeys from inventory. They will be redownloaded and then saved with the correct times.'
|
print 'Deleting all pubkeys from inventory. They will be redownloaded and then saved with the correct times.'
|
||||||
self.cur.execute( '''delete from inventory where objecttype = 'pubkey';''')
|
self.cur.execute( '''delete from inventory where objecttype = 'pubkey';''')
|
||||||
#print 'replacing Bitmessage announcements mailing list with a new one.'
|
print 'replacing Bitmessage announcements mailing list with a new one.'
|
||||||
#self.cur.execute( '''delete from subscriptions where address='BM-BbkPSZbzPwpVcYZpU4yHwf9ZPEapN5Zx' ''')
|
self.cur.execute( '''delete from subscriptions where address='BM-BbkPSZbzPwpVcYZpU4yHwf9ZPEapN5Zx' ''')
|
||||||
#self.cur.execute( '''INSERT INTO subscriptions VALUES('Bitmessage new releases/announcements','BM-BbkPSZbzPwpVcYZpU4yHwf9ZPEapN5Zx',1)''')
|
self.cur.execute( '''INSERT INTO subscriptions VALUES('Bitmessage new releases/announcements','BM-GtovgYdgs7qXPkoYaRgrLFuFKz1SFpsw',1)''')
|
||||||
print 'Commiting.'
|
print 'Commiting.'
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
print 'Vacuuming message.dat. You might notice that the file size gets much smaller.'
|
print 'Vacuuming message.dat. You might notice that the file size gets much smaller.'
|
||||||
|
@ -2453,6 +2456,20 @@ class sqlThread(QThread):
|
||||||
except Exception, err:
|
except Exception, err:
|
||||||
print err
|
print err
|
||||||
|
|
||||||
|
#Let us check to see the last time we vaccumed the messages.dat file. If it has been more than a month let's do it now.
|
||||||
|
item = '''SELECT value FROM settings WHERE key='lastvacuumtime';'''
|
||||||
|
parameters = ''
|
||||||
|
self.cur.execute(item, parameters)
|
||||||
|
queryreturn = self.cur.fetchall()
|
||||||
|
for row in queryreturn:
|
||||||
|
value, = row
|
||||||
|
if int(value) < int(time.time()) - 2592000:
|
||||||
|
print 'It has been a long time since the messages.dat file has been vacuumed. Vacuuming now...'
|
||||||
|
self.cur.execute( ''' VACUUM ''')
|
||||||
|
item = '''update settings set value=? WHERE key='lastvacuumtime';'''
|
||||||
|
parameters = (int(time.time()),)
|
||||||
|
self.cur.execute(item, parameters)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
item = sqlSubmitQueue.get()
|
item = sqlSubmitQueue.get()
|
||||||
if item == 'commit':
|
if item == 'commit':
|
||||||
|
@ -2797,7 +2814,7 @@ class singleWorker(QThread):
|
||||||
for row in queryreturn:
|
for row in queryreturn:
|
||||||
fromaddress, subject, body, ackdata = row
|
fromaddress, subject, body, ackdata = row
|
||||||
status,addressVersionNumber,streamNumber,ripe = decodeAddress(fromaddress)
|
status,addressVersionNumber,streamNumber,ripe = decodeAddress(fromaddress)
|
||||||
if addressVersionNumber == 2:#todo: and time is less than some date in the future:
|
if addressVersionNumber == 2 and int(time.time()) < encryptedBroadcastSwitchoverTime:
|
||||||
#We need to convert our private keys to public keys in order to include them.
|
#We need to convert our private keys to public keys in order to include them.
|
||||||
try:
|
try:
|
||||||
privSigningKeyBase58 = config.get(fromaddress, 'privsigningkey')
|
privSigningKeyBase58 = config.get(fromaddress, 'privsigningkey')
|
||||||
|
@ -2857,7 +2874,7 @@ class singleWorker(QThread):
|
||||||
queryreturn = sqlReturnQueue.get()
|
queryreturn = sqlReturnQueue.get()
|
||||||
sqlSubmitQueue.put('commit')
|
sqlSubmitQueue.put('commit')
|
||||||
sqlLock.release()
|
sqlLock.release()
|
||||||
elif addressVersionNumber == 3:#todo: or (addressVersionNumber == 2 and time is greater than than some date in the future):
|
elif addressVersionNumber == 3 or int(time.time()) > encryptedBroadcastSwitchoverTime:
|
||||||
#We need to convert our private keys to public keys in order to include them.
|
#We need to convert our private keys to public keys in order to include them.
|
||||||
try:
|
try:
|
||||||
privSigningKeyBase58 = config.get(fromaddress, 'privsigningkey')
|
privSigningKeyBase58 = config.get(fromaddress, 'privsigningkey')
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'newaddressdialog.ui'
|
# Form implementation generated from reading ui file 'newaddressdialog.ui'
|
||||||
#
|
#
|
||||||
# Created: Fri Jan 25 13:05:18 2013
|
# Created: Tue Apr 30 12:21:14 2013
|
||||||
# by: PyQt4 UI code generator 4.9.4
|
# by: PyQt4 UI code generator 4.9.4
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
@ -169,7 +169,7 @@ class Ui_NewAddressDialog(object):
|
||||||
self.radioButtonDeterministicAddress.setText(QtGui.QApplication.translate("NewAddressDialog", "Use a passpharase to make addresses", None, QtGui.QApplication.UnicodeUTF8))
|
self.radioButtonDeterministicAddress.setText(QtGui.QApplication.translate("NewAddressDialog", "Use a passpharase to make addresses", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.checkBoxEighteenByteRipe.setText(QtGui.QApplication.translate("NewAddressDialog", "Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter", None, QtGui.QApplication.UnicodeUTF8))
|
self.checkBoxEighteenByteRipe.setText(QtGui.QApplication.translate("NewAddressDialog", "Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.groupBoxDeterministic.setTitle(QtGui.QApplication.translate("NewAddressDialog", "Make deterministic addresses", None, QtGui.QApplication.UnicodeUTF8))
|
self.groupBoxDeterministic.setTitle(QtGui.QApplication.translate("NewAddressDialog", "Make deterministic addresses", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_9.setText(QtGui.QApplication.translate("NewAddressDialog", "Address version number: 2", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_9.setText(QtGui.QApplication.translate("NewAddressDialog", "Address version number: 3", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_8.setText(QtGui.QApplication.translate("NewAddressDialog", "In addition to your passphrase, you must remember these numbers:", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_8.setText(QtGui.QApplication.translate("NewAddressDialog", "In addition to your passphrase, you must remember these numbers:", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_6.setText(QtGui.QApplication.translate("NewAddressDialog", "Passphrase", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_6.setText(QtGui.QApplication.translate("NewAddressDialog", "Passphrase", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_11.setText(QtGui.QApplication.translate("NewAddressDialog", "Number of addresses to make based on your passphrase:", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_11.setText(QtGui.QApplication.translate("NewAddressDialog", "Number of addresses to make based on your passphrase:", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
|
|
|
@ -99,7 +99,7 @@ The 'Random Number' option is selected by default but deterministic addresses ha
|
||||||
<item row="6" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="label_9">
|
<widget class="QLabel" name="label_9">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Address version number: 2</string>
|
<string>Address version number: 3</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'regenerateaddresses.ui'
|
# Form implementation generated from reading ui file 'regenerateaddresses.ui'
|
||||||
#
|
#
|
||||||
# Created: Thu Jan 24 15:52:24 2013
|
# Created: Tue Apr 30 12:21:16 2013
|
||||||
# by: PyQt4 UI code generator 4.9.4
|
# by: PyQt4 UI code generator 4.9.4
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
@ -106,7 +106,7 @@ class Ui_regenerateAddressesDialog(object):
|
||||||
self.label_6.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Passphrase", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_6.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Passphrase", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_11.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Number of addresses to make based on your passphrase:", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_11.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Number of addresses to make based on your passphrase:", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_2.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Address version Number:", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_2.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Address version Number:", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.lineEditAddressVersionNumber.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "2", None, QtGui.QApplication.UnicodeUTF8))
|
self.lineEditAddressVersionNumber.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "3", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.label_3.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Stream number:", None, QtGui.QApplication.UnicodeUTF8))
|
self.label_3.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Stream number:", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.lineEditStreamNumber.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "1", None, QtGui.QApplication.UnicodeUTF8))
|
self.lineEditStreamNumber.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "1", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.checkBoxEighteenByteRipe.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter", None, QtGui.QApplication.UnicodeUTF8))
|
self.checkBoxEighteenByteRipe.setText(QtGui.QApplication.translate("regenerateAddressesDialog", "Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>2</string>
|
<string>3</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user