770 Commits

Author SHA1 Message Date
jangko
ae616935c3
move eth1 specific code to where it belongs 2022-10-11 14:52:25 +07:00
Kim De Mey
bd8d9c65a3
Seperate discv5 protocol message encoding from packet encoding (#539)
And some additional clean-ups
2022-10-10 12:13:20 +02:00
Kim De Mey
ceac50c62f
Log the IP-address + Port when a discv5 send fails (#542)
This is specifically useful for when the failure is caused by an
"Operation not permitted", as then we can see for which specific
port(s) a firewall might be blocking outgoing traffic.
2022-10-10 10:33:40 +02:00
Kim De Mey
3e44299b49
Remove unused mock_peers and tserver files (#540) 2022-10-07 18:28:41 +03:00
Kim De Mey
4c821c5eae
Remove async_utils/traceAsyncErrors usage from discv5 (#541) 2022-10-07 18:20:03 +03:00
Kim De Mey
ba69c1ff29
Quickfix for a potential double future completion in rlpx (#538) 2022-10-06 13:34:35 +02:00
Jacek Sieka
591360284b
remove Whisper (#537)
replaced by https://rfc.vac.dev/ / https://github.com/status-im/nwaku
2022-09-21 11:58:22 +02:00
Jacek Sieka
2734ed6bda
kad: remove unnecessary randomize call (#535)
* kad: remove unnecessary randomize call

* use `rng.sample`
2022-09-19 10:47:30 +02:00
KonradStaniec
059d319c16
Safer mpt proof verification (#536)
* Safer mpt proof verification
2022-09-14 19:02:05 +02:00
jangko
5885f638e4
discv4: fix ping pong time removal algorithm 2022-09-07 21:19:05 +07:00
jangko
58d7e98c5c
fix nim-devel compilation error in auth.nim 2022-09-07 11:49:00 +07:00
jangko
84e60c6930
fix discovery v4 ping pong handler 2022-09-07 11:48:59 +07:00
andri lim
2186d67163
fix openssl problem in ci (#533)
* tighter nimcrypto imports

* install openssl on macos for Nim devel

* add getTotalDifficulty base method to AbtractChainDB

Co-authored-by: Jacek Sieka <jacek@status.im>
2022-09-05 17:00:05 +07:00
Jacek Sieka
5e4123fda8
tighter nimcrypto imports (#532) 2022-09-05 11:09:38 +02:00
Jacek Sieka
d31abca010
clean up eth_types (#531)
`eth_types` is being imported from many projects and ends up causing
long build times due to its extensive import lists - this PR starts
cleaning some of that up by moving the chain DB and RLP to their own
modules.

this PR also moves `keccakHash` to its own module and uses it in many
places.
2022-09-02 16:57:52 +02:00
jangko
4f0155e626
add some peer convenience funcs to PeerPool and EthNode 2022-08-23 15:29:34 +07:00
jangko
9f1d5ef1a0 improve method not implemented message of AbstractChainDB
previous message only shows method not implemented,
but the method name is missing. now the message including method name
2022-08-22 18:09:13 +07:00
Zahary Karadjov
3a0afa4aa2 Add sqlite3.isInsideTransaction 2022-08-22 18:09:13 +07:00
Zahary Karadjov
4c70293883
Add a helper for calculating the EIP1559 base fee 2022-08-18 23:36:45 +03:00
Zahary Karadjov
3e7da14667
Constants shared between nimbus-eth1 and nimbus-eth2 2022-08-18 19:27:46 +03:00
tersec
6e04cbeb88
update from deprecated to supported Ubuntu and macOS GitHub Actions CI images (#526) 2022-08-18 08:40:05 +00:00
KonradStaniec
2556b090ea
Add user data to utp (#525) 2022-08-12 15:09:59 +02:00
KonradStaniec
883825aad7
Make discv5 timeouts configurable (#523) 2022-08-05 15:19:16 +02:00
KonradStaniec
a5ea6a9a90
Add connection limits to utp (#522) 2022-08-04 15:55:39 +02:00
tersec
4e9a62e765
update to supported macOS GitHub CI image (#521) 2022-07-22 15:19:53 +00:00
tersec
92b14b43eb
--styleCheck:error (#520)
* --styleCheck:error

* testcase -> testCase

* more testcase -> testCase

* remove unused imports

* MessageKind enum name consistency in tests

* rest of fuzz_decode_message

* rlpEncodeEIP155 -> rlpEncodeEip155
2022-07-21 08:58:17 +00:00
KonradStaniec
cbb233d8a9
Increase tests speed to avoid hangs (#511) 2022-07-11 08:24:03 +02:00
Kim De Mey
9d7e4b031a
Clean-up of several compiler warnings (#519) 2022-07-09 10:55:15 +02:00
Kim De Mey
7cc3c59ff1
Clean-up bootnodes.nim (#518)
- Remove Waku/Whisper Status bootstrap nodes as this is no longer
part of nim-eth
- Update bootstrap nodes according to latest data in go-ethereum
2022-07-08 20:32:41 +02:00
Kim De Mey
c67e48be1d
Change info log to debug in uTP router connect (#517)
These uTP logs are common and should be under debug,
else they spam on application level.
Probably accidentally changed in https://github.com/status-im/nim-eth/pull/508
2022-07-04 12:13:46 +02:00
Jordan Hrycaj
2c08626ed8
Sepolia bootnodes added (#516) 2022-07-01 16:42:43 +01:00
tersec
6e813353eb
make some safe cstring conversions explicit (#515) 2022-06-28 13:03:02 +02:00
Miran
5c0893bfb6
move -d:nimRawSetjmp to nim.cfg (#513)
* move -d:nimRawSetjmp to nim.cfg

Refs https://github.com/status-im/nimbus-build-system/issues/44
2022-06-21 16:25:42 +02:00
oskarth
44cb2256fd
Delete Whisper remains (moved to nim-waku) (#386)
Types, protocols, tests, hardcoded nodes, references.

Now part of nim-waku:
- https://github.com/status-im/nim-waku/pull/663
- https://github.com/status-im/nim-waku/pull/678
2022-06-20 19:10:50 +03:00
Jacek Sieka
1b516682bd
bearssl: use split api (#510) 2022-06-17 22:45:37 +02:00
Jordan Hrycaj
8761ea3222
Fix stability issues (#512)
* Fix stability issues

why:
  Handling malformed messages typically raises `RangeError` exceptions
  when de-serialising RLP, or decoding message data. This is an
  (incomplete) attempt to weed out some out it driven by real live
  tests.

remark:
  Employing the new `snap` protocol there might be different views on what
  the messages really contain (currently specs are more a hint.)

* Update RLP exception handling

* Undo effect-less patch

why:
  problem occurred somewhere above the try/catch handler

* Using `checkedEnumAssign()` for RLP enum
2022-06-16 16:23:07 +01:00
KonradStaniec
dacf827a86
Add custom scalar functions to sqlite (#509) 2022-06-02 14:14:15 +02:00
KonradStaniec
dffaa78cbe
Install cancel callback on whole connection future (#508) 2022-05-30 10:28:10 +02:00
Jordan Hrycaj
00ed6ad312
Dedicated RLP reader for DisconnectionReason (#507)
* Provide dedicated `DisconnectionReason` enum type RLP reader

why:
  Without this reader, the program communicating via RLPX will crash when
  receiving out of bound reason codes disconnect message.

  Out of bound value assignments to an enum causes a `RangeError`defect
  and consequently the program to terminate. This `RangeError` is avoided
  here and a `MalformedRlpError` catchable error raised.

* Using default exception type in bespoke `read(DisconnectionReason)`

why:
  This should not differ from the default enum parser. The particular
  message is different and more targeted, here.

  Note: The default RLP parser was not used because `
  `array[1,DisconnectionReason]` is currently not properly handled and
  should give a siliar error message as a `DisconnectionReason` error.

* De-clutter, custom read() was not needed

Co-authored-by: jordan <jordan@curd.mjh-it.com>
2022-05-26 10:23:40 +01:00
Jacek Sieka
3263816d10
remove bzz protocol (#506)
Swarm has moved to libp2p
2022-05-07 13:50:43 +02:00
Kim De Mey
4463a28fd6
Add discv5 max packet size limit (#505) 2022-05-02 16:49:19 +02:00
Kim De Mey
ea3bb0836d
Update discv5 implementation explainer comment (#504)
And some line char limit adjustments.
2022-04-22 16:46:47 +02:00
Kim De Mey
01684a2130
Adjust uTP log levels to be more user focused (#502)
Also cleanup several whitespace and line char limits
2022-04-12 21:11:01 +02:00
Kim De Mey
6d4b1f4fe1
Handle the decodeAuthMessage error case separatly and log to trace (#498)
* Handle the decodeAuthMessage error case separatly and log to trace

Garbage data on the TCP port (e.g. from port scanners) would
cause lots of error log messages, so log this to trace and get rid
of a (little) bit of exception usage in the process.

* Remove usage of result var in rlpxAccept and rlpxConnect

* Discv4: Add ENRRequest & ENRResponse msgs to avoid fails on these

Fix #499
These messages are not implemented yet however, but just ignored.
2022-04-04 22:31:09 +02:00
Jacek Sieka
41b8588ade
move rocksdb to nimbus-eth1 (#460)
sqlite ftw!
2022-04-04 13:46:57 +02:00
KonradStaniec
eb785207ae
Make packet size configurable (#497)
* Make packet size configurable
2022-04-04 13:44:32 +02:00
Ștefan Talpalaru
ea03e66485
nat: getPublicRoutePrefSrcOrExternalIP() (#496)
* nat: getPublicRoutePrefSrcOrExternalIP()

And some refactoring to minimise code duplication.
2022-03-31 16:07:28 +02:00
Ștefan Talpalaru
5a78e2fe23
disc: updateExternalIp() (#495)
* disc: updateExternalIp()

New public proc that can be used to inform the discovery subsystem about
a changed external IP (as reported by UPnP/NAT-PMP in some other module).
2022-03-30 12:52:45 +02:00
KonradStaniec
c28597fee5
Change closing proc (#492) 2022-03-28 12:35:08 +02:00
Jordan Hrycaj
4c7cdcaaf2
Merge pull request #484 from status-im/jordan/nethermind-sync
Jordan/nethermind sync
2022-03-28 09:34:51 +01:00