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
cheatfate
abde17e8c2
Prepare for Windows tests.
2019-03-16 00:24:33 +02:00
cheatfate
dc2d0538ff
Fix import bugs.
...
Add PublicKey and Signature types to daemonapi.
Add more tests for crypto.nim
2019-03-06 13:23:12 +02:00
cheatfate
b185ad79f8
Add PeerID test vectors.
2019-03-06 03:48:22 +02:00
cheatfate
39129d0ec1
Add base64 and tests for it.
...
Adopt multibase to be able to use base64.
Fix base32 typos.
2019-03-06 02:36:09 +02:00
cheatfate
215c6c4257
Add SHA-1 support to multihash.nim, enabled tests for it.
2019-03-05 11:49:59 +02:00
cheatfate
77f34af737
Fix testdaemon.nim.
2019-03-04 20:51:10 +02:00
cheatfate
b235c84bb2
Add key interface with test vectors.
2019-03-02 21:19:41 +02:00
cheatfate
14686714c0
Add raw init functions for ecnist.nim
...
Add ECDHE helpers for ecnist.nim
Add test vectors for ECDHE.
2019-03-01 08:34:52 +02:00
cheatfate
2a2e378ced
Fix checkScalar in ecnist.
...
Add ed25519 and tests.
Add some comments.
2019-02-28 14:17:39 +02:00
cheatfate
39fb9ed2de
Fix fail verification tests.
2019-02-25 11:06:50 +02:00
cheatfate
887795bbd2
Final RSA changes.
...
Add RSA tests and test vectors.
2019-02-24 02:07:13 +02:00
cheatfate
1aaf4797c9
Finish EC NIST curves implementation.
...
Add EC NIST curves tests and test vectors.
2019-02-22 13:32:15 +02:00
cheatfate
64d9895f25
Fix tests rename asyncdispatch -> chronos.
2019-02-14 03:32:29 +02:00
cheatfate
7593d4d970
Fix unix path multiaddress serialization/deserialization.
...
Add tests for unix path multiaddress.
Add wire.nim.
Fix latest breaking changes from go-libp2p-daemon.
2019-01-09 19:12:15 +02:00
cheatfate
7e2d3e213f
Add isWire() procedure for MultiAddress.
2018-12-29 14:44:27 +02:00
cheatfate
bf2737525d
Fix cid with proper CIDv1 code.
...
Fix daemonapi to use proper Cid type.
Make daemonapi cid test more complex.
2018-12-16 15:51:12 +02:00
cheatfate
bd7c4d646f
Initial CID implementation.
2018-12-16 04:55:02 +02:00
cheatfate
9c2b8591d4
Got fix for #8 in go-libp2p-pubsub.
...
Enable full test.
2018-12-14 11:00:49 +02:00
cheatfate
0b807e7ee5
Workaround for bug https://github.com/libp2p/go-libp2p-pubsub/issues/130 .
2018-12-13 11:17:02 +02:00
cheatfate
2ca85ab950
Show logs if something goes wrong.
2018-12-12 16:20:26 +02:00
cheatfate
0eb649c990
Add logging `go-libp2p-daemon`.
...
Comment FloodSub test.
2018-12-12 16:08:55 +02:00
cheatfate
7d60e22782
MultiBase initial implementation with tests.
2018-12-12 03:52:42 +02:00
cheatfate
fc6902dda2
Add PeerInfo string representation procedure.
...
Use only IPv4 for pubsub tests.
2018-12-11 04:17:36 +02:00
cheatfate
01a268a440
Attempt to fix tests.
2018-12-10 22:55:06 +02:00
cheatfate
337c6c932c
Fix go-libp2p-daemon shutdown.
2018-12-10 12:38:12 +02:00
cheatfate
7e5f52afff
Fixes for pubsub methods and full tests for both methods.
2018-12-09 18:44:20 +02:00
cheatfate
bdcfa1f189
Add multihash test.
2018-12-05 03:01:00 +02:00
cheatfate
53fc4cce41
Fix MultiAddress Onion and P2P address validation and encoding/decoding.
...
Enabled Onion/P2P tests.
Add nimcrypto dependency to nimble file.
2018-12-05 02:30:50 +02:00
cheatfate
3abf7df73d
Fix base32 encoding and added more tests.
2018-12-03 16:59:40 +02:00
cheatfate
04b4d8f688
Add base32 encoding/decoding procedures and tests.
2018-12-03 15:07:14 +02:00
cheatfate
98aa3ed281
Add VBuffer implementation.
...
Add MultiAddress implementation and tests.
Adapt chat to use /p2p-circuit
2018-11-27 14:16:04 +02:00
cheatfate
cd190e62c2
Add base58 encoding and tests.
2018-11-24 00:06:06 +02:00
cheatfate
78cafd9156
Fix test compilation error.
2018-11-23 12:20:53 +02:00
cheatfate
9edc823b6c
Some fixes to chat, and one more test for bad cid provide.
2018-11-22 17:35:44 +02:00
cheatfate
3b554d0f51
Add LibP2P varint and tests.
...
Generalize Varint.
2018-11-20 23:39:35 +02:00
cheatfate
152a93e25b
Fix daemon test close api.
2018-11-19 22:53:20 +02:00
cheatfate
f49d67bc0d
Add one more test for self-connect-open-accept-stream.
2018-11-19 19:30:40 +02:00
cheatfate
deedc37fb3
Fix test.
2018-11-19 06:42:50 +02:00
cheatfate
dc482dfb45
Add simple daemon spawn test.
2018-11-19 06:34:05 +02:00
cheatfate
9262aa5e9e
Add Protobuf's variable integer test.
2018-11-19 06:18:11 +02:00