Common utilities for Ethereum https://nimbus.status.im
Go to file
Kim De Mey aa92ad4f42
discv4: Fix assert on invalid RLP list in Neighbours message (#763)
The assert would occur when the rlp size of the a node in the
nodes rlp list is incorrectly set too high and then the next
`listElem` call for the next node will start from the
incorrect data. When that data is not a list the assert in
`listElem` will be triggered.

Fixed by adding a `listLen` call which checks if it is a list.
Added also more strictness by:
- Checking if that list is of len 4, which it must be
- raising immediatly on invalid IP length
- raising immediatly on invalid public key / node id

+ test cases
2024-12-02 09:38:00 +01:00
.github/workflows Fix Authorization fields name to v, r, s (#749) 2024-10-15 14:09:16 +00:00
doc remove binary tries (#736) 2024-09-30 12:59:16 +02:00
eth discv4: Fix assert on invalid RLP list in Neighbours message (#763) 2024-12-02 09:38:00 +01:00
tests discv4: Fix assert on invalid RLP list in Neighbours message (#763) 2024-12-02 09:38:00 +01:00
tools Update discv5 to use non deprecated ENR calls and simplify code (#710) 2024-06-27 16:18:21 +02:00
.gitignore normalise nimble, ci (#567) 2024-01-23 16:48:29 +00:00
LICENSE-APACHEv2 Moved eth-common to eth 2019-02-05 12:10:36 +02:00
LICENSE-MIT Moved eth-common to eth 2019-02-05 12:10:36 +02:00
README.md move rocksdb to nimbus-eth1 (#460) 2022-04-04 13:46:57 +02:00
config.nims Refactor p2pProtocol internals (#657) 2024-01-22 16:47:46 +07:00
eth.nimble devp2p: upgrade to v5 (EIP-706) (#760) 2024-11-08 03:44:04 +01:00
nim.cfg move -d:nimRawSetjmp to nim.cfg (#513) 2022-06-21 16:25:42 +02:00

README.md

eth - Eth Common Library

License: Apache License: MIT Stability: experimental Github action

Introduction

Ethereum-related utilities written in Nim. Includes things like Bloom filters, private/public key utilities, RLP, devp2p, and more.

Docs

Prerequisites

  • Nim & Nimble

Building & Testing

# Install required modules
nimble install
# Run full test suite
nimble test

You can also run specific parts of the test suite, e.g.:

# Test p2p functionality
nimble test_p2p
# Test rlp functionality
nimble test_rlp

Fuzzing

Next to the test suite, there are also several fuzzing test cases available. How these can be run is explained in the fuzzing readme.

License

Licensed and distributed under either of

or

at your option. This file may not be copied, modified, or distributed except according to those terms.