52 Commits

Author SHA1 Message Date
Guilhem Fanton
c9e4735369 fix: stream leaks
Signed-off-by: Guilhem Fanton <guilhem.fanton@gmail.com>
2020-10-28 15:02:22 +01:00
Guilhem Fanton
6c6522afbc chore: update deps
- upgrade to proto3

Signed-off-by: Guilhem Fanton <guilhem.fanton@gmail.com>
2020-10-28 15:02:19 +01:00
Guilhem Fanton
90a910542f Merge remote-tracking branch 'origin/implement-spec' into master
* origin/implement-spec: (47 commits)
  replaced sync.Map with map + RW mutex. small refactors
  fixed compile error from previous commit + code refactoring
  RendezvousPoint and RendezvousClient now return the server's TTL on Registered records. Default TTL for discovery client increased discovery client now utilizes server cookie for added efficiency
  Add stateful discovery client
  Switched from gx to go mod and started using go-libp2p-core interfaces
  update tests
  expose counter in register interface
  update gx deps
  include ttl in registration response
  update protobuf
  two interfaces for client-side: RendezvousPoint and RendezvousClient
  don't leak database error details in internal errors
  refactor database interface and implementation into db subpackage
  client: add TODO for robust discovery error recovery
  use randomized exponential backoff in error retry for persistent client registrations
  test client specific functionality
  make db nonce 32 bytes
  test service errors
  basic service test
  test db functionality with multiple namespaces
  ...
2020-10-16 10:21:07 +02:00
vyzo
737144165c
Merge pull request #3 from aschmahmann/feat/add-discovery-client
Feat/add discovery client
2019-07-08 09:54:49 +03:00
Adin Schmahmann
0e771cd3c2 replaced sync.Map with map + RW mutex. small refactors 2019-06-21 09:06:01 +02:00
Adin Schmahmann
25d0082f05 fixed compile error from previous commit + code refactoring 2019-06-05 13:44:44 -04:00
Adin Schmahmann
9052b531cc RendezvousPoint and RendezvousClient now return the server's TTL on Registered records.
Default TTL for discovery client increased
discovery client now utilizes server cookie for added efficiency
2019-05-31 18:58:46 -04:00
Adin Schmahmann
790128061e Add stateful discovery client 2019-05-31 12:48:51 -04:00
Adin Schmahmann
91cdb88828 Switched from gx to go mod and started using go-libp2p-core interfaces 2019-05-28 14:41:28 -04:00
vyzo
2843bd30d1 update tests 2019-01-18 15:53:16 +02:00
vyzo
f2ee9b3d44 expose counter in register interface 2019-01-18 15:46:02 +02:00
vyzo
3c726d2ea9 update gx deps 2019-01-18 15:32:04 +02:00
vyzo
8846a4b090 include ttl in registration response 2019-01-18 15:31:50 +02:00
vyzo
1ee2b55a9f update protobuf 2019-01-18 15:22:49 +02:00
vyzo
c540724f1f two interfaces for client-side: RendezvousPoint and RendezvousClient
RendezvousClient soon to be stateful.
2018-04-28 12:05:21 +03:00
vyzo
baf1e4e618 don't leak database error details in internal errors 2018-04-26 14:30:47 +03:00
vyzo
c487c2077b refactor database interface and implementation into db subpackage
We now have:
- db/dbi.go -- interface, no dependency on any particular database
- db/sqlite/... -- sqlite implementation, depends on dbi
- the rendezvous.NewRendezvousService API has been redefined to NewRendezvouServiceWithDB
  service importer constructs the database of choice
- the rendezvous package has no dependences on db implementation, so clients can import
  without linking SQLite in the binary
2018-04-26 14:06:58 +03:00
vyzo
aa7f9daaa8 client: add TODO for robust discovery error recovery 2018-04-25 11:06:08 +03:00
vyzo
e530204107 use randomized exponential backoff in error retry for persistent client registrations 2018-04-24 21:26:06 +03:00
vyzo
6c4fda5295 test client specific functionality 2018-04-24 18:43:43 +03:00
vyzo
9ab12abbde make db nonce 32 bytes 2018-04-24 18:23:10 +03:00
vyzo
2b0995f842 test service errors 2018-04-24 18:16:44 +03:00
vyzo
a47367d67a basic service test 2018-04-24 17:11:03 +03:00
vyzo
4788ef758e test db functionality with multiple namespaces 2018-04-24 15:53:22 +03:00
vyzo
cfbcddee41 up MaxRegistrations to 1k 2018-04-24 14:10:50 +03:00
vyzo
f41fbba29a test db functionality 2018-04-24 14:08:17 +03:00
vyzo
53dfbc7ae1 test address and cookie packing 2018-04-24 12:34:39 +03:00
vyzo
8c1227209a better logging for service i/o 2018-04-24 12:00:53 +03:00
vyzo
ae10cc6b9f implement binary packing details 2018-04-24 12:00:37 +03:00
vyzo
c703d37aa2 database logic implementation 2018-04-23 22:28:16 +03:00
vyzo
aa3f46c897 user parameter for ttl in Register 2018-04-23 14:50:46 +03:00
vyzo
4e3eaa7ba0 refactor service constructor into two parts 2018-04-23 14:44:14 +03:00
vyzo
fbaf21c098 client: add TODO comment for adaptive backoff 2018-04-23 13:38:34 +03:00
vyzo
8181424229 client: use larger batch in discovery, only poll immediately if full 2018-04-23 13:34:16 +03:00
vyzo
6c1d28214b Registration records should have an actual peer ID 2018-04-23 13:25:18 +03:00
vyzo
dbe6b0ddb5 rendezvous service sync: hook for federation 2018-04-23 12:05:18 +03:00
vyzo
7d72fc79b3 service implementation 2018-04-23 11:54:25 +03:00
vyzo
e5a72b9bea rendezvous interface should expose full registration information
- instead of returning PeerInfos, return Registration objects in discovery
- provide utility functions at module level for peer info discovery
2018-04-21 18:51:18 +03:00
vyzo
aeac2e2a0f update for response error changes in the protocol 2018-04-21 12:06:27 +03:00
vyzo
b7c304ddf3 update protobuf 2018-04-21 12:05:36 +03:00
vyzo
6a1176f844 annotate registration error 2018-04-20 19:20:04 +03:00
vyzo
7e5664ce7c use discriminated registration errors 2018-04-20 14:38:12 +03:00
vyzo
1506c04f1a simplify Rendezvous interface 2018-04-20 13:07:01 +03:00
vyzo
e3d343f34a include namespace in error logs 2018-04-20 12:01:35 +03:00
vyzo
13f4c67879 add E_INVALID_TTL to rendezvous.proto 2018-04-20 10:43:36 +03:00
vyzo
a107e34a06 interface ergonomics 2018-04-19 22:46:13 +03:00
vyzo
b7bc940aed add error notification for background register/discover 2018-04-19 22:34:46 +03:00
vyzo
268abf3357 more fine-grained rendezvous api 2018-04-19 22:29:52 +03:00
vyzo
f94b0b48b3 update client interface
It's DiscoverOnce and Discover instead of Discover and DiscoverAsync
2018-04-19 20:37:48 +03:00
vyzo
0cbcbf6e24 client implementation 2018-04-19 20:18:42 +03:00