Commit Graph

247 Commits

Author SHA1 Message Date
Danny Ryan c10d219664
Merge branch 'dev' into withdrawals-push 2022-03-22 08:11:09 -06:00
Danny Ryan 255e942f64
add validator and fork-choice mods for withdrawals in capella 2022-03-16 12:01:42 -06:00
Mikhail Kalinin 84ab086d94 Add safe_block_hash to notify_fc_updated 2022-03-14 19:09:21 +06:00
Hsiao-Wei Wang eef2dbb2b6 Ensure that the SSZ classes are ordered 2022-02-25 01:22:02 +08:00
Danny Ryan 2026103bb9
Merge branch 'dev' into withdrawals-push 2022-02-23 15:08:29 -07:00
Mikhail Kalinin eb4497fae7 Bellatrix: Rename execute_payload to notify_new_payload 2022-01-27 15:24:53 +06:00
Danny Ryan d5e4828aec
Merge pull request #2770 from sigp/opt-sync-2
Optimistic Sync
2022-01-25 10:26:29 -07:00
Danny Ryan a5b3c91f25
build opimistic sync file and fix a minor lint/typing issue 2022-01-20 09:25:02 -07:00
Alex Stokes 10603b71c0
indicate unused argument in utility function 2022-01-13 11:39:37 -08:00
Alex Stokes fd27d93898
add `pylint` to catch unused args 2022-01-13 11:27:11 -08:00
Jacek Sieka 46bc206740
Add `CONFIG_NAME` to configs
Runtime configurations apply to a certain network and the name of that
network is useful for humans such that they can talk about it.

Some of the existing configs already include a `CONFIG_NAME` toggle -
might as well add it here as well and avoid some confusion - this name
above all becomes useful in the beacon API.

