Skip to content

Releases: DeWebProtocol/malt

MALT v0.0.6

Choose a tag to compare

@BernardLowe BernardLowe released this 14 Jul 04:34
841c224

MALT v0.0.6

Release date: 2026-07-14

v0.0.6 establishes DeWebProtocol/malt as an SDK-only core. It keeps the
protocol, commitment, proof, semantic, mutation, execution, and verifier
building blocks required by clients and gateways, while removing product and
application implementations from the module.

Boundary changes

Core retains:

  • module-root resolve/read/query and verification values;
  • malt.resolve/v0alpha1 and malt.read/v0alpha1 schemas;
  • ProofList, KZG/IPA, typed CID, map/list semantics, resolver/writer algorithms;
  • portable mutation/receipt values and untrusted execution.Executor;
  • local Go/WASM verifier surfaces;
  • the frozen malt.artifact/v0alpha2 compatibility verifier.

Core removes:

  • cmd/malt, cmd/cas, cmd/eval;
  • daemon, config, HTTP API/server, reference executor;
  • CAS/KV adapters and concrete ArcTable implementations;
  • UnixFS model/client/runtime packages;
  • evaluator plans, commands, and schemas.

DeWebProtocol/gateway now owns persistent ArcTable/KV/CAS and generic
resolve/read/apply service execution. DeWebProtocol/malt-client owns the
trusted CLI/daemon, accepted roots, UnixFS planning, local verification, and
payload-byte binding. Web remains a browser client using the WASM verifier.

ArcSet capability

Proof-generation algorithms accept auth/arcset/materializer.Store. This is a
narrow algorithmic capability over ArcSet views and commitment nodes, not an
ArcTable implementation or persistence contract. A small in-memory
implementation remains for conformance tests and examples.

Compatibility

This is an intentional pre-v1 source-breaking release. There are no forwarding
packages for removed product/application paths. The serialized resolve/read
profiles, ProofList format, typed root codecs, and frozen artifact profile are
not revised by this release.

Validation checklist

  • git diff --check
  • gofmt clean
  • go test ./...
  • go vet ./...
  • go build -buildvcs=false ./...
  • native and WASM verifier builds
  • external consumer compile against the SDK packages
  • gateway and malt-client full test/vet suites
  • Web test and production build

The GitHub release identifies the exact tag commit and final validation result.

Documentation erratum

After publication, PR #166 corrected SECURITY.md to identify v0.0.6 as the current supported experimental release and aligned its scope with the SDK-only core boundary. The immutable v0.0.6 tag remains at 841c22415a54810006d6640a24c54566b6ba3f39.

MALT v0.0.5 — Resolve/Read Client Boundary

Choose a tag to compare

@BernardLowe BernardLowe released this 13 Jul 12:07
fd7dd54

MALT v0.0.5

Status: released on 2026-07-13

MALT v0.0.5 tightens the boundary between the portable authentication core,
trusted clients, untrusted gateway/executor work, immutable CAS payloads, and
application models such as UnixFS. It is an experimental source release, not a
stable API line or production managed service.

