* Enable `snap/1` accounts range service
* Allow to change the garbage collector to `boehm` as a Makefile option.
why:
There is still an unsolved memory corruption problem that might be
related to the standard `gc`. It seemingly goes away if the `gc` is
changed to `boehm`.
Specifying another `gc` on the make level simplifies debugging and
development.
* Code cosmetics
details:
* updated exception annotations
* extracted `worker_desc.nim` from `full/worker.nim`
* etc.
* Implement option to state a sync modifier file
why:
This allows to specify extra sync type specific options which might
change over time. This file is regularly checked for updates.
* Implement a threshold when to suspend full syncing
why:
For a test scenario, a full sync beep may work as a local snap server.
There is no need to download the full block chain.
details:
The file containing the pivot specs is specified by the
`--sync-ctrl-file` option. It is regularly parsed for updates.
* 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.
* 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
why:
TDD data and test script that are not needed for CI are externally held.
This saves space.
also:
Added support for test-custom_networks.nim to run import Devnet5 dump.
* Update readme with adjusted intro and dev updates link
* Remove pcre from prerequisites as it no longer is
* Change to hackmd doc as status notes seem not accessible
why:
on 32bit windows 7, there seems to be a 64k memory ceiling for the gcc
compiler which was exceeded on some test platform.
details:
compiling VM2 for low memory C compiler can be triggered with
"make ENABLE_VM2LOWMEM". this comes with a ~24% longer execution time
of the test suite against old VM and optimised VM2.
* 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
Without `pcre-devel` I get the following error when running `make`:
```
> make
Building: build/premix
Error: execution of an external compiler program 'gcc -c -w -pthread -I/home/oskarth/git/status-im/nimbus/vendor/nim-secp256k1/secp256k1_wrapper -I/home/oskarth/git/status-im/nimbus/vendor/nim-secp256k1/secp256k1_wrapper/secp256k1 -I/home/oskarth/git/status-im/nimbus/vendor/nim-secp256k1/secp256k1_wrapper/secp256k1/src -DHAVE_CONFIG_H -I/home/oskarth/git/status-im/nimbus/vendor/nim-nat-traversal/vendor/miniupnp/miniupnpc -I/home/oskarth/git/status-im/nimbus/vendor/nim-nat-traversal/vendor/libnatpmp -DENABLE_STRNATPMPERR -g3 -Og -O3 -fno-strict-aliasing -I/home/oskarth/git/status-im/nimbus/vendor/nimbus-build-system/vendor/Nim/lib -I/home/oskarth/git/status-im/nimbus/premix -o nimcache/debug/premix/stdlib_re.nim.c.o nimcache/debug/premix/stdlib_re.nim.c' failed with exit code: 1
nimcache/debug/premix/stdlib_re.nim.c:10:10: fatal error: pcre.h: No such file or directory
#include <pcre.h>
^~~~~~~~
compilation terminated.
make: *** [Makefile:48: premix] Error 1
```