* fixed bug causing onionr to usually only have 1 peer at once
* do not crash when loading new peer profile * removed code for defunct *address* proof of work + added maxStoredPeers and maxConnect config options (TODO) + added lastConnectAttempt to address db + added command to cause instant peer exchange + added connectCheck.txt for TODO connection testingmaster
parent
8bb5014d41
commit
032aa780ef
|
@ -260,6 +260,8 @@ class OnionrCommunicatorDaemon:
|
|||
for i in range(needed):
|
||||
if len(self.onlinePeers) == 0:
|
||||
self.connectNewPeer(useBootstrap=True)
|
||||
else:
|
||||
self.connectNewPeer()
|
||||
if self.shutdown:
|
||||
break
|
||||
else:
|
||||
|
@ -338,6 +340,9 @@ class OnionrCommunicatorDaemon:
|
|||
url = 'http://' + peer + '/public/?action=' + action
|
||||
if len(data) > 0:
|
||||
url += '&data=' + data
|
||||
|
||||
self._core.setAddressInfo(peer, 'lastConnectAttempt', self._core._utils.getEpoch()) # mark the time we're trying to request this peer
|
||||
|
||||
retData = self._core._utils.doGetRequest(url, port=self.proxyPort)
|
||||
# if request failed, (error), mark peer offline
|
||||
if retData == False:
|
||||
|
@ -390,6 +395,10 @@ class OnionrCommunicatorDaemon:
|
|||
for i in self.timers:
|
||||
if i.timerFunction.__name__ == 'lookupKeys':
|
||||
i.count = (i.frequency - 1)
|
||||
elif cmd[0] == 'pex':
|
||||
for i in self.timers:
|
||||
if i.timerFunction.__name__ == 'lookupAdders':
|
||||
i.count = (i.frequency - 1)
|
||||
elif cmd[0] == 'uploadBlock':
|
||||
self.blockToUpload = cmd[1]
|
||||
threading.Thread(target=self.uploadBlock).start()
|
||||
|
|
|
@ -196,6 +196,7 @@ class Onionr:
|
|||
'introduce': self.onionrCore.introduceNode,
|
||||
'connect': self.addAddress,
|
||||
'kex': self.doKEX,
|
||||
'pex': self.doPEX,
|
||||
|
||||
'getpassword': self.printWebPassword
|
||||
}
|
||||
|
@ -218,6 +219,7 @@ class Onionr:
|
|||
'import-blocks': 'import blocks from the disk (Onionr is transport-agnostic!)',
|
||||
'listconn': 'list connected peers',
|
||||
'kex': 'exchange keys with peers (done automatically)',
|
||||
'pex': 'exchange addresses with peers (done automatically)',
|
||||
'introduce': 'Introduce your node to the public Onionr network',
|
||||
}
|
||||
|
||||
|
@ -329,6 +331,11 @@ class Onionr:
|
|||
logger.info('Sending kex to command queue...')
|
||||
self.onionrCore.daemonQueueAdd('kex')
|
||||
|
||||
def doPEX(self):
|
||||
'''make communicator do pex'''
|
||||
logger.info('Sending pex to command queue...')
|
||||
self.onionrCore.daemonQueueAdd('pex')
|
||||
|
||||
def listKeys(self):
|
||||
'''
|
||||
Displays a list of keys (used to be called peers) (?)
|
||||
|
|
|
@ -41,7 +41,7 @@ class PeerProfiles:
|
|||
'''Load the node's score from the database'''
|
||||
try:
|
||||
self.success = int(self.coreInst.getAddressInfo(self.address, 'success'))
|
||||
except TypeError:
|
||||
except (TypeError, ValueError) as e:
|
||||
self.success = 0
|
||||
self.score = self.success
|
||||
|
||||
|
|
|
@ -125,10 +125,9 @@ class OnionrUtils:
|
|||
if newAdderList != False:
|
||||
for adder in newAdderList.split(','):
|
||||
if not adder in self._core.listAdders(randomOrder = False) and adder.strip() != self.getMyAddress():
|
||||
if adder[:4] == '0000':
|
||||
if self._core.addAddress(adder):
|
||||
logger.info('Added %s to db.' % adder, timestamp = True)
|
||||
retVal = True
|
||||
if self._core.addAddress(adder):
|
||||
logger.info('Added %s to db.' % adder, timestamp = True)
|
||||
retVal = True
|
||||
else:
|
||||
pass
|
||||
#logger.debug('%s is either our address or already in our DB' % adder)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
https://3g2upl4pq6kufc4m.onion/robots.txt,http://expyuzz4wqqyqhjn.onion/robots.txt,https://onionr.voidnet.tech/
|
|
@ -57,6 +57,8 @@
|
|||
"blockCacheTotal" : 50000000
|
||||
},
|
||||
"peers":{
|
||||
"minimumScore": 5
|
||||
"minimumScore": 5,
|
||||
"maxStoredPeers": 100,
|
||||
"maxConnect": 3
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue