Files
pezkuwi-subxt/polkadot/node/core/pvf
maksimryndin 426136671a PVF: re-preparing artifact on failed runtime construction (#3187)
resolve https://github.com/paritytech/polkadot-sdk/issues/3139

- [x] use a distinguishable error for `execute_artifact`
- [x] remove artifact in case of a `RuntimeConstruction` error during
the execution
- [x] augment the `validate_candidate_with_retry` of `ValidationBackend`
with the case of retriable `RuntimeConstruction` error during the
execution
- [x] update the book
(https://paritytech.github.io/polkadot-sdk/book/node/utility/pvf-host-and-workers.html#retrying-execution-requests)
- [x] add a test
- [x] run zombienet tests

---------

Co-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>
2024-02-28 16:29:27 +00:00
..
2024-02-11 09:59:10 +00:00

PVF Host

This is the PVF host, responsible for responding to requests from Candidate Validation and spawning worker tasks to fulfill those requests.

See also:

Running basic tests

Running cargo test in the pvf/ directory will run unit and integration tests.

Note: some tests run only under Linux, x86-64, and/or with the ci-only-tests feature enabled.

See the general Testing instructions for more information on running tests and observing logs.

Running a test-network with zombienet

Since this crate is consensus-critical, for major changes it is highly recommended to run a test-network. See the "Behavior tests" section of the Testing docs for full instructions.

To run the PVF-specific zombienet test:

RUST_LOG=parachain::pvf=trace zombienet --provider=native spawn zombienet_tests/functional/0001-parachains-pvf.toml

Testing on Linux

Some of the PVF functionality, especially related to security, is Linux-only, and some is x86-64-only. If you touch anything security-related, make sure to test on Linux x86-64! If you're on a Mac, you can either run a VM or you can hire a VPS and use the open-source tool EternalTerminal to connect to it.1


  1. Unlike ssh, ET preserves your session across disconnects, and unlike another popular persistent shell, mosh, it allows scrollback. ↩︎