Commit Graph

162 Commits

Author SHA1 Message Date
Lawrence, Rendall
92ce0df932 (minor) fix invalid PG gc query example 2022-06-27 15:59:34 +03:00
Lawrence, Rendall
0fd0e06360 (tested) change DataStorage interface to accept byte array as value 2022-06-23 21:01:05 +03:00
Lawrence, Rendall
73d8922c74 (partially tested) add pg storage configuration and man
* update test query for `pg`
* attach `pg` to supported storages
* fix lint warnings
* update dependencies
2022-06-21 18:01:08 +03:00
Lawrence, Rendall
8c12cd9b35 (partially tested) fix pg tests, add postgres service in workflows 2022-06-20 17:19:23 +03:00
Lawrence, Rendall
0564dfce4b (untested) add pg storage tests 2022-06-18 20:52:57 +03:00
Lawrence, Rendall
21eaea2b8a (untested) implement gc, stats and scrape in pg storage
fix query call to use columns names while row scan
2022-06-16 17:49:20 +03:00
Lawrence, Rendall
8430e1f31f Initial work on implementing postgresql storage
Generated placeholders to use raw sql queries with `pgx` driver
and implemented put/del peer and announce functions

* inline GCAware and StatisticsAware to PeerStorage
* fix redis doc configuration sample
* update dependencies
2022-06-15 21:42:43 +03:00
Lawrence, Rendall
79c92df0f8 (tested) add hooks check when ping http route called 2022-05-14 01:36:21 +03:00
Lawrence, Rendall
463d478dad (minor) sanitize code 2022-05-02 13:30:11 +03:00
Lawrence, Rendall
c50a532181 (tested) complete replace logrus with zerolog
* remove cobra dependency and split execs to mochi and e2e

* add log init synchronization
2022-05-02 03:13:58 +03:00
Lawrence, Rendall
4d646f7c09 (wip) migrate to zerolog 2022-05-01 01:39:21 +03:00
Lawrence, Rendall
64b27c2df6 (tested) preserve all addresses of peer
* add multiple addresses in request structures and frontend parsers

* move per-ip peer fetch/store from storage to internal hooks

* fetch/store both v1 and v2 info hashes
2022-04-27 00:52:17 +03:00
Lawrence, Rendall
b365abd296 (untested) sanitize code
* remove peer argument from scrape swarm storage call

* replace Peer field with netip.Addr in ScrapeRequest

* add man for keydb storage

