Skip to content

v0.8.0

Choose a tag to compare

@odesenfans odesenfans released this 23 Mar 20:35
· 146 commits to main since this release
800fc62

Highlights

v0.8.0 is a major release that transforms aleph-rs from a read-only SDK into a full read-write toolkit. The SDK can now create and submit every Aleph message type, the new CLI covers the full lifecycle of accounts, files, VMs, and nodes, and heph provides a local CCN for integration testing.

New Features

Full message creation & submission (#80, #89, #91, #92)

  • New typed builders — PostBuilder, AggregateBuilder, ForgetBuilder, StoreBuilder, ProgramBuilder, InstanceBuilder — provide a safe, ergonomic API for constructing every Aleph
    message type.
  • submit_message() on AlephMessageClient handles signing, serialization, and upload in one call.
  • StoreBuilder supports streaming file upload, so large files never need to be buffered in memory.
  • Inline content size limit raised to 200 kB (#88).

Account system with EVM & Solana signing (#78, #100, #107, #108)

  • New Account trait abstracts over EVM (secp256k1/EIP-191) and Solana (Ed25519) key pairs for message signing.
  • aleph account CLI commands manage accounts with OS keychain storage (Linux secret-service, macOS Keychain, Windows Credential Manager).
  • Ledger hardware wallet support: sign messages directly from a Ledger device via the Ethereum app (#107).
  • aleph account balance displays ALEPH token balances (#108).

Authorization management (#102, #111)

  • New authorization system (types, SDK, and CLI) allows granting and revoking signing permissions to delegate addresses.
  • on_behalf_of support enables delegated message signing — sign messages on behalf of another account using a granted authorization.

Corechannel operations (#83, #87, #103, #109)

  • SDK module for corechannel node operations: create, update, and amend node records.
  • CLI subcommands: aleph node create, aleph node update, aleph node amend, aleph node list.

CRN VM control (#105, #106)

  • SDK client and CLI commands for controlling VMs on Compute Resource Nodes: start, stop, reboot, erase, and check status.
  • aleph instance create deploys new VM instances (#97).

File upload & download (#81, #92, #94, #96)

  • upload_to_storage() and upload_to_ipfs() on AlephStorageClient (#81).
  • aleph file upload streams a local file to Aleph storage (#94).
  • aleph file download retrieves files by item hash, message hash, or content ref (#96).

heph — lightweight local CCN for testing (#84, #86, #104)

  • New heph crate: an in-process mock of the Aleph CCN API, backed by a local file store. Ideal for integration tests that need deterministic, offline message creation and retrieval.
  • heph-based integration tests now run in CI (#86).
  • Auto-generates corechannel aggregate from posted corechan operations (#104).

Auto-paginating iterators (#93)

  • messages_iter() and posts_iter() return async iterators that automatically follow pagination, eliminating manual page management.

Named CCN endpoints (#112)

  • Configure well-known CCN endpoints by name (e.g. --endpoint mainnet) instead of passing full URLs.

Configurable HTTP timeouts (#114)

  • AlephClientBuilder now exposes connect_timeout() and request_timeout() for fine-grained control over HTTP timeouts.

Multi-key aggregate fetch (#101)

  • Fetch aggregates for multiple keys in a single request.

CLI improvements

  • CLI has been restructured into per-command modules for maintainability (#99).
  • Package managers: install via brew install aleph-im/tap/aleph (#118) or from the APT repository (#117).

Bug Fixes

  • heph: Use item_content for API response content field (#115).
  • heph: Resolve file size from FileStore when store metadata omits size (#95).
  • types: Skip serializing None fields instead of emitting null (#98).
  • cli: Resolve --chain argument name clash in authorization add (#110).
  • cli: Use block_in_place for Ledger signing to avoid nested runtime panic (#116).

What's Changed

  • deps: use memsizes crate by @odesenfans in #76
  • chore: bump to memsizes 1.0 by @odesenfans in #77
  • feature: do not hardcode the corechannel address by @odesenfans in #79
  • feat: add Account trait with EVM and Solana signing by @odesenfans in #78
  • feat: typed message builders for POST, AGGREGATE, and FORGET by @odesenfans in #80
  • feat: add corechannel operations SDK module by @odesenfans in #83
  • feat: add CLI commands for creating posts, aggregates, and forget messages by @odesenfans in #82
  • feat: add heph, a lightweight local Aleph CCN for testing by @odesenfans in #84
  • feat: add upload_to_storage and upload_to_ipfs to AlephStorageClient by @odesenfans in #81
  • fix: release pipeline for heph was broken by @odesenfans in #85
  • feat: add heph-based integration tests to CI by @odesenfans in #86
  • feat(cli): add node subcommands for corechannel operations by @odesenfans in #87
  • feat: increase inline content size limit to 200kB by @odesenfans in #88
  • feat: add submit_message to AlephMessageClient for full message upload support by @odesenfans in #89
  • internal: add Justfile for common development tasks by @odesenfans in #90
  • feat: add auto-paginating iterators for messages and posts by @odesenfans in #93
  • feat: add StoreBuilder and streaming file upload with STORE message support by @odesenfans in #92
  • feat(cli): add file upload subcommand by @odesenfans in #94
  • feat: add ProgramBuilder and InstanceBuilder for creating PROGRAM and INSTANCE messages by @odesenfans in #91
  • fix(heph): resolve file size from FileStore when store metadata omits size by @odesenfans in #95
  • feat(cli): add file download subcommand with hash, message-hash, and ref lookup by @odesenfans in #96
  • feat(cli): add instance create subcommand for VM deployments by @odesenfans in #97
  • fix(types): skip serializing None fields instead of emitting null by @odesenfans in #98
  • refactor(cli): split main.rs into per-command modules by @odesenfans in #99
  • feat(cli): add account management with OS keychain storage by @odesenfans in #100
  • feat(sdk): add multi-key aggregate fetch by @odesenfans in #101
  • feat: add authorization management system (types, SDK, CLI) by @odesenfans in #102
  • feat: add amend action for corechan node operations by @odesenfans in #103
  • feat(heph): auto-generate corechannel aggregate from corechan-operati… by @odesenfans in #104
  • feat(sdk): add CRN VM control client by @odesenfans in #105
  • feat(cli): add CRN VM control commands by @odesenfans in #106
  • feat(cli): add node list command by @odesenfans in #109
  • feat(cli): add Ledger hardware wallet support by @odesenfans in #107
  • feat(cli): add account balance display and balance command by @odesenfans in #108
  • fix(cli): resolve --chain argument name clash in authorization add by @odesenfans in #110
  • feat: add named CCN endpoint configuration by @odesenfans in #112
  • feat: add on_behalf_of support for delegated message signing by @odesenfans in #111
  • feat(sdk): add configurable HTTP timeouts to AlephClient by @odesenfans in #114
  • fix(cli): use block_in_place for ledger signing to avoid nested runtime panic by @odesenfans in #116
  • feat(cli): add APT packaging and repository workflow by @odesenfans in #117
  • fix(heph): use item_content for API response content field by @odesenfans in #115
  • feat(brew): add Homebrew tap packaging and release workflow by @odesenfans in #118
  • fix(ci): upload release assets sequentially to avoid parallel upload race by @odesenfans in #121

Full Changelog: v0.7.1...v0.8.0


Published to crates.io