2018-08-12 22:50:42 +00:00
|
|
|
## Validator Registration Contract
|
|
|
|
|
2018-11-30 15:12:23 +00:00
|
|
|
A validator will deposit 32 ETH to the registration
|
|
|
|
contract. The contract will generate a receipt showing the validator as a
|
|
|
|
qualified validator.
|
2018-08-12 22:50:42 +00:00
|
|
|
The deposit is considered to be burned. As you burn the 32 ETH to participate,
|
|
|
|
the beacon chain will see it and will credit the validator with the validator bond,
|
2018-11-30 15:12:23 +00:00
|
|
|
At some point in the future, after a hard fork,
|
|
|
|
the original deposit + interest can be withdrawn back on one of the shards.
|
|
|
|
To call the `registration` function, it takes arguments of `pubkey`,
|
|
|
|
`proof_of_possession`, `withdrawal_credentials` and `randao_commitment`.
|
|
|
|
If the user wants to deposit more than `DEPOSIT_SIZE` ETH, they would
|
|
|
|
need to make multiple `registration` calls.
|
|
|
|
When the contract publishes the `ChainStart` log, beacon nodes will
|
|
|
|
start off the beacon chain with slot 0 and last recorded `block.timestamp`
|
|
|
|
as beacon chain genesis time.
|
|
|
|
The registration contract generate receipts with the various arguments
|
|
|
|
for consumption by beacon nodes. It does not validate `proof_of_possession`
|
|
|
|
and `withdrawal_credentials`, pushing the validation logic to the
|
|
|
|
beacon chain.
|
2018-08-12 22:50:42 +00:00
|
|
|
|
|
|
|
## How to execute tests
|
|
|
|
|
|
|
|
```
|
|
|
|
go test ./...
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Run with `-v` option for detailed log output
|
|
|
|
|
|
|
|
```
|
|
|
|
go test ./... -v
|
|
|
|
=== RUN TestSetupAndContractRegistration
|
|
|
|
--- PASS: TestSetupAndContractRegistration (0.01s)
|
|
|
|
=== RUN TestRegisterWithLessThan32Eth
|
|
|
|
--- PASS: TestRegisterWithLessThan32Eth (0.00s)
|
|
|
|
=== RUN TestRegisterWithMoreThan32Eth
|
|
|
|
--- PASS: TestRegisterWithMoreThan32Eth (0.00s)
|
|
|
|
=== RUN TestRegisterTwice
|
|
|
|
--- PASS: TestRegisterTwice (0.01s)
|
|
|
|
=== RUN TestRegister
|
|
|
|
--- PASS: TestRegister (0.01s)
|
|
|
|
PASS
|
|
|
|
ok beacon-chain/contracts 0.151s
|
|
|
|
```
|