By extension, the `CONFIG_NAME` config will appear in the beacon api as
a result of being defined here.
2021-12-29 13:02:36 +01:00
Hsiao-Wei Wang 171a9ccc81
Resolve conflicts 2021-12-27 18:30:12 +08:00
Hsiao-Wei Wang 8facc0a095
Merge -> Bellatrix 2021-12-23 14:25:43 +08:00
Danny Ryan 365b1f46f9
remove unnecessary definitions from CapellaSpecBuilder 2021-12-02 12:33:58 -07:00
Danny Ryan 4f24fe455b
basic capella withdrawal in place 2021-12-01 11:37:30 -07:00
Hsiao-Wei Wang 7de1495a42
Fix lint (#2750) 2021-11-30 06:38:42 -06:00
Hsiao-Wei Wang 79f1f16adf
Clean `PowBlock.difficulty` leftover 2021-11-16 22:08:00 +08:00
Mikhail Kalinin 0ad344bf72 Make notify_forkchoice_updated return payload id value 2021-11-04 15:58:48 +06:00
Alex Stokes 43da796b29
Update setup.py
Reflect changes to max transaction size in #2686.
2021-10-31 06:05:02 -07:00
Hsiao-Wei Wang 5b9652bf93
Merge branch 'dev' into get_pow_block-not-found 2021-10-26 21:37:08 +08:00
Danny Ryan 8a27a7cb5d
remove union type for eecution-payload txs 2021-10-19 15:46:18 -06:00
Danny Ryan 4bf88ba89e
Merge pull request #2683 from ethereum/remove-prepare-payload
remove prepare_payload
2021-10-19 09:41:44 -06:00
Hsiao-Wei Wang 34335e0334
Remove `prepare_payload` leftover 2021-10-19 15:30:49 +08:00
Hsiao-Wei Wang ba582b3e3a
Fix setup.py parser and rename `TBH_ACTIVATION_EPOCH` -> `TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH` 2021-10-19 11:26:53 +08:00
Danny Ryan d5be6b5d68
remove prepare_payload in favor of a unification with notify_forkchoice_updated 2021-10-18 18:12:11 -06:00
Hsiao-Wei Wang cd5cf60deb
Clarify `get_pow_block` block-not-found case 2021-10-18 14:05:40 +08:00
protolambda 7e080c18f7
update remerkleable 2021-10-16 01:15:31 +02:00
Danny Ryan 130b81bf55
remove notify_consensus_validated in accordance with POS_CONSENSUS_VALIDATED removal from eip 3675 2021-10-10 10:47:59 -04:00
Jacek Sieka 38cf59a68c
show where code error happened, on error 2021-10-05 18:01:12 +03:00
Fredrik Svantes 0b808b5c5a
pip no longer invoked by an old script wrapper.
while debugging an error I encountered while running setup.py I also saw pip.main was used to installed packages. installing packages through pip.main (pip.main(["install", RUAMEL_YAML_VERSION])) is not recommended, and will be removed from future versions of pip.

https://github.com/pypa/pip/issues/5599
https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program
2021-09-24 16:33:14 +02:00
Danny Ryan 940d6b1cc5
Merge pull request #2613 from mkalinin/execution-engine-update
Update execution engine calls
2021-09-24 05:57:27 -06:00
Fredrik Svantes e0eec44e34
No longer importing "Paragraph"
removed Paragraph from being imported from marko.ext.gfm.elements as it is not being used
2021-09-24 12:45:37 +02:00
Mikhail Kalinin 41e06aec1b Introduce PayloadId type 2021-09-23 15:03:43 +06:00
Mikhail Kalinin 7d577ed422 Introduce ExecutionAddress type 2021-09-23 14:35:55 +06:00
Mikhail Kalinin 7ef938da77 Add notify_ prefix to EE functions sending notifications 2021-09-23 13:37:52 +06:00
Mikhail Kalinin 24bacafeee Update consensus_validated description 2021-09-22 23:52:15 +06:00
Mikhail Kalinin b530e01761 Update calls to execution_engine 2021-09-20 20:57:45 +06:00
Mikhail Kalinin 960a49afc9 Verify terminal PoW block after call to state_transition 2021-09-10 16:07:26 +06:00
Sam.An 0bd3e0286b
Clean up startswith method in setup.py
`value.startswith(("uint", "Bytes", "ByteList", "Union"))`
2021-08-27 10:12:19 +09:00
Hsiao-Wei Wang b262854bb1
Rename the `eth2_*` functions to `eth_` 2021-08-03 21:51:02 +08:00
protolambda 17fad2dea2
rebase The Merge onto Altair base functionality 2021-07-22 16:36:41 +02:00
Danny Ryan 947ca9082c
Merge pull request #2522 from mkalinin/strict-terminal-pow-block
Enforce terminal PoW block to be on the cusp
2021-07-20 08:28:46 -06:00
Mikhail Kalinin 65f6aa1b33 Replace PyUnion with Optional 2021-07-20 17:37:52 +06:00
protolambda 5ad36bd3d5
Update remerkleable to v0.1.22: list lookup speed improvement 2021-07-17 15:55:38 +02:00
Mikhail Kalinin add00ad2e0 Replace get_pow_chain_head with get_pow_block_at_total_difficulty in validator.md 2021-07-17 12:33:06 +06:00
Mikhail Kalinin a4a050e97a Enforce terminal PoW block to be on the cusp 2021-07-16 19:16:32 +06:00
Mikhail Kalinin 199d6aee58 Merge remote-tracking branch 'origin/dev' into randao_in_execution_payload 2021-06-19 00:28:38 +06:00
Justin 878b15df6a
polish merge/beacon-chain.md (#2472)
Polish `merge/beacon-chain.md` with mostly non-substantive changes.

**Non-substantive changes**

* rename `MAX_EXECUTION_TRANSACTIONS` to `MAX_TRANSACTIONS_PER_PAYLOAD`
	- rename "execution transaction" to just "transaction" as per discussion with Danny
* rename `compute_time_at_slot` to `compute_timestamp_at_slot`
	- the function returns a Unix timestamp
	- "timestamp" matches `execution_payload.timestamp`
* be explicit about `ExecutionEngine.execution_state` for clarity
* rename `ExecutionPayload.number` to `ExecutionPayload.block_number`
	- more specific ("number" is pretty vague)
	- consistent with `ExecutionPayload.block_hash`
* rename `new_block` to `on_payload`
	- the `on_` prefix is consistent with other event handlers (e.g. see `on_tick`, `on_block`, `on_attestation` [here](https://github.com/ethereum/eth2.0-specs/blob/dev/specs/phase0/fork-choice.md#handlers))
	- the `_payload` suffix is more to the point given the function accepts an `execution_payload`
	- avoids conflict with `on_block` which is already used in the fork choice
* rework the table of contents for consistency
* order `is_execution_enabled` after `is_transition_completed` and `is_transition_block`
	- `is_execution_enabled` refers to `is_transition_completed` and `is_transition_block`
* rename "transition" to "merge"
	- "transition" is a bit vague—we will have other transitions at future hard forks
	- there is no need for two words to refer to the same concept
* add a bunch of inline comments, e.g. in `process_execution_payload`
* make the `process_execution_payload` signature consistent with the other `process_` functions in `process_block` which take as arguments `state` and `block.body`
* remove `TRANSITION_TOTAL_DIFFICULTY`
	- to be put in `merge/fork-choice.md` where it is used 
* various misc cleanups

**Substantive changes**

* reorder `ExecutionPayload` fields
	- for consistency with yellow paper and Eth1
	- same for `ExecutionPayloadHeader`
	- added comments separating out the execution block header fields from the extra fields (cosmetic)
2021-06-18 11:09:30 +01:00
Mikhail Kalinin 6e86d8a696 Rename randao->random, other fixes as per review 2021-06-17 21:20:17 +06:00
Mikhail Kalinin cc20b80103 Fix linter, add more test helpers 2021-06-15 14:55:06 +06:00
Danny Ryan 5d9d786499
Merge pull request #2462 from mkalinin/merge-transition-with-dynamic-ttd
Merge transition process with computed transition total difficulty
2021-06-08 09:55:10 -06:00
Mikhail Kalinin 6350e27366 Add difficulty field to PowBlock 2021-06-08 17:56:07 +06:00
Danny Ryan 8ba740a93a
Merge branch 'dev' into invariant-checks 2021-06-07 08:12:27 -06:00
Danny Ryan 30f2a07637
Merge pull request #2438 from ralexstokes/add-aggregate-pks-fn
Move BLS extensions to new file in Altair
2021-06-07 07:18:31 -06:00
Hsiao-Wei Wang 049c18b6c4
Bump mypy to v0.812 (latest) 2021-06-03 20:49:29 +08:00
Hsiao-Wei Wang 989d33f6ec
Bump mypy to v0.800. This release adds Python 3.9 support. 2021-06-03 17:30:43 +08:00
Mikhail Kalinin 6226be9e1e Implement TransitionStore and transition total difficulty computation 2021-06-01 16:28:30 +06:00
Mikhail Kalinin fd4369dc7c Add merge/fork.md with upgrade_to_merge definition 2021-05-31 19:30:54 +06:00
protolambda 8f005c18e5
when an untyped var is not the last config var, it needs a comma 2021-05-31 15:20:50 +02:00
protolambda d11586122f
update remerkleable, union support 2021-05-28 01:02:08 +02:00
Alex Stokes 6ecbc5e357
Add new file to spec infra 2021-05-27 12:21:04 -07:00
Alex Stokes 7a14e93c65
PR feedback 2021-05-27 12:02:44 -07:00
Hsiao-Wei Wang 69f2a31406
Add some config invariant checks 2021-05-26 01:10:40 +08:00
Hsiao-Wei Wang 74761db7a3
Fix lint error 2021-05-25 21:40:10 +08:00
Hsiao-Wei Wang fc1af1cff3
[pyspec] Use mainnet.py as the default spec 2021-05-25 21:13:12 +08:00
Alex Stokes 41ca149429
Explicitly define `bls.AggregatePKs` 2021-05-24 11:56:10 -07:00
protolambda 1636a1df58
reduce duplicate combination code, and no in-place updates 2021-05-19 19:18:42 +02:00
protolambda 291168e1e3
clarify config/preset separation, address review comments by @djrtwo 2021-05-19 17:15:34 +02:00
protolambda f5c647b47b
switch configuration to named tuple for reliable hashing, add test for config override functionality 2021-05-18 16:08:30 +02:00
protolambda e8b0c46138
misc test fixes for new config approach 2021-05-18 14:45:56 +02:00
protolambda 0894125bf7
update test util 2021-05-18 13:59:26 +02:00
protolambda ccc6679e21
config as dataclass 2021-05-18 12:48:42 +02:00
protolambda 6f68913e11
implement pyspec build targets 2021-05-18 12:12:01 +02:00
protolambda 79d0fa037f
updated config util 2021-05-18 09:55:25 +02:00
Danny Ryan 4cd9a6c710
Merge pull request #2385 from ethereum/execution-payload-testing
Execution payload tests
2021-05-14 06:40:40 -06:00
protolambda 0390ab819a
Protocols pyspec support + execution payload tests cleanup 2021-05-12 02:40:23 +02:00
Danny Ryan 2539d4e11d
Merge pull request #2380 from ethereum/merge-test-vectors
Merge test vectors: enable phase0 tests for Merge + start on new testing
2021-05-10 07:30:21 -06:00
Mikhail Kalinin e78e045847 Implement execution payload tests 2021-05-10 16:12:23 +06:00
Danny Ryan 4b27b076f6
add missing comma 2021-05-06 12:36:08 -06:00
Alex Stokes 953b0278a1
whitespace 2021-05-06 10:52:48 -07:00
Alex Stokes 4c73fec88e
convert `LightClientStore` to python object instead of SSZ object
this avoids the type overhead of having to define a max size for
the object's data and skips the overhead of serialization/consensus
for a type that does not need it
2021-05-06 10:52:48 -07:00
protolambda cc11328f74
fix merge forkchoice tests with mock get_pow_block 2021-05-05 16:26:41 +02:00
Alex Stokes 58e768392e
Simplify spec comment processing 2021-04-23 08:03:49 -07:00
Alex Stokes a9e3ecabbd
demo spec comment feature 2021-04-21 18:49:51 -07:00
Alex Stokes de3ac15d9c
introduce alternate spec parser with spec comments 2021-04-21 18:49:51 -07:00
Hsiao-Wei Wang f2df4bf5c8
Merge branch 'dev' into refactor-spec-builder2 2021-04-19 23:14:30 +08:00
Sam.An 9e4f5c1879
changed alphabet string to string module.
changed alphabet string to string module.
2021-04-19 22:41:45 +09:00
Hsiao-Wei Wang 5349645a8f
Rename `SpecAdjustment` to `SpecBuilder` and add `build_spec` interface 2021-04-16 11:29:10 +08:00
Hsiao-Wei Wang e8c3d28a86
Merge branch 'dev' into refactor-spec-builder2 2021-04-16 11:03:57 +08:00
Danny Ryan 2ac19be198
Merge pull request #2331 from BenSchZA/BenSchZA-patch-1
Update variable name ALTAIR_INVAIANT_CHECKS to INVARIANT in `setup.py`
2021-04-15 07:20:14 -05:00
Danny Ryan 2baeee463d
Merge pull request #2322 from mkalinin/merge-cleanup
Merge cleanups and improvements
2021-04-15 07:17:55 -05:00
BenSchZA 35fea7a11b Update copy INVAIANT to INVARIANT 2021-04-14 21:37:25 +02:00
Danny Ryan 320172fb08
fix lint 2021-04-14 08:02:09 -05:00
Alex Stokes 18fc7c0498
Merge pull request #2311 from ralexstokes/add-altair-val-tests
Add some basic tests for Altair validator guide
2021-04-12 15:19:44 -07:00
Alex Stokes 4bf6331c21
update remerkleable 2021-04-12 15:11:21 -07:00
Hsiao-Wei Wang 79230c5f68
Update pyspec builder 2021-04-10 03:04:27 +08:00
Hsiao-Wei Wang 3320ebb865
Fix typo and add `SpecAdjustment.fork` property 2021-04-09 22:39:12 +08:00
Hsiao-Wei Wang ceb352be12
Refactor `imports_and_predefinitions` into `imports` and `preparations` 2021-04-09 22:17:01 +08:00
Hsiao-Wei Wang 1ffa436836
Update `imports_and_predefinitions` 2021-04-09 21:28:58 +08:00
Hsiao-Wei Wang 658ede2191
Refactor pyspec builder with `SpecAdjustment` classes 2021-04-09 21:12:05 +08:00