Commit Graph

460 Commits

Author SHA1 Message Date
Steven Allen
dee88d7532
Merge pull request #95 from libp2p/chore/update-deps
chore(dep): update deps
2019-10-28 15:38:18 -07:00
Steven Allen
334bc6f886 chore(dep): update deps
* update go-libp2p-core and fix tests for new minimum key size. This slows down
the test but terribly.
* switch to go-multiaddr-fmt
* update the datastore
* update gogo/protobuf
2019-10-28 15:32:22 -07:00
Steven Allen
f4c9af195c
Merge pull request #92 from libp2p/fix/identify-2
fix multiple TTL bugs
2019-07-25 09:42:00 -07:00
Steven Allen
2fb6d7a48f fix multiple TTL bugs
The first fix independently extends the address expiration time and the address
TTL:

By example:

* We have an address with a TTL of 4s that will expire in 1s.
* We update it with a TTL of 3s.

Before this change:

* We end up with an address with a TTL of 3s that will expire in 3s.

After this change:

* We end up with an address with a TTL of 4s that will expire in 3s.

---

The second fix prevents the in-memory addressbook from announcing existing
addresses every time their TTLs get updated.

---

The third fix correctly updates TTLs for existing addresses in the on-disk
addressbook.

This fixes https://github.com/libp2p/go-libp2p-identify/issues/2
2019-07-24 17:04:37 -07:00
Raúl Kripalani
ad0faef7c7
make RemoveProtocols take the write lock. (#90) 2019-07-10 15:45:49 +01:00
Steven Allen
06edc321d3
Merge pull request #86 from libp2p/fix/alloc-less
reduce allocations when adding addrs
2019-06-28 17:38:22 +02:00
Steven Allen
491519a817 reduce allocations when adding addrs 2019-06-28 13:26:17 +02:00
Jakub Sztandera
693780b745
Merge pull request #85 from libp2p/update-ds-badger
update go-ds-badger.
2019-06-28 12:22:22 +02:00
Raúl Kripalani
734561ed28 update go-ds-badger. 2019-06-28 12:14:04 +02:00
Jakub Sztandera
cfa9bb890c Update go-ds-badger to 0.0.4
Fire: badger removed its tag

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-06-21 15:06:18 +02:00
Raúl Kripalani
c11298943e deps: upgrade go-libp2p-core. 2019-06-20 16:24:02 +01:00
Raúl Kripalani
3d3a10dd54
protobook: support removing protocols. (#84) 2019-06-19 23:53:07 +01:00
Steven Allen
243fc72921
Merge pull request #82 from libp2p/test/metadata
test: add metadata test
2019-05-31 20:38:05 -07:00
Steven Allen
9a662b9911 test: add metadata test 2019-05-31 19:58:37 -07:00
Steven Allen
e15116528b
Merge pull request #81 from libp2p/fix/interned-nil-panic
set map in constructor
2019-05-31 19:45:56 -07:00
whyrusleeping
47c4411477 set map in constructor 2019-05-31 18:31:04 -07:00
Steven Allen
0b5b389640 dep: switch to core (#80)
* dep: switch to core

Specifically, remove go-libp2p-{crypto,peer} deps.

* catch a few more usages of deprecated packages.
2019-05-31 14:51:16 +01:00
Steven Allen
aeb6adb266
Merge pull request #79 from libp2p/feat/better-intern
improve interning
2019-05-28 01:38:17 -07:00
Steven Allen
d2e2c56c66 feat: intern agent versions
This also starts taking up a bunch of memory after a while.
2019-05-27 14:41:29 -07:00
Steven Allen
fd3ea885ff feat: improve protocol interning
This used to specify a max size/count but that was only because this logic was
shared between all peerstores (including the on-disk one). Now that:

1. This only applies to the in-memory one.
2. We never actually GC these.

We can just intern indefinitely.
2019-05-27 14:35:05 -07:00
Raúl Kripalani
4353646945
Consolidate abstractions and core types into go-libp2p-core (#69) 2019-05-23 18:11:06 +01:00
vyzo
80303a4b47
Merge pull request #78 from libp2p/feat/segmented-map
segment the memory peerstore + granular locks
2019-05-18 11:45:42 +03:00
vyzo
7fac6b6d98 use segments in ds protobook instead of a lock array 2019-05-18 11:42:47 +03:00
vyzo
07ee3fb062 make lock methods private 2019-05-17 23:41:05 +03:00
vyzo
28b1a9f31d don't track segment sizes, it's a fruitless optimization 2019-05-17 23:39:21 +03:00
vyzo
afca355218 index the peer ID strings directly to avoid copying the byte slice 2019-05-17 23:36:46 +03:00
vyzo
d340d2983e cosmetics 2019-05-17 13:14:39 +03:00
vyzo
3140aaa2c3 implement protobook for pstoreds 2019-05-17 13:13:18 +03:00
vyzo
a9e3f07759 global interned protocol table 2019-05-17 12:47:07 +03:00
vyzo
5ed17f0b79 embed lock in segment 2019-05-17 12:37:46 +03:00
vyzo
08caa87351 refactor protocol functionality into ProtoBook 2019-05-17 12:33:33 +03:00
vyzo
ea23986270 segmented protocol info 2019-05-09 12:14:03 +03:00
vyzo
303b1b6207 update segment size on gc 2019-05-09 11:20:12 +03:00
Raúl Kripalani
e7e511ba99 segment the memory peerstore; granular locks. 2019-05-09 00:27:58 +01:00
Steven Allen
96639ef5f4
Merge pull request #76 from libp2p/fix/issue-75
don't delete under the read lock
2019-04-28 12:28:17 -07:00
vyzo
f21f6eac4f don't eager gc 2019-04-28 16:21:07 +03:00
vyzo
c58ce1f56f add Close method to memory address book, which cancels the gc process 2019-04-28 12:19:26 +03:00
vyzo
e4cf50160f periodically schedule gc 2019-04-28 12:17:48 +03:00
vyzo
d0a3cc17f4 don't delete under the read lock
let gc clean up the addrs
2019-04-28 11:35:23 +03:00
Steven Allen
3291020401
Merge pull request #74 from libp2p/feat/rwlock
Read/Write locking
2019-04-27 12:53:42 -07:00
vyzo
3cd491431b read/write metadata lock 2019-04-27 22:19:49 +03:00
vyzo
0ddad15bd2 read/write address book lock 2019-04-27 22:19:39 +03:00
vyzo
af2cb17f80 read/write protocol lock 2019-04-27 22:15:45 +03:00
Steven Allen
b496ee5433
Merge pull request #71 from libp2p/feat/optimize-mem
optimize peerstore memory
2019-04-23 09:41:50 -07:00
Steven Allen
b94490421d peerstore: bump number/size of interned protocol names
512 * 256 (max path length on many systems) = 128KiB
2019-04-23 09:36:39 -07:00
Steven Allen
1017515eca
Merge pull request #72 from libp2p/fix/unmarshal-peer-id
fix unmarshalling of peer IDs
2019-04-23 09:29:43 -07:00
Steven Allen
926321cd88 fix unmarshalling of peer IDs 2019-04-23 00:59:28 -07:00
Steven Allen
b65b48dbe1 intern protocol names
Ideally, we'd store a bitmap. But we'll have to think through how we want that
to play out with the datastore-backed peerstore (maybe move the `*Protocols`
methods down to the backend implementation?).
2019-04-23 00:54:18 -07:00
Steven Allen
aae59b7403 optimize memory of in-memory peerstore 2019-04-23 00:10:05 -07:00
Raúl Kripalani
ab02c26ae9
Merge pull request #70 from libp2p/fix/err-handling
fix error handling in UpdateAddrs: return on error
2019-04-16 22:16:09 +01:00