Commit Graph

309 Commits

Author SHA1 Message Date
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
Kleissner
5db25f2704 Minor fix for mobile: Explicitly cast length to uint64 so it works on stupid systems (32-bit) as well 2021-12-11 18:46:43 +01:00
Kleissner
c8e0d1cfbe Blockchain: New TargetBlockSize which is honored for files and profile fields. Close #80, close #75 2021-12-11 18:07:48 +01:00
Kleissner
15e46133c7 Global Blockchain Cache implementation. Automatically download other blockchains based on the limits in the config.
Started with a unified backend struct. Long term all lose vars should be put there, which in term will support multiple concurrent Peernet instances (users) within the same process.
2021-12-11 14:55:02 +01:00
Kleissner
1ece19709e Store: New Count() function to return count of all records stored. 2021-12-11 13:00:49 +01:00
Kleissner
d2bde58d4b Get Block message: BlockTransferReadBlock validate limit. Fix in startBlockTransfer. New high-level function BlockDownload to download requested blocks. 2021-12-11 12:59:50 +01:00
Kleissner
b65f53611a Rename file to clarify 2021-12-11 04:03:35 +01:00
Kleissner
2900f06281 Add blockchain multi store implementation. Close #73 2021-12-11 03:58:23 +01:00
b83a48bf44 added .idea/ to gitignore 2021-12-09 14:10:58 +04:00
Kleissner
c2af2fe5e7 Housekeeping, renaming few things for clarification. 2021-12-08 20:55:17 +01:00
Kleissner
4aa15d6a78 Minor fix in test code 2021-12-08 04:19:04 +01:00
Kleissner
a26900755b UDT: Resend NAKs every SynTime until missing packets are received. Fix #70
Fix additional divide by 0 bug
2021-12-08 04:09:48 +01:00
Kleissner
85dcb9d256 UDT: Multiplexer pass down external termination signal. This makes sure any socket reader will return with EOF and does not hang.
Change transferSequenceTimeout to 1 minute which is more appropriate.
2021-12-08 01:36:50 +01:00
Kleissner
34e48c09df UDT bug: Fix #68 fillDataToMTU, appended slice was not returned. 2021-12-04 03:52:34 +01:00
Kleissner
c63f5543f6 Implement protocol.CommandGetBlock. Close #33 2021-12-04 03:17:28 +01:00
Kleissner
65f1d4eab7 Blockchain: Add functions GetBlockRaw and DecodeBlockRaw 2021-12-04 03:09:27 +01:00
Kleissner
66e890ff08 Protocol: Add encoding of Get Block message. 2021-12-04 03:03:11 +01:00
Kleissner
50ec1c804e Proper abstraction of virtualPacketConn. It now supports other transport protocol encodings. 2021-12-04 02:56:14 +01:00
Kleissner
68d8c11872 Refactor file transfer header encoding into protocol sub-module. 2021-11-30 03:53:19 +01:00
Kleissner
e648f80e31 webapi: /file/read and /file/view serve file from warehouse if available. 2021-11-29 17:51:22 +01:00
Kleissner
1be95b46fd webapi: Add documentation about file type and format. 2021-11-29 03:13:15 +01:00
Kleissner
e10ece7358 Blockchain: blockchain.IterateDeleteRecord decode all records at once, fixing multiple issues with file tags that could result in corrupted or orphaned records. Fix #66, fix #37, fix #38 2021-11-29 02:06:51 +01:00