Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Sassafras primitives #14768

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open

Conversation

davxy
Copy link
Member

@davxy davxy commented Aug 14, 2023

This PR introduces a new crate with the primitives required by Sassafras consensus.


Quoting the crate README:

The crate interfaces and structures are experimental and may be subject to changes.

Nevertheless, the strategy here is to incrementally drain the main PR by upstreaming smaller components in order to make the overall protocol inclusion and analysis more manageable.

The structures and functions were found to satisfy the requirements of the protocol.

A more in depth analysis of the structures obviously requires to dig into the client and frame pallets in the main PR.

Because minor changes may be required, IMO is useful to keep this stuff behind an experimental feature flag, mostly to explicitly assert that the this is still a WiP.


This crate requires to enable bandersnatch-experimental feature in some of its dependencies.
This feature ends up being transitively enabled in:
sp-consensus-sassafras → sp-application-crypto → sp-io → sp-keystore
Thus the bandersnatch experimental api is exposed in the Keystore trait.
Follows that we require to expose these functions implementation in the client keystore as well.

At this stage, by default, we don't want this.
IMO is better to keep Sassafras crates (and thus bandersnatch feature) out of workspace default build and optionally enable them via the sassafras-experimental feature.

I haven't found a better technique, but IMO makes sense to keep sassafras behind the sassafras-experimental until is not a bit more mature.


Step towards: paritytech/polkadot-sdk#41

Extracted from: #11879

@davxy davxy mentioned this pull request Aug 14, 2023
5 tasks
@davxy davxy self-assigned this Aug 14, 2023
@davxy davxy added A0-please_review Pull request needs code review. B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit labels Aug 14, 2023
@paritytech paritytech deleted a comment from paritytech-cicd-pr Aug 14, 2023
@paritytech paritytech deleted a comment from paritytech-cicd-pr Aug 14, 2023
@paritytech paritytech deleted a comment from paritytech-cicd-pr Aug 18, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants