Commit Graph

564 Commits

Author SHA1 Message Date
KonradStaniec 5aaf16049f
Use separeate client and server in lcproxy (#1208)
* Use separate client and server in lc proxy
2022-08-31 07:48:48 +02:00
jangko c6f35142a8
simple peer manager to handle static peers reconnection
fix #618
2022-08-26 22:07:56 +07:00
KonradStaniec caa5e009ff
Initial Binary for light client proxy (#1202)
* Initial Binary for light client proxy
2022-08-26 13:54:10 +02:00
Kim De Mey 91a3425731
Bump nim-secp256k1 module for signature recovery id check (#1196) 2022-08-23 16:28:24 +02:00
jangko fe54f93ab6
bump nim eth
better method not implemented message of AbstractChainDB
2022-08-22 20:11:36 +07:00
Zahary Karadjov daac75796f
Extract the EIP1559 gas fee calculation in nim-eth, so it can be reused in nimbus-eth2 2022-08-22 10:52:20 +07:00
Nikolay Mitev 1e4f138574 Add nimbus-eth2 as submodule. Add launch_local_testnet script to CI. 2022-08-18 18:06:38 +03:00
Jordan Hrycaj f07945d37b
Misc snap sync updates (#1192)
* Bump nim-stew

why:
  Need fixed interval set

* Keep track of accumulated account ranges over all state roots

* Added comments and explanations to unit tests

* typo
2022-08-17 08:30:11 +01:00
KonradStaniec c5101c16e9
Bump nim eth (#1188)
* Bump nim eth

* Bump actions ubuntu
2022-08-16 09:17:57 +02:00
Jordan Hrycaj 7d7e26d45f
Experimental bulk loader tests (#1187)
why:
  Rocksdb bulk loading might provide a slight advantage when loading
  larger data sets into the system
2022-08-12 16:42:07 +01:00
KonradStaniec 4f8d10f338
Bump nim-eth (#1185) 2022-08-06 10:11:36 +02:00
Jordan Hrycaj 5f0e89a41e
Snap accounts bulk import preparer (#1183)
* Provided common scheduler API, applied to `full` sync

* Use hexary trie as storage for proofs_db records

also:
 + Store metadata with account for keeping track of account state
 + add iterator over accounts

* Common scheduler API applied to `snap` sync

* Prepare for accounts bulk import

details:
+ Added some ad-hoc checks for proving accounts data received from the
  snap/1 (will be replaced by proper database version when ready)
+ Added code that dumps some of the received snap/1 data into a file
  (turned of by default, see `worker_desc.nim`)
2022-08-04 09:04:30 +01:00
jangko a5d4759bfd
enhance net-key command line option to accept random, hex, and path
- previously it only accept hex
- fix #587
2022-07-30 08:46:11 +07:00
Jordan Hrycaj 5d98f68c09
Sync update to work with sepolia reorgs (#1168)
* Error return in `persistBlocks()` on initial `VmState` roblem

why:
  previously threw an exception

* Updated sync mode option

why:
 using enum rather than bool => space for more

* Added sync mode `full`, re-factued legacy sync

also:
  rebased

* Fix typo (crashes `pesistBlocks()` otherwise)

also:
  rebase to master

* Reduce log ticker noise by suppressing duplicate messages

* Clarify staged queue overflow handling

why:
  backtrack/re-org mode in `stageItem()` should be detected by both,
  the global indicator or the work item where it might have moved into.

also:
  rebased
2022-07-21 13:14:41 +01:00
jangko 76e438da2a
bump submodule: json-rpc and graphql
this is an update to support jwt auth and cors hook
2022-07-18 16:56:44 +07:00
jangko 6cfaaf5b45
bump json-rpc, secp256k1, blscurve, and accompanying fixes 2022-07-12 20:01:02 +07:00
Kim De Mey 87ea6ffb92
Bump most of the submodules (#1156) 2022-07-08 20:28:31 +02:00
Kim De Mey fb12793482
Bump nim-eth and nim-bearssl and accompanying fixes (#1150) 2022-07-04 09:38:02 +02:00
Kim De Mey 0068e3b427
Bump some modules to fix breakage from #1145 (#1149) 2022-07-01 22:46:36 +02:00
Jordan Hrycaj 134fe26997
Store proved snap accounts (#1145)
* Relocated `IntervalSets` to nim-stew repo

* Accumulate accounts on temporary kv-DB

why:
  Explore the data as returned from snap/1. Will be converted to a
  `eth/db` next.

details:
  Verify and accumulate per/state-root accounts downloaded via snap.

also:
  Some unit tests

* Replace `Table` by `TrieDatabaseRef` for accounts accumulator

* update ticker statistics

details:
  mean/variance based counter update

* allow persistent db for proved accounts

* rebase, and globally activate unit test

* fix statistics
2022-07-01 12:42:17 +01:00
Kim De Mey d4d4e8c28f
Add accumulator buildProof, verifyProof and verifyHeader (#1132) 2022-06-23 21:00:59 +02:00
Jacek Sieka 9e8d2d0550
sqlite: bump 2022-06-21 16:18:41 +02:00
andri lim 5374874552
bump serialization family(serialization, json, toml) (#1135) 2022-06-20 11:32:41 +02:00
KonradStaniec 0776f35e0c
Use queries with custom xor function (#1113)
* Use queries with custom xor function
2022-06-03 13:44:42 +02:00
KonradStaniec 5c78fe64e4
Fix utp connection leak on cancel (#1107)
* Fix utp connection leak on cancel
2022-05-31 14:28:02 +02:00
KonradStaniec b975d35c84
Bump sqlite-abi (#1108) 2022-05-31 12:37:10 +02:00
jangko b03c2dca4f
bump nim-web3: engine api version alpha.9 2022-05-29 11:23:57 +07:00
Jordan Hrycaj ba940a5ce7
Snap sync simplify object inheritance (#1098)
* Reorg SnapPeerBase descriptor, notably start/stop flags

details:
  Instead of using three boolean flags startedFetch, stopped, and
  stopThisState a single enum type is used with values SyncRunningOk,
  SyncStopRequest, and SyncStopped.

* Restricting snap to eth66 and later

why:
  Id-tracked request/response wire protocol can handle overlapped
  responses when requests are sent in row.

* Align function names with source code file names

why:
  Easier to reconcile when following the implemented logic.

* Update trace logging (want file locations)

why:
  The macros previously used hid the relevant file location (when
  `chroniclesLineNumbers` turned on.) It rather printed the file
  location of the template that was wrapping `trace`.

* Use KeyedQueue table instead of sequence

why:
  Quick access, easy configuration as LRU or FIFO with max entries
  (currently LRU.)

* Dissolve `SnapPeerEx` object extension into `SnapPeer`

why;
  It is logically cleaner and more obvious not to inherit from
  `SnapPeerBase` but to specify opaque field object references of the
  merged `SnapPeer` object. These can then be locally inherited.

* Dissolve `SnapSyncEx` object extension into `SnapSync`

why;
  It is logically cleaner and more obvious not to inherit from
  `SnapSyncEx` but to specify opaque field object references of
  the `SnapPeer` object. These can then be locally inherited.

  Also, in the re-factored code here the interface descriptor
  `SnapSyncCtx` inherited `SnapSyncEx` which was sub-optimal (OO
  inheritance makes it easier to work with call back functions.)
2022-05-23 17:53:19 +01:00
jangko 41e9ea8d45
bump nim-confutils
why:
- fix Acc Quoted ident processsing bug in config-file
- fix Dot Expr processsing bug in config-file
2022-05-10 16:04:21 +07:00
Jordan Hrycaj 3b9f0e3980
Proper Uint256 parser for JSON genesis (#1071)
* Update exception tracinig

* Use lazy JSON parser

why:
  Uint246 type is not directly supported by the JSON serializer

* Json parser update for stringified UInt256 integers

why:
  Now available

* update sub-module branch reference
2022-05-06 09:02:28 +01:00
Kim De Mey 7bd9afa465
Bump nim-eth for max discv5 packet size (#1070) 2022-05-03 09:18:33 +02:00
jangko e2c9ec4f84
update submodules to accomodate styleCheck 2022-04-14 08:39:50 +07:00
Kim De Mey d337806301
Improve logs and loglevels, and general cleanup (#1059) 2022-04-13 07:56:01 +02:00
Kim De Mey 82aab2a404
Bump chronos and json-rpc and avoid http conn re-use for blockwalk (#1053)
Currently re-using http connections for the json-rpc requests
seems to slow down the requests considerably. Avoid this by
forcing a close after each requests in the blockwalk tool.
2022-04-11 19:39:45 +02:00
Jordan Hrycaj 8af5c33ef9
Facilitate http code response on websocket JWT authentication failure (#1043)
* Facilitate http code response on websocket JWT authentication failure

* Update JSON-RPC link
2022-04-07 10:37:35 +01:00
Jordan Hrycaj 737236fd6e
Enable JWT authentication for websockets (#1039)
* Enable JWT authentication for websockets

details:
  Currently, this is optional and only enabled when the jwtsecret option
  is set.

  There is a default mechanism to generate a JWT secret if it is not
  explicitly stated. This mechanism is currently unused.

* Make JWT authentication compulsory for websockets

* Fix unit test entry point + cosmetics

* Update JSON-RPC link

* Improvements as suggested by Mamy
2022-04-06 15:11:13 +01:00
Kim De Mey 16ecbeb902
Bump nim-eth for lower loglevel of rlpx and discv4 harmless errors (#1041) 2022-04-06 11:57:08 +02:00
Jacek Sieka 1d6a9951d6
move rocksdb support to eth1 (#927)
* move rocksdb support to eth1

only used here / causes unnecessary build deps
2022-04-06 07:28:19 +02:00
Jacek Sieka e9afa00f16 snappy revamp
not entirely sure why nimbus-eth1 has a copy of snappy but here's a new
version: https://github.com/status-im/nim-snappy/pull/10
2022-04-05 12:03:01 +07:00
Jacek Sieka 60032bf106
Bump chronos (#925)
Memory fixes, http fixes, fix for issue #963, etc
2022-03-31 14:55:01 +02:00
KonradStaniec 75f2c76ad0
Bump nim-eth module (#1017) 2022-03-29 21:09:49 +02:00
Jordan Hrycaj 4696a53302
Enable optional chunked RLPx messages (#1010)
* Enable optional chunked RLPx messages

why:
  Legacy feature used by Nethermind

details:
  Disable with make flag: ENABLE_CHUNKED_RLPX=0

* Rebase & bump nim-eth

* Fix default behaviour

why:
  Got lost somehow. Comments do not match GNU make code directives.
2022-03-29 10:19:32 +01:00
Ștefan Talpalaru 51bc1cf87f
dist: precompiled binaries and Docker images (#1015)
* dist: precompiled binaries and Docker images

The builds are reproducible, the binaries are portable and statically link librocksdb.

This took some patching. Upstream PR: https://github.com/facebook/rocksdb/pull/9752

32-bit ARM is missing as a target because two different GCC versions
fail with an ICE when trying to cross-compile RocksDB. Using Clang
instead is too much trouble for a platform that nobody should be using
anyway.

(Clang doesn't come with its own target headers and libraries, can't be
easily convinced to use the ones from GCC, so it needs an fs image from
a 32-bit ARM distro - at which point I stopped caring).

* CI: disable reproducibility test
2022-03-27 13:21:15 +02:00
jangko a0ba5a492c
bump some submodules
- graphql: bump version 0.2.20 to 0.2.22
- json-rpc: various bug fixes
- websock: various bug fixes
- http-utils: chronos dependancy
2022-03-25 17:16:21 +07:00
KonradStaniec ad51bd68fc
Bump nim-eth (#1004) 2022-03-21 20:18:43 +01:00
Kim De Mey b00ac490a9
Bump nim-eth and adjust API to support binding to specific address (#994)
- Fixes also a bug which would not start an EthereumNode properly
when no bootstrap nodes are provided
2022-03-16 09:01:35 +01:00
KonradStaniec 2c2bcae00e
Bump nim-eth (#986) 2022-03-04 14:36:32 +01:00
jangko 0d18b606f5
bump json-rpc 2022-02-28 10:36:35 +07:00
jangko 1f9ed449d9
bump nim-web3
update Engine API from v1-alpha6 to v1-alpha7
2022-02-27 14:37:35 +07:00
jangko b46d60f65d
bump nim-json-rpc
null value of optional param rejected by serializer
because of a bug in `jsonmarshal.nim` now fixed
2022-02-14 21:23:00 +07:00
Kim De Mey 38036966a6
Improve the tests of the local testnet (#953)
* Improve the tests of the local testnet

The local testnet test was rather flaky and would occasionally
fail. It has been made more robust by adding the ENRs directly
to the routing table instead of doing some random lookups.

Additionally, the amount of nodes were increased (=64), ip limits
configuration was added, and the bits-per-hop value was set to 1
in order to make the lookups more likely to hit the network
instead of only the local routing table.

Failure is obviously still possible to happen when sufficient
packets get lost. If this turns out to be the case with the current
amount of nodes, we might have to revise the testing strategy here.

* Disable lookup test for State network

Disable lookup test for State network due to issue with custom
distance function causing the lookup to not always converging
towards the target.
2022-02-02 22:48:33 +01:00
jangko 3e60948785 bump nim-eth
changes because of EIP-4399 preparation:
- `mixDigest` field of BlockHeader got alias `random`
2022-02-01 18:11:14 +02:00
Kim De Mey ac1196d915
Bump nim-ssz-serialization and clean-up fromSszBytes raises (#948) 2022-01-31 21:57:34 +01:00
KonradStaniec 296bf3156d
Bump nim-eth (#946)
implementation of utp fast resends
implementation of utp fast resends when processing selective acks
more logging for utp
2022-01-28 06:55:13 +01:00
Zahary Karadjov 3cbb920406
Migrate to Engine API spec version v1.0.0-alpha.5; More progress towards working M1 2022-01-25 12:52:50 +02:00
KonradStaniec 990846135a
Bump nim-eth (#941)
* Bump nim-eth
2022-01-25 10:19:16 +01:00
Zahary Karadjov 137eb97766 Initial implementation of the merge spec
Includes a simple test harness for the merge interop M1 milestone

This aims to enable connecting nimbus-eth2 to nimbus-eth1 within
the testing protocol described here:

https://github.com/status-im/nimbus-eth2/blob/amphora-merge-interop/docs/interop_merge.md

To execute the work-in-progress test, please run:

In terminal 1:
tests/amphora/launch-nimbus.sh

In terminal 2:
tests/amphora/check-merge-test-vectors.sh
2022-01-24 09:44:39 +02:00
Zahary Karadjov e7adc609f4
Bump nim-stew 2022-01-23 19:25:46 +02:00
Zahary Karadjov 8ef9c620cb
Bump nim-json-rpc 2022-01-23 19:19:24 +02:00
Jacek Sieka f47c710ada
stew: bump (#924)
`Result` changes and `endians2` performance fix
2022-01-13 21:11:54 +01:00
Kim De Mey 73b4a73423
Bump nim-eth and nim-ssz-serialization vendor modules (#926)
- nim-eth: uTP updates, ENR improvemens and extra discv5 metrics
- nim-ssz-serialization: require BitList pairs
- update github actions cache keys to invalidate cache
2022-01-12 21:41:23 +01:00
Jordan Hrycaj 1f774c01a2
Jordan/accounts cache scenario (#904)
* crash test scenario

details:
  Example code for inspecting nested block chain and accounts cache
  database transaction framework. There seems to be a pathological
  case where the system crashes after a rollback (as appeared in the
  tx-pool packer code.)

* simplified crash scenario

* Workable solution (as suggested by Andri)

details:
  Avoiding db.rollback() (db.commit() is OK) while vmState.stateDB is
  alive.

* Rename text_txcrash => test_accounts_cache

why:
  Unit tests covers part of accounts_cache handling

* comment update
2021-12-13 11:58:05 +00:00
Kim De Mey 70625bc02c
Use one bootstrap nodes argument for discv5 and Portal (#911)
Currently bootstrap nodes for discv5 and for the Portal nodes
were provided through separate cli arguments. This is however
confusing and cumbersome as typically when (currently) testing
a node will have both discv5 and the Portal networks enabled.
We merge them into one argument.

If a node happens not to support a Portal network, it will be
removed after message request failure.

Commit also contains additional clean-up and nim-eth bump.
2021-12-13 09:06:29 +01:00
jangko d5d0a44b0e
bump nim-confutils with addition features needed by nimbus-eth1
new features:
- multiple lines long description
- ignore property in addition to hidden
2021-12-12 16:38:10 +07:00
Kim De Mey 63b0945b52
Use json rpc client to run tests on portal testnet (#899)
Tests have also been added & adjusted. Original ones were actually
failing but unnoticed due to mistake in port passed in curl command.
2021-12-03 09:51:25 +01:00
jangko dcd86bb221
vendor: bump nim-json-rpc
bugfix and features:
- Switch to the Chronos HTTP client (adds support for HTTPS)
- Allow dynamic RPC method names in the 'rpc' macro
- Restore the support for using the news package
2021-11-30 11:47:11 +07:00
Kim De Mey 903350bdde
Add local testnet script and required json-rpc calls (#891)
- Add basic discv5 and portal json-rpc calls and activate them in
fluffy
- Renames in the rpc folder
- Add local testnet script and run this script in CI
- bump nim-eth
2021-11-24 08:45:55 +01:00
KonradStaniec f9ed83c221
bump nim eth (#890) 2021-11-22 12:35:08 +01:00
Kim De Mey 02afda1b45
Run everything fluffy with chronosStrictException (#889) 2021-11-18 17:52:44 +01:00
Kim De Mey 78f585399f
Bump submodules (#887)
* Bump submodules

* Fix missing import for state and history networks
2021-11-18 12:06:53 +01:00
Kim De Mey bdbd8e4c87
Add SSZ Unions through case objects (#882)
* Add SSZ Unions through case objects

* Add connection id content response test and improve other test vectors

* Implement content keys and ids for state network as per spec

Content keys case object is used so that it can be serialized and
deserialized as an SSZ Union.

* Let message Union in Portal wire protocol start at 0 as per new spec
2021-11-17 17:11:17 +01:00
kdeme 6de2be146a
Bump unittest2 and testutils 2021-11-14 16:02:22 +07:00
Kim De Mey 0ba3c682e4
Use SSZ code from nim-ssz-serialization module (#875) 2021-10-23 14:28:12 +02:00
Kim De Mey 447deb29ff
Add HistoryNetwork that uses Portal wire protocol (#856)
* Add HistoryNetwork that uses Portal wire protocol

* Further implement getContent and adjust naming of distance calc calls
2021-10-09 13:22:03 +02:00
jangko 7757b03d0b
vendor: bump nim-graphql version from 0.2.18 to 0.2.20
features:
- playground: add support to run inside docker
- add secure mode to graphql http server
- add secure mode to graphql http client
- httpclient: add unzip dan chunked transfer of HTTP 1.1

bugfixes:
- fix accept-encoding bug in httpserver
2021-09-21 13:35:52 +07:00
KonradStaniec 8f683bd318
bump nim-eth module (#828)
* bump-nim-eth

* fix breaking changes

* Increase result limit
2021-09-15 11:24:03 +02:00
jangko 3f60764675
vendor: bump nim-confutils
new features:
- add compile time check to detect duplicate abbr and duplicate name
- separator text when displaying help
2021-09-09 07:44:34 +07:00
Kim De Mey 07b2116f6b
Another nim-eth bump and API changes fix (#821) 2021-09-07 15:56:51 +02:00
Kim De Mey 832a50df6e
Bump nim-eth module and adjust for `distanceTo` API change (#819) 2021-09-06 17:04:21 +02:00
jangko e357a4ea5d
vendor: update websock and json-rpc
websock:
- "Host" header override (#87)
- Use caps for log-levels in tests
- Perform utf-8 validation at message boundaries (#90)

json-rpc:
- fix both ws rpc server and client due to websock breaking changes
2021-08-05 17:30:49 +07:00
KonradStaniec 4b1fa050e9
Use websockets in proxy (#779) 2021-08-05 08:14:25 +02:00
Ștefan Talpalaru e43e1cc932
bump nimbus-build-system (#775) 2021-08-03 14:13:05 +02:00
Kim De Mey e2b50d2339
Add routing table and required lookup code to Portal protocol (#773)
* Add routing table and required lookup code to Portal protocol

* Enable Portal lookup and validate loops + minor adjustments
2021-07-30 21:19:03 +02:00
Kim De Mey e9bfcedcaf
Bump nimbus-build-system and nim-eth vendor modules (#774) 2021-07-30 13:11:25 +02:00
Kim De Mey 66532e8ad5
Use ssz vectors for the hashes and add enrs in the tests (#763) 2021-07-20 14:04:57 +02:00
Kim De Mey 25522b2c24
Further implement Portal Nodes and FoundContent messages (#757) 2021-07-13 15:15:33 +02:00
KonradStaniec bd862cd649
[BUMP] bump json rpc module (#758) 2021-07-13 13:34:52 +02:00
Kim De Mey 117f744f52
Bump nim-eth to test after removing portal code (#755) 2021-07-09 23:55:02 +02:00
KonradStaniec aaab0d7bfd
[BUMP] bump json rpc (#745) 2021-07-02 16:45:53 +02:00
jangko 02afb27e47
vendor: update graphql, json-rpc, chronicles, http-utils, websock
- nim-graphql from v0.2.16 to v0.2.18:
  - replace nim-miniz with nim-zlib
  - replace unittest with unittest2

- nim-http-utils:
  - Fix to handle HTTP response with `<space>CRLF` after response status code.

- nim-json-rpc:
  - rename ws to websocket

- nim-websock:
  - rename ws to websock
  - fix mutual closing bug
  - fix compile time error when using chronicles sink:json

- nim-chronicles:
  - add isLogFormatUsed, used by nim-websock
2021-06-29 12:15:36 +07:00
jangko 1cdb30df90
bump nim-emvc with evmc revision 8.0.0 to 9.0.0
- EIP-1559: add block_base_fee to tx_context
- EVMC_API_VERSION from 8 to 9
- add EVMC_LONDON to evmc_revision enum
2021-06-29 07:34:45 +07:00
jangko b5de442d33
bump submodule nim-eth with EIP-1559 addition 2021-06-29 07:34:00 +07:00
jangko 8cde70c573
vendor: update json-rpc, ws, and chronos, remove news
- nim-json-rpc already replace news with nim-ws
- we also remove news from dependency
- we already have include nim-ws as dependency
- new chronos features is needed by nim-ws
2021-06-24 08:29:06 +07:00
jangko 41c4d186b5
vendor: update nim-graphql, replace nim-miniz with nim-zlib, add nim-ws
- we replace nim-miniz with nim-zlib because nim-ws requires
  features not available in miniz
- nim-graphql also switch to nim-zlib
- nim-ws depends on nim-zlib and we need it for upcoming
  websocket rpc
2021-06-21 16:30:02 +07:00
Kim De Mey 4ce9b5883c
Add Portal eth json-rpc stubs and Portal content file (#720)
* Bump nim-json-rpc module

* Add eth json rpc stubs

* Add portal content file
2021-06-18 19:20:48 +02:00
Kim De Mey 137875ba36
Bump nim-eth vendor repository (#713) 2021-06-15 12:38:54 +02:00
jangko f42c76467b
bump nim-graphql from 0.2.14 to 0.2.16
- fixes non repeatable directive error message
- refactor nim caching in github action ci
- refactor github action ci matrix
- extract miniz to it's own repo
2021-06-06 11:27:12 +07:00
jangko 051957c464
add nim-miniz submodule to vendor
nim-miniz now sit in it's own repo after
extracted from nim-graphql

it also a dependency of incoming nim-ws
2021-06-06 11:23:30 +07:00
Jamie Lokier ee88e0266a EVMC: Bump `nim-evmc` module for type improvements (API 7.5 branch)
This bump is required by `TransactionHost` coming next.

There have been many changes to `nim-evmc` since earlier developments on
`nimbus-eth1`.  The types in the API have changed, and there is no longer a
need to cast the function types.

This commit bumps the submodule while keeping with EVMC API 7.5 for now.
`.gitmodules` is updated to follow the module branch `api-version-7.5`.

Submodule changes:

  > Nim: Function casts no longer required, type-checking finally works
  > Nim: Make the test host use exactly the type signatures in the API
  > add github action script
  > Nim: Export `evmc_create_vm_name_fn`
  > Nim: Use `var` instead of `ptr` for arguments that are pass-by-ref
  > Nim: Fix missing `ptr` in signature of `execute`
  > Nim: Use `ptr` in `release` for API consistency
  > Nim: Disable "Imported and not used" warning in test program
  > Nim: Remove unnecessary exports from the Nim example host/VM
  > Nim: Simplify Nim C++ codegen bug workaround
  > Nim: Add type and documentation for `evmc_create_example_fn`
  > Nim: Workaround Nim compiler bug with Nim 1.2.10
  > Nim: Workaround Nim compiler bug with `uint32`-sized bitset
  > Nim: Use a more varied bit pattern in `get_capabilities` test
  > Nim: Convert `evmc_capabilities` to Nim bitset
  > Nim: Convert `evmc_flags` to Nim bitset
  > Nim: Compile time verify that target C enums are `int` sized
  > Nim: Recognise that target C enums are not always `cint`
  > Nim: Make `evmc_status_code` a normal enum
  > Nim: Use `csize_t` in test program and Nim example host/VM
  > Nim: Use `csize_t` in the VM support API
  > Nim: Use `csize_t` in appropriate places to match EVMC API
  > Nim: Use binary-compatible C99 `bool` without target assumptions
  > Version (README): Announce we support EVMC 7.5.0 and Istanbul fork
  > Doc: Tweak GitHub badges on README
  > Doc: Make title fit on GitHub page without wrapping
  > Doc: README edits
  > Doc: Update the README for 2021 - the year of Nimbus!
  > License: Add licensing info about third-party files
  > License: Update license text in README
  > License: Fix incorrect name of Apache v2 license file and tweak
  > License: Add missing MIT license file
  > Nim: Add and update copyright headers
  > Nim: Update Nim API to follow EVMC API 7.5.0
  > Nim: Update doc comments and fix formatting
  > Make the tests work with the new C++ mini-EVM in EVMC 7.5.0
  > Change C++ `example_host` to workaround Nim -> C call type mismatch
  > The EVMC package expects C++14 now
  > Upgrade C++ `example_host` in `tests/evmc_c` to EVMC 7.5.0
  > Upgrade C++ `example_vm` in `tests/evmc_c` to EVMC 7.5.0
  > Upgrade C/C++ headers in `tests/evmc_c` to EVMC 7.5.0

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-28 13:14:17 +03:00
jangko df9bae3517
bump nim-eth submodule
eip2718: protect against malformed rlp in tx sequence decoder
2021-05-17 11:14:33 +07:00
jangko 96d1969017
bump nim-eth: eip2718 typed transaction envelope
these series of commits labelled eip2718 will pave the way for
eip2930: optional access lists
2021-05-15 18:09:36 +07:00
kdeme 273a94ed76 Bump nim-eth to get better exception tracking 2021-05-12 00:35:37 +03:00
jangko 03784848eb
bump nim-graphql version from 0.2.12 to 0.2.14
enhancements:
- scalar `Float` now have proper validation
- seqs are not copied anymore in some places, but using system.move

bugfixes:
- `removeWhitespaces` in test_common no longer eat white spaces
  from quoted string.
- `skipWhitespace` in lexer.nim now preserve \r\n instead of replace it with \n

new features:
- add custom instrument infrastructure
- add Query Complexity instrumen
2021-05-10 22:22:04 +07:00
jangko 7f509a00df
bump nim-graphql from 0.2.10 to 0.2.12
- enhancements:
  - response stream reform:
    - allow for more response stream implementation easily

- features:
  - add NodeRespStream:
    - return AST produced by execution engine instead of serialize
      it into json or something else

  - add store flag to parseSchema and parseQuery family:
    - with this additional flag, both query and schema can be marked
      with stored flag
    - purge also become selective when purging queries
    - dog fooding the introspection schema loader using this flag

bugfixes:
  - next fields will continue execution if there is error:
    - if one field failed, it will not terminate subsequent fields
      execution, but errors are kept.
  - propagate inner field error to it's parent
    - Since Non-Null type fields cannot be null, field errors are propagated to be
      handled by the parent field. If the parent field may be null then it resolves
      to null, otherwise if it is a Non-Null type, the field error is further
      propagated to it’s parent field.

    - If a List type wraps a Non-Null type, and one of the elements of that list
      resolves to null, then the entire list must resolve to null. If the List type
      is also wrapped in a Non-Null, the field error continues to propagate upwards.

    - If all fields from the root of the request to the source of the field error
      return Non-Null types, then the "data" entry in the response should be null.
2021-05-07 17:38:51 +07:00
jangko cf9ed5c2ca
bump nim-graphql
fixes stupid bug in http gzip func
2021-05-05 16:49:30 +07:00
jangko 331a95f363
bump nim-graphql from from 0.2.8 to 0.2.10
- fixes httpserver gzip crc32 calculation
- catch exception and turn it into error code in
  public api functions
2021-05-05 14:07:28 +07:00
jangko 0cdda3c437
bump nim-graphql from 0.2.6 to 0.2.8
- AST node now is inheritable
2021-05-05 11:20:12 +07:00
jangko 44601157f3
bump nim-graphql from 0.2.4 to 0.2.6
bugfixes:
- empty list should be allowed as argument value or input field value

features:
- add `parseSchemas`
2021-05-04 13:01:33 +07:00
jangko 24ce283498
bump nim-graphql from 0.2.2 to 0.2.4
bug fixes:
- fixes copyTree for nkMap node
- fixes queries with variables reusability
- fixes non nullable variables with no runtime value
2021-05-02 15:25:29 +07:00
jangko 86edf449cf
bump nim-graphql from 0.2.0 to 0.2.2
nim-graphql v0.2.2 have numerous bugfixes, but notable ones are:
- only one non-introspection field are allowed in subscription root
- @skip and @include should not allowed for subscription root
- more descriptive error message for playground ethapi, fixes
- fixes GraphiQL client complaint about our instrospection system is old
- graphql http server enhancements: gzip encoding and chunked transfer
2021-05-01 15:08:36 +07:00
jangko 6e79fa3708
bump nim-graphql from 0.1.2 to 0.2.0
- fixes http server response status code
- fixes `__schema.types` and `__schema.directives` implementation
- fixes 'getOperation' in executor.nim
- web ui(graphiql) for http server
2021-04-30 12:56:14 +07:00
jangko 1a68388969
bump nim-graphql submodule from 0.1.0 to 0.1.2
a crash bug is found in nim-graphql validator for
input object value coercion. the bug already fixed.
another non critical bug is about builtin 'specifiedByURL'
directive changed to 'specifiedBy' following the newest
graphql spec.
2021-04-27 12:51:56 +07:00
jangko 1ca4b63c3a
bump chronicles, serialization and json-serialization
recent nim-serialization API changes already made it's way into
toml-serialization. and with the addition of newest toml-serialization
along with it's bugfixes, those submodules mentioned above
become out of date because toml-serialization need newer version of
nim-serialization.
2021-04-24 10:36:48 +07:00
jangko e76e0144d0
add submodules: graphql and toml-serialization 2021-04-22 11:29:42 +07:00
Jacek Sieka 3147df0dcd
switch to chronos metrics, remove insecure (#580)
* switch to chronos metrics, remove insecure

See https://github.com/status-im/nimbus-eth2/pull/2468

also fixes pcre linking for real, and adds some random build flags that
help nimbus-eth2 stay afloat

* fix help

* don't omit frame pointers on windows
2021-04-09 09:26:06 +02:00
Jamie Lokier 6d30b349b3
Bump nim-eth for: Kademlia crash when trying to sync with testnet or mainnet (#489)
Prior to this commit, when using discv4 (Kademlia) to find peers, there is a
crash after a few minutes.  It occurs for most of us on Eth1 mainnet, and
everyone on Ropsten.

Tested for about 4 days constant operation on Ropsten.  The crash which occured
every few minutes no longer occurs, and discv4 keeps working.

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-04-07 18:09:22 +01:00
kdeme f34431e2d4
Bump nim-eth and nim-chronos and fix exception effects 2021-04-02 19:55:21 +02:00
jangko 1988d08ad8 bump submodules 2021-03-19 12:30:00 +07:00
jangko a836c122ed bump submodules 2021-02-14 11:01:27 +07:00
jangko 8c5c967715 bump submodules 2021-01-20 11:50:07 +07:00
jangko fab894f5ad
bump nim-blscurve 2020-12-02 15:16:03 +07:00
jangko ed3b753276
add nim-blscurve submodule 2020-11-19 10:56:29 +07:00
jangko 952ad654e4
bump nim-chronos 2020-11-18 17:54:12 +07:00
jangko 71b4c44112
bump submodules 2020-11-17 10:01:00 +07:00
jangko d5f45f13da
bump nim-eth and nim-stew 2020-10-01 14:06:47 +07:00
jangko 43308c8e76
bump submodules 2020-09-30 13:09:54 +07:00
jangko e31a2ec3fc
replace tormund/news with status-im/news 2020-09-15 11:40:52 +07:00
jangko 1c7316a419
bump submodules 2020-09-10 09:54:36 +07:00
Zahary Karadjov d058509e69
Bump modules 2020-08-19 14:29:09 +03:00
jangko 6e4676e325
bump submodules 2020-08-04 12:32:57 +07:00
Ștefan Talpalaru 46e8870db3
Nim-1.2.6-RC1 (#524) 2020-07-30 14:10:22 +02:00
jangko 063019ab95
bump submodules 2020-07-20 12:35:32 +07:00
jangko 376cbcdfd5
bump nim-eth 2020-07-04 17:16:56 +07:00
jangko 51f2017b03
add bearssl submodule 2020-06-24 13:10:09 +07:00
jangko 702977276b
bump vendor/news 2020-06-24 12:57:44 +07:00
jangko ef5a964b42
bump submodules 2020-06-24 11:44:09 +07:00
Ștefan Talpalaru 75b5d4effe
Makefile: move "nat-libs" to "deps" 2020-06-22 17:12:12 +02:00
Ștefan Talpalaru b4f5d8d62f
Nim-1.2.2 2020-06-17 15:10:07 +02:00
Ștefan Talpalaru 6fcf7f4ef4
add link to nimbus-build-system docs 2020-06-13 02:03:02 +02:00
Ștefan Talpalaru d0d2b3dd8d
bump vendor/nimbus-build-system 2020-06-01 22:49:23 +02:00
jangko 4a0b3c4f16
bump more submodules 2020-05-14 10:28:07 +07:00
jangko a5d805aac5
bump submodules 2020-05-14 07:50:39 +07:00
Jacek Sieka ff028982d6 bump 2020-04-27 18:40:45 +03:00
Jacek Sieka d441687488 bump 2020-04-27 18:40:45 +03:00
Jacek Sieka ed7dbab70f db: use kvstore from nim-eth 2020-04-27 18:40:45 +03:00
kdeme 55fb4987d7
Bump chronicles + adjust some raises in libnimbus 2020-04-21 14:17:08 +02:00
kdeme 905102c736
Bump nim-eth for waku v1 changes 2020-04-21 14:16:19 +02:00
Jacek Sieka 4ade5797ee
rlp: don't use ranges / experimental features (#495) 2020-04-20 20:12:44 +02:00
Ștefan Talpalaru 73e9199ebf
new initial submodule update strategy (#494)
* new initial submodule update strategy

* Azure: increase timeout

* Makefile: change comment [skip ci]
2020-04-18 14:56:40 +02:00
Jacek Sieka 45a9933d83
vendor: bump (#493) 2020-04-18 00:11:42 +02:00
Ștefan Talpalaru a783b096fe
bump vendor/nimbus-build-system (#491)
* bump vendor/nimbus-build-system

- add the Nim compiler header to the Nimbus header
- also support the USE_LIBBACKTRACE env var

* "go-checks" target no longer available
2020-04-16 00:21:58 +02:00
andri lim b3a519398e bump nim-eth 2020-04-09 19:13:17 +03:00
Ștefan Talpalaru 558c4287fc
bump submodules 2020-04-08 20:36:37 +02:00
Ștefan Talpalaru 89b576298c
bump submodules to match "master" 2020-04-08 20:18:53 +02:00
Ștefan Talpalaru af89b51503
Merge branch 'master' into nim-1.2 2020-04-08 20:16:37 +02:00
Jacek Sieka c1899711c9
keep up with nim-eth (#483)
* keep up with nim-eth
2020-04-07 11:53:50 +02:00
Jacek Sieka 1d472cf090
Eth keys (#482)
* bump nim-eth, fix deprecated calls
2020-04-05 15:12:48 +02:00
Zahary Karadjov d704aed7c0
Bump confutils to fix the Waku build 2020-04-04 00:14:12 +03:00
Zahary Karadjov 9407c35a2f
Use Nim v1.2.0 2020-04-03 22:09:15 +03:00
Zahary Karadjov f8676ec094
Bump nim-chronos to fix the build on Linux 2020-04-03 22:09:15 +03:00
Zahary Karadjov c20e834cdb
Bump nimbus-build-system 2020-04-03 22:09:14 +03:00
Zahary Karadjov 3fc3ba925e
Compile Nimbus with Nim 1.2 2020-04-03 22:09:14 +03:00
Zahary Karadjov 5e27236c88
Bump nim-stew and nim-eth 2020-03-22 19:23:51 +02:00
Zed fff29f7a6a Replace markdown report code with testutils 2020-03-10 14:03:04 +02:00
Ștefan Talpalaru 71129cc2ab
nim-libbacktrace: don't build the C++ wrapper 2020-02-15 13:00:39 +01:00
Kim De Mey d3b8833145
Merge pull request #457 from status-im/waku-topics
Check all subscribed topics in quicksim + bump vendor/nim-eth
2020-02-14 15:44:19 +01:00
Ștefan Talpalaru e3d6f00f24
bump vendor/nim-libbacktrace 2020-02-14 12:51:42 +01:00
kdeme 55fb1294ed
Check all subscribed topics in quicksim + bump vendor/nim-eth 2020-02-14 11:36:37 +01:00
Ștefan Talpalaru 8568ec35ea
enable -march=native by default
plus some drive-by fixes and cosmetic changes
2020-02-13 20:18:27 +01:00
Ștefan Talpalaru e9e33d3a56
bump vendor/nim-libbacktrace 2020-02-13 11:20:53 +01:00
Ștefan Talpalaru f59dec7323
Merge branch 'libbacktrace' 2020-02-11 11:52:21 +01:00
Ștefan Talpalaru 06e0eb80e6
lightweight stack traces
Also converted the top-level nim.cfg into a config.nims, in the process.
2020-02-11 04:33:21 +01:00
Kim De Mey 0a6e1b4ba7 Merge pull request #451 from status-im/remove-waku-mode
Update to use waku topic-interest
2020-02-10 10:04:40 +01:00
kdeme b959b14109
Update to use waku topic-interest 2020-02-07 08:59:19 +01:00
Ștefan Talpalaru 0a0fbad45d
Nim 1.0.6 2020-01-27 16:03:27 +01:00
Ștefan Talpalaru 69a362dd86
Nim 1.0.6 RC 2020-01-27 16:01:42 +01:00
Kim De Mey a2478baeff
Merge pull request #446 from status-im/waku-queue-fixes
Bump vendor/nim-eth for waku/whisper queue fixes
2020-01-23 22:50:12 +01:00
kdeme 2507867d15
Bump vendor/nim-eth 2020-01-23 17:45:39 +01:00
andri lim 3c57cd638f add evmc submodule 2020-01-23 18:07:44 +02:00
Zahary Karadjov d23a33a80c Cosmetic improvements 2020-01-23 12:39:36 +02:00
kdeme 8c3595ff94 Bump vendor/nim-eth and fix changes 2020-01-23 12:39:36 +02:00
kdeme 7b80b313e4 Start implementation of waku node 2020-01-23 12:39:36 +02:00
andri lim f0ff11cc0a bump nim-stint 2020-01-19 19:17:37 +02:00
kdeme 48aa034058
Bump vendor/nim-eth 2019-12-18 11:52:40 +01:00
Ștefan Talpalaru d22b41caaa
bump nim-eth & nim-nat-traversal 2019-12-12 01:58:13 +01:00
Ștefan Talpalaru 0fadd7c309
bump nim-nat-traversal and nimbus-build-system 2019-12-10 17:09:34 +01:00
kdeme 5472924fff Bump several vendor modules 2019-12-05 13:02:21 +01:00
andri lim 5aa52854fe
Revert "bump chronicles 0.6.0 to 0.7.0"
This reverts commit 11432ef97d.
2019-12-05 17:35:34 +07:00
andri lim 11432ef97d
bump chronicles 0.6.0 to 0.7.0 2019-12-05 17:13:42 +07:00
Ștefan Talpalaru 2c247e2dd7
Merge branch 'nim1.0.4' 2019-12-02 10:47:13 +01:00
Ștefan Talpalaru f60ecc133f
Nim 1.0.4 2019-11-29 01:04:25 +01:00
kdeme 001ae6dff6
Bump vendor/nimcrypto 2019-11-28 12:20:22 +01:00
Ștefan Talpalaru 1fb9e07e96
bump vendor/nimbus-build-system 2019-11-22 15:55:21 +01:00
kdeme 4aee9fc7e8 Bump vendor/nim-eth 2019-11-19 11:02:00 +00:00
Ștefan Talpalaru 372f02dbcc
bump vendor/nim-nat-traversal and vendor/nimbus-build-system 2019-11-18 19:09:56 +01:00
Ștefan Talpalaru c1621a518b
bump vendor/nim-metrics 2019-11-10 18:28:55 +01:00
andri lim f21e953b80
bump modules 2019-11-06 23:41:56 +07:00
Ștefan Talpalaru d84e4810d5
unittest2 (parallelism disabled)
This is https://github.com/status-im/nimbus/pull/332 with parallelism
disabled, while some threadpool deadlock is being debugged.
2019-10-31 06:17:01 +01:00
Ștefan Talpalaru fab1628383
bump vendor/nimbus-build-system 2019-10-29 15:57:51 +01:00
Ștefan Talpalaru ebe7544a67
bump vendor/nimbus-build-system 2019-10-29 15:30:17 +01:00
Ștefan Talpalaru 506f1e88bd
ARM CI: apt-get update 2019-10-29 00:20:16 +01:00
andri lim ade81341c3
update nimbus-build-system 2019-10-28 22:50:30 +07:00
Zahary Karadjov 7a70cbeddc
Bump nim-stint 2019-10-28 22:21:40 +07:00
Zahary Karadjov cd5687ee49
Bump nim-stew 2019-10-28 22:21:40 +07:00
Zahary Karadjov 0d5cff5fd5
Bump nim-eth 2019-10-28 22:21:21 +07:00
Zahary Karadjov 25f70775be
Bump nim-stew 2019-10-28 22:12:52 +07:00
Ștefan Talpalaru d488f13968
ARM CI: get a separate cache 2019-10-27 22:19:59 +01:00
kdeme 4bc7af210f
Bump vendor/nim-eth 2019-10-16 14:15:27 +02:00
Ștefan Talpalaru c29216f32b
bump vendor/nim-metrics 2019-10-15 18:05:17 +02:00
Ștefan Talpalaru 36d1afe131
example Grafana dashboard + nim-metrics bump [skip ci] 2019-10-02 02:41:59 +02:00
andri lim dcc82fad74 add ethash submodule 2019-09-26 12:33:43 +03:00
Ștefan Talpalaru 2208d99a78
bump vendor/nimbus-build-system [skip ci] 2019-09-05 13:53:05 +02:00
Ștefan Talpalaru b4007b941e
Makefile: "nat-libs" is now included in "deps" 2019-09-04 19:14:54 +02:00
Ștefan Talpalaru 310925541a
move some submodules to nimbus-build-system 2019-08-28 15:12:35 +02:00
Ștefan Talpalaru 032a07ff9b
bump submodules 2019-08-24 21:12:43 +02:00
Ștefan Talpalaru f7d30a2f38
bump vendor/nimbus-build-system 2019-08-23 20:25:20 +02:00
Ștefan Talpalaru 144efee51d
env.sh: exec -> source 2019-08-23 18:56:42 +02:00
Ștefan Talpalaru 2314b4d593
use nimbus-build-system
Also remove the nim-beacon-chain submodule and its specific
dependencies.
2019-08-22 02:02:32 +02:00
Zahary Karadjov 27d1423ab4
Bump nim-beacon-node 2019-08-21 14:21:28 +03:00
Zahary Karadjov 1d8690cafe
Bump modules 2019-08-21 13:50:33 +03:00
kdeme a975889225
bump nim-eth module 2019-08-16 21:24:30 +02:00
Zahary Karadjov 6f398422a2
Bump modules 2019-08-15 20:44:16 +02:00
Ștefan Talpalaru 33494634aa
CI: LFS support for the beacon-chain tests
- Travis: switch language
- AppVeyor: disable `mingw32-make go-checks` for now
- `make update`: export GIT_LFS_SKIP_SMUDGE=1
- CI: disable the LFS script inside Makefile,
  since we run it separately (and git-lfs is not installed in the Travis
  macOS image if we found a valid cache).
2019-08-15 01:35:07 +02:00
Zahary Karadjov a0d1c2718a
Bump modules 2019-08-14 17:40:33 +02:00
Jacek Sieka 15b868a7d2
bump submodules 2019-08-14 11:59:34 +02:00
andri lim 63778af587 bump stint 2019-08-13 17:51:10 +03:00
Zahary Karadjov 63afc9fd36
Deploy on testnet0 only if we are in the master branch 2019-08-08 15:46:17 +03:00
Ștefan Talpalaru ec5b60c504
bump vendor/nim-metrics 2019-08-07 17:33:47 +02:00
Zahary Karadjov 913be82ce4
Bump modules 2019-08-07 18:28:07 +03:00
Zahary Karadjov 20ebaf2e8e
bump nim-eth 2019-08-07 06:14:22 +03:00
Zahary Karadjov 628f2461c5
Implement the latest ETH2 networking spec 2019-08-07 06:09:42 +03:00
Jacek Sieka 861aa8ff3d
bump submodules 2019-08-05 14:13:39 +02:00
Jacek Sieka ff9b553f7a
bump submodules 2019-08-03 10:54:45 +02:00
Ștefan Talpalaru 8947ec7be7
bump submodules 2019-08-01 23:08:27 +02:00
Jacek Sieka 926a0612f1
bump submodules 2019-07-24 08:20:26 +02:00
Jacek Sieka f6997fbeab
bump modules 2019-07-22 10:19:18 +02:00
Ștefan Talpalaru 409d771a50 metrics: put the HTTP server under -d:insecure
- also fix an option parsing bug
- bump vendor/nim-eth and vendor/nim-metrics
2019-07-19 15:17:51 +03:00
Ștefan Talpalaru ed1b4d40f2 bump vendor/nim-eth 2019-07-19 15:17:51 +03:00
Zahary Karadjov 003b2c3136
Bump modules 2019-07-16 14:11:24 +03:00
Zahary Karadjov a0e4ec47cd
Bump modules 2019-07-16 13:41:30 +03:00
Zahary Karadjov fc014508e6
bump beacon-chain 2019-07-16 10:50:37 +03:00
Zahary Karadjov 0e50db662b
Bump modules 2019-07-15 13:01:05 +03:00
Ștefan Talpalaru 3f0ab1a913
bump vendor/nim-eth and vendor/nim-beacon-chain 2019-07-11 18:03:44 +02:00
Zahary Karadjov b2680fbee7
Bump modules 2019-07-10 20:21:11 +03:00
Ștefan Talpalaru 5ee668516a
add nim-metrics 2019-07-10 16:32:44 +02:00
kdeme 820989c7f5
Bump nim-eth 2019-07-08 17:41:35 +02:00
Jacek Sieka f13dcba413
bump submodules 2019-07-07 12:27:01 +02:00
Jacek Sieka 2763bd0dd5
std_shims -> stew 2019-07-07 12:12:01 +02:00
Zahary Karadjov 7bd28905fd
Bump beacon-chain 2019-07-03 10:43:16 +03:00
Zahary Karadjov 6ef74b537f
Bump beacon-chain 2019-07-02 20:01:52 +03:00