Push Commits
Bundle commit metadata, upload content to the DA layer, and update refs — all in a single atomic flow. Consensus orders the operations and the ref update uses compare-and-swap to prevent conflicts.
Demo
CLI equivalent
# Push content (bundles commits + updates ref in one operation)
makechain push --project a1b2c3d4... --ref refs/heads/mainWhat happened
-
DA upload — File content (blobs and tree structures) is uploaded to the data availability layer. The consensus layer never sees the raw content — only a
da_referencepointing to it. -
Commit bundle — A
COMMIT_BUNDLEmessage declares the new commit metadata: hash, parent hashes, tree root, author, and title. Commits are ordered parent-first within the bundle. The required scope is AGENT, allowing CI/CD systems and automated tooling to push on behalf of users. -
Ref update — A
REF_UPDATEmessage movesrefs/heads/mainto the new commit. It includes the expected current hash (old_hash) for compare-and-swap. If another push landed between your read and write, the CAS check fails and the update is rejected — no silent overwrites. The update must be fast-forward (new commit descends from old) unlessforce: true. -
Parallel execution — Both messages are grouped by
project_idand executed together in the project's parallel execution group. The overlay store provides copy-on-write isolation from other projects in the same block.