Release Contract

  • Go module: github.com/dewebprotocol/malt@v0.0.5
  • resolve profile: malt.resolve/v0alpha1
  • primitive-read profile: malt.read/v0alpha1
  • frozen compatibility profile: malt.artifact/v0alpha2
  • schemas: protocol/schemas/*.schema.json
  • reference routes:
    • POST /v1/resolve
    • POST /v1/read
    • POST /v1/verify/resolve (diagnostic only)
    • POST /v1/verify/read (diagnostic only)

Highlights

  • The module-root malt package exposes application-neutral
    ResolveRequest/ResolveResult and typed primitive-read contracts together
    with portable VerifyResolve and VerifyRead functions.
  • execution.Executor performs untrusted resolve/read/apply work over injected
    resolver, semantic prover, and mutation-applier capabilities. It never makes
    the client trust decision.
  • protocol publishes operation-specific request, result, verification, and
    JSON Schema contracts. ProofList is evidence carried by those results, not a
    generic operation envelope.
  • mutation owns namespace-free semantic mutation, delta, commit-descriptor,
    and write-receipt values. Receipts and candidate roots are not cryptographic
    state-transition proofs.
  • UnixFS is split across model/unixfs, sdk/unixfs, and runtime/unixfs so
    application semantics, client planning/body verification, and reference
    execution are not treated as MALT core.
  • sdk/verifier, malt verify, and the browser/WASM build bind a
    caller-selected request to an untrusted result before portable ProofList
    verification.
  • The process managed by malt start is documented as an all-in-one reference
    executor. Remote verify routes are diagnostic/conformance helpers, not trust
    authorities.

Resolution And Payload Semantics

Clients submit canonical segment arrays without discovering authenticated arc
boundaries. Resolution authenticates one complete returned derivation and does
not claim longest-prefix maximality, uniqueness, or application preference.

An empty segment array is strict root identity. Payload selection uses the
explicit reserved @payload segment. A verified payload resolve authenticates
a CID; clients must additionally bind returned full or ranged bytes to that CID
using ordinary CID verification or sdk/unixfs.VerifyRangeBody as appropriate.

Compatibility

The v0.0.4 malt.artifact/v0alpha2 resolve/prove/verify operation set remains
frozen. New integrations should use malt.resolve/v0alpha1 and
malt.read/v0alpha1 rather than adding operations to that compatibility
profile.

This release intentionally removes the former layout/unixfs Go package path.
Consumers should import the model, SDK, or runtime package matching their role.
All current profiles and Go APIs remain experimental before v1.0.0.

Security Boundary

Resolvers, ArcTable indexes, gateways, caches, CAS availability, and reference
execution are untrusted for correctness. Clients accept results only after
local verification against an explicit trusted root and caller-constructed
request. Root freshness, authority, rollback prevention, tenant policy, and
multi-writer arbitration remain application or managed-gateway concerns.

Validation Gate

The release commit is validated with:

git diff --check
gofmt -l .
go test ./...
go vet ./...
go build -buildvcs=false ./...
scripts/build-verifier-wasm.sh dist/verifier
bin/malt-eval run --plan examples/eval-smoke-plan.json --run-id v0.0.5-smoke

Additional gates cover an external consumer of the root facade and protocol
schemas, native and WASM builds, local verifier accept/tamper rejection, and
gateway/Web integration against the exact release source.

Published Tags

  • v0.0.5-rc.1: validated candidate source tag
  • v0.0.5: final experimental source release

Both tags identify the same approved source tree. Source tags are authoritative;
native binaries remain build-from-source. Published browser verifier artifacts
must identify their exact MALT source commit and SHA-256 checksum.

Related Documents

MALT v0.0.4

Choose a tag to compare

@BernardLowe BernardLowe released this 12 Jul 06:47
fd2cba7

MALT v0.0.4 publishes canonical segment-path composition and the transport-neutral malt.artifact/v0alpha2 contract for resolve, primitive prove, and verify.

Highlights:

  • immutable SegmentPath API with / as the canonical textual projection
  • proof-carrying multi-arc resolution without a longest-or-unique verifier claim
  • unversioned Go artifact package with embedded JSON Schemas and conformance fixtures
  • stable /v1/artifacts/{resolve,prove,verify} reference endpoints
  • gateway/web product smoke covering upload, resolve, prove, verify, content read, and tamper rejection

See docs/releases/v0.0.4.md for the contract and validation boundary.

MALT v0.0.3 — Portable Arc Authentication Core

Choose a tag to compare

@BernardLowe BernardLowe released this 11 Jul 17:38
ba41f3d

MALT v0.0.3 is an experimental source release that exposes MALT as a general, arc-granularity graph data-authentication library. UnixFS is now one layout built on the core rather than the definition of the core.

Highlights

  • Adds the module-root malt facade with typed Query, ReadRequest, ReadResult, Engine.Read, Apply, and VerifyRead contracts.
  • Adds portable auth/verifier verification for radix maps, tree lists, and measured ranges without ArcTable, CAS, runtime, server, daemon, or network access.
  • Keeps graph/verifier as a thin reference-runtime adapter and treats ArcTable as untrusted execution/materialization state.
  • Allows generic relation-only maps to omit or delete @payload; UnixFS continues to require payload bindings as a layout invariant.
  • Splits the UnixFS Reader and Writer facades around explicit CAS capabilities.
  • Finalizes MIP-1011 and the experimental v0alpha1 typed read/result and ProofList binding profile.

Install

go get github.com/dewebprotocol/malt@v0.0.3

This release publishes source tags only. Build with Go 1.25.7 or newer.

Security hardening

The release audit added fail-closed validation for malformed typed commitment roots and KZG proofs. KZG verification now rejects invalid commitment lengths, out-of-domain proof indices, and non-canonical proof lengths instead of truncating input or panicking.

Validation

Release commit: ba41f3d63cbd062bcd21c05137ca61a26e31379e

  • git diff --check
  • go test ./...
  • go vet ./...
  • builds for cmd/cas, cmd/malt, and cmd/eval/malt-eval
  • evaluator smoke plan
  • isolated CAS/daemon add, resolve, and ProofList verification smoke
  • external Go module import/run against v0.0.3-rc.1, with no server dependency
  • targeted race, negative, and fuzz coverage for the portable verifier and KZG parser

The candidate tag v0.0.3-rc.1 and final tag v0.0.3 identify the same commit.

Experimental limits

  • APIs, query labels, ProofList fields, root codecs, and verifier interfaces may change before v1.0.0.
  • ProofList and resolve JSON do not yet have stable named JSON Schema files or an embedded envelope version.
  • Range ProofLists authenticate range metadata and segment CIDs; UnixFS callers must additionally bind returned bytes with layout/unixfs.VerifyRangeBody or an equivalent check.
  • The KZG batch API currently encodes one primitive proof per index; native multi-opening remains an optimization.
  • Managed tenancy, authorization, publication, freshness, quotas, billing, pinning, garbage collection, and backend operations remain outside MALT core.

See the v0.0.3 release record, MIP-1011, and compatibility policy for details.

v0.0.1 — Initial Public Release

Pre-release

Choose a tag to compare

@BernardLowe BernardLowe released this 02 Jun 12:45

What is MALT

MALT is an authenticated mutable structure layer over immutable content-addressed storage. It introduces Explicit Arcs — verifiable bindings independent of immutable object content — with map and list semantic primitives for unified path traversal and range verification.

⚠️ Research prototype. This is an early release for the paper submission. APIs, storage formats, and proof schemas may change without notice until a stable version is tagged.

Highlights

  • Root-centric verification: Read(root, query) → result + ProofList — clients verify correctness against the root, not the server
  • Semantic mutation: ApplyMutation(baseRoot, delta) → newRoot + writeReceipt
  • UnixFS compatibility: add, resolve, and verify files/directories over the MALT structure layer
  • Local daemon: single-binary malt daemon with HTTP API on 127.0.0.1:4317
  • Evaluation CLI: malt-eval for benchmarking read latency, write amplification, and proof overhead across MALT-flat, IPLD UnixFS, and HAMT baselines

Quick Start

# Requires Go 1.25.7+
go build -buildvcs=false -o bin/malt ./cmd/malt
go build -buildvcs=false -o bin/malt-eval ./cmd/eval/malt-eval

# Start daemon
./bin/malt daemon start

# Add a file
./bin/malt add ./README.md

# Resolve and verify
./bin/malt resolve <root> README.md

Documentation

- Architecture (https://github.com/DeWebProtocol/malt/blob/main/ARCHITECTURE.md)
- Evaluation guide (https://github.com/DeWebProtocol/malt/blob/main/docs/evaluation.md)
- Design docs (https://dewebprotocol.github.io/malt-web/)

What's Included

┌───────────────────────────────────┬──────────────────────┐
│             Component             │         Path         │
├───────────────────────────────────┼──────────────────────┤
│ Data authentication core          │ auth/                │
├───────────────────────────────────┼──────────────────────┤
│ Graph resolver/writer             │ graph/               │
├───────────────────────────────────┼──────────────────────┤
│ Runtime (ArcTable, metrics, node) │ runtime/             │
├───────────────────────────────────┼──────────────────────┤
│ UnixFS layout                     │ layout/unixfs/       │
├───────────────────────────────────┼──────────────────────┤
│ Storage (CAS, KV)                 │ storage/             │
├───────────────────────────────────┼──────────────────────┤
│ Server + SDK                      │ server/, sdk/        │
├───────────────────────────────────┼──────────────────────┤
│ CLI tools                         │ cmd/malt/, cmd/eval/ │
└───────────────────────────────────┴──────────────────────┘

Known Limitations

- ProofList step schema is intentionally deferred (see MIP-1003)
- KZG commitment backend uses looped encoding pending upstream batch proof support
- No release workflow yet — this is a source-only tag