Jacek Sieka
6bd6bae86c
Align core types with execution spec ( #733 )
...
Since these types were written, we've gained an executable spec:
https://github.com/ethereum/execution-specs
This PR aligns some of the types we use with this spec to simplify
comparisons and cross-referencing.
Using a `distinct` type is a tradeoff between nim ergonomics, type
safety and the ability to work around nim quirks and stdlib weaknesses.
In particular, it allows us to overload common functions such as `hash`
with correct and performant versions as well as maintain control over
string conversions etc at the cost of a little bit of ceremony when
instantiating them.
Apart from distinct byte types, `Hash32`, is introduced in lieu of the
existing `Hash256`, again aligning this commonly used type with the spec
which picks bytes rather than bits in the name.
2024-09-29 10:52:19 +02:00
Kim De Mey
aa1e738a97
Add discv5 constants to know allowed max talkresp message size ( #732 )
2024-09-19 17:53:11 +02:00
Kim De Mey
8088fe72d7
Update discv5 to use non deprecated ENR calls and simplify code ( #710 )
...
And due to avoiding an extra PublicKey.fromRaw call we get a
little performance boost also.
2024-06-27 16:18:21 +02:00
Kim De Mey
26212c881b
Use results.Opt instead of option in discv5, utp and nat ( #705 )
...
+ some other minor cleanups
2024-06-18 18:09:27 +02:00
Kim De Mey
21f3014f54
Remove usage of stew/shim/net ( #670 )
...
* Remove usage of stew/shim/net and replace with std/net where needed
* Remove chronosStrictException compile flag
2024-01-24 09:09:11 +01:00
tersec
ca4898e24a
switch NAT module from ValidIpAddress to IpAddress ( #647 )
...
* switch NAT module from ValidIpAddress to IpAddress
* fix dcli build
* switch discv5 from ValidIpAddress to IpAddress
* fix fuzzers build
* mostly finish nim-eth to IpAddress transition
2023-11-10 09:28:21 +03:00
jangko
917888356e
no more wild constants and rename ecdhSecret to ecdhSharedSecret
2023-04-21 16:08:57 +07:00
jangko
9bf2e1786b
remove ecdhRaw usage and replace it with ecdh+custom hash function
2023-04-20 15:45:23 +07:00
Justin Traglia
e7d3de6ebf
Fix some typos ( #557 )
2022-11-16 17:44:00 +01:00
Kim De Mey
86b37bf72e
Default compile all tests and binaries with TRACE log level ( #549 )
...
In order to avoid unused warning and more importantly to make
sure all log statements work.
2022-11-10 09:01:58 +01: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
Jacek Sieka
1b516682bd
bearssl: use split api ( #510 )
2022-06-17 22:45:37 +02:00
Kim De Mey
05ef9a8e00
More --styleCheck fixes for discoveryv5 and eth/common ( #473 )
2022-02-03 15:51:08 +01:00
Kim De Mey
2c236f6495
Style fixes according to --styleCheck:usages ( #452 )
...
Currently only setting `--styleCheck:hint` as there are some
dependency fixes required and the compiler seems to trip over the
findnode MessageKind, findnode Message field and the findNode
proc. Also over protocol.Protocol usage.
2021-12-20 13:14:50 +01:00
Etan Kissling
5655bd035c
Merge pull request #450 from etan-status/reject-whoareyou-len
...
reject WHOAREYOU packets with non-empty message
2021-12-14 16:22:25 +01:00
Ștefan Talpalaru
2088d7568d
CI: test with multiple Nim version ( #429 )
...
* CI: test with multiple Nim version
* clean up the testing tree a little
* replace "unittest" with "unittest2"
2021-12-11 19:12:55 +01:00
Etan Kissling
45387ad4d2
reject WHOAREYOU packets with non-empty message
...
This changes the `discv5` parser to reject malformed WHOAREYOU packets
that have a non-0 message length. The extra data used to be ignored.
The `message` part of WHOAREYOU packets is always empty.
See https://github.com/ethereum/devp2p/blob/master/discv5/discv5-wire.md
2021-12-11 15:55:14 +01:00
Kim De Mey
79911ed5d8
Log distance to uint16 and add public neighbours calls ( #371 )
...
* Use uint16 instead of uint32 for discv5 log distance
* Make neighboursAtDistances and neighbours calls available
2021-07-13 10:05:46 +02:00
Kim De Mey
8abe6b7144
Add support for discv5 talk protocols ( #357 )
2021-05-20 09:49:46 +02:00
Kim De Mey
762415319c
Add build_dcli target and add it to CI ( #344 )
...
* Add build_dcli target and add it to CI
* Fix local imports for dcli
* And use local imports for all other files too
* Use local imports in tests and rlpx protocols
2021-04-06 13:33:24 +02:00
Kim De Mey
207b783253
Nimble file cleanup and group discv5 tests to compile once ( #340 )
2021-03-29 15:26:34 +02:00
Kim De Mey
a339944bcf
Some discv5 cleanup / refactor ( #326 )
...
* Use Address in HandshakeKey
* Refactor + comments + dcli use queryRandom
* Rename types.nim to messages.nim
2021-02-02 22:47:21 +01:00
kdeme
bfbad64d83
Add update of ENR on newly discovered address
2021-02-01 20:30:55 +02:00
kdeme
689eef2c11
Move IpAddress into the pong message
2021-02-01 20:30:55 +02:00
kdeme
44637cdd8e
Remove support for discovery v5.0
2020-11-13 12:33:07 +01:00