* Notify collators about seconded collation
This pr adds functionality to inform a collator that its collation was
seconded by a parachain validator. Before this signed statement was only
gossiped over the validation substream. Now, we explicitly send the
seconded statement to the collator after it was validated successfully.
Besides that it changes the `CollatorFn` to return an optional result
sender that is informed when the build collation was seconded by a
parachain validator.
* Add test
* Make sure we only send `Seconded` statements
* Make sure we only receive valid statements
* Review feedback
* collation-generation: use persisted validation data
* node: remote FullValidationData API
* runtime: remove FullValidationData API
* backing tests: use persisted validation data
* FullCandidateReceipt: use persisted validation data
This is not a big change since this type is not used anywhere
* Remove ValidationData and TransientValidationData
Also update the guide
This pr changes the collator interface function to return an optional
collation instead of a collation. This is required as the parachain
itself can fail to generate a valid collation for various reason. Now if
the collation fails it will return `None`.
Besides that the pr adds some `RuntimeDebug` derive for `ValidationData`
and removes some whitespaces.
* Guide: Change for {Global,Local}ValidationData to ValidationData
Seems like that was missed during the transition from notions of global and local validation data to persistent and transient
* collation-generation: a small drive-by fix of line length
* collation-generation: extract an error module
this allows us to avoid piling Error and Result types from different contexts, specifically std vs. module-local
* collation-generation: extract LOG_TARGET from log statements
* guide: validation data refactoring
* address grumbles from review
* Update roadmap/implementers-guide/src/types/candidate.md
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* last comments from review
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* Do a small write-up on collation-generation
* preamble to collator protocol
* notes on protocol
* collation-generation: point to collator protocol
* fix missing bracket
* expand on collator protocol wire protocol
* add a couple more sentences
* expand on requests some more
* go higher level
* network bridge: note peerset
* note peer-set = validation for protocols
* add `ConnectToValidators` message
* use ConnectToValidators in collator protocol
* typo
* remove references to sentry nodes