Eugene Kabanov
5701d937c8
Signed variable integers fixes. ( #96 )
...
* Fix signed varints.
Add tests for signed varints.
Remove some casts to allow usage at compile time.
* Fix vsizeof() on 32bit platforms.
* Add `hint` and `zint` types for proper signed integer encoding.
* Fix varint related bugs.
* Update requirements.
* Fix interop tests because of fixed readLine.
* Add putVarint, getVarint and tests.
2020-03-06 20:19:43 +01:00
Eugene Kabanov
381630f185
Fix and refactoring of some procedures which are able to return nil as result ( #97 )
...
* Fix do not return nil as result.
* Fix mplex test to properly raise.
2020-03-04 21:45:14 +02:00
Dmitriy Ryajov
ffc3b04222
read should await for data on an empty buff
2020-03-01 04:06:42 -06:00
Dmitriy Ryajov
5a00510b1f
wip: increase timeout
2020-02-25 17:52:08 -06:00
Dmitriy Ryajov
eb49d4b218
no empty proto dials and add connect method
2020-02-25 17:52:08 -06:00
Dmitriy Ryajov
9efc08cb2f
fix : #83
2020-02-24 08:58:02 -06:00
Dmitriy Ryajov
fbcef69891
implicitelly dial pubsub if enabled
2020-02-21 09:21:06 -06:00
Giovanni Petrantoni
cb156f3260
Fix public() using proper bear mulgen
2020-02-18 09:35:14 -06:00
Giovanni Petrantoni
e0e371994c
Remove implicit converters
2020-02-18 09:35:14 -06:00
Giovanni Petrantoni
f039853a19
Add few converters, finish c25519 integration tests
2020-02-18 09:35:14 -06:00
Giovanni Petrantoni
99a169b65d
Curve25519 integration tests (failing, something is wrong)
2020-02-18 09:35:14 -06:00
Giovanni Petrantoni
2103aa59f3
Add chachapoly proper test
2020-02-18 09:35:14 -06:00
Dmitriy Ryajov
bf70428316
revert tests order back
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
9023bf786d
remove sleeps
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
acdaeb8f5d
working out synchronization issues
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
f6c4d2130a
don't forget to await for switch to close
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
934c858542
increase timeout to allow floodsub to finish
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
681d324a10
increase timeouts to acomodate for CI runs
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
30a496de5e
add TODO to explain why half closed tests failed
2020-02-16 11:31:35 -06:00
Dmitriy Ryajov
7f8eb0272e
cleanup and fix tests
2020-02-16 11:31:35 -06:00
Giovanni Petrantoni
ea0d167285
Fix max size write mplex test
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni
20f65e0dc8
Use better async pattern in test (Notice this causes a issue to show up)
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni
0d0a6e9cfb
No destructors on future so gotta cancel those manually
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni
6c0839db01
Revert "Remove unused module"
...
This reverts commit 809a7af37e
.
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni
76dff5eb5b
Remove unused module
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni
1140f7b884
Fix write limits test by using timeout, also a proposal to use this everywhere
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni
120ba0d528
Add a safety check on message size limit when pushing new data in mplex
2020-02-12 11:57:38 -05:00
Eugene Kabanov
540e79a430
Add peer lifetime feature for PeerInfo. ( #77 )
...
* Add peer lifetime feature for PeerInfo.
Refactor peerinfo to use openarrays instead of sequences.
Fix tests and examples to use arrays instead of sequences.
* Add access to lifetime Future[T] itself.
2020-02-11 12:53:39 -05:00
Giovanni Petrantoni
23712ecf3b
Lazy channels ( #78 )
...
* Implemented lazy stream opening for mplex connections
* Properly fix newStream usage
* Make lazy channel open optional
* Add Lazy channel test
* Cleanup mplex test
* Move lazyness properly into LPChannel
* Connection writeLp back to proc
2020-02-11 12:30:36 -05:00
Eugene Kabanov
d902127595
Fix LibP2P varint implementation to follow latest specification. ( #65 )
...
* Fix LibP2P varint implementation to decode only minimal valus.
2020-01-28 16:29:42 +01:00
Dmitriy Ryajov
d42833947a
fix gossipsub mesh test
2020-01-09 21:59:27 -06:00
Dmitriy Ryajov
bb0430e62b
remove unnecesary clear timers call
2020-01-09 14:46:00 -06:00
Dmitriy Ryajov
d5f92663bc
make tests pass
2020-01-09 12:55:21 -06:00
Dmitriy Ryajov
0fb1f1c5b8
strenghten pubsub interop testing
2019-12-24 10:35:35 -06:00
Dmitriy Ryajov
8714c66353
allow empty protocol string in dial
2019-12-24 10:35:35 -06:00
Dmitriy Ryajov
68cc57669e
Feat/pubsub validators ( #58 )
...
* feat: adding validator hooks to pubsub
* expose add/remove validators on switch
* do less unnecessary copyng
2019-12-16 23:24:03 -06:00
Yuriy Glukhov
e0aae6d8ac
Moved base32, 58 and 64 to stew
2019-12-13 16:00:39 +02:00
Dmitriy Ryajov
293a219dbe
Cleanup ( #55 )
...
* fix: don't allow replacing pubkey
* fix: several small improvements
* removing pubkey setter
* improove error handling
* remove the use of Option[T] if not needed
* don't use optional
* fix-ci: temporarily pin p2pd to a working tag
* fix example to comply with latest changes
* bumping p2pd again to a higher version
2019-12-10 14:50:35 -06:00
Zahary Karadjov
454f658ba8
Fixes and tweaks related to the beacon node integration
...
* Bugfix: Dialing an already connected peer may lead to crash
* Introduced a standard_setup module allowing to instantiate
the `Switch` object in an easier manner.
* Added `Switch.disconnect(peer)`
* Trailing space removed (sorry about polluting the diff)
2019-12-08 23:58:43 +02:00
Dmitriy Ryajov
5f6fcc3d90
extract public and private keys fields from peerid ( #44 )
...
* extract public and private keys fields from peerid
* allow assigning a public key
* cleaned up TODOs
* make pubsub prefix a const
* public key should be an `Option`
2019-12-07 10:36:39 -06:00
Dmitriy Ryajov
e623e70e7b
PubSub (Gossip & Flood) Implementation ( #36 )
...
This adds gossipsub and floodsub, as well as basic interop testing with the go libp2p daemon.
* add close event
* wip: gossipsub
* splitting rpc message
* making message handling more consistent
* initial gossipsub implementation
* feat: nim 1.0 cleanup
* wip: gossipsub protobuf
* adding encoding/decoding of gossipsub messages
* add disconnect handler
* add proper gossipsub msg handling
* misc: cleanup for nim 1.0
* splitting floodsub and gossipsub tests
* feat: add mesh rebalansing
* test pubsub
* add mesh rebalansing tests
* testing mesh maintenance
* finishing mcache implementatin
* wip: commenting out broken tests
* wip: don't run heartbeat for now
* switchout debug for trace logging
* testing gossip peer selection algorithm
* test stream piping
* more work around message amplification
* get the peerid from message
* use timed cache as backing store
* allow setting timeout in constructor
* several changes to improve performance
* more through testing of msg amplification
* prevent gc issues
* allow piping to self and prevent deadlocks
* improove floodsub
* allow running hook on cache eviction
* prevent race conditions
* prevent race conditions and improove tests
* use hashes as cache keys
* removing useless file
* don't create a new seq
* re-enable pubsub tests
* fix imports
* reduce number of runs to speed up tests
* break out control message processing
* normalize sleeps between steps
* implement proper transport filtering
* initial interop testing
* clean up floodsub publish logic
* allow dialing without a protocol
* adding multiple reads/writes
* use protobuf varint in mplex
* don't loose conn's peerInfo
* initial interop pubsub tests
* don't duplicate connections/peers
* bring back interop tests
* wip: interop
* re-enable interop and daemon tests
* add multiple read write tests from handlers
* don't cleanup channel prematurely
* use correct channel to send/receive msgs
* adjust tests with latest changes
* include interop tests
* remove temp logging output
* fix ci
* use correct public key serialization
* additional tests for pubsub interop
2019-12-05 20:16:18 -06:00
Dmitriy Ryajov
903e79ede1
Feat/conn cleanup ( #41 )
...
Backporting proper connection cleanup from #36 to align with latest chronos changes.
* add close event
* use proper varint encoding
* add proper channel cleanup in mplex
* add connection cleanup in secio
* tidy up
* add dollar operator
* fix tests
* don't close connections prematurely
* handle closing streams properly
* misc
* implement address filtering logic
* adding pipe tests
* don't use gcsafe if not needed
* misc
* proper connection cleanup and stream muxing
* re-enable pubsub tests
2019-12-03 22:44:54 -06:00
Dmitriy Ryajov
1df16bdbce
set log level to trace - not enabled by default
2019-12-02 18:43:21 -06:00
cheatfate
80e128b0d9
Tests are now testing with --threads:on.
...
Bump version to 0.0.2.
2019-11-06 13:01:16 +02:00
cheatfate
833e8c9406
Fix overflow problem.
...
Fix compilation warnings.
2019-10-29 20:51:48 +02:00
Dmitriy Ryajov
7b66198566
use init instead of toMultiAddr
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
9c3b73d40b
fix: floodsub with multiple nodes
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
3194e3ac5b
fixes after building with 0.20.2
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
a1c760127b
fix floodsub tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
f9f75254af
readding commented out tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
b281f46ee5
add tests for self trigger
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
468cddeb45
style/cleanup
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
3b9d34116d
decrease floodsub traffic
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
60b5b2dc2e
add pubsub tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ed372b5fab
switch tests cleanup
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
34d1a641de
cleanup/test pubsub
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
c7606ce2eb
readMsg should never return an empty buffer
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
f7e5c8ee30
bring back commented tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
f3afe0a6ce
feat: allow ussage of 0 addrs
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
5b3f93ba1c
feat: allow multiple handlers per topic in pubsub
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
e57e10703b
test: re-enable identify
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
393a9bb4e5
remove debug echos
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
011df568b7
finished integrating secio
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
9bb892de69
wip: integrating and testing secio
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
27e4516796
fix breaking test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
bcaed7c6b9
refactor: identify requires Optional[T] keys
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
f47d9196b1
test finishes correctly
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
c1983e1685
commented out outdated tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
1fe2a391ae
fix: temprorarily disable broken tests in mxplex
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ef89e98479
renaming channel
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
88079a2864
incomming connection handling flow and tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
8920cd7d60
misc: pubsub/floodsub and logging
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
177eb71ffa
wip: floodsub initial implementation
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
74d2aea63d
adding chronicles topics
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
0347a8ef1d
test connections properly
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
2febd47e0d
don't complete futures twise
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
435c69633f
adding chronicles logging
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
93a9fd203a
fix: multistream tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
e31966b6f8
fix: switch, with identify and mplex
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
997745b7e7
add multiple read/write streams test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
e53c87e197
reworked to make msg reading sequential
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
f761a7050e
read/write order test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ba843f4091
wip: interop testing
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
8cd1b71781
cosmetic
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
13ca6d253d
fix: multistream tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
0f52a6e798
fix: switch and tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
6f8de062bb
fix: multistream
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
5237fc8b12
test multiple streams with mplex
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
746987156d
reworked switch
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
0b784c5b58
don't pass stream handler through contructor
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
9889bd9cbf
return proto string from select, instead of bool
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
cc595f7947
allow selecting one of many protos in identify
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
a7e5fde6f7
check identify request against known pubkey
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ec351cc2b0
misc: cleanup mplex
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
6ce2782e5c
add missing test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
9b20dbc7ae
add mplex tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
9b485b3082
feat: half closed channels
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
6058a3fc69
split mplex
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
c2ce55a94a
finish basic tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
36917c5adc
disable switch tests temporarily
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
1611d2b1c0
readding missed tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
a0aaa29739
wip: mplex and mplex tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
f4a9b9cba9
test: rework remove generic protocol constructor
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
0c0184ca63
fix: tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
b4dced6186
fix: use custom constructor
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
96cd7bcf50
wip: mplex tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
12702e2cd2
adding bufferstream tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
7f0627378c
misc
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
fceea14aa5
adding bufferred stream
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
cbf0f4f186
move streams to own dir
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
85b0b5d1da
don't do pointless cast
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ef7a0b41e4
add switch tests to native
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
db1aad3df0
adding switch e2e test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
79129ea6d1
`handles` should be called on concrete transport
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
3df92e0d67
wip: switch
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
022a248ca3
reworked protocol
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
22dd8c0f6b
add native tests to testnative
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
e2b04fc30d
add gcsafe pragma
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
0f42be495b
remove dead code
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ca4ccbe37f
don't use method as handler in protocol base
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
5eced0abee
rename multistream
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
aa2dfababd
wip: identify
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
b85d616a13
call the handler with the protocol context
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
8d4de6b587
remove reduntant test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
002328f7e5
don't use conflicting ips
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
3d7f657ce8
rename readerwriter to stream
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
d23398f498
nimpretty
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
ebab744106
end to end tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
97788f1c49
end to end tests for multistream
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
77aa11f0f3
removing bins
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
573a568946
fix tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
64e92eb9da
adding `na` test/functionality
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
4dcb542ae8
add `ls` test
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
e13f42f9bb
wip: initial multistream handler implementation
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
307c76e139
feat: implemented select
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
5d07145a0a
feat: added stream abstraction and chronos wrapper
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
5f8e633c0f
feat: use error pragma to signal abstract methods
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
a91c15c47a
feat: adding dial/listen test with transports on both ends
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
c15a9bdd67
feat: adding dial tests
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
c8546583e6
feat: tcp transport listen
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
47106a6a7d
wip: adding test
2019-10-11 08:15:24 +09:00
cheatfate
7138f7e94d
Add more primitives for SecIO.
...
Fix SIGSEGV inside of rsa.nim and ecnist.nim.
2019-09-11 19:03:39 +03:00
cheatfate
968e635746
Add secp256k1 curve support and tests for it.
2019-09-02 21:55:42 +03:00
cheatfate
2ab6b2c3ca
Fix #17 .
...
Add go-libp2p-daemon logging to file.
Fix mistypes in tests.
Fix issues with connection to dedicated go-libp2p2-daemon.
2019-08-22 00:42:44 +03:00
cheatfate
dfd824bd03
Fix #22 .
...
Fix wire.initTAddress(MultiAddress).
Add Windows support to daemonapi.
Add CI tests for daemonapi on Windows.
Fix Linux CI tests to install latest daemon.
2019-08-01 08:56:59 +03:00
cheatfate
d685147c52
Move ipnet/iface functionality to nim-chronos.
...
Adjust tests.
2019-04-15 11:16:54 +03:00
cheatfate
ab8b87be9a
Fix deprecation warnings.
2019-03-31 01:32:04 +02:00
cheatfate
f8dc3abe36
Add MultiAddress pattern matching procedures (go-multiaddr-fmt) with tests.
...
Add some comments.
2019-03-20 11:41:37 +02:00
cheatfate
518d33e26c
Add cross-platform getInterfaces() and test.
2019-03-18 10:42:30 +02:00
cheatfate
9ddc47fa56
IpMask, IpNet and tests initial commit.
2019-03-18 01:18:10 +02:00