Commit Graph

55 Commits

Author SHA1 Message Date
Derrick Hammer b24bc045b8
*Need to use _compileMessage 2022-12-17 12:32:02 -05:00
Derrick Hammer 3a4ddbf888
*If we do not have this peer in our dag, then send them a direct bootstrap request to grab all their peers 2022-12-17 12:28:24 -05:00
Derrick Hammer c476de47b6
*Need to convert to buffer 2022-12-17 11:38:14 -05:00
Derrick Hammer 76755b4644
*Send all items to the peer we bootstrapped from if we have their connection
*Send all items to the peer we connect to in addPeerHandler only if we are already bootstrapped
*Extract item creation into private helpers
2022-12-17 11:03:29 -05:00
Derrick Hammer e5b0c92dac
*Subtract us from the peer count in debug 2022-12-17 10:38:14 -05:00
Derrick Hammer 2465b80441
*Refactor bootstrap so for every peer we get, we will trigger a connection to it
*Move initial hello handshake to private method and remove us from the explicit peer list in case it was added via bootstrap
2022-12-17 10:15:24 -05:00
Derrick Hammer 705bb45515
*Add heartbeat check for every heartbeat received 2022-12-17 09:48:55 -05:00
Derrick Hammer dc1c9a1f82
*Change heartbeat check to 1/4 the heartBeatInterval rate 2022-12-17 09:46:38 -05:00
Derrick Hammer a3c61e2b66
*Change casting 2022-12-17 09:07:03 -05:00
Derrick Hammer 225537fc39
*Refactor so every call to addPeerHandler, we only add if it's not there, vs aborting completely if in connectedTo. This will ensure we stay alive via heartbeats even in edge cases 2022-12-17 09:05:48 -05:00
Derrick Hammer 35d6d7153e
*Increase default heartbeat to 1 minute 2022-12-16 11:32:16 -05:00
Derrick Hammer a3efcf130b
*Use bufId not id 2022-12-16 09:47:36 -05:00
Derrick Hammer 3c7501cc3f
*Use bufId not id 2022-12-16 09:46:30 -05:00
Derrick Hammer 57d35e77fc
*Refactor so if we emit heart beat we treat it like we added a peer then set the timestamp after, in case the peer is disconnected on one side or to handle unknown unknowns 2022-12-16 09:34:14 -05:00
Derrick Hammer 4b13de8af1
*Fix log messages 2022-12-07 03:02:19 -05:00
Derrick Hammer 58252606a6
*Change logic to abort if the signature fails 2022-12-07 02:29:20 -05:00
Derrick Hammer 37ad6d304a
*Add loglevel with custom module logger 2022-12-07 01:06:29 -05:00
Derrick Hammer 35c6a0e314
*Make heartbeat configurable with a default time of 15 seconds 2022-12-05 15:13:50 -05:00
Derrick Hammer 5b2d1a3c7c
*Skip self 2022-12-05 15:03:53 -05:00
Derrick Hammer 28eb7ac2d6
*Bug fix heartbeat math 2022-12-05 14:32:03 -05:00
Derrick Hammer b4eaa6c0b6
*add basic change detection on heartbeat 2022-12-05 14:14:56 -05:00
Derrick Hammer 29478e9a5a
*Instead of disconnecting dead peers, just use an "online" property on the node graph, and filter out dead peers in _recalculate 2022-12-05 14:08:15 -05:00
Derrick Hammer 8ecd021a1d
*Add heartbeat support to protocol 2022-12-05 06:59:46 -05:00
Derrick Hammer 9350daee68
*Prune graph on node disconnect 2022-11-27 02:12:21 -05:00
Derrick Hammer b47502ac9d
*Set flag before event emit 2022-11-26 19:39:03 -05:00
Derrick Hammer 67bdf54e71
*bootstrapped flag needs to be set 2022-11-26 19:32:22 -05:00
Derrick Hammer c4321d3026
*Pass id property, not variable 2022-11-26 18:48:00 -05:00
Derrick Hammer 3d77943112
*Ensure id is a buffer 2022-11-26 18:43:35 -05:00
Derrick Hammer e53b4eadda
*Check if we are bootstrapped and queue broadcast in removeItem like with addItem 2022-11-26 17:27:35 -05:00
Derrick Hammer 734a3640e3
*switch to b4a 2022-11-24 01:49:15 -05:00
Derrick Hammer 587739334a
*filter for peers in neighbors in _getBootstrapInfo 2022-11-24 01:48:00 -05:00
Derrick Hammer 48ceded78f
*Add item-added and item-removed events 2022-11-24 01:46:55 -05:00
Derrick Hammer 24b97d5288
*Add peerHasItem method 2022-11-24 01:46:34 -05:00
Derrick Hammer eab1d70df4
*Add connection to graph on addItem 2022-11-24 01:46:14 -05:00
Derrick Hammer 627736ea1a
*Change all_cache to allCache 2022-11-23 21:23:29 -05:00
Derrick Hammer 4f93d23b68
*Fix return type 2022-11-23 21:22:42 -05:00
Derrick Hammer bae0efa3b0
*Major refactor to pivot cache design based on items, but store all items and peers as nodes in graph with a type, and update communication structs for it 2022-11-23 20:39:16 -05:00
Derrick Hammer a1d826e376
*Ensure we are parsing the public key in hex format 2022-11-19 20:35:23 -05:00
Derrick Hammer 15b088f481
*Add timestamp checking to not store old data 2022-11-19 20:34:57 -05:00
Derrick Hammer f529597a61
*Rename library to better reflect its purpose 2022-11-19 19:53:24 -05:00
Derrick Hammer 23e1644be9
*DEFAULT_ENCODING no longer needed 2022-11-19 19:50:53 -05:00
Derrick Hammer b43ec0b236
*Refactor and add peer methods 2022-11-19 19:50:11 -05:00
Derrick Hammer 3bad936cd4
*Refactor to use message signing and track with timestamps 2022-11-19 19:44:55 -05:00
Derrick Hammer 98ad784c8e
*Use dynamic type for opts 2022-11-16 12:27:53 -05:00
Derrick Hammer 4f08c07489
*Define constructor bag types 2022-11-16 12:15:51 -05:00
Derrick Hammer 73846a5eda
Revert "*Explicitly define protocol as a bag option"
This reverts commit cea5ba5131.
2022-11-16 12:13:00 -05:00
Derrick Hammer 3b87e81c12
Revert "*Update bag structure"
This reverts commit e446466c2a.
2022-11-16 12:12:52 -05:00
Derrick Hammer e446466c2a
*Update bag structure 2022-11-16 12:08:53 -05:00
Derrick Hammer cea5ba5131
*Explicitly define protocol as a bag option 2022-11-16 12:04:56 -05:00
Derrick Hammer 3196947071
*Return shadow clone of data 2022-11-16 11:23:50 -05:00