Closed poszu closed 1 month ago
@fasmat
- Configuration can specify initialisation parameters: NodeID, Commitment ATX ID, size of PoST, max file size and relevant network parameters (labels per unit, scrypt parameters, etc.)
- Initialisation parameters do not override existing data, i.e. if initialisation already started postdata_metadata.json takes precedence (and operator is informed about deviations from config via logs)
How about making the initialization parameters optional and:
How about making the initialization parameters optional and:
- read them from postdata_metadata.json if not provided,
- fail if not provided and postdata_metadata.json doesn't exist,
- fail if provided and doesn't match postdata_metadata.json (quit with an error instead of printing a warning)
Sounds like a reasonable implementation to me 👍
This ticket describes the design of the PoST Service. Requirements for the building blocks and a high level description of the API are defined here. The goal is to operate a PoST service independently of the node and phase the functionality out from the node to this new service. This will be done in multiple steps:
Migrate proof generation to dedicated PoST service
The goal of this step is to move proof generation into the new service. This allows operators to run a dedicated PoST service for proof generation that connects to a non smeshing go-spacemesh node. The node would then use the PoST service for proof generation.
Both the go-spacemesh node and the PoST node share the same smeshing identity; although the PoST node only needs the NodeID / Public Key of the identity.
Requirements
PoST Service:
post-rs
are extended with this service as an executable for already supported OSes and architecturespostdata_metadata.json
takes precedence (and operator is informed about deviations from config via logs)go-spacemesh:
go-spacemesh
needs to be extended to allow connections from PoST services--start-smeshing
) - via smapp or if an operator doesn't want to run PoST on a dedicated host - it starts an instance of the PoST service.SMESHING
section. Authentication can be omitted in this case.--start-smeshing
it does not initialise or start a PoST service. Instead it waits for such a service to establish an authenticated connection to it and then uses its API for proof generation.Run a go-spacemesh node with multiple identities
After proof generation via a dedicated PoST service is implemented, the node shall be extended to allow connections from multiple PoST services. Every of these services represents their own identity and the node needs to check when connection is established which service belongs to which identity they manage
Port initialisation to dedicated PoST service
WiP - lower priority; bullet points:
postcli
should be integrated into PoST service andpostcli
either updated to connect to it orsmcli
extended for that use case