Commit Graph

330 Commits

Author SHA1 Message Date
2a066b95e0 added basic blacklisting 2022-02-12 00:15:46 +04:00
Kleissner
b76601e11c Support custom client config in Init. Now saved on backend.SaveConfig. 2022-02-05 21:05:23 +01:00
Kleissner
c2bfb85eb8 Document support for target systems. Close #86, close #88 2022-02-02 02:21:54 +01:00
Kleissner
700fc30586 UDT: Minor ticker change in recv. Make sure it is always closed. 2022-01-17 17:00:05 +01:00
Kleissner
86cf8e1fe8 Improve performance of Warehouse.ReadFile by detecting file not found error via os.Open, instead of wh.FileExists which is a very expensive function. 2022-01-17 15:39:39 +01:00
Kleissner
1af98ab141 UDT: Improve performance by relying on a single ticker instead of creating new ones for ACK/NAK each outgoing packet.
Creating new tickers was huge stress for the gc reducing performance (according to pprof 35% was spent on runtime.siftdownTimer).
2022-01-17 04:28:39 +01:00
Kleissner
f305e5b158 Lite Packet algorithm for data transfer. It bypasses the CPU expensive Peernet Protocol packet encoding (which uses public key signing). 2022-01-17 03:48:40 +01:00
Kleissner
6a5312d834 New config field LogTarget. Simplified function backend.LogError. 2022-01-12 22:18:34 +01:00
Kleissner
5c8b8eb94b Implement backend.Stdout that can be subscribed/unsubscribed. 2022-01-06 04:11:28 +01:00
Kleissner
a19bac1916 Refactor ReadBlock and ReadFile functions. Close #84 2022-01-03 01:21:05 +01:00
Kleissner
5247d88345 New high-level filters for the blockchain cache. Use new IngestBlock function that records stats. 2022-01-03 00:56:57 +01:00
Kleissner
39d6f71a7f Blockchain multi-store: Provide filter callbacks. Store statistics about blockchains (Count File Records, Size All Files). New iterate function. 2022-01-03 00:52:02 +01:00
Kleissner
8aee4b16f9 Search: Check if search index is available in main functions. 2022-01-03 00:15:20 +01:00
Kleissner
10d39595f6 Store: Add Iterate function 2022-01-03 00:11:25 +01:00
Kleissner
0689543d43 GitHub actions currently unused. Close #62 2021-12-31 01:37:43 +01:00
Kleissner
82ffa7ca3e New function firewallDetectIndicatorFile to detect the presence of the indicator file created by the setup. 2021-12-31 01:36:50 +01:00
Kleissner
38d411bb9a webapi: Fix bug in search job. 2021-12-29 16:57:07 +01:00
Kleissner
0493acce64 Update log file name 2021-12-29 16:07:40 +01:00
Kleissner
9a9a4919e8 Move UPnP fields into networks context 2021-12-29 05:50:33 +01:00
Kleissner
5d598c13f6 webapi: Move search jobs into API context 2021-12-29 05:47:17 +01:00
Kleissner
ec1bfdfac8 webapi: Move download info into api context 2021-12-29 05:41:16 +01:00
Kleissner
f2c344dc96 Major refactoring of the code base into Backend structure. Increase version number to Alpha 6 to prepare for the upcoming release. 2021-12-29 05:29:34 +01:00
Kleissner
ade13d6422 Search results: Immediately (with results) signal if no more results will be available (search terminated). 2021-12-14 17:48:59 +01:00
Kleissner
2806f3abcf Search: support indexing of CamelCase words (breaking them up). 2021-12-14 17:02:15 +01:00
Kleissner
5a89f2b943 Add "webp" file extension as picture. 2021-12-14 16:55:52 +01:00
Kleissner
a67c67b7f9 Fix returned status in /search/result 2021-12-14 16:08:02 +01:00
Kleissner
9262acba88 Search: Support hashtags. Remove # prefix when indexing words. 2021-12-14 15:51:00 +01:00
Kleissner
c053c617c2 Add users blockchain data to the search index and provide it in search results. Updated webapi search and download. 2021-12-14 15:45:03 +01:00
Kleissner
da0a6357de Add config entry for GeoIPDatabase 2021-12-14 14:24:21 +01:00
Kleissner
20a1d45520 webapi: Implement GeoIP. 2021-12-14 03:09:28 +01:00
Kleissner
e41e6820bc Search: Add separator.
webapi: Search results and explore: set tag TagSharedByCount if file owner is active peer.
2021-12-14 02:13:04 +01:00
Kleissner
281622aa49 NodelistLookup function 2021-12-14 02:05:08 +01:00
Kleissner
ced9574e5e webapi: Live download implementation. 2021-12-14 01:27:04 +01:00
Kleissner
b3f1293f3c UDT: closing messageOut results into too fast closing. Don't close it for now as an ugly bush fix. 2021-12-14 01:20:16 +01:00
Kleissner
10e5213944 UDT: Fix the close problem: Have a regular Close() function that may be called after reading/writing is done, and a Terminate() function that can be called anytime. 2021-12-13 22:52:42 +01:00
Kleissner
f18e651f40 webapi: /file/view add parameter 'nocache' to force download from remote peer. This is useful for testing purposes. 2021-12-13 16:52:13 +01:00
Kleissner
cab881ebdb webapi: Add option for some URLs to accept the API key in the parameter, instead of the "x-api-key" HTTP header. By default add /file/read and /file/view.
This allows embedding the URLs into existing code that may not be able to set the special HTTP header.
2021-12-13 16:49:56 +01:00
Kleissner
7adadf9ad5 UDT: Fix critical bugs that appear during high packet loss. Recv: Implement resending ACKs (until ACK2'ed). Send: Implement unsolicited data resending of unacked data packets. Double sending time each try to prevent ddos. 2021-12-13 16:21:53 +01:00
Kleissner
5d0989bfeb Introduce nodeList for quicker lookup based on node ID. It is mirrored from peerList.
This improves the speed of lookup in FindNode if the node is already connected.
2021-12-13 13:33:09 +01:00
Kleissner
ca58296e65 UDT: Fix race condition 'send on closed channel' by introducing a separate termination signal. 2021-12-13 13:30:23 +01:00
Kleissner
388343dc3e Version Alpha 5. 2021-12-13 04:16:02 +01:00
Kleissner
ecef7b5fb8 Webapi: Live implementation of search and explore. Removed dummy code. 2021-12-13 04:07:38 +01:00
Kleissner
8c8a901a31 Search: Deduplication of file IDs if found via multiple search terms. 2021-12-13 04:02:17 +01:00
Kleissner
359387af0d Search index: Change unindexing algorithm on entire blockchain level instead of version+block number. Fixing bug in unindexing. 2021-12-13 02:15:55 +01:00
Kleissner
f9c661b003 Search index: Add blockchain version to the records. 2021-12-13 00:05:54 +01:00
Kleissner
d494d46410 🔍 search algorithm! 🎉🎊🥳 2021-12-12 19:12:01 +01:00
Kleissner
0cd4519688 Send Announcement instead of ping in case blockchain info was not refreshed within a certain threshold. This helps to keep the global blockchain cache active, with no additional overhead. Close #78 2021-12-12 01:06:55 +01:00
Kleissner
ea31af1f6e Fix bug in packetGarbage 2021-12-11 22:25:54 +01:00
Kleissner
9f2783349e Fix race condition in UDT, check if socket is nil before closing it 2021-12-11 21:43:06 +01:00
Kleissner
c12b68c35c Update blockchain height to 64-bits according to the Whitepaper 0.9.2. Close #74 2021-12-11 20:43:38 +01:00