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
Kleissner
1573ded639
UDT: Fix invalid initial packet sequence number when random number was a signed negative int
2021-11-04 22:35:57 +01:00
Kleissner
d0b5db9437
UDT: Removing light ACK. This reduces complexity.
2021-11-04 21:20:47 +01:00
Kleissner
b728b939ec
UDT: Remove ackInterval which was never set anyway. Instead, send ACK every few packets depending on congestion window and count of sent packets.
...
Removing LightACK. The implementation of it was confusing (it competed with ACK in a race condition) and rather pointless. LightACKs will be ditched completely to get to a working version.
2021-11-04 20:47:34 +01:00