Skip to content

feat: attach SHA-256 checksum as a blob attribute on store - #3544

Open
Patrick-Ehimen wants to merge 2 commits into
MystenLabs:mainfrom
Patrick-Ehimen:feat/blob-sha256-checksum-attribute
Open

feat: attach SHA-256 checksum as a blob attribute on store#3544
Patrick-Ehimen wants to merge 2 commits into
MystenLabs:mainfrom
Patrick-Ehimen:feat/blob-sha256-checksum-attribute

Conversation

@Patrick-Ehimen

@Patrick-Ehimen Patrick-Ehimen commented Jul 17, 2026

Copy link
Copy Markdown

Summary

  • Adds an --attach-sha256-checksum flag to walrus store that computes the SHA-256 digest of each blob's raw, unencoded bytes and attaches it to the blob object as a sha256 on-chain blob attribute.
  • Reuses the existing BlobAttribute / CertifyAndExtendBlobParams plumbing (already threaded through the owned-blob certify-and-extend transaction), so no contract changes are needed.
  • Threads an attributes parameter through reserve_and_store_blobs_retry_committees_with_path in walrus-sdk so path-based store calls (used by the CLI) can attach attributes, matching the attribute support already present in reserve_and_store_blobs_retry_committees.
  • Rejects the flag for store-quilt, since the on-chain attribute lives on the quilt's top-level Blob object, not on individual patches.
  • Forwards the flag to the detached child-upload process so --child-process-uploads continues to work correctly.
  • Documents the new flag in docs/content/walrus-client/storing-blobs.mdx.

Closes #2961, which asked for the SHA-256 checksums computed during blob encoding to be exposed as Sui blob attributes so external file checksums can be matched to Walrus blobs.

Test plan

  • cargo check -p walrus-service --bin walrus compiles cleanly.
  • New unit tests for the checksum helper (sha256_checksum_attribute_matches_known_digest, sha256_checksum_attribute_of_empty_blob) in crates/walrus-service/src/client/cli/runner.rs.
  • cargo nextest run -p walrus-service / relevant e2e tests (not run locally due to environment constraints - please confirm in CI).

Adds an --attach-sha256-checksum flag to `walrus store` that computes
the SHA-256 digest of each blob's raw bytes and attaches it as a
sha256 on-chain blob attribute, reusing the existing
BlobAttribute/CertifyAndExtendBlobParams plumbing. This lets users
match externally-known file checksums to blobs stored on Walrus, as
requested in MystenLabs#2961.
@jessiemongeon1

jessiemongeon1 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Style Guide Audit

All 1 file(s) pass the style guide audit.

Clarify that the checksum is stored onchain instead of on-chain.
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This PR is stale because it has been open 14 days with no activity. It will be closed in 7 days unless you remove the stale label, add the do-not-close label, or comment on it.

@github-actions github-actions Bot added the stale label Aug 3, 2026
@Patrick-Ehimen

Copy link
Copy Markdown
Author

@jessiemongeon1

@github-actions github-actions Bot removed the stale label Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

File checksums

2 participants