Weave documentation
Strand Vault

Replication and Snapshots

Current stream-replication and filesystem snapshot boundaries.

Replication flow

vault.replicate(options) collects requested Strands and creates a ReplicationStream; the caller supplies an AsyncRead + AsyncWrite transport to its replicate(stream) method. accept_replication(stream) handles the receiving side. The sender skips StrandId::PublicKey requests; agent/name/index lookup must succeed first.

The implementation streams a bounded snapshot of available blocks. Although ReplicationOptions declares mode and live, the current sender does not branch on those fields or start a continuous subscription. start_from matching uses public-key-form identifiers compared with discovery keys; it is not general name-based resume handling.

The optional capability preamble is a byte echo check, not verification of a signed ACT or delegated authority. The included receiver does not implement that echo preamble. The optional encryption handshake exchanges ephemeral public keys without authenticating peer identity. Use a separately authenticated transport and a compatible peer implementation; setting these flags does not establish production authorization.

The receiver attempts block ingestion but currently discards ingestion errors. A stream completing successfully is therefore not proof that all advertised data was durably accepted. Verify the resulting destination state separately.

Snapshots

snapshot(set, label, destination) copies backend-local directories for the selected Strands. Backends without a local path are skipped. restore copies recognized Strand directories back. These methods do not freeze writers, create an atomic multi-Strand checkpoint, or include a full vault-metadata backup. Quiesce the relevant writes and preserve master-key/metadata state when designing a recoverable backup workflow.

Replication declarations · Snapshot helpers.

Source reference

Exact declarations and source provenance · Package features and manifest.

On this page