Common utilities for Ethereum https://nimbus.status.im
Go to file
Kim De Mey 7f20d79945
Overhaul of ENR implementation - part I (#707)
- Rework adding and updating of fields by having an insert call
that gets used everywhere. Avoiding also duplicate keys. One
side-effect of this is that ENR sequence number will always get
updated on an update call, even if nothing changes.
- Deprecate initRecord as it is only used in tests and is flawed
- Assert when predefined keys go into the extra custom pairs.
Any of the predefined keys are only to be passed now via specific
parameters to make sure that the correct types are stored in ENR.
- Clearify the Opt.none behaviour for Record.update
- When setting ipv6, allow for tcp/udp port fields to be used
default
- General clean-up
- Rework/clean-up completely the ENR tests.
2024-06-24 14:57:39 +02:00
.github/workflows test Nim 2.0 in CI and use non-EOL macOS version (#677) 2024-02-14 05:07:55 +00:00
doc fix build for `dcli` and instructions for new path (#638) 2023-09-22 10:32:43 +00:00
eth Overhaul of ENR implementation - part I (#707) 2024-06-24 14:57:39 +02:00
tests Overhaul of ENR implementation - part I (#707) 2024-06-24 14:57:39 +02:00
tools Use results.Opt instead of option in discv5, utp and nat (#705) 2024-06-18 18:09:27 +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 results: use standalone repo (#687) 2024-05-30 14:46:57 +02: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.