v0.11.0
Highlights
Confidential VMs (aleph instance confidential)
Full confidential (AMD SEV) VM lifecycle support, in both the SDK and the CLI:
- New subcommands:
aleph instance confidential init-session,start, andcreate(all-in-one), with hash-prefix addressing like the other instance commands. - New
aleph_sdk::confidentialmodule implementing the SEV-ES launch crypto: HMAC-SHA256 measurement validation (AMD SEV API 6.5.2) and AES-128-CTR secret injection, byte-locked against thealeph-sdk-pythonfixtures. - Stronger than the Python CLI: the platform certificate chain is verified with
sevctl verifybefore session keys are derived (no--insecurebypass), and measurement comparison is constant-time.
GPU instances, end to end
aleph instance create --gpu <model>now sizes the VM from the GPU tier's pricing-aggregate minimum;--size,--vcpus, or--memorycan raise it above the minimum, and--disk-sizedefaults to the tier disk.- The interactive flow (
-i) gained a GPU prompt listing each available model with VRAM and tier. --list-gpusoutput now explains the per-tier compute-unit definition and points to the create command; sizing errors that match a GPU tier hint at--gpu.
Buy credits with native ETH
aleph credit buy --token eth pays by a plain value transfer to the credit contract; ALEPH and USDC keep their ERC20 path.
Quality of life
aleph file uploadandaleph program create/updatenow show a byte-progress bar during uploads (suppressed under--json).- The interactive
instance createflow can now let the scheduler pick a node automatically (the new default) instead of forcing a specific CRN. - New
--crnflag accepts either a node hash or a URL on instance lifecycle commands (--crn-urlremains as a hidden alias). - Lifecycle commands (
start,stop,logs, ...) now resolve the CRN automatically forscheduledVMs;--crn-urlis no longer required there. - CRN allocation failures (e.g. 503 "Insufficient capacity") now surface the CRN's actual error message instead of an opaque serde failure.
Breaking changes (aleph-sdk)
CreditToken::token_address()now returnsOption<Address>(native ETH has no token contract). Callers must handleNone.CreditTokengained theEthvariant; exhaustivematches on it need a new arm.
What's Changed
- feat(sdk+cli): aleph instance confidential by @odesenfans in #229
- feat: show progress bar during file uploads to the CCN by @odesenfans in #230
- docs(cli): replace "tombstone" with plain deletion wording by @odesenfans in #231
- test(sdk): gate authorization heph tests behind account-evm by @odesenfans in #232
- feat(cli): allow scheduler-chosen node in interactive instance create by @odesenfans in #233
- feat(cli): guide users from --list-gpus to the create command by @odesenfans in #234
- feat(cli): add GPU selection to interactive instance create by @odesenfans in #235
- feat(cli): size GPU instances from the pricing aggregate minimum by @odesenfans in #236
- fix(cli): point GPU --size errors at the right namespace by @odesenfans in #237
- feat(cli): buy credits with native ETH by @odesenfans in #238
- fix(sdk): surface CRN allocation errors instead of a serde failure by @odesenfans in #239
- fix(cli): resolve CRN for scheduled VMs without --crn-url by @odesenfans in #240
- feat(cli): accept a node hash or URL via --crn by @odesenfans in #241
- test(cli): retry sevctl tests on ETXTBSY by @odesenfans in #242
Full Changelog: v0.10.3...v0.11.0
✅ Published to crates.io