* update readme
2022-04-25 19:05:41 +03:00
Lawrence, Rendall
72a03db654 (tested) fix panic while IPv6Peers/IPv4Peers append
* change memory swarm key type to Peer (it became comparable)
2022-04-25 14:27:05 +03:00
Lawrence, Rendall
7471697c20 (tested) combine v4 and v6 peers response in memory store 2022-04-24 23:46:20 +03:00
Lawrence, Rendall
ef03291efe (tested) rollback to separate v4 and v6 keys in redis/keydb
* sanitize log fields
* remove miniredis dependency
* store/collect information about hybrid (v2to1) hashes
2022-04-24 20:32:15 +03:00
Lawrence, Rendall
22f459315b (wip) implement keydb store
* make redis store reusable for keydb
* replace redis HKeys calls in AnnouncePeers with HRandField
* change signature of storage.ScrapeSwarm
2022-04-24 02:23:18 +03:00
Lawrence, Rendall
4131c64e89 (wip) create new driver for KeyDB
* move GC and prometheus aware storage functions to separate interfaces
2022-04-23 01:28:06 +03:00
Lawrence, Rendall
a1ce79b003 (untested) merge ipv4 and ipv6 peers and pass v4 peers from db to v6 requester 2022-04-22 00:54:56 +03:00
Lawrence, Rendall
3bc2276fb3 (tested) Refactor code
* merge 9d04e4c from https://github.com/jzelinskie/chihaya
* sanitize ip address on Scrape requests
* remove NewConnectionID and ValidConnectionID functions from production code
2022-04-21 21:57:18 +03:00
Lawrence, Rendall
f9c72341c0 (minor) refactor redis GC and fix TX calls,
add indicator that metrics are running
2022-04-17 00:57:30 +03:00
Lawrence, Rendall
01064fd21a (tested) split storage to data and peer interfaces,
add option for persisting (or not) torrent approval data
2022-04-16 18:50:19 +03:00
Lawrence, Rendall
965df2a9c3 (untested) Merge commit 24ab4ae from https://github.com/jzelinskie/chihaya 2022-04-16 01:22:24 +03:00
Lawrence, Rendall
8cd8343757 (tested) refactor code
* add sentinel master parameter into driver config
* replace yaml double deserialization with `mapstructure` in initializers
* replace struct initializers with registered functions
* add torrent approval MD and a sanitize rest MDs
2022-04-16 00:51:48 +03:00
Lawrence, Rendall
397e106396 (tested) fix redis to pass tests
* delete info hash count key from redis (replaced with SCARD on infohash set)
* add GC test
* add peer.Addr() functio to always return unwrapped address if 4to6 appear
2022-04-15 01:33:45 +03:00
Lawrence, Rendall
5c2471ca9b (untested) Merge commit e56ad81 from https://github.com/jzelinskie/chihaya
* rename/replace redis keys
2022-04-14 19:14:12 +03:00
Lawrence, Rendall
57d9c8e78e clear store error in responseHook if ErrResourceDoesNotExist appear 2022-04-14 01:52:52 +03:00
Lawrence, Rendall
781fa9440f (done) replace redigo with go-redis
* replace redis keys with RawString encoded values (delete SerializedPeer)
* merge peers got from pre-hools with store data
2022-04-14 01:13:18 +03:00
Lawrence, Rendall
1fcddf5102 (WIP) replace redigo with go-redis 2022-04-13 01:12:00 +03:00
Lawrence, Rendall
c9e0af8b1e fix lint errors 2022-04-12 21:48:54 +03:00
Lawrence, Rendall
64eaf9d733 Fix lint gosec and ifshort issues 2022-04-12 18:51:03 +03:00
Lawrence, Rendall
554ae6fcd6 Reformat comments 2022-04-12 18:32:17 +03:00
Lawrence, Rendall
c1956d68f6 Remove YAML/MD lint configs, reformat stdlib imports 2022-04-12 18:10:51 +03:00
Širhoe Biazhkovič
c7edbb52f2 Merge commits 129aac230aa..828edb8fd8b from https://github.com/chihaya/chihaya 2022-04-12 15:58:14 +03:00
Lawrence, Rendall
4dbbb4ad83 Rename to MoChi 2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
d438ad58fe Test v2 hashes with qbt 2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
360ac9d08d Add man to exported functions/fields 2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
0a5ac35c4d Fix e2e execution, append 2to1 hash in approvals, update dependencies 2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
9122aefdd7 Fix storage tests
* reformat sources #JR1356
2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
beb4736b86 Implement simple PGDC methods for storage
* sanitize code a little
* move e2e build to 'e2e' tag
2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
566d99fcd7 Gegin work on shared store for handlers 2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
af1cbc543c Don't return error while converting hash to v1
Mark clientapproval as broken because of incorrect client_id parsing
2021-12-21 15:24:25 +03:00
Širhoe Biazhkovič
2f092bad45 Initial torrentV2 hash support 2021-12-21 15:24:11 +03:00
Širhoe Biazhkovič
823b92fe83 Disable prometheus fot in-memory store if period set to 0 2021-10-20 17:16:11 +03:00
Širhoe Biazhkovič
8580bb37e0 WIP Add support for custom torrents' approval storages
* migrate torrentapproval to list storage
* add initial support for torrent file storage (watch directory with fsnotify)
* replace frontend/http/bencode package with github.com/zeebo/bencode module
* sanitize code (fix warnings)

TODO:
* parse torrent files to get hashes,
* watch directory event types

DON'T use for now
2021-09-04 01:49:01 +03:00
Jimmy Zelinskie
3e334b9536 storage: remove memorybysubnet
This code, while interesting, was only relevant to Facebook and they use
their own fork that they maintain. There was not enough outside
interest to warrant maintaining. I'd rather us use the effort to support
a redis storage backend instead.
2019-02-13 19:44:04 -05:00
Jimmy Zelinskie
dc753b937c vendor: move to Go modules for dependencies
Fixes #444.
2019-02-12 20:36:25 -05:00
onestraw
e83f68b952 storage/redis: add exiting info
Change-Id: I7876bf420a35b48314d14925f5f2ae591fa2d243
2019-01-28 15:18:21 +08:00
onestraw
9d22b67f74 storage/redis: use redis reply
Change-Id: If6e6c2545b12c249413d3d13ea41e127b8d1d9b0
2019-01-21 19:44:33 +08:00
onestraw
fa19ffd050 add @mrd0ll4r 's comments
Change-Id: I53616703394f889fa2d0a4e952ac857d99c85218
2019-01-20 17:02:05 +08:00