feat: Attested Signatures + UCAN Principal Clarification - #18
Merged
Conversation
Peeja
force-pushed
the
petra/feat/attested-signatures
branch
from
June 17, 2026 21:38
9ef8a23 to
0eb1720
Compare
alanshaw
approved these changes
Jun 18, 2026
Call libforge's reusable go-workspace-test workflow so PRs that share a branch name with sibling repos are tested against those siblings' branches. When no sibling has a matching branch, the job is skipped and the normal go-test.yml remains the signal. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* `multikey` and `absentee` go up a level to the root. * `verification.NewIssuer()` is gone; we can use `multikey.NewIssuer()` in every case we have. * The verifier factory types move `validator`. They're not inherent to *validation*, they're just used to configure the validator.
Peeja
force-pushed
the
petra/feat/attested-signatures
branch
from
June 19, 2026 15:33
5af7875 to
761083d
Compare
Peeja
force-pushed
the
petra/feat/attested-signatures
branch
from
June 19, 2026 15:35
761083d to
d824485
Compare
This was referenced Jun 26, 2026
This was referenced Jul 1, 2026
bajtos
added a commit
that referenced
this pull request
Jul 1, 2026
PR #18 (attested signatures) changed ProvideIdentity to return the concrete identity.Identity struct and switched consumers such as manager.NewPieceAccepter to depend on ucan.Issuer. The fx graph no longer provided ucan.Issuer or ucan.Signer, so the node failed to start: missing type: ucan.Issuer (did you mean to Provide it?) identity.Identity embeds multikey.Issuer, which satisfies both ucan.Issuer and ucan.Signer. Expose all three shapes via fx.Annotate so every consumer resolves. Add an fx.ValidateApp test asserting the identity module provides identity.Identity, ucan.Issuer and ucan.Signer. Signed-off-by: Miroslav Bajtoš <oss@bajtos.net> Assisted-by: Claude:claude-opus-4-8
bajtos
added a commit
that referenced
this pull request
Jul 1, 2026
**test: Validate full-server fx dependency graph** Extract the full-server module composition into app.FullServerModule so the running `piri serve full` command and the tests share one source of truth for the dependency graph. Add TestFullServerModule_ValidateApp, which runs fx.ValidateApp across each branch of store.StorageModule (in-memory, filesystem, S3). fx validates the graph in dry-run mode without invoking any constructors, so no Lotus/eth endpoints are dialed. The new tests fail - the fix follows in the next commit. **fix: Provide ucan.Issuer and ucan.Signer from identity module** PR #18 (attested signatures) changed ProvideIdentity to return the concrete identity.Identity struct and switched consumers such as manager.NewPieceAccepter to depend on ucan.Issuer. The fx graph no longer provided ucan.Issuer or ucan.Signer, so the node failed to start: ``` missing type: ucan.Issuer (did you mean to Provide it?) ``` identity.Identity embeds multikey.Issuer, which satisfies both ucan.Issuer and ucan.Signer. Expose all three shapes via fx.Annotate so every consumer resolves. Add an fx.ValidateApp test asserting the identity module provides identity.Identity, ucan.Issuer and ucan.Signer. **docs: Add AGENTS.md with CLAUDE.md symlink** Document that `pkg/fx/app/full_test.go` must be kept in sync whenever config options change the fx dependency graph, so the validation test keeps covering every graph shape. Symlink CLAUDE.md to AGENTS.md so both agent toolchains read the same guidelines.
frrist
added a commit
that referenced
this pull request
Jul 16, 2026
Completes the Curio PDP integration by collapsing Piri onto a single harmonydb (Postgres) surface and adopting Curio's implementations instead of Piri's parallel ones. Validated end-to-end on smelt (Postgres + S3): init registers the provider, creates a proof set and confirms it on-chain, then `serve` comes up healthy. Database (remove GORM) - Remove gorm.io/* and glebarez/sqlite; delete the gorm models and gormdb packages and the dual-DB model. PDPService now holds a single *harmonydb.DB. - Migrate the piece/commP resolver and piece intake (allocate/commp/park/ upload) from gorm to harmonydb raw SQL. Drop the sqlite-backed gorm unit tests (the code is now Postgres-only; coverage moves to integration). Registration (Curio contract.FSRegister) - Replace RegisterProvider's hand-built tx + pdp_provider_registrations tracking with contract.FSRegister; confirm by polling on-chain status. - Drop the Storacha approval onboarding step and the approval gate. Payments (Curio tasks/pay) - Adopt the autonomous SettleTask + SettleWatcher; remove the on-demand admin payment API/CLI and rail_settlement_waits/withdrawal_waits. - Remove the legacy RepairProofSet endpoint. Runtime enablement - Provision the owner key into eth_keys(role='pdp') and a pdp_services row on startup (Curio signs from eth_keys, and pdp_data_set_creates.service FKs to pdp_services). - Add the filecoin_payment_transactions table, omitted from the PDP closure schema (its name doesn't match the pdp_*/harmony_* keep-set). - Provide the node identity as ucan.Issuer for the aggregation PieceAccepter (regressed in #18). - Default the build to the `2k` tag so Curio resolves contract addresses from CURIO_DEVNET_* (devnet/smelt); add PIRI_INIT_LOG_LEVEL to surface init logs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
frrist
added a commit
that referenced
this pull request
Jul 22, 2026
Completes the Curio PDP integration by collapsing Piri onto a single harmonydb (Postgres) surface and adopting Curio's implementations instead of Piri's parallel ones. Validated end-to-end on smelt (Postgres + S3): init registers the provider, creates a proof set and confirms it on-chain, then `serve` comes up healthy. Database (remove GORM) - Remove gorm.io/* and glebarez/sqlite; delete the gorm models and gormdb packages and the dual-DB model. PDPService now holds a single *harmonydb.DB. - Migrate the piece/commP resolver and piece intake (allocate/commp/park/ upload) from gorm to harmonydb raw SQL. Drop the sqlite-backed gorm unit tests (the code is now Postgres-only; coverage moves to integration). Registration (Curio contract.FSRegister) - Replace RegisterProvider's hand-built tx + pdp_provider_registrations tracking with contract.FSRegister; confirm by polling on-chain status. - Drop the Storacha approval onboarding step and the approval gate. Payments (Curio tasks/pay) - Adopt the autonomous SettleTask + SettleWatcher; remove the on-demand admin payment API/CLI and rail_settlement_waits/withdrawal_waits. - Remove the legacy RepairProofSet endpoint. Runtime enablement - Provision the owner key into eth_keys(role='pdp') and a pdp_services row on startup (Curio signs from eth_keys, and pdp_data_set_creates.service FKs to pdp_services). - Add the filecoin_payment_transactions table, omitted from the PDP closure schema (its name doesn't match the pdp_*/harmony_* keep-set). - Provide the node identity as ucan.Issuer for the aggregation PieceAccepter (regressed in #18). - Default the build to the `2k` tag so Curio resolves contract addresses from CURIO_DEVNET_* (devnet/smelt); add PIRI_INIT_LOG_LEVEL to surface init logs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See fil-forge/ucantone#30