Kim De Mey
c3860244b1
Fix potentential uTP socket leak for socket in SynSent state ( #620 )
...
Socket leak could because ST_DATA (and ST_FIN) packets for sockets
not in connected stated were only dropped after appling acks.
2023-06-21 12:44:52 +02:00
Kim De Mey
cea23299be
Avoid double socket destroy on timed-out uTP SYN-ACK ( #619 )
2023-06-15 12:26:22 +02:00
tersec
d766fc435e
remove stddefects import ( #618 )
2023-06-11 12:14:10 +00:00
Etan Kissling
99d980c3f6
use correct exception in `parseCmdArg` ( #614 )
...
`parseCmdArg` is expected to raise `ValueError` but for `enr.Record`,
`Node`, `PrivateKey`, and `NatConfig`, we raise `ConfigurationError`.
Change to `ValueError` instead.
2023-06-06 22:28:14 +02:00
tersec
c608426d03
add/change Deneb fields per https://github.com/ethereum/execution-apis/pull/417 ( #616 )
2023-06-03 18:47:55 +00:00
Jacek Sieka
55b9da0bea
fix cancellation syntax ( #615 )
...
* fix cancellation syntax
* simplify
2023-06-02 14:33:06 +02:00
andri lim
91b2b9d2ed
rlp codec support optional fields ( #613 )
...
Instead of patching BlockHeader or BlockBody codec
each time it get additional optional fields,
this PR make the rlp codec automatically handle
optional fields. Thus rlp codec overloading of
EthBlock, BlockHeader, and BlockBody can be removed.
2023-05-30 16:02:02 +03:00
jangko
67bbd88616
Replace exception with assertion in rlp.append of BlockHeader
...
Using exception in rlp.append turn out creates more problem than it solve.
`blockHash` operation is literally everywhere in nimbus-eth1, nimbus-eth2, and fluffy-code.
The compiler begins to complain about unlisted exception.
Rlp bytes coming from network and test vectors already verified by the decoder.
So, any invalid optional fields of blockheader that come into rlp.append means
programming error. Assertion will be more apropiate in this situation and less problematic.
2023-05-25 15:27:37 +07:00
jangko
7ff6de2367
fix rlp.readRecordType of BlockBody and friends
...
including:
- fix rlp.append of BlockHeader
- add tests for rlp.readRecordType of BlockBody
- add tests for rlp.append of BlockHeader
- add tests for EthBlock roundtrip
2023-05-23 14:37:47 +07:00
jangko
e639dc1e14
fix missing withdrawals field in EthBlock
2023-05-22 16:11:30 +07:00
Ivan Folgueira Bande
285da12bf3
nat.nim: breaking dependency with 'confutils' ( #609 )
...
* nat.nim: breaking dependency with 'confutils'
The main purpose of this change is to break the dependency with
`confutils`.
2023-05-16 13:43:31 +02:00
Jacek Sieka
6e5ee490c2
avoid ptr_arith ( #608 )
2023-05-11 07:39:21 +00:00
Kim De Mey
d57a1094b1
Remove all Defect raises to avoid unnecessary warnings ( #607 )
...
As this module dropped support for Nim versions < 1.6, all Defect
raises can be removed to avoid unnecessary warnings
2023-05-10 15:50:04 +02:00
tersec
7564b21ade
support only Nim 1.6+ ( #606 )
2023-05-09 20:19:44 +00:00
jangko
607539d821
upgrade github actions to v3
2023-05-05 17:25:15 +07:00
Adam Spitz
4b818e8307
In the incomplete-db node-existence check, don't use contains. ( #603 )
...
* In the incomplete-db node-existence check, don't use contains.
(Using contains led to a problem with CaptureDB.)
* In the incomplete-db check, just checking len > 0 isn't right.
* Oh, I needed the AssertionDefect thing too.
* Need this when compiling under older versions of Nim.
* Sometimes we want missing nodes to be errors, sometimes not.
2023-04-28 12:04:33 -04:00
Adam Spitz
f5dd26eac0
Some changes to make hexary.nim better able to handle incomplete DBs ( #602 )
...
* Added maybeGet, for working with incomplete DBs.
* Made trie.del throw an exception if it encounters a missing node.
2023-04-21 07:59:15 -04: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
jangko
6053c252e7
Remove appveyor and travis scripts
2023-04-20 08:33:16 +07:00
Jordan Hrycaj
9a1d35f803
Fix block body encoding ( #598 )
...
why:
List wrapper was missing in `append()` mixin.
2023-04-19 13:26:41 +01:00
Kim De Mey
25b0da0280
Fix JSON writer for logging in devp2p code ( #597 )
2023-04-18 13:51:02 +02:00
Kim De Mey
ea3c164a00
uTP clarification on SYN-ACK seqnr and some cleanup ( #596 )
...
- Clarify why on SYN-ACK seqNr gets -1
- Cleanup comments
- Style fixes
- Reuse WriteResult
2023-04-04 17:11:36 +02:00
Adam Spitz
4754543605
Added maybeGet, for working with incomplete DBs. ( #595 )
2023-04-03 13:01:25 -04:00
Adam Spitz
9e89f0dccc
Made rlp.readRecordType(BlockBody, false) include withdrawals. ( #594 )
2023-03-17 10:41:38 -04:00
Kim De Mey
d2ba753792
Add rlpx metrics and avoid immediate peer reconnections ( #585 )
...
* Add metrics related to devp2p peer connections
* Avoid reconnecting to peers that just failed connection
- Add SeenTable to avoid reconnecting to peers immediately after
a failed connect. Depending on the failure, the amount of time is
different. This is similar to what is done in nimbus-eth2.
- Attempt to rework rlpxConnect at the same time, in order to
make sure that errors are properly handled. The current structure
is far from ideal, but it is hopefully a small step in the right
direction. To many oddities in there right now to really rework
rlpxConnect properply.
* Fix rlpx thunk fuzzer
2023-03-16 16:45:12 +01:00
Kim De Mey
29b14749fa
Improve uTP decoded packet logs + style and comment clean-up ( #593 )
...
* Improve uTP decoded packet logs + style and comment clean-up
* Don't test for the exact error strings in uTP decode + clean-up
2023-03-14 16:17:39 +00:00
Jacek Sieka
72c9858927
kvstore: remove unnecessary EH ( #592 )
2023-02-22 09:03:13 +00:00
Jacek Sieka
ca1c205441
fix missing gcsafe ( #591 )
2023-02-22 08:11:32 +00:00
Jacek Sieka
ade6d19691
Defect fixes in kvstore ( #589 )
...
* Defect fixes in kvstore
* compile fixes
2023-02-21 18:54:30 +01:00
Kim De Mey
d2a3727c4c
Use chronos isGlobal to verify public IPs for net/nat and discv5 ( #588 )
2023-02-21 09:34:26 +01:00
Kim De Mey
5b4e9db0d3
Narrow Defect to expect AssertionDefect in rlp tests ( #587 )
2023-02-20 20:52:49 +01:00
Kim De Mey
a8bd504f95
Add liblz4 for i386 CI (rocksdb dep) ( #586 )
2023-02-20 16:27:41 +01:00
Kim De Mey
4d55bfc9e8
Move dcli tool to a tools folder ( #584 )
2023-01-27 18:40:40 +01:00
Adam Spitz
20d2d318f0
Fixed a bug that I just introduced in the BlockBody RLP code. ( #583 )
...
The nimbus-eth1 tests seem to think that this is the right thing to do.
2023-01-21 14:41:30 +01:00
Adam Spitz
5b189ce5e2
EIP-4895: added withdrawals to BlockBody. ( #581 )
2023-01-20 12:18:39 +01:00
Adam Spitz
27814d5b61
Added a supportsClear bool to testKvStore. ( #579 )
...
Obviously this is getting ugly, but for now I just want to get
something committed so that I can get back to the more urgent work.
2023-01-20 09:21:51 +01:00
Adam Spitz
71b148a5b0
Propagating the del-returns-a-bool change through the trie DB code. ( #578 )
...
See here:
8f0ae55353
2023-01-17 16:39:28 -05:00
tersec
68f4c53828
withdrawals amount in uint64 gwei: https://github.com/ethereum/execution-apis/pull/354 ( #577 )
2023-01-14 14:39:23 +00:00
zah
0807378e7f
Migrate some functions from nimbus-eth1 in order to make them available in nimbus-eth2 ( #576 )
2023-01-10 18:56:27 +02:00
Adam Spitz
58284ffeda
Attempt to connect to many peers concurrently, not in sequence. ( #575 )
...
The old code, which did it in sequence, made it take a very long
time to accumulate peers in the peer pool, particularly because
occasionally a connection-attempt would hang for a couple of minutes
before timing out.
2023-01-04 05:56:23 -05:00
Jacek Sieka
8f0ae55353
kvstore: return bool from del, add clear ( #574 )
...
This allows making decisions based on whether an element was present
during the `del`
2023-01-03 16:38:27 +01:00
Kim De Mey
40ec601d07
Fix accidential usage of default rlp decode for DisconnectionReason ( #572 )
2022-12-14 10:57:23 +01:00
Etan Kissling
2b5f2a27e3
fix `excessDataGas` type (`GasInt` --> `UInt256`) ( #571 )
...
Used incorrect type in original PR. Fixing.
2022-12-14 00:25:27 +01:00
Etan Kissling
c9fcab8052
extend `BlockHeader` for EIP-4844 ( #570 )
...
Extends `BlockHeader` with `excessDataGas` according to EIP-4844
(used by Nimbus-CL in empty block prod fallback).
2022-12-13 20:53:05 +01:00
Lorenzo Delgado
5c46220e72
add eth topic to all the logs scope ( #568 )
2022-12-06 14:54:03 +01:00
tersec
571b98d7f7
avoid invalid codegen/UB by avoiding case object discriminant assignment ( #566 )
2022-12-01 13:55:42 +01:00
Lorenzo Delgado
833818e9c7
Make discv5 `protocol-id` configurable at compile time
...
Co-authored-by: ksr <kaiserd@users.noreply.github.com>
2022-11-30 12:59:41 +01:00
KonradStaniec
22d0ac81e1
Fix defect when writing over send buffer ( #564 )
...
* Fix defect when writing over send buffer
2022-11-30 09:34:08 +01:00
Jacek Sieka
8f4ef19fc9
sqlite: support read-only kvstores ( #563 )
...
in a read-only database, we cannot create the table but we can still
reason about elements in it - they simply don't exist
2022-11-28 21:15:53 +01:00