]>
Sergey Matveev's repositories - btrtrc.git/log
ucwong [Sat, 26 Jun 2021 00:31:50 +0000 (08:31 +0800)]
missinggo go.mod fix (#526)
Matt Joiner [Fri, 25 Jun 2021 05:00:39 +0000 (15:00 +1000)]
Check that udp conn ID age is non-zero
Matt Joiner [Fri, 25 Jun 2021 05:00:09 +0000 (15:00 +1000)]
Add http tracker AllowKeepAlive
Matt Joiner [Fri, 25 Jun 2021 01:29:59 +0000 (11:29 +1000)]
Update and expose default client identifiers
Matt Joiner [Thu, 24 Jun 2021 04:38:16 +0000 (14:38 +1000)]
Add udp tracker scrape support
Matt Joiner [Thu, 24 Jun 2021 03:10:28 +0000 (13:10 +1000)]
Pull AnnounceOpt into tracker package
Matt Joiner [Thu, 24 Jun 2021 03:10:18 +0000 (13:10 +1000)]
Cancel writer after request
Matt Joiner [Thu, 24 Jun 2021 03:10:00 +0000 (13:10 +1000)]
Don't log dispatch errors
Matt Joiner [Thu, 24 Jun 2021 00:39:56 +0000 (10:39 +1000)]
Extract protocol agnostic tracker Client
Matt Joiner [Wed, 23 Jun 2021 23:53:18 +0000 (09:53 +1000)]
Rewrite udp announce to use udp client
ucwong [Wed, 23 Jun 2021 11:27:18 +0000 (19:27 +0800)]
package expect fix (#524)
Matt Joiner [Wed, 23 Jun 2021 07:25:07 +0000 (17:25 +1000)]
Fix some error wrapping in mse
Matt Joiner [Wed, 23 Jun 2021 07:24:50 +0000 (17:24 +1000)]
Fixes for wasm
Matt Joiner [Wed, 23 Jun 2021 02:41:25 +0000 (12:41 +1000)]
Reject accepted connections if we don't want conns
This prevents unnecessarily stalling peers dialling us if we have no intention to ever accept.
Matt Joiner [Tue, 22 Jun 2021 13:32:27 +0000 (23:32 +1000)]
Rearrange some tracker tests and files
Matt Joiner [Tue, 22 Jun 2021 13:28:26 +0000 (23:28 +1000)]
Extract HTTP tracker client into separate package
Matt Joiner [Tue, 22 Jun 2021 12:48:49 +0000 (22:48 +1000)]
Move tracker test server code to test file
Matt Joiner [Tue, 22 Jun 2021 12:45:56 +0000 (22:45 +1000)]
Update test tracker urls
Matt Joiner [Tue, 22 Jun 2021 12:45:50 +0000 (22:45 +1000)]
Fix tracker test timeouts
Matt Joiner [Tue, 22 Jun 2021 12:36:43 +0000 (22:36 +1000)]
Rewrite UDP tracker client
Matt Joiner [Tue, 22 Jun 2021 06:52:55 +0000 (16:52 +1000)]
Add UDP tracker announce and connect expvars
Matt Joiner [Mon, 21 Jun 2021 07:58:04 +0000 (17:58 +1000)]
Add to bencode.Unmarshal doc comment
Matt Joiner [Mon, 21 Jun 2021 03:29:26 +0000 (13:29 +1000)]
Tidy up the Dialer interface
Matt Joiner [Mon, 21 Jun 2021 03:00:20 +0000 (13:00 +1000)]
Minor tidying
Matt Joiner [Mon, 21 Jun 2021 02:54:57 +0000 (12:54 +1000)]
Expose DialFirst
Matt Joiner [Mon, 21 Jun 2021 02:30:05 +0000 (12:30 +1000)]
Mark client transfer test as parallel
Matt Joiner [Mon, 21 Jun 2021 02:29:37 +0000 (12:29 +1000)]
Remove sqlite piece-resource storage
Matt Joiner [Fri, 18 Jun 2021 05:04:07 +0000 (15:04 +1000)]
Add explicit metadata extension types
Matt Joiner [Fri, 18 Jun 2021 04:59:20 +0000 (14:59 +1000)]
Add ClientConfig.AcceptPeerConnections
Matt Joiner [Fri, 18 Jun 2021 01:05:23 +0000 (11:05 +1000)]
Remove conntrack, expose Torrent.AnnounceToDht, ClientConfig.PeriodicallyAnnounceTorrentsToDht
Matt Joiner [Mon, 21 Jun 2021 02:04:06 +0000 (12:04 +1000)]
Merge branch 'request-strategy-rewrite'
Zilog8 [Tue, 8 Jun 2021 05:45:35 +0000 (01:45 -0400)]
Allow Storage Backends to do their own Hashing (#518)
* Allow Storage Backends to do their own Hashing
- Describes an optional interface 'SelfHashing' that a storage backend's type implementing 'PieceImpl' may also implement in order to calculate piece hashsums itself.
- Alters the 'hashPiece' function in the torrent package to look for types implementing 'SelfHashing' . If not implemented, calculate the hash as usual.
deepsource-autofix[bot] [Mon, 7 Jun 2021 03:24:32 +0000 (03:24 +0000)]
Fix nil context being passed to function
Matt Joiner [Mon, 24 May 2021 08:06:42 +0000 (18:06 +1000)]
Add default param name in TorrentImpl.Piece func
Matt Joiner [Mon, 24 May 2021 07:38:09 +0000 (17:38 +1000)]
Add storage/disabled
The default storage will create empty files on torrent open, which is undesirable in some circumstances. This storage implementation is explicit about not storing anything.
Matt Joiner [Mon, 24 May 2021 07:37:04 +0000 (17:37 +1000)]
Expose AnacrolixDhtServerWrapper
Matt Joiner [Mon, 24 May 2021 07:36:39 +0000 (17:36 +1000)]
Extract chansync to github.com/anacrolix/chansync
Matt Joiner [Mon, 24 May 2021 07:31:52 +0000 (17:31 +1000)]
bencode: Improve support for embedded structs
Matt Joiner [Sat, 22 May 2021 01:02:39 +0000 (11:02 +1000)]
bencode: Support anonymous embedded struct pointers
More to come if this line of improvement is retained.
Matt Joiner [Fri, 21 May 2021 13:50:29 +0000 (23:50 +1000)]
Rework bencode decoding so it might support embedded structs
Matt Joiner [Fri, 21 May 2021 04:02:45 +0000 (14:02 +1000)]
Fix issue with duplicate preallocated requests
Likely introduced by allowing actual and next request states to differ.
Matt Joiner [Fri, 21 May 2021 04:01:41 +0000 (14:01 +1000)]
Fix bitmap-related benchmark
Matt Joiner [Fri, 21 May 2021 01:49:57 +0000 (11:49 +1000)]
Track chunks read for webseed peers too
Matt Joiner [Thu, 20 May 2021 10:33:17 +0000 (20:33 +1000)]
Rename file
Matt Joiner [Thu, 20 May 2021 10:28:23 +0000 (20:28 +1000)]
Add peerConnMsgWriter file
Forgot this earlier, new to Sublime Merge.
Matt Joiner [Thu, 20 May 2021 10:27:54 +0000 (20:27 +1000)]
Add chansync interfaces
Matt Joiner [Thu, 20 May 2021 10:24:34 +0000 (20:24 +1000)]
Fix race in piece availability runs
Matt Joiner [Thu, 20 May 2021 10:23:45 +0000 (20:23 +1000)]
Apply next request state asynchronously
Matt Joiner [Thu, 20 May 2021 08:55:23 +0000 (18:55 +1000)]
Move peerConnMsgWriter into its own file
Matt Joiner [Thu, 20 May 2021 08:51:08 +0000 (18:51 +1000)]
Break out peerConnWriter
Matt Joiner [Thu, 20 May 2021 04:08:38 +0000 (14:08 +1000)]
Resolve local replaces
Matt Joiner [Thu, 20 May 2021 04:01:31 +0000 (14:01 +1000)]
Fix up some crashes around piece availability
Matt Joiner [Thu, 20 May 2021 01:26:08 +0000 (11:26 +1000)]
Don't always force piece reallocation
The balancing for unforced pieces may not be exactly what we want yet.
Matt Joiner [Thu, 20 May 2021 01:16:54 +0000 (11:16 +1000)]
Use rejiggered missinggo bitmap
Matt Joiner [Wed, 19 May 2021 22:56:53 +0000 (08:56 +1000)]
Determine peer max requests based on receive speed
Matt Joiner [Wed, 19 May 2021 22:34:20 +0000 (08:34 +1000)]
Merge maxRequests into localClientReqq
Matt Joiner [Sun, 16 May 2021 23:08:39 +0000 (09:08 +1000)]
Fix in decPieceAvailability when we don't have torrent info
Happens when we close a Peer before getting Torrent info.
Matt Joiner [Fri, 14 May 2021 05:19:49 +0000 (15:19 +1000)]
Fix sqlite piece completion
Matt Joiner [Fri, 14 May 2021 03:40:09 +0000 (13:40 +1000)]
Add client-level max unverified bytes
Matt Joiner [Fri, 14 May 2021 03:06:12 +0000 (13:06 +1000)]
Get max unverified bytes working
Matt Joiner [Fri, 14 May 2021 01:50:41 +0000 (11:50 +1000)]
Prepare to implement max unverified bytes
Matt Joiner [Fri, 14 May 2021 00:24:50 +0000 (10:24 +1000)]
Do checks for preallocated requests too
Otherwise we reserve requests with the assumption that they can be assigned later, and they actually might not be.
Matt Joiner [Fri, 14 May 2021 00:23:18 +0000 (10:23 +1000)]
Fix non-deterministic test
Matt Joiner [Thu, 13 May 2021 10:56:12 +0000 (20:56 +1000)]
Get request rebalancing working optimally!
Matt Joiner [Thu, 13 May 2021 08:35:49 +0000 (18:35 +1000)]
Move piece allocation to its own func
Matt Joiner [Thu, 13 May 2021 03:50:41 +0000 (13:50 +1000)]
New tests and fixes for them
Not complete. There's still a request-stealing balancing issue, but it's functional for now.
Matt Joiner [Thu, 13 May 2021 03:49:57 +0000 (13:49 +1000)]
Don't log each applied request
Matt Joiner [Thu, 13 May 2021 01:26:22 +0000 (11:26 +1000)]
Add a working request strategy test
Matt Joiner [Wed, 12 May 2021 23:56:58 +0000 (09:56 +1000)]
Extract request strategy stuff into a separate module
Matt Joiner [Wed, 12 May 2021 11:48:23 +0000 (21:48 +1000)]
Improve num requests per piece status output
Matt Joiner [Wed, 12 May 2021 11:48:11 +0000 (21:48 +1000)]
Improve piece availability status output
Matt Joiner [Wed, 12 May 2021 11:47:35 +0000 (21:47 +1000)]
Fixes to reassigning chunks in requests
Matt Joiner [Wed, 12 May 2021 07:45:36 +0000 (17:45 +1000)]
Rework to improve work stealing and try to thread peers through all request pieces
Matt Joiner [Tue, 11 May 2021 07:14:56 +0000 (17:14 +1000)]
Forgot to remove initial have all state for webseeds
Later when the webseed was closed, it was assumed that it had contributed to the piece availability count.
Matt Joiner [Mon, 10 May 2021 07:43:34 +0000 (17:43 +1000)]
Do requests every 100ms
Matt Joiner [Mon, 10 May 2021 07:43:23 +0000 (17:43 +1000)]
Don't need stable sort
Matt Joiner [Mon, 10 May 2021 07:43:10 +0000 (17:43 +1000)]
Improve naming on storage key
Matt Joiner [Mon, 10 May 2021 07:42:51 +0000 (17:42 +1000)]
Reuse pieceRequestOrder slice
Matt Joiner [Mon, 10 May 2021 07:05:08 +0000 (17:05 +1000)]
Missed piece availability code
Matt Joiner [Mon, 10 May 2021 07:04:27 +0000 (17:04 +1000)]
Comments
Matt Joiner [Mon, 10 May 2021 07:03:56 +0000 (17:03 +1000)]
Ignore pieces for request after accounting for storage
Matt Joiner [Mon, 10 May 2021 07:02:17 +0000 (17:02 +1000)]
Track peer availability at the Torrent-level
Matt Joiner [Mon, 10 May 2021 03:35:24 +0000 (13:35 +1000)]
Remove unused pieceRequestOrder in Client
Matt Joiner [Mon, 10 May 2021 02:40:42 +0000 (12:40 +1000)]
go mod tidy
Matt Joiner [Mon, 10 May 2021 02:30:44 +0000 (12:30 +1000)]
Use multiless with Float64
Matt Joiner [Mon, 10 May 2021 02:29:47 +0000 (12:29 +1000)]
PeerConn.post becomes PeerConn.write
Matt Joiner [Sun, 9 May 2021 14:53:32 +0000 (00:53 +1000)]
Fix download rate, status output
Matt Joiner [Sun, 9 May 2021 13:40:44 +0000 (23:40 +1000)]
Rework storage.TorrentImpl to support shared capacity key
Matt Joiner [Sun, 9 May 2021 13:38:38 +0000 (23:38 +1000)]
Tidy up request and cancel
Matt Joiner [Sun, 9 May 2021 13:34:56 +0000 (23:34 +1000)]
Remove empty file
Matt Joiner [Sun, 9 May 2021 04:41:03 +0000 (14:41 +1000)]
Limit outstanding requests
Matt Joiner [Sun, 9 May 2021 04:14:11 +0000 (14:14 +1000)]
Pass tests with new full-client request strategy implementation
Matt Joiner [Wed, 26 May 2021 12:49:52 +0000 (22:49 +1000)]
Log failure to complete metadata
Matt Joiner [Mon, 24 May 2021 08:08:32 +0000 (18:08 +1000)]
Count peers added from DHT for logging
Matt Joiner [Mon, 24 May 2021 07:38:36 +0000 (17:38 +1000)]
Add TODOs around setting info bytes
Matt Joiner [Mon, 7 Jun 2021 02:44:51 +0000 (12:44 +1000)]
Create go.yml (#497)
* Create go.yml
* Go version 1.16
* Add benchmarks
* Match CircleCI test coverage
* Add 15 minute timeout
* Don't log to file
* Download modules in separate step, minimize test runs
* Install godo before running torrentfs end-to-end test
* More fixes
* More fixes for GitHub Actions CI
gitpubber [Tue, 25 May 2021 08:48:59 +0000 (14:18 +0530)]
Added build tags to disable few packages if necessary (#499)
Matt Joiner [Fri, 21 May 2021 04:16:59 +0000 (14:16 +1000)]
Progress testing without cgo a bit
Matt Joiner [Mon, 17 May 2021 01:51:24 +0000 (11:51 +1000)]
Make wal the default for sqlite resource pieces
Fixes broken test as a result.
Matt Joiner [Mon, 17 May 2021 01:42:27 +0000 (11:42 +1000)]
Make synchronous=off the default