Commit Graph

277 Commits

Author SHA1 Message Date
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
Kleissner
bfe2985149 UDT: Remove broken sentAck2. Always send ACK2 in response to an ACK. No need for artificial delay. 2021-11-04 23:43:18 +01:00