-
Notifications
You must be signed in to change notification settings - Fork 0
Question no. 2
deposit.json
or deposit_data.json
is not compatible with nimbus
client. Code for converting to nimbus
:
# redo assigments on all 96 to convert it into nimbus deposits.json
$GO_PATH/bin/eth2-val-tools deposit-data \
--source-min=0 \
--source-max=$VALIDATOR_OFFSET \
--amount="$DEPOSIT_AMOUNT" \
--fork-version="$FORK_VERSION" \
--withdrawals-mnemonic="$WITHDRAWALS_MNEMONIC" \
--validators-mnemonic="$VALIDATORS_MNEMONIC" > /root/multinet/repo/deposits/assignments.json 2>&1
cat /root/multinet/repo/deposits/assignments.json \
| jq -s '.' \
| jq 'map({pubkey:.pubkey, signature:.signature,withdrawal_credentials:.withdrawal_credentials,amount:.value})' \
> /root/multinet/repo/deposits/deposits.json
echo "Deposits done."
Prysm is a special case, they are centric around the Ethdo wallet system. Instead of using the EIP 2335 key files directly, like all the other clients.
In the output directory, a prysm
dir is placed, with the following contents:
-
keymanager_opts.json
: JSON file describing accounts and their passphrases. And the "Location" part can be configured with--key-man-loc
, which will point to some "wallets" directory: where the actual wallets can be found.- Prysm requires Account names listed in the JSON to be prefixied with the wallet name, separated by a
/
. LikeAssigned/foobarvalidator
. - Ethdo wallets are in the same big store, and only one directory in this store per wallet. The directory must be named as UUID, and in the directory there must be a file with the same UUID name to describe the wallet.
- Ethdo key files in the wallet must also be named as a UUID, so that they can be parsed in the
.Accounts()
call
- Prysm requires Account names listed in the JSON to be prefixied with the wallet name, separated by a
-
wallets
: a directory which is an Ethdo store with a single non-deterministic wallet in it, covering all keys.- The wallet name is called
Assigned
, and the keys areAssigned/val_<pubkey here>
(excluding<
and>
) The pubkey is hex encoded, without0x
. - The wallet also contains an
index
file and all other ethdo-specific things
- The wallet name is called
Example deposit_data.json
file content:
[
{
"amount": 32000000000,
"deposit_cli_version": "1.1.0",
"deposit_data_root": "43bf27e6ef0a988915ad844d54d79638d40dc3ff7d0b324a8358930ba468da4c",
"deposit_message_root": "f2230f353bb8b909629a59a8492484b9552c90c6349fbaeaa28b67b416045365",
"eth2_network_name": "l14",
"fork_version": "00000000",
"pubkey": "80e4d51dd577f8d21abb919c1207ef46b53075217a67b45f027574a28d0a819f7cf84abdf2df884c43b2c719b9d128bc",
"signature": "a31af33d25ef778372f5692da2c203a2d33427c49657abf8e4fddbc9a4e9ecf0d0bfb79c0609c87bc552627857fb4b6803f4b31d4bfbea0d1167b4ccae71f5211a7b00a414bc7e6151c36bb8372d60bec9bd98964bbb6a9aac786fee80fa0132",
"withdrawal_credentials": "002a01ac03ebc4e37b3847125f47a865d8ef74bd86307cb8b639afcf6281070c"
}
]
Validators list array schema:
[
{
"amount": 32000000000,
"pubkey": "80e4d51dd577f8d21abb919c1207ef46b53075217a67b45f027574a28d0a819f7cf84abdf2df884c43b2c719b9d128bc",
"signature": "a31af33d25ef778372f5692da2c203a2d33427c49657abf8e4fddbc9a4e9ecf0d0bfb79c0609c87bc552627857fb4b6803f4b31d4bfbea0d1167b4ccae71f5211a7b00a414bc7e6151c36bb8372d60bec9bd98964bbb6a9aac786fee80fa0132",
"withdrawal_credentials": "002a01ac03ebc4e37b3847125f47a865d8ef74bd86307cb8b639afcf6281070c"
}
]
deposit.json
schema example:
[ { "public_key": "0x63FaC9201494f0bd17B9892B9fae4d52fe3BD377", "deposit_data": "0x7ba20202020227075626b6579223a202230783838373065646637326239643461356334316661613333346465376162396231346531383730643837363339646437343232343331643837656137613531323932383163346365356136653733343433396430366431333163386431323537396434346437383635346262616265303232343735663064343739393731343034222ca20202020227369676e6174757265223a2022616661626539386139383263326433306131626639326662356265306161383030376332313332383538303664393763356366353335353634613832623461396164383661656162333638663761373837393936376635623465393562666662303764373535393234383136303134313564383134353261623236363163356535353939333730333532616663303265303738396163343465343636343032626330663831623865393666353736326339333234313430363831623836306266222ca20202020227769746864726177616c5f63726564656e7469616c73223a202230303562356236356632346665636564366263366134666634383035336561643431373836336430653836303364313931383162613434336138373637623066222ca2020202022616d6f756e74223a203332303030303030303030a20207d" } ]
deposit.json
is a JSON file formatted as a list of hex public keys and their corresponding deposit data as hex such as [ { public_key: '0x1', deposit_data: '0x2' }, ... ] this file will be used for generating a genesis state from a list of specified validator public keys.
"deposit_data"
need to be formatted as hex.
Purpose of this wiki is to explain how to run eth2 phase1 network
Hello there!