333 Commits

Author SHA1 Message Date
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
Kleissner
3233bf5c1b New Filters.IncomingRequest to intercept incoming information requests of all types 2021-07-29 04:10:53 +02:00
Kleissner
fc1f0407f3 -> Alpha 3.
DHT: Store and Get functions use search client.
Multiple improvements in search client. Alpha parameter is now provided by init caller.
StoreDataDHT add closestCount parameter.
2021-07-29 03:17:14 +02:00
Kleissner
e5d09e7086 New filter DHTSearchStatus for debug purposes.
Various minor improvements and fixes.
New high-level FindNode and AsyncSearch functions.
2021-07-28 01:33:33 +02:00
Kleissner
891e621e8a DHT: Add Search Client which runs the search in concurrent levels. This means faster results.
Add function FilterSearchStatus to get notified on the status of searches for debugging.
FindNode uses the new search client.
2021-07-28 01:28:31 +02:00
Kleissner
66ebf7c91e New DHT function IsNodeContact to check if node is in local routing table 2021-07-07 02:50:12 +02:00
Kleissner
c1ccc3c344 Export PublicKey2NodeID 2021-07-07 02:40:07 +02:00
Kleissner
560f019786 Remove unnecessary module for dht subdirectory. This streamlines dependencies on the core module. 2021-07-07 02:38:08 +02:00
Kleissner
27fdafd231 Only set error filter function if not already set, which is important for callers to intercept the init messages. 2021-07-06 13:37:27 +02:00
Kleissner
96ee35ebf9 Finalize filter for log messages. Close #26 2021-06-29 00:48:22 +02:00
Kleissner
084f3bc1ee Prepare log functions for filters. Init all filter functions by assigning empty stubs. #26 2021-06-28 02:37:31 +02:00
Kleissner
f5ce15d33a Initial filters for new peers and new connections. More filters to be added. #4 2021-06-09 22:45:43 +02:00
Kleissner
94c8e16724 Record BlockchainHeight and BlockchainVersion for each peer. New function IsPortForward. 2021-06-09 22:35:55 +02:00