-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
activation: support multiple smeshers #5149
Comments
ideally we also should skip post validation for self-published atxs |
validation in the NiPost builder was already removed in #5061. The activation package trusts the post service to deliver a valid proof and creates an ATX with it. That ATX however will still be validated (including proof validation) before/as part of broadcasting it, I think. |
## Motivation Part of #5149 This extends the `PostClient` to be able to fetch metadata about the PoST from the service ## Changes - Add method to fetch metadata from PoST service ## Test Plan - Tests were added for new functionality with and without TLS ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Update documentation as needed - [x] Update [changelog](../CHANGELOG.md) as needed
## Motivation Part of #5149 merge after #5186 & #5189 This moves the initialization code into the PoST supervisor. The ATX builder should not concern itself with initialization: - A remote PoST service that connects is expected to already be fully initialized - In supervised mode the supervisor takes care of initialization This allows to simplify the ATX builder, which has partially already been done in this PR and will continue in future PRs. ## Changes - Removed dependency on `postSetupManager` from `atxBuilder` - Simplified `atxBuilder` - Initial Proofs are not verified any more (PoST service is trusted) - Information about the PoST is fetched from the PoST service rather than accessed via the `postSetupManager` - Simplified `postSetupManager` - Since meta information is now fetched via the client everything besides `StartSession`, `StopSession` and `Reset` has been removed from the interface - `postSetupManager` isn't used by the gRPC `SmeshingService` any more, instead it's now used by `PostSupervisor` to init a supervised node before starting it For next PR: - change `atxBuilder` from `Start`/`Stop` to `Run` - a post service connecting triggers the builder loop (one per connected service) - simplify `atxBuilder` further and consider merging `nipostBuilder` into it. ## Test Plan - added new tests to PoST supervisor to cover new functionality - updated existing tests ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Update documentation as needed - [x] Update [changelog](../CHANGELOG.md) as needed
## Motivation Part of #5149 merge after #5186 & #5189 This moves the initialization code into the PoST supervisor. The ATX builder should not concern itself with initialization: - A remote PoST service that connects is expected to already be fully initialized - In supervised mode the supervisor takes care of initialization This allows to simplify the ATX builder, which has partially already been done in this PR and will continue in future PRs. ## Changes - Removed dependency on `postSetupManager` from `atxBuilder` - Simplified `atxBuilder` - Initial Proofs are not verified any more (PoST service is trusted) - Information about the PoST is fetched from the PoST service rather than accessed via the `postSetupManager` - Simplified `postSetupManager` - Since meta information is now fetched via the client everything besides `StartSession`, `StopSession` and `Reset` has been removed from the interface - `postSetupManager` isn't used by the gRPC `SmeshingService` any more, instead it's now used by `PostSupervisor` to init a supervised node before starting it For next PR: - change `atxBuilder` from `Start`/`Stop` to `Run` - a post service connecting triggers the builder loop (one per connected service) - simplify `atxBuilder` further and consider merging `nipostBuilder` into it. ## Test Plan - added new tests to PoST supervisor to cover new functionality - updated existing tests ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Update documentation as needed - [x] Update [changelog](../CHANGELOG.md) as needed
Removing the dedicated validation of the NIPostBuilder lead to some (rare) cases where publishing of an ATX might result in weird behaviour:
|
Description
To fully utilise the separation of PoST from go-spacemesh a node needs to be able to handle multiple post services simultaneously.
Acceptance criteria
Implementation hints
post.bin
,nipost_challenge.bin
andnipost_builder_state.bin
).The text was updated successfully, but these errors were encountered: