Commit Graph

145 Commits

Author SHA1 Message Date
Kleissner
335f83d79b /blockchain/self/add/file checks now if the file exists in the Warehouse and aborts with StatusCorruptBlockRecord if not. 2021-10-13 02:42:04 +02:00
Kleissner
cec070b740 Introducing Warehouse - the store for files shared by the user.
New endpoints:
/warehouse/create               Create a file in the warehouse
/warehouse/create/path          Create a file in the warehouse via copy
/warehouse/read                 Read a file in the warehouse
/warehouse/delete               Delete a file in the warehouse
2021-10-13 01:40:58 +02:00
Kleissner
956e6dd76b Sync reuseport sub-package to latest version 2021-10-11 01:38:13 +02:00
Kleissner
fbeb01e7ff Major refactoring of blockchain code into new sub-package. 2021-10-11 01:21:38 +02:00
Kleissner
7495b823e4 webapi search: Implement /search/result/ws 2021-10-10 16:58:09 +02:00
Kleissner
7891bdbeac webapi search: Provide option to embed statistics into /search/result response 2021-10-10 16:07:44 +02:00
Kleissner
4ef002ab57 webapi: Add /search/statistic 2021-10-10 15:32:29 +02:00
Kleissner
7c3fc8938f webapi search: Add min/max file size as filter. 2021-10-10 03:03:35 +02:00
Kleissner
5707132687 webapi: Search: Add support for additional sorting parameters (Size ASC/DESC, Shared by count ASC/DESC). 2021-10-10 02:20:36 +02:00
Kleissner
2451fdafb1 New Search Job code. Supports filtering and sorting. Renaming apiBlockRecordFile -> apiFile. Added filters and sort parameters to /search/result.
Improved API documentation. Added documentation about search filters and sort parameter.
2021-10-05 10:50:04 +02:00
Kleissner
b79b0d2194 Moving File API code into separate file 2021-10-05 08:06:07 +02:00
Kleissner
72787044d2 Finished dummy download API. 2021-10-04 07:23:19 +02:00
Kleissner
958ec52f83 Close #18 cmdResponseBootstrapFindSelf uses now a recently-contacted list to prevent potential initial flood when multiple peers return the same peer for FIND_SELF. 2021-10-01 00:33:43 +02:00
Kleissner
d29fc960b6 Add file metadata TagSharedByCount and TagSharedByGeoIP 2021-09-29 20:20:53 +02:00
Kleissner
2c20fa950d Add node ID field to file structure 2021-09-28 19:55:30 +02:00
Kleissner
608dbf6f47 Simplified profile code. 2021-09-28 05:39:38 +02:00
Kleissner
9ef6a88512 Reworked the way metadata/tags for files work. Simplified it at lot. 2021-09-28 02:59:47 +02:00
Kleissner
24df8c1eb0 webapi: Add dummy /download/start and /download/status endpoints 2021-09-27 03:49:34 +02:00
Kleissner
dc093f5f6d webapi: Add file type and format detection via /file/format 2021-09-26 23:40:22 +02:00
Kleissner
3fbb1a824b Add special type -2 to /explore. 2021-09-25 13:09:40 +02:00
Kleissner
175f1fb438 Fix race condition in FindNode 2021-09-24 13:45:12 +02:00
Kleissner
7e402de278 webapi: New endpoint /explore to list recently shared files, currently dummy data 2021-09-23 23:53:44 +02:00
Kleissner
58b4603744 Initial search API with dummy results 2021-09-23 02:32:07 +02:00
Kleissner
edc14925c7 Improve documentation 2021-09-20 14:45:33 +02:00
Kleissner
149984eeb3 webapi: New endpoint /profile/delete 2021-09-20 14:20:23 +02:00
Kleissner
680723faf3 Blockchain: New function UserProfileDelete to delete user profile data. 2021-09-20 14:19:04 +02:00
Kleissner
df0f57063f Add endpoint /blockchain/self/delete/file to delete files. 2021-09-19 00:57:49 +02:00
Kleissner
06b846ca34 Blockchain functions: Return version number. Add record deletion and refactoring function. Allow to delete files. 2021-09-19 00:01:31 +02:00
Kleissner
67bf27a4af Refactor apiTest into Status.go 2021-09-15 16:29:26 +02:00
Kleissner
16e9c0e67f Add TypeEbook. Clarify documentation on File Type and File Format. 2021-09-15 16:25:09 +02:00
Kleissner
95640fede3 webapi: Export EncodeJSON, DecodeJSON 2021-09-10 19:19:06 +02:00
Kleissner
3f3e6d9df1 Add date field to apiBlockRecordFile 2021-09-10 14:43:01 +02:00
Kleissner
19e29b3a91 Add webapi. Provides an HTTP API for clients to use Peernet. 2021-09-10 13:40:07 +02:00
Kleissner
928c16c492 New profile functions to read/write profile fields and blobs 2021-09-03 02:24:26 +02:00
Kleissner
22f21d187a Add virtual tag TagTypeDateShared. 2021-08-28 13:37:38 +02:00
Kleissner
a3750af1c8 Fix bug correct block number 2021-08-28 13:26:06 +02:00
Kleissner
7c88763f28 Minor fix when creating new blockchain, initializing used public key 2021-08-27 17:38:36 +02:00
Kleissner
20399f121b Rewrite of profile records on blockchain. This allows to add/update profile data (including future fields and blobs) at any time. 2021-08-27 06:15:37 +02:00
Kleissner
8fb9afaddc Rename Directory to Folder to make more sense.
Introduce new file type TypeFolder which is not used anywhere, however.
2021-08-27 04:58:15 +02:00
Kleissner
a2384ca627 Blockchain: Change of block format.
File records:
* Add unique ID to file record.
* Introducing tags which are flexible. Close #31
* Name and Directory fields are now tags.
* Embedded basic compression by storing duplicate file tags as single record.
Added date field to record structure.
2021-08-27 03:12:30 +02:00
Kleissner
ea80588fa1 Add format field to the blockchain header. This allows backward compatibility. Close #32 2021-08-25 01:13:00 +02:00
Kleissner
6c399a7be9 New function UserBlockchainListFiles to list all files in the users blockchain.
Refactor block record decoding code.
2021-08-19 16:49:37 +02:00
Kleissner
a2420b8468 Store user blockchain data in file. Close #30
Refactoring sanitize code into separate sub-package
Refactoring block and block record decoding code
2021-08-19 04:13:08 +02:00
Kleissner
7c7048c4c7 Use Pogreb as key/value store instead for now. 2021-08-11 22:49:00 +02:00
Kleissner
5d01fc6c72 Initial code to read/create the users blockchain database on the file system. 2021-08-11 22:36:47 +02:00
Kleissner
afef726aaf Add tentatively cockroachdb/pebble as initial database! This can be changed/replaced easily. Unfortunately it adds 7 MB to the binary and tons of dependencies :( 2021-08-11 22:18:30 +02:00
Kleissner
3da1acde60 Key/value database rename functions. 2021-08-11 22:16:39 +02:00
Kleissner
d87e43cd32 Simplify Store interface. Remove unused replication placeholder and untangle expiration option.
MemoryStore is refactored into separate file.
2021-08-11 20:15:22 +02:00
Kleissner
2937154c8d Add filters for low-level packet and high-level message interception for debugging purposes. Close #4 2021-07-31 17:29:14 +02:00
Kleissner
dc54f94351 Fix in sendInfoRequest 2021-07-29 04:41:18 +02:00