Commit Graph

446 Commits

Author SHA1 Message Date
Zahary Karadjov 7781536576
Handle the option of not resetting the network properly 2020-01-22 21:11:15 +02:00
Ștefan Talpalaru 7e36ba4f4e launch_local_testnet.sh 2020-01-22 13:44:58 +00:00
Zahary Karadjov c65575d105 Improved logging related to bootstrap nodes 2020-01-21 01:26:57 +02:00
Zahary Karadjov 4848b12050 Detect and use Lighthouse's boot_enr.yaml files 2020-01-21 01:26:57 +02:00
Zahary Karadjov 095b271bd4 Implement a loader for custom const presets
The loader has been tested with the presets published by Lighthouse.
You can try connecting to one of their testnets by running:

cd nim-beacon-chain
./connect-to-testnet lighthouse/testnet0
2020-01-21 01:26:57 +02:00
Ștefan Talpalaru 13b9f61f6f
reset_testnet.sh: `make build` moved earlier [skip ci] 2020-01-13 14:48:19 +01:00
Ștefan Talpalaru 05f0950f41
cosmetic change [skip ci] 2020-01-13 14:40:40 +01:00
Ștefan Talpalaru cc1c3f9181
reset_testnet.sh: restart the nodes [skip ci]
Watchtower seems broken, so we need to restart them explicitly.
2020-01-13 13:55:09 +01:00
Ștefan Talpalaru c6f8fdab13
reset_testnet.sh: add newline [skip ci] 2020-01-13 13:37:50 +01:00
Ștefan Talpalaru 6e1b60de36
reset_testnet.sh: avoid "unbound variable" error [skip ci] 2020-01-13 13:21:22 +01:00
Ștefan Talpalaru c39ca5b5c3
reset_testnet.sh: push the Docker image right after building it [skip ci]
and let Watchtower manage container restart
2020-01-13 12:58:16 +01:00
Zahary Karadjov 6ae4070d3f Slightly safer testnet reset detection 2019-12-10 15:02:16 +02:00
Zahary Karadjov 889031453f The beacon node can be compiled with the LibP2P native back-end
This hasn't been tested yet even in local sim.
2019-12-10 15:02:16 +02:00
Ștefan Talpalaru 3d2fde0cd4 alternative prompt solution and noise reduction 2019-12-05 10:43:41 +00:00
Ștefan Talpalaru 40648b463a connect_to_testnet.nims: default to "n" on the interactive prompt [skip ci] 2019-12-05 10:43:41 +00:00
Jacek Sieka afc0686b36 save ssz dummps during processing (#471) 2019-12-03 11:32:27 +00:00
Zahary Karadjov ee2448b221 Simple validator onboarding
On your very first connection to each testnet, you'll be asked to
become a validator. Please consult our private repo for a Goerli
Eth1 private key that you can use for deposits.

Other changes:

* Added a simple wrapper ./connect-to-testnet script calling the
  nims file in the correct environment. No extension was used to
  make the command the same on Unix and Windows.

* Bumped a number of modules with fixes from this week

* `make testnet0` and `make testnet1` will no longer delete your
  existing database. This is considered a more appropriate behavior
  for testing forward sync.
2019-12-03 02:23:17 +02:00
Zahary Karadjov 7617e293a9 Make testnet1 identical to testnet0 2019-11-26 02:45:25 +02:00
Jacek Sieka fd4de5de0f
start untangling beaconnode (#589)
* Move BeaconNode type to its own file (fewer imports)
* disentangle sync protocol/request manager
* fix some old nimisms
* de-fear some logs
* simplify eth1 data production
* add stack tracing to release builds
* drop release compile flag for testnet
2019-11-25 15:36:25 +01:00
Ștefan Talpalaru e46e9b12a2 remove last traces of git-lfs usage 2019-11-22 14:15:04 +00:00
Dustin Brody 2fdfba1f34 don't need git-lfs anymore, since test vector download moved to curl from github; remove some unused OS/xz detection code from test vector download script 2019-11-21 09:50:03 +00:00
Zahary Karadjov 67991065d6
Cache the Nim build in docker; Use unique keys for the testnet bootstrap nodes 2019-11-19 02:05:46 +02:00
Ștefan Talpalaru f4273f7b89 Docker changes [skip ci]
- use a Debian Bullseye image
- use the distro's packages whenever possible
- cache as much as possible of the Git repos and tool binaries locally
- restrict Docker image pushing to specific branches; no build
  restrictions, to allow for easy development
2019-11-18 18:09:23 +00:00
Mamy André-Ratsimbazafy f98dd9b1bf Bump: only keep 0.9.1 tests, remove LFS 2019-11-14 12:48:34 +00:00
Zahary Karadjov 9af418c30d
Bugfix: the testnet nim flags were not being passed to Docker properly [skip ci] 2019-11-13 01:28:00 +00:00
Zahary Karadjov f40675509a Make all testnet env file values optional [skip CI]
Also removes some usages of SHARD_COUNT
2019-11-12 23:43:38 +00:00
Zahary Karadjov 5a6a8e9520 Finalizing setup for testnet1; Auto-restart of the docker containers after testnet resets 2019-11-12 19:08:12 +00:00
Ștefan Talpalaru 6c021f8c12
connect_to_testnet.nims: fix warning and enforce verbosity [skip ci] 2019-11-12 15:57:33 +01:00
Zahary Karadjov 88010a1cd1 Allow running the reset_testnet script outside of the Nimbus env [skip ci] 2019-11-11 23:29:36 +00:00
Zahary Karadjov f5e9b9a922 Allow running local nodes without attached validators
The number of user nodes is now specified with `USER_NODES`.

To make the instructions more stable, the "numeric id" of the user
nodes will be starting from 0 (so you can always use `run_node.sh 0`
to start a user node).

If you specify a node index above the total number of nodes, you'll
launch a node without any validators attached (this is useful for
testing the sync for example).
2019-11-11 23:29:36 +00:00
Zahary Karadjov 22591deced Safer testnet restarts; Working CLI queries for inspecting the genesis states
When the connect_to_testnet script is invoked it will first verify that
the genesis file of the testnet hasn't changed. If it has changed, any
previously created database associated with the testnet will be erased.

To facilitate this, the genesis file of each network is written to the
data folder of the beacon node. The beacon node will refuse to start if
it detects a discrepancy between the data folder and any state snapshot
specified on the command-line.

Since the testnet sharing spec requires us to use SSZ snapshots, the Json
support is now phased out. To help with the transition and to preserve the
functionality of the multinet scripts, the beacon node now supports a CLI
query command that can extract any data from the genesis state. This is
based on new developments in the SSZ navigators.
2019-11-11 23:29:36 +00:00
Zahary Karadjov 9d858eef90 Switch testnet1 to a preset that is harder to finalize 2019-11-11 23:29:36 +00:00
Zahary Karadjov 13068c6b57 Safer testnet resets
* Delete the node database on all containers when resetting a testnet
* Add a simple mechanism for switching the URL of the eth2-testnets repo
* More flexible code for validator assignments
2019-11-11 23:29:36 +00:00
Ștefan Talpalaru 0794337ba6
simplify handling of eth2-clients/eth2-testnets repo [skip ci] 2019-11-07 21:10:59 +01:00
Yuriy Glukhov 568e669b1c Fixed deposit/contract 2019-11-07 17:23:06 +00:00
Ștefan Talpalaru e8a64e4206
Dockerfile: less verbosity, faster build [skip ci] 2019-11-07 02:32:59 +01:00
Ștefan Talpalaru 35da46cc3c
Makefile: "testnetX" targets verbosity level [skip ci] 2019-11-05 23:54:52 +01:00
Zahary Karadjov 14374504cf
Finalization experiements
* Switched to FloodSub
* Testnet0 switched to the minimal preset. All validators deployed on the master node.
2019-11-05 03:13:16 +02:00
Mamy Ratsimbazafy 753d5af447
Test vectors: use tarballs, allow multiple spec versions for progressive spec updates (#514)
* update test submodule [skip ci]

* rename the process_lfs script to setup_official_tests [skip ci]

* clarify that the existing LFS is for json files [skip ci]

* Update again to use download/unpack function library

* update the test downloading script [skip ci]

* Update EF fixtures with new test path

* fix symlink order

* Fix relative:absolute symlink issue

* add symlink existence check

* setup_official_tests.sh: refactoring
2019-11-01 09:44:16 +01:00
Zahary Karadjov efa063d4bc
Safer handling of the git operations in the eth2-testnets repo [skip ci] 2019-10-31 20:07:48 +02:00
Yuriy Glukhov abbe4075fa Fixed deposit contract deployment 2019-10-30 17:23:34 +02:00
Ștefan Talpalaru 7fa7c8ee53
Merge branch 'CI' 2019-10-29 21:28:14 +01:00
Zahary Karadjov 068cc8066e
Store the testnet metadata in the official eth2-clients repo [skip ci] 2019-10-29 20:22:25 +02:00
Zahary Karadjov 6664f1689f
Use SSZ genesis files
Multi-client testing requires more portable formats, and SSZ is
much better specified than our flavour of Json.

Tools like ncli and zcli can be now used to inspect the contents
of the SSZ files.
2019-10-29 19:16:32 +02:00
Zahary Karadjov efa6d2d08e
Fix some obsolete paths and delete obsolete scripts 2019-10-29 19:16:32 +02:00
Zahary Karadjov 1ef9f458ac
Remove hard-coded variables from the manage_testnet_hosts script 2019-10-29 19:16:32 +02:00
Zahary Karadjov 3da4d4f23a
Remove some obsolete code 2019-10-29 19:16:32 +02:00
Zahary Karadjov f5fb4277b4
Testnet reset script fixes 2019-10-29 19:16:32 +02:00
Zahary Karadjov f1ea0cec32
Add support for testnets with mixed quickstart/random deposits 2019-10-29 19:16:32 +02:00
Ștefan Talpalaru 49b67f58fc
Travis: ARM64 build
Azure changes:

- use newer caching task
- add the branch name to cache keys
- install the 64-bit MinGW-w64 ourselves

Homebrew fix
2019-10-29 16:10:43 +01:00
Zahary Karadjov b244f35731
Make the deposit contract metadata file optional 2019-10-29 02:27:13 +02:00
Zahary Karadjov 734ab64da8
Unix-style command-line params for the 'deposit_contract' binary 2019-10-29 02:20:47 +02:00
Zahary Karadjov f92db449e1
nims script for connecting to testnets published in the eth2-testnets repo
See https://github.com/ethereum/eth2.0-pm/pull/93 for more info
2019-10-29 01:07:31 +02:00
Zahary Karadjov ba0037738b
Removed all code related to the old network metadata files
Also switched to a more "standard" naming convention for the
command-line parameters.
2019-10-29 01:04:52 +02:00
Yuriy Glukhov 9d3889cbab
WIP Goerli testnet 2019-10-28 15:51:17 +02:00
Zahary Karadjov df7531f9bf
More testnet scripts fixes cherry-picked from the interop branch 2019-09-26 19:07:38 +03:00
Zahary Karadjov 0eaa433e84
Automated scripts for resetting the Status testnets
For detailed instructions, please see

https://github.com/status-im/nimbus-private/blob/master/testnets-maintenance.md
2019-09-26 18:58:51 +03:00
Zahary Karadjov e59bb6ecab
Switch testnet1 to the minimal preset, so it's compatible with interop clients 2019-09-26 18:58:51 +03:00
Jacek Sieka 65ff8f2886
remove networkId (unused) 2019-09-11 20:29:57 -04:00
Jacek Sieka 7b73b40bab interop updates
* add interop launcher scripts
* stick validator_keygen into beacon_node
* fix lmd ghost slot number on missing block
* use mocked eth1data when producing blocks
* use bls public key method for withdrawal credentials
* fix deposit domain
* prefer lowercase for a bunch of toHex
* build simulation binary in data folder to avoid data types confusion
2019-09-02 22:14:18 +03:00
Mamy Ratsimbazafy 1ec4c5aef7
Prepare for v0.8.3 tests: submodules + LFS script + Appveyor updates (#368)
* Update fixtures to 0.8.3

* v0.8.1 tests use new test path

* LFS caching: handle multiple versions of json_tests

* Enable paths > 260 characters in appveyor

* Appveyor: use git clone core.longpaths + the env variable at startup

* improve process_lfs.sh and cleanup submodules
2019-08-30 17:50:46 +02:00
Ștefan Talpalaru 59fa03be89
process_lfs.sh: proper error message when `git-lfs` is missing
(and bump 2 submodules)
2019-08-27 17:01:19 +02:00
Ștefan Talpalaru 60dfa7081b
move build_p2pd.sh to nimbus-build-system 2019-08-25 15:44:45 +02:00
Ștefan Talpalaru 5dc6f60b08
process_lfs.sh: better verbosity handling 2019-08-24 03:54:04 +02:00
Ștefan Talpalaru 69ac78b2e0 new build system and submodules
- better p2pd building, with CI caching
2019-08-23 14:36:29 +03:00
Ștefan Talpalaru 7fff9a09fc handle LFS fixtures for the test suite (#339)
* handle LFS fixtures for the test suite

* test_fixture_ssz_static.nim: allow the tests to fail properly

- switch to a debug build for the failing tests

* try -d:debug
2019-08-14 13:19:17 +02:00
Zahary Karadjov 5ce50b3aca
Implement the latest networking spec
https://github.com/ethereum/eth2.0-specs/pull/1328
2019-08-07 05:22:28 +03:00
Ștefan Talpalaru 44af08cc86
beacon node wrapper script
Bonus: `make NIMFLAGS="--stackTrace:on" testnet1` now works as expected
2019-07-11 13:52:59 +02:00
Ștefan Talpalaru 2768a3e89e
Ctrl+C handling and:
- added a "quitProc" for shutting down the p2pd process, after seeing it
  survive an unhandled exception (this required a global var for the
  DaemonApi instance)
- Makefile testnet0/1 targets now depend on the "p2pd" binary
- prefixed the testnet command line in the build script message with
  "../../env.sh" so it can find the superproject's "p2pd"
2019-07-11 04:36:07 +02:00
Zahary Karadjov 7d174b548a Switch the testnet1 back-end to libp2p_native
Further simplifications and removal of support for multiple network
back-ends per testnet.
2019-06-24 19:38:19 +03:00
Zahary Karadjov 1bcd94a7da
Switch to a model where the testnets are stricly associated with a network back-end type 2019-06-24 05:34:22 +03:00
Zahary Karadjov 976438d7fc
reset all testnet flavours together 2019-06-24 05:34:22 +03:00
Zahary Karadjov f4a96bc3f3
[WIP] Restore the Lib2P2 builds and implement the latest wire spec
Depends on https://github.com/status-im/nim-eth/pull/54
2019-06-24 05:34:21 +03:00
Ștefan Talpalaru f9a3dffd00 don't use `realpath` (#244) 2019-04-09 12:51:03 -06:00
Zahary Karadjov ba48fcd165 Slightly better error messages during testnet upgrades; Upgrade testnet0 to 1000 validators 2019-04-09 00:36:06 +03:00
Jacek Sieka c9e0fed4ea
testnet: print instructions and configuration path after building 2019-03-29 13:48:02 -06:00
zah e16d8faee2 Switch to a two-steps build process (#228) 2019-03-29 10:44:19 -06:00
Zahary Karadjov b7253920d2 Fix a typo in the download_keys script 2019-03-29 17:01:58 +02:00
Zahary Karadjov 78c054214c Even smaller testnet1 2019-03-29 15:07:09 +02:00
Ștefan Talpalaru 819992a786
Makefile: testnet targets wrapping connect_to_testnet.sh
- also moved the binary into the "build" directory
2019-03-28 23:19:12 +01:00
Zahary Karadjov 1633ccaaca testnet1 with 5000 validators 2019-03-28 23:34:33 +02:00
Zahary Karadjov 7fd8665306 Specify the network port in the connect script, so you can connect to both testnets together 2019-03-28 19:30:32 +02:00
Zahary Karadjov d03e727dcb fix a wrong push by accident 2019-03-27 18:16:03 +02:00
Zahary Karadjov 371d27168a fix a typo in the connect script 2019-03-27 18:13:39 +02:00
Zahary Karadjov 406df9d44f More chatty syncing 2019-03-27 18:13:39 +02:00
Zahary Karadjov b3d23c052c Switch to 30 seconds slot duration; UX improvements
* On the testnet site, the first N instead of the last N validators
  will be considered reserved for users

* The number of validators is consistently named `totalValidators`
  in all commands

* Proper keys are generated by default in validator_keygen
2019-03-27 18:13:39 +02:00
Zahary Karadjov f1cf0ed87d Helpful script for bulk downloading of validator keys 2019-03-27 18:13:39 +02:00
Zahary Karadjov 6629897567 We don't need the more complicated port setup anymore 2019-03-27 18:13:39 +02:00
Bruno Škvorc 607752680e
Create README.md 2019-03-26 17:38:30 +01:00
Zahary Karadjov 4ea776bd0e Alloc connecting to testnet1 2019-03-26 17:40:20 +02:00
Zahary Karadjov d94d4f2606 Dumbed down the validator key import procedure
The previous idempotent scheme proved to be too slow, making it
harder to quickly re-assign validators on the servers.
2019-03-26 17:37:31 +02:00
Zahary Karadjov 0a027e410a Address review concerns and make some steps towards json logging 2019-03-22 17:04:17 +02:00
Zahary Karadjov 06301458bf Don't add the 'node' log property when connecting to the testnet 2019-03-22 17:04:17 +02:00
Zahary Karadjov 6ec8ffe0ff Much better error reporting on snapshot deserialization problems 2019-03-20 02:05:10 +02:00
Zahary Karadjov 23b7cbfc9c Helpful script for populating a node dataDir with a large number of validator keys 2019-03-19 22:51:22 +02:00
Zahary Karadjov 42ca6afae2 Helpful scripts for resetting the testnets 2019-03-19 21:50:22 +02:00