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
Kleissner
d7f66474ef
Blockchain: Fix bug in encodeBlockRecordFiles. Virtual tags were mistakenly counted, resulting in corruption.
2021-11-29 01:52:25 +01:00
Kleissner
ffc558b7f2
Change file permission of config file to 666 😈 when creating it. This is consistent with the log file.
2021-11-28 22:05:27 +01:00
Kleissner
793e586234
webapi: Set merkle fields of file records when adding files to the blockchain.
2021-11-28 22:03:08 +01:00
Kleissner
e5c2d8d91d
Protocol change: Implement merkle tree for files and store root hash and fragment size in the blockchain.
2021-11-28 21:59:52 +01:00
Kleissner
05a31cf3af
Warehouse: Automatically create .merkle companion files to store the entire merkle tree. Close #48
...
Pregenerating this means that fragments can be serve immediately with 0 hash calculation needed.
2021-11-28 21:52:30 +01:00
Kleissner
5ad8586cd4
Merkle: Define MinimumFragmentSize. Split code into ReadMerkleTreeHeader function. #48
2021-11-28 20:47:01 +01:00
Kleissner
d5b95542e6
Rename fragment to merkle #48
2021-11-27 14:57:19 +01:00
Kleissner
954afb2c12
Merkle tree: export/import functions. #48
2021-11-27 05:30:20 +01:00
Kleissner
c7665d7385
Merkle Tree create verification hashes and implementation of validation function. #48
2021-11-27 02:30:31 +01:00
Kleissner
19971c629d
Merkle tree creation. #48
2021-11-27 00:53:39 +01:00
Kleissner
d64f8b19fb
webapi: New function /warehouse/read/path to read a file from warehouse to disk
2021-11-26 08:53:42 +01:00
Kleissner
3b839d547b
File fragment size calculation and documentation of research. #48
2021-11-22 04:47:42 +01:00
Kleissner
f7e8f1821b
New flag Firewall in the Features field to inform uncontacted peers that a Traverse message might be required to establish a connection. Close #61
...
This flag can be activated via the config setting LocalFirewall.
The Features field exists in Announcement/Response messages and was now added to peer records.
2021-11-20 04:28:03 +01:00
Kleissner
446c62bcd9
Explicitly define locations for important files and folders in the config file.
...
This removes the hardcoded paths for the blockchain and warehouse.
2021-11-17 17:37:04 +01:00
Kleissner
83e6e5fb62
Additional error logging for multicast/broadcast
2021-11-16 22:04:18 +01:00
Kleissner
f9d8ecb6b0
webapi: Implement optional API key to secure the API against unauthenticated attackers.
2021-11-16 19:27:53 +01:00
Kleissner
d06c2e0b1a
Define common application exit codes for backend executables in Exit.go.
...
Improve logging of webapi start.
2021-11-15 03:00:24 +01:00
Kleissner
9626fa8088
Fork btcec to remove external dependency. This significantly reduces the count of indirect modules (cuts it by half). Close #7
...
Update the other Go modules.
2021-11-14 22:37:07 +01:00
Kleissner
a727f4d8b1
Define and document the flow window size for transfer.
...
Document webapi timeout parameters.
2021-11-13 14:41:14 +01:00
Kleissner
eb0ad540fe
UDT: Finally fixing this piece of crap by rewriting the send logic. Close #58
2021-11-11 18:47:10 +01:00
Kleissner
ce37461705
Improve MTU settings and documentation. #41
2021-11-09 21:04:06 +01:00
Kleissner
014d4a34ee
UDT: Fix in receiveLossHeap.Range
2021-11-08 19:26:53 +01:00
Kleissner
80bf639aea
UDT: Provide io.EOF signal in udtSocket.fetchReadPacket. Otherwise readers may linger forever.
2021-11-08 05:12:40 +01:00
Kleissner
c44b05b9c1
UDT: Remove buggy EXP code. It caused wrong termination. It is not needed; the Peernet protocol handles connectivity.
2021-11-08 04:57:21 +01:00
Kleissner
f3d5f23cf9
Transfer: Record close reason of underlying library (UDT). This helps for debugging issues. Close #54
2021-11-08 04:40:53 +01:00
Kleissner
2924f0074d
UDT: Redeveloped receiving code to fix the packet reassembly bugs.
2021-11-08 00:14:56 +01:00
Kleissner
bb2a4bac48
Update User Agent, new release!
2021-11-05 03:44:20 +01:00
Kleissner
14f034cc8d
Turns out internet MTU must be honored, otherwise packets are dropped/not reassembled. Setting to 1500 bytes for transfer messages.
2021-11-05 03:39:46 +01:00
Kleissner
0d62c215ee
UDT: Fixing #43 #49 #51 . File transfer works in test environment.
...
More tests needed for production testing. Internet MTU needs to be tested.
2021-11-05 03:19:29 +01:00
Kleissner
f76426aa48
UDT: Remove the datapacket_heap with the new heap code
2021-11-05 01:06:02 +01:00
Kleissner
8502cb15cf
UDT: Fix the first piece of !@#$ heap code. Rewrite from scratch.
2021-11-05 00:41:06 +01:00