Commit Graph

741 Commits

Author SHA1 Message Date
Dmitriy Ryajov 6316b07e81 don't crash when stringifying nil peerinfo 2020-02-16 11:31:35 -06:00
Dmitriy Ryajov 4faf35c52c throw exception if handshake failed 2020-02-16 11:31:35 -06:00
Dmitriy Ryajov f4e9bc8bfb remove sleepAsync for synchronization 2020-02-16 11:31:35 -06:00
Dmitriy Ryajov 53e163abf2 check for size bounds when reading varints 2020-02-16 11:31:35 -06:00
Dmitriy Ryajov 94fc4e6fd2 don't use sleeps for synchronization 2020-02-16 11:31:35 -06:00
Giovanni Petrantoni 39dc9ad8a3 Revert "Implement timeout in mplex in order to read reliably close state"
This reverts commit 314cb6e6bffe122bcfbd155a4ef830849ace66ef.
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni 11bd55308f Revert "Properly use already specified MaxReadWriteTime as timeout"
This reverts commit 8f5dd75e7f28da08de2bf393b93cd290b82ed78b.
2020-02-12 11:57:38 -05:00
Giovanni Petrantoni ea0d167285 Fix max size write mplex test 2020-02-12 11:57:38 -05:00
Giovanni Petrantoni cf5dd27e57 Properly use already specified MaxReadWriteTime as timeout 2020-02-12 11:57:38 -05:00
Giovanni Petrantoni 4034dfae19 Implement timeout in mplex in order to read reliably close state 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 809a7af37e888d1faf8b0be83819003d570b9212.
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 136ac3f550 Use already existing error for channel push over size 2020-02-12 11:57:38 -05:00
Giovanni Petrantoni f9cbdc252f Improve connection.nim read error clarity when buffer overflow 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
Giovanni Petrantoni 3531ebf772 Fix typo 2020-02-12 11:57:38 -05:00
cheatfate 5b6f4bf5fa
Export MultiAddress pattern procedures. 2020-02-12 12:04:12 +02: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
Mamy Ratsimbazafy 8c406fb9e5
Set up CI with Azure Pipelines (#72)
* Set up CI with Azure Pipelines

[skip ci]

* Fix %PLATFORM%

* Add Azure badge

* Try to make nimble happy with windows PATH

* rename steps [skip ci]

* Mixed up posix/windows in pipeline

* add missing ARCH: x86 to Linux32

* Linux "32bit" CI was actually 64-bit, remove it from now

* Try to workaround path issues in windows

* More crazy path workarounds + display gcc version (debug win 32-bit)

* keep the bash workaround in

* mingw path as separate task

* Let's start a fresh day bout against Azure

* fix powershell variable interpolation

* make all scripts verbose to debug MacOS Go libp2p daemon script

* Don't test on Azure macOS, xerrors issue due to Go version:
- https://github.com/libp2p/go-libp2p-daemon/issues/139
- https://github.com/status-im/nim-beacon-chain/pull/397
- https://github.com/golang/go/issues/32246

* polish + reduce verbosity [skip ci]
2020-02-06 16:07:50 +01:00
Dmitriy Ryajov 88a030d8fb fix: removing timeouts from conn 2020-02-05 20:38:43 +01:00
Dmitriy Ryajov 2232ca598e don't timeout in pubsub 2020-02-04 17:59:57 +01:00
Zahary Karadjov 1bd933cd5a
More precise tracing 2020-02-04 17:27:32 +01:00
Zahary Karadjov 7bd305471c
Make sure the library can compile with json logging in trace mode 2020-02-04 15:17:39 +01:00
Dmitriy Ryajov 691efaa8a1 dont use result 2020-01-30 09:30:08 -06:00
Dmitriy Ryajov 171d60fb52 fix: reraise exception in readLp 2020-01-30 09:30:08 -06:00
Dmitriy Ryajov e157d71a46 use latest chronos 2020-01-29 10:55:32 -06:00
cheatfate 06886290dd
Add links to specifications to varint comments. 2020-01-29 11:14:25 +02: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 007b0219f3 use ECDSA as defaults, faster in tests 2020-01-09 12:55:21 -06:00
Dmitriy Ryajov 667691f784 send messages in batches 2020-01-09 12:55:21 -06:00
Dmitriy Ryajov cd8961cfb9 close and cleanup connections 2020-01-09 12:55:21 -06:00
Dmitriy Ryajov c6561b8851 add timeouts to connection/secio 2020-01-09 12:55:21 -06:00
cheatfate 107e71203d Fix #61. 2020-01-09 17:38:10 +02:00
Dmitriy Ryajov 58cdefac21 don't expose private api 2019-12-24 10:35:35 -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
Dmitriy Ryajov b6b0cdea98
fix: inconsistent error handling (#56)
* fix: inconsistent error handling

* fixing a few more returns

* remov reduntant returns

* feat: dont sleep in readLoop
2019-12-13 09:25:07 -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 77e866d29a
Address review comments 2019-12-09 19:17:29 +02: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 31aaa2c8ec update with latest changes 2019-12-07 10:50:58 -06:00