ElastOS Weekly Shipping Report — Week of June 19 – June 26, 2026 #26
SashaMIT
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Elacity Labs — Weekly Team Update for the World Computer Initiative (WCI)
June 19 – June 26, 2026
The week the dDRM stack grew its market — and the platform around it got a security sweep. Three arcs ran in parallel and they were all the same thing: turning a hardened dDRM stack into something a buyer can pay for, a node operator can run, and an auditor can trust. In Runtime, an AI-pair-programmed deep-audit branch merged into the dDRM hardening line (PR #7) — closing 7 of 8 pre-audit findings, landing single-copy CENC decrypt, library directory-list caching, per-capsule WASM memory limits, and operator-terminable runaway capsules — and then a brand-new
feat/marketplace-runtimebranch went from empty to a working buy/trade backend on real Base contracts in three days (buy/trade only; mint and in-app playback explicitly out of scope). In PC2, the Elastos Node Manager landed as an installable service-type app and was hardened, gated, multi-arch packaged, and proxied. Across the platform, a coordinated security-remediation sweep closed findings in the marketplace frontend, the on-chain DRM protocol, the key-transfer service, and the transcode service; Hyper matured post-quantum E2E calls and passed an independent multi-round audit; and a self-hosted, two-region public RPC stack went live as a byte-compatible, faster, $0-managed-cloud replacement forapi.elastos.io.Key Links This Week
feat/marketplace-runtime·feat/ddrm-hardening-and-creator-parity·claude/branch-deep-audit-yiez86feature/elastos-node-managerd17b03a3— live-source buy terms fromsellersOf/listings, fully UI-driven, no env pins016f362b(buy_authority) ·f9d655d6(POST /api/market/acquire) ·3236772c(object-provider Acquire op)de5890aa(Merge PR Elastos Node Manager app (service-type app — requires #18) #19 enm-app) ·094c6e06(Merge PR Necessary PC2 changes for the Node Manager (service-type app support) #18 pc2-service-apps) ·05549498(fail-closed Ed25519 verify)api.elastos.io·rpc.elastos.info(now served 100% from the new self-hosted stack)Table of Contents
1. The Big Picture — Hardening Becomes a Market
Three things happened in parallel, and they were all the same thing: turning a hardened dDRM stack into something a buyer can actually pay for, a node operator can actually run, and an auditor can actually trust.
claude/branch-deep-audit-yiez86→feat/ddrm-hardening-and-creator-parity) merged 29 commits of AI-pair-programmed deep-audit work into the dDRM hardening branch: 7 of 8 pre-audit findings recorded closed, single-copy CENC decrypt (d2705009), fail-closed bounds on untrusted CENC box counts (fea728bc), single-use grant-nonce refresh on quorum retries (edb02ec5), library directory-list caching (72550c46), per-capsule WASM memory budgets (253d0995→ce2bd96e), and operator-terminable runaway capsules (8bf1d299). The build-visible audit-verdict ratchet (1e9e7125) and conformance GAP-8 closure (4894f50a) make the verified state legible to CI. This is the soak floor the rest of the week was built on.feat/marketplace-runtime— was opened, scoped, and built fromabb5fdf9(Phase-1 buy-invariant spec) throughad8bc712(elacity brand transplant): spec → shell capsule that holds no authority → contract reconciliation against deployed Base bytecode →buy_authority→trade_authority→ KID→tokenId resolver → Phase-2 routes (/api/market/get,/vault,/acquire) → an object-provider Acquire op that pins a bought encrypted asset into the Library. A mid-branch re-scope (2bd87238) explicitly dropped mint and in-app playback — the marketplace is buy/trade only; minting stays in the Studio path, playback stays in the Runtime viewer.pc2-service-apps, Elastos Node Manager app (service-type app — requires #18) #19enm-app) merged into thefeature/elastos-node-managerintegration branch — the +82,483-line landing inde5890aais the Elastos Node Manager service + operator UI finally entering the integration tree. Then it was hardened (Ed25519 fail-closed verify, lifecycle test), gated (device-compatibility onrequirements.platform), packaged for multi-arch, and patched for same-origin/auth-header and download-progress.elacity-web), the on-chain DRM protocol (v3-drm-protocol), the key-transfer service (lit-keystore-moleculer), and the transcode service (transcoder-gcloud) — turning the prior security review's triage into landed fixes (§11–12).api.elastos.io/rpc.elastos.infoendpoints (§14).e1fef691,6325099a,c4e4b682,98b28bdb) rather than re-deriving terms. The next PC2 node release and the ElastOS Launcher are in final pre-release testing (§17).2. Runtime — Marketplace Runtime, Buy/Trade Rails on Live Base
feat/marketplace-runtimewent from empty to a working buy/trade backend over three days (Jun 22–24), ~69 commits, +6,506/−1,171 lines, against real Base contracts. Highlights in build order:abb5fdf9), marketplace-content shell capsule that holds no authority (79f63089), Phase-2 spec for/api/market/*routes (c004eebc).f4643abe), runtime↔elacity addresses reconciled (6325099a), pay-token corrected to canonical Base USDC and PC2 v3 conformance banked (983642d5), V3 event topics live + source-confirmed (5dbdcf81), and a full PC2-SSOT contracts reconciliation (e1fef691).393b3dd0proves Phase-2 discovery decodingAssetCreatedevents from live Base;b4bd48eflands the cache + search/sections slice;2a2d0264addsGET /api/market/getwith live re-verified detail terms viasellersOf+listings.buy_authority— Phase-1 invariant —016f362blands the core (value×qty, approve via paymentProcessor);0a752437adds abort-on-drift;781d226dcorrects thelistings()qty/price word order from the SSOT and fail-closes non-hex decode;c5599e30enforces the SCOPE unsigned-only hard-gate and fail-closes on missing seller.ResolveTokenIdop (9bd5489b), pivoted (6bde757c) to an empiricalAssetCreated+calldata path (the on-chain op was absent from the deployed bytecode), then fail-closed on ambiguous bindings (e175c1da— flagged HIGH).trade_authority— resale/withdraw/approval calldata assembler (1be33c64), arg asymmetry fix (134ab2a0), compiled into elastos-server + wired into resale routes (f47f71fb), gated behind the Home token with destination-address validation (c634b60e).3236772cadds the object-provider Acquire op;f9d655d6lands the entitlement-gatedPOST /api/market/acquire;f6eef622addsGET /api/market/vault;66a901cabinds the acquire CID to the gated KID via metadata (closing a deep-audit LOW).d17b03a3(the keystone): buy terms now sourced live fromsellersOf/listings, fully UI-driven, no env pins.5f1b855ccorrects an empirical key (listings/sellersOf key onACCESS_TOKENid=1, not the content token id) — the largest live-pass correction of the cycle.4c09f92cparsesmetadata.jsoninto/get;4b239d46computeshas_accesslive viahasAccessByContentId(the "you own this" badge);4eed086fenriches discovery listings;0265d857bounds enrichment + negative-caches a public-route fetch-amplification.084c67accollapses a burst to one chain sweep;e0e728efgates+caches/get(MED finding), caps acquire fetch, binds doc.2bd87238drops mint + in-app playback from marketplace scope;4ff4c63baligns ROADMAP/README/PLAN/layouts.Stats: 69 commits, +6,506/−1,171, 174 files. (AI-pair-programmed deep-audit work landed earlier in the cycle on the audit branch — see §4.)
3. Runtime — Storefront Shell, Brand Transplant & A11y Pass
In parallel with the backend, the storefront shell capsule got the design-and-polish pass it needs to be a real surface, not a prototype:
f1bd18c0)./get,/acquire,/vault, activity (056142c4).a38b2eb3builds themarketplace-content.wasmlauncher mirroring the marketplace capsule.9a57b7d2), UI/UX quick-wins (ea60cce6), a11y operability (cards/nav keyboard-operable, semantic anchors/buttons) (9b791476), accessible modals + async money-path feedback + stepper patch-not-rebuild (dcbfd6d9), emoji → inline lucide-style SVG icons — "the biggest prototype → product gap" (fcb17c70), detail loading skeleton + theme sun↔moon cross-fade (3f76d9e8), subtle modal exit animation (a5fc366f).ad8bc712: turquoise+gold tokens, on-accent flip, glass/gradient — the storefront now reads as Elacity-native.4b239d46renders the live "you own this" badge fromhasAccessByContentId;cbf6c604renders the enriched poster as the card/detail cover.7f6e7d77makesesc()also escape single quotes, routingcontent_id/mediumthrough it.4. Runtime — Pre-Audit Verification & Library/Serve Performance (PR #7)
PR #7 closed on Jun 20 — 29 commits from an AI-pair-programmed deep-audit branch (
claude/branch-deep-audit-yiez86) intofeat/ddrm-hardening-and-creator-parity. No CEK-path, served-byte, or wire-format change.Verified-and-recorded (closed without code; the finding was already safe):
e47f2bea).b823c62b).Real fixes:
d2705009— perf(serve): single-copy in-place CENC decrypt + boot-stable gateway DID memoization. Byte-identical output (golden test).fea728bc— harden(ddrm): fail-closed bounds on untrusted trun/senc sample counts (DoS via forged box counts / OOM). Pins the H1 watermark-anchor verdict.edb02ec5— fix(open): refresh the single-use per-request grant nonce on quorum-open retries (A7) — the dKMS node's replay guard stops rejecting legitimate retries after transient Carrier transport loss. Pins the M1 verdict.Library / serve performance:
98b57c95— hash each file once on the directory-list hot path (was twice).72550c46— bounded (path, len, mtime) cache of file-listing facts; self-invalidating on write; the CAS gate stays fresh.9d8e6d90— bound the cover cache (LRU) and revoke evicted object URLs.ad84904b— drop redundant per-segment capsule re-resolve from the viewer authz path.Conformance ratchet:
4894f50a(close GAP-8's tamper-evidence half + pin),1e9e7125(build-visible DDRM audit-verdict ratchet + pin PRE-2 log redaction).Roadmap + handoff:
38b45bd0(path to 10/10: audit, node-bundle redeploy, permissionless/TEE),3567f549(point the external firm at the verified-safe scope-out registries),cec30861(release profile: LTO + strip),e5e6ad0b(branch-handoff note).Stats: 18 commits in this cluster, +889/−86, 25 files. AI-pair-programmed under the team's direction and review; merged 2026-06-20.
5. Runtime — Forensic Variant Pipeline Goes Live in the Gateway
Phase-5 of the forensic watermarking work crossed from "core landed" to "live in the gateway":
2bbd45ba— docs(av): reconcile Phase 5 status — 3/4/5 core landed, wiring + cert open.64372ea— bounded placeholder variant embed in ddrm-media (mint DSP seam).4574eede— end-to-end variant pipeline test on real fMP4 + CENC (chunks 3/4/5).16770237— wire forensic variant mint-emit + serve selection into the live gateway (+790/−50). The keystone for forensic delivery: the mint side emits the variant set, the serve side selects per-buyer.Stats (combined with the perf+harden serve work): 8 commits, +1,519/−111, 25 files.
6. Runtime — DKMS Quorum: Recover-Proof Revert, Replay-Safe Retries, Warm-Session Self-Heal
Three small but pointed fixes on the dKMS quorum path:
b241e1f8— fix(smoke): build dkms-authority with dev-modes in quorum-helper-verify. CI plumbing for the verify path.c596f1fa— fix(dkms): revert recover-proof to v1 to match the deployed quorum nodes (−245 lines). Aligning the runtime to the running cluster, not the other way around.13573299— fix(dkms): self-heal stale warm key-provider sessions on the quorum recover. Closes the warm-key-provider durability gap raised after last cycle's Phase-A landing.Stats: 3 commits, +216/−250, 11 files.
7. Runtime — Per-Capsule WASM Limits & Operator-Terminable Runaways
The WASM substrate got the budget enforcement the runtime needs to host untrusted capsule code:
253d0995— enforce per-capsule memory / table / instance limits and share a single Engine across capsules (+104/−10).ce2bd96e— honor each capsule's declared memory budget (clamped), matching the VM path (+56/−28).8bf1d299— make a runaway capsule operator-terminable via Wasmtime epoch interruption (+77/−3). B2a on the WASM-runaway roadmap; B2b (per-tick CPU budget) deferred.f2e9c53f,0d904c63,43eee84c— roadmap entries: B1 (memory) DONE, B2a (terminable) DONE, B2b (per-tick CPU) pending.Stats: 3 feature commits + 3 roadmap commits, +237/−41, 3 source files.
8. Runtime — Browser VM as Product Boundary & Remote Carrier Exit
A second runtime arc this cycle made the encapsulated Browser VM the product boundary — the proof that a capsule can be a full virtualised surface streamed across machines (team-reported; not all on the public remote yet — see §19):
ela.citybrowsing end-to-end on the device.9. PC2 — Elastos Node Manager Lands: Service-Type App Rails
After a long arc on
feature/elastos-node-manager, the ENM landing happened on Jun 24:094c6e06— Merge PR Necessary PC2 changes for the Node Manager (service-type app support) #18 (pc2-service-apps) into the ENM integration branch (+1,383/−15). This brings the service-type app plumbing into PC2: an installable app class that runs as a long-lived service rather than a one-shot launcher.de5890aa— Merge PR Elastos Node Manager app (service-type app — requires #18) #19 (enm-app): Elastos Node Manager service + operator UI (+82,483/−0). The full ENM service drop. PRs Necessary PC2 changes for the Node Manager (service-type app support) #18 and Elastos Node Manager app (service-type app — requires #18) #19 remain open againstmainupstream — the merges landed into the integration branch first, where they are now soaking + hardening before the main-bound PRs close.This is what the bulk of the PC2 insertion total this week reflects. Subtracting the two service merges, the remaining PC2 commits are the truer effort signal (§18).
10. PC2 — ENM Hardening, Multi-Arch Packaging & Server Perf
Once the ENM landed, the rest of the week was making it shippable:
05549498(+16/−0):type:serviceinstalls now Ed25519-verify the bundle fail-closed. No bypass on missing signature.d12197a0(+230/−0):AppProcessManagerlifecycle test — start, stop, restart, crash, recover, all asserted.7f48dd3a(+354/−3):requirements.platformgating in dapp-centre; an app declares the architectures it supports and the centre filters accordingly.0fa024e9(+678/−66): multi-arch ENM packaging + per-arch distribution variants. amd64 + arm64 + macOS shipped from one packager pass.0d9715aa(+204/−14): same-origin backend proxy + correct session-DB path; the first real-host integration fix after the merge.c0d2eea2(+22/−5): resolve a doubledAuthorizationheader to the live session — a regression from the proxy merge.303722a1(+108/−6): the install UX shows the app icon before install completes and reports real bytes (not a fake spinner).958071d3(+141/−0): staged production registry entry + flip procedure documented. The flip is gated on the soak; the registry is not live yet.e469a2db(+93/−2): gzip text responses with a stream-safe filter that doesn't break the chunked-streaming path.ENM is now installable via the dApp store on compatible hardware; the coordinated node release that carries it is in final pre-release testing (§17).
11. Platform Security Sweep — Marketplace, Protocol, Keystore & Transcode
The prior security-review triage turned into landed fixes this cycle, spread across four repos — the same "fail-closed by default" discipline applied at every layer of the paid-content path:
elacity-web,release/base-network+feature/ui-polish-2026) — an interface-polish pass plus its regression closure (ELACITY-2281): fixed CSV-export injection, 1970-epoch tax dates, and a hardcoded explorer; stopped a service-worker race in the Elastos in-app browser; restored the wallet sign-in prompt and a dead thumbnail-required validation; fixed a subscription-renewal crash and an EIP-1193 executor that never invalidated the RTK cache after a tx; corrected undercounted market stats and kept the approval toast until approval resolves.v3-drm-protocol, v0.9.2) — rejected the native sentinel in the ERC-20createOfferoverload (ELACITY-2252, native-escrow drain) and inbuyAccess(ELACITY-2254, native/ERC-20 confusion); fixed an unbuyable-channel DoS when there are no royalty holders (ELACITY-2256); deferred MultiChannel child-wrapping to post-creation so creation no longer reverts (ELACITY-2262); confirmed reseller-cut settlement as intended owner policy (ELACITY-2259); upgradedMultiChannelFactoryand improved the security-audit framework/toolchains.lit-keystore-moleculer) — HPKE-seal the CEK to the WASM recipient (RFC 9180), gate/transferon live on-chain access (acquireLicense-bound) so a transfer can't be issued without a verified entitlement (KES-1), and a Lit action for CEK encryption with recipient/ownership binding (ELACITY-2244).transcoder-gcloud) — confined thebento4 /executeendpoint to/opt/bento4/binand removed the unauthenticated code-exec/file surface (GWF-1); restored MBR handling during transcode.media-player) — bound the response pubkey into the signed entitlement and scoped it to the owner (CRP-4), closing the response-pubkey-not-bound finding on the consumer side.12. dDRM Protocol v3 & Key Services
The contract and key-service layer that the marketplace and runtime both depend on advanced this cycle:
v3-drm-protocolcut v0.9.2 with the gateway/channel hardening above, and the key-transfer service moved to HPKE-sealed, on-chain-gated CEK transfer (§11). Work also began on integrating the new post-quantum hybrid-threshold CENC scheme (cenc:elastos-pq-hybrid-threshold-v0) into the media-player andddrm-readerpaths — the next-generation protected-content format that succeeds the current web3-DRM path. This is foundation work for the runtime dDRM port; the integration itself continues next cycle.13. Hyper — Post-Quantum Messaging Matures + Independent Multi-Round Audit
Hyper-Android— the Hyper messaging/social/calls capsule built on the same runtime — had a strong week on both features and assurance:14. Public RPC Stack — Self-Hosted, Two-Region, Byte-Compatible Replacement
A self-hosted, two-region, highly-available public RPC stack went live as a drop-in replacement for the legacy public Elastos RPC — same endpoints, same responses, so wallets and dApps need no changes. It now serves 100% of production traffic on
api.elastos.ioandrpc.elastos.info.eth_chainId0.17s vs 0.31s,eth_getBalance0.18s vs 0.29s,getblockcount0.19s vs 0.29s), with a Cloudflare edge cache serving reads from the user's nearest PoP instead of round-tripping to the EU origin (~1 ms cached read latency).eth_getLogsrange caps, read-only public method scoping, scrubbed error envelopes, and per-IP rate limiting. Operating principle: the edge is smart, the node is dumb — and the node holds no keys.15. ElacityLabs.com — Newsletter, Blog & Social Automation
ElacityLabsWebgrew its content + distribution surface this cycle:Stats: ~24 commits on
main(+feat/blog-newsletter,feat/newsletter-resend), +3,457 lines; large deletion counts are vendored-asset/node_modules untracking, not regression.16. Convergence Lens — PC2 ↔ Runtime
e1fef691,c4e4b682)05549498)fea728bc); fail-closed on ambiguous KID binding (e175c1da)3236772c)0d9715aa)sellersOf/listings(d17b03a3); empirical KID→tokenId pivot (6bde757c)e469a2db)d2705009); cover-cache LRU with object-URL revoke (9d8e6d90)17. Looking Ahead
feat/marketplace-runtimeis at ~72% end-to-end by the roadmap's own count (62d602ee); next cycle should close the remaining ~28%, run a live-Base buy on a real wallet for the integration test, and merge toward the next runtime cut.3567f549).cenc:elastos-pq-hybrid-threshold-v0into the media-player /ddrm-readerpath.mainupstream; after integration-branch soak + the production-registry flip (958071d3staged, not live), close them intomain.16770237); the variant-cert open item is the next forensic milestone.18. Summary Statistics
Window: 2026-06-19T16:14:56Z → 2026-06-26T10:10:28Z (7 calendar days; cutoff = previous report's
createdAt).feat/marketplace-runtimefeat/ddrm-hardening-and-creator-parity(incl. PR #7)claude/branch-deep-audit-yiez86(AI-pair, merged via PR #7)feature/elastos-node-managerrelease/base-network*PC2 insertions are dominated by the two ENM integration merges (
094c6e06+1,383,de5890aa+82,483). Excluding them, the remaining PC2 commits land in ~+2,083/−115 — the truer effort signal.†ElacityLabsWeb deletions are vendored-asset /
node_modulesuntracking, not regression.claude/branch-deep-audit-yiez86→feat/ddrm-hardening-and-creator-parity).pc2-service-apps) and Elastos Node Manager app (service-type app — requires #18) #19 (enm-app) — both still open againstmain; merged into thefeature/elastos-node-managerintegration branch locally (094c6e06,de5890aa).feat/marketplace-runtimeis branched offfeat/ddrm-hardening-and-creator-parity(which absorbed PR ElastOS Weekly Shipping Report — Week of Mar 14–20, 2026 #7); per-commit dedup is by SHA.19. Data-Quality & Off-Repo Notes
2026-06-19 → 2026-06-26; counts on the most active in-window branch per repo, non-merge where noted. Cross-branch shared history is deduped by SHA.node_modulescleanup. Commit counts + narrative are the truer signal.20. Architecture Alignment — Direction This Cycle
A direction-setting architecture conversation this cycle reaffirmed the core bets the team is building on, and they map cleanly onto the week's work:
Cadence: weekly Friday updates. Previous report — Week of June 12 – June 19, 2026 (#24).
Beta Was this translation helpful? Give feedback.
All reactions