Arceliar
|
f3ce288092
Go back to guessing instead of trying to try every bestParent change. Try to make guesses cause fewer flappy routes. Track the time each link was last tested, use either the least recently tested link or the node's test time when deciding how old our info about a node is. Move tryExistingNode out of the conditional chain in the janitor, to prevent it from being blocked during bootstrapping (when we're most vulnerable to blackholes anyway). Misc code cleanup.
|
10 лет назад |
Arceliar
|
c47ec81446
Fix a bug where we never reconnect. Probably possible to clean this up a little.
|
10 лет назад |
Arceliar
|
534c1955d0
Janitor response callbacks should always check links to orphaned nodes.
|
10 лет назад |
Arceliar
|
29f5ba73e4
Segfaultin' 2: Electric Boogaloo
|
10 лет назад |
Arceliar
|
e09ea3bbef
typo == segfault
|
10 лет назад |
Arceliar
|
a7f9c21a3a
Use node ping time information in janitor
|
10 лет назад |
Arceliar
|
b90ed55ac9
Since the mills eventually empty, we can move the random node ping to after them. This should speed up bootstrapping and recovery after a disconnect, but have ~no effect once we reach a full maintenance state.
|
10 лет назад |
Arceliar
|
b680ff3be3
return
|
10 лет назад |
Arceliar
|
247d5d2dd6
Make checkPeers return a bool for if it did anything. Have tryExistingNode try checkPeers on the node before pinging it. Modify linkMill/nodeMill/tryRandomLink priorities, the mills now eventually empty.
|
10 лет назад |
Arceliar
|
e9b1e28b30
Janitor stuff. For the nodeMill, require that nodes are in some way useful (e.g. needed for keyspace or are an unknown hop on someone's best path). Add checkPeers to dht maintenance.
|
10 лет назад |
Caleb James DeLisle
|
2155c56cc8
Janitor was adding ffff nodes to the DHT RM and splitLinks was flooding the linkFinder RM
|
10 лет назад |
Arceliar
|
7c8289273e
Less terrible way to calculate the bucket for a node or the bitmask for a bucket. TODO: Make lookup()s aware of bucket prefixes (best node in the right bucket, or if none, then best node that's closer than us). TODO: refactor the bucket stuff at the end of NodeStore.c into Address.c? (Since it depends only on constants and info in addresses.)
|
10 лет назад |
Arceliar
|
f2363e33ca
Some bugfixes. Still kills the API logger with spam when filling dht RumorMill.
|
10 лет назад |
Arceliar
|
b8e92c07a3
Use a 4-bit prefix per dht bucket instead of 1-bit. In a broken state at the moment.
|
10 лет назад |
Arceliar
|
360788f34a
Turn on Janitor.c:splitLinks() and require and allow duplicate entries in the RumorMill unless both path and address match.
|
10 лет назад |
Arceliar
|
9d0fdabe17
DHT maintenance without searches. Refactored the common bit-twiddling part of the DHT stuff, so it only has to appear once.
|
10 лет назад |
Caleb James DeLisle
|
849fed1bc9
if pinging a node which we already have a path to, don't explore different keys because the error responses can kill a valid link
|
10 лет назад |
Caleb James DeLisle
|
7667736795
NodeStore_brokenLink() instead of NodeStore_brokenPath()
|
10 лет назад |
Caleb James DeLisle
|
05e935071e
typo
|
10 лет назад |
Caleb James DeLisle
|
6f7906bc90
make sure to periodically ping existing nodes
|
10 лет назад |
Caleb James DeLisle
|
84786f61ba
Disregard nodes telling us about themselves in getpeers
|
10 лет назад |
Caleb James DeLisle
|
4a11105517
throw a monkeywrench into the bad state machine
|
10 лет назад |
Caleb James DeLisle
|
3a96bdb62e
even better logging from rumormill
|
10 лет назад |
Caleb James DeLisle
|
143f8613e1
Added improved logging to rumormill
|
10 лет назад |
Caleb James DeLisle
|
a854b6a251
Unreachable nodes should not be counted as 'ok'
|
10 лет назад |
Caleb James DeLisle
|
9595d67f9e
We really don't want to try to ping ffff.ffff.ffff.ffff
|
10 лет назад |
Caleb James DeLisle
|
ecb8eaad65
Remove second verscchlimmbesserung optimizePath() call
|
10 лет назад |
Caleb James DeLisle
|
ad01716671
Remove verscchlimmbesserung optimizePath() call
|
10 лет назад |
Arceliar
|
00e46c95aa
Some cleanup, mainly to the Janitor. Moved most of the identical code for getPeers-ing from different rumormills into one function. Rewrite the keyspace maintenance code to add important addresses to a rumormill so it can ping the relevant nodes (or do a search) later. Sends fewer searches but more pings. Expect about the same number of packets per minute as before for the current network, can potentially increase slightly (logarithmically up to a maximum of ~2x what we used before) as the network grows.
|
10 лет назад |
Caleb James DeLisle
|
e9aad0d066
Simplify List interface and fixed some weird behavior with the last page of dumpTable
|
10 лет назад |