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
why:
* easy browsing of prototype docs, allows to follow links with
a web browser on the local file system
* some md & png files may contain additional documentation
overview:
* separate nimbus/makefile, try "make -C nimbus" for instructions
* running "make -C nimbus docs" will do the job
* x-ref file in nimbus/docs/theindex.html
* additional md and png files in nimbus/docs/ex/.. subdirectory
details:
* a newer nim compiler provides better referencing when available, in
particular the back link to the indices are not provided by the 1.2.10
nim compiler (automatically handled by makefile)
* make patterns are used to update files only when the timestamp changes
* should provide "discount" markdown generator, otherwise fallback
to <pre/> encapsulated text file
- moved "nimbus/api" to "wrappers"
- renamed files
- replaced the build scripts with Makefile targets
- set the rpath relative to the test binary's location so it can look
for libnimbus.so there at runtime
- libnimbus.so.0 required on Linux, apparently
- compiled all the Nimbus code with `--app:lib`, not just one file (this
required skipping a proc in "nimbus/config.nim" because it uses an API
that's unavailable in libraries)
- removed static linking from the Go wrapper. It doesn't make sense at a
global level, when using a shared Nimbus library. To selectively link
static libraries, we should probably be specifying them as *.a. I did
build a static libnimbus.a, as a test, but it insisted on dlopen-ing a
shared version of itself which looked too ugly to continue.
* dummy c lib
* go stuffz
* Compile secp
* Compile as shared library
* Build with debug info
* Prelude exposed fns with setupForeignThreadGc() (naive)
To avoid GC/thread issues causing segmentation fault when running from Go.
* Add logging, fix lib path and gomaxprocs to make debuggable
* lock to os thread
* Address basic feedback and mark TODOs
* Use normal secp (shared lib flow now)
* api: cleanup, move to api folder
- build all tools using the Makefile and place them in ./build
- add copyright header to Makefile
- premix/readme.md edited to fix some errors, improve descriptions and
document Makefile usage
- link the Premix documentation in the main README.md
- also build `hunter` in the nimble tests
- refactored the file and directory search so all debugging tools can be run
from the top-level dir like this: `./build/<tool> ...`
- write all JSON debugging data in the current directory
- add JSON files generated in the top-level dir to .gitignore
- Nimbus now exits with an exception after dumping debug data and
running `premix` on it
- isolate dependencies (both Git repos and ".nimble" dir) in "vendor"
- ensure that everything is compiled using our version of Nim with
something as simple as "make"
- pull the latest changes with "make update"
- re-create Nimble's package dir and re-build the Nim compiler automatically when needed
- "env.sh" script that can be used to prefix any command that needs to use
"nim" or "nimble" from our Nim repo
- move the top level nim.cfg to nimbus/nim.cfg so it doesn't apply to
deps
- "fetch-dlls" `make` target for Windows to get precompiled Snappy, RocksDB and SQLite DLLs