Commit Graph

112 Commits

Author SHA1 Message Date
Zahary Karadjov e89e59aa59
`enterList` now returns a bool 2020-02-27 20:09:05 +02:00
Ștefan Talpalaru f4712aaf74
rename safeEnterList() to enterList()
in order to avoid unhandled exceptions due to malformed data received
over the network
2020-02-25 16:10:09 +01:00
kdeme 0229547c41
More explicit Exceptions + fix re-raising 2019-12-04 12:34:37 +01:00
kdeme 4976bd9fb9 Replace getCurrentException and getCurrentExceptionMsg 2019-12-02 23:35:34 +02:00
Zahary Karadjov a54fdc8073 Cosmetic renames to match the protocol naming conventions 2019-11-25 19:55:41 +02:00
zah 7a39a50c27 Allow devp2p sub-protocols to use version 0; Fix #119 (#121) 2019-11-19 08:16:35 +01:00
Zahary Karadjov 14e99e0711
Changes related to the new ETH interop spec
* RPC requests and responses with a single parameter are now inlined
2019-10-23 12:10:16 +03:00
kdeme 98be627bcc Make msgId fixed int32 2019-10-23 09:35:33 +09:00
kdeme 02a6906c01
Remove the p2p disconnect handling from dispatchMessages 2019-10-14 12:01:01 +02:00
kdeme 9ee208876d
Fix possible AssertionError in ByteRange due to invalid access 2019-10-10 14:40:40 +02:00
kdeme 87f2a51a1b
Fix segfault + fix IndexError (causes also segfault in release) 2019-10-09 22:19:41 +02:00
Bruno Škvorc f3aad8f925 Small clarification to protocol name length doc
As per conversation in PR
2019-08-20 21:33:16 +03:00
kdeme 8451ce6c3b Add necessary re-exports, fixes #91 2019-08-20 13:59:34 +03:00
nolash 5dc8117a07 Allow longer rlpx protocol names (for compatability with swarm) 2019-08-19 20:33:38 +03:00
Zahary Karadjov 1fe3de6c39
Changes required for the latest ETH2 spec 2019-08-07 06:13:45 +03:00
Ștefan Talpalaru 620573f63c use new nim-metrics API 2019-07-16 14:06:46 +03:00
kdeme 14ae046354 Increase rlpx maxMsgSize *10 2019-07-11 17:19:19 +02:00
Ștefan Talpalaru d445412297
use nim-metrics 2019-07-10 03:01:30 +02:00
Jacek Sieka 75c7c62651
std_shims -> stew 2019-07-07 11:56:01 +02:00
kdeme 3d2436d3df Provide empty RLP list data for devp2p ping/pong messages, for Parity compatibility 2019-07-04 09:43:29 +02:00
kdeme 934a247c23 Add/update some debugging info 2019-07-04 09:43:29 +02:00
Ștefan Talpalaru 799b1a7bb0
initial statistics collection setup 2019-06-26 14:49:38 +02:00
Zahary Karadjov 07484bfc88
Refactorings enabling more code reuse in the libp2p back-ends 2019-06-24 05:12:23 +03:00
Zahary Karadjov 8acdbedfbd
Fix a simple merge issue 2019-06-24 05:12:23 +03:00
Zahary Karadjov 11fce4122e
Pre and post-serialization steps for send procs 2019-06-24 05:12:23 +03:00
Zahary Karadjov 9191bc7851
Bugfix: Fix an empty name field in the ETH/LES protocol info 2019-06-24 05:12:23 +03:00
Zahary Karadjov bac87ff6d2
Restore the compilation of Nimbus by restoring the support for p2pProtocol decorators 2019-06-24 05:12:23 +03:00
Zahary Karadjov a492e3c218
More flexible definitions of Responders 2019-06-24 05:12:23 +03:00
Zahary Karadjov 1adad7f4da
Fixes for compiling beacon_node in RLPx mode 2019-06-24 05:12:22 +03:00
Zahary Karadjov e4ec051fc6
Take advantage of the new shared DSL helpers to simplify the RLPx back-end implementation 2019-06-24 05:12:22 +03:00
Zahary Karadjov 638442070d
Simplified the generation of sender procs 2019-06-24 05:12:22 +03:00
Zahary Karadjov 76bb2cde5c
More shared code extracted out of RLPx 2019-06-24 05:12:22 +03:00
Zahary Karadjov f761889518
Refactored the p2pProtocol macro to eliminate most code duplication in the backends 2019-06-24 05:12:22 +03:00
kdeme 0a5d6118c2 Add check if message loop is finished during connection stage 2019-06-21 15:58:40 +03:00
kdeme dc02a5b28d Fix two AssertionErrors from being raised all the way up 2019-06-14 16:15:09 +03:00
kdeme b44675eda5
Same error handling for rlpxAccept as for rlpxConnect 2019-06-11 14:38:02 +02:00
kdeme f8bdec88c9
Rework duplicate connections check and fix #36 2019-06-11 12:46:26 +02:00
cheatfate 88b3b949a8 Fix return value handling for transport.write(). 2019-05-30 13:37:45 +03:00
kdeme b977996b0a Fix unhandled exceptions 2019-05-15 15:10:11 +03:00
kdeme 42fbbb8961
Make the wait + close not blocking 2019-05-09 14:26:02 +02:00
kdeme 6ba61488ff Fix transport leaks + handle disconnects in message loop 2019-05-09 10:35:02 +02:00
kdeme 442c3d9f7b More whisper changes (#43)
* Make messages with invalid ID a catchable error as we should not disconnect on this

* Add unimplemented message IDs used by Status

* Make whisper log less verbose + add comment on duplicate messages

* Cleanup + add documentation
2019-04-26 07:36:54 -06:00
Jacek Sieka e1af5a0c02
don't swallow random exceptions (#11) 2019-04-22 19:31:12 -06:00
kdeme 5d9239ef17 Quick fix for when removePeer gets called before dispatcher is initialized 2019-04-18 17:17:57 +02:00
kdeme 7cdd31e982 Add option to set specific protocol for observer 2019-04-18 17:17:57 +02:00
Yuriy Glukhov ca8519ef61
Workaround compilation error cause by chronos newFuture changes 2019-04-10 18:16:18 +03:00
kdeme 9e5cf2086c Address review feedback 2019-04-08 13:51:32 +03:00
kdeme 7fd501136f Add catch for exception in any of the disconnect handlers 2019-04-08 13:51:32 +03:00
kdeme 5550179dd1 Fix unhandled exceptions #3 2019-04-08 13:51:32 +03:00
Ștefan Talpalaru 49fff3a859
Merge branch 'fix_nimbus_build' of github.com:jangko/nim-eth into jangko-fix_nimbus_build 2019-03-28 17:32:37 +01:00
Zahary Karadjov c4da31505e The end of the dispatchMessages loop is not really an error 2019-03-28 14:47:25 +02:00
andri lim 7a6b195021
fix nimbus/premix appveyor build 2019-03-27 19:53:28 +07:00
Zahary Karadjov c10da74b77 Addressed review comments 2019-03-26 17:32:17 +02:00
Zahary Karadjov dc2b6170b5 Improved error-handling; Timeouts in all handshakes 2019-03-26 17:32:17 +02:00
Jacek Sieka cbe67720ce
use Moment for tracking timeouts (#25)
* use Moment for tracking timeouts
* Use the new Duration type throughout RLPx
2019-03-25 11:32:18 -06:00
Zahary Karadjov f0bf0570d1 Support compiling with json logging; Drop package_visible_types 2019-03-25 02:10:09 +02:00
Ștefan Talpalaru 9146e8e2f0
assert() -> doAssert() 2019-03-13 23:15:26 +01:00
Zahary Karadjov f15cbbae90 Support types with custom RLP serialization in param positions 2019-03-13 23:22:22 +02:00
Zahary Karadjov 3efec171a6 Make the APIs compatible with libp2p
Lib2P2 handles RPC requests and responses with separate streams
while DEV2P2 is relying on tagged messages transmitted over a
single stream. To cover both models through the same application
code, we introduce a new `response` variable in the request handlers.
The user is supposed to issue a call to `response.send` in order to
reply to the request. Please note that the `response.send` signature
is strongly typed and depends on the current message.
2019-03-12 13:36:39 +02:00
Yuriy Glukhov eb1a04e93b Fixes #13 2019-02-27 13:14:22 +02:00
Mamy Ratsimbazafy 07cf801b97
Rebrand asyncdispatch2 to chronos (#2)
* Rebrand asyncdispatch2 to chronos

* fix nimble path to chronos
2019-02-06 17:01:04 +01:00
Yuriy Glukhov e75a00f86e Moved eth-p2p to eth 2019-02-05 17:40:29 +02:00