Skip to content

Releases: aleph-im/aleph-vm

Aleph-vm 1.1.0

05 Sep 15:23
Compare
Choose a tag to compare

We are excited to announce our release for aleph-vm in version 1.1.0 !

The team has been working hard to ship this major new release.

This new release brings both exciting new features, such as the support to use Pay-as-you-Go on BASE blockchain, and some bug fixes and stability improvements.

As usual, node operators are expected to upgrade to the new release within a 2 weeks windows from the release.

New Features

  • Implemented the ability to use PAYG (Pay-As-You-Go) on BASE blockchain. (PR #685)

Bug Fixes

  • Resolved an issue with the ping command where an invalid value was being accepted. (PR #688)
  • Addressed a problem causing slowness in the CI (Continuous Integration) process and ensured proper execution of tests. (PR #686)

Other Changes

  • Provided a template for new pull requests to facilitate the contribution process. (PR #667)
  • Enhanced the CI process by ensuring the hatch tool is always installed when needed for testing. (PR #690)

In detail

  • Provide a template for new PRs by @olethanh in #667
  • Fix CI slowness and correct execution tests by @olethanh in #686
  • Problem: ping: invalid value (2.0' near .0') by @olethanh in #688
  • Feature: Allow PAYG on base by @1yam in #685
  • ci/fix(test-using-pytest): ensure hatch is always installed when needed by @Psycojoker in #690

New Contributors

Full Changelog: 1.0.1...1.1.0

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.1.0/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.1.0/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

On Ubuntu 24.04 (Noble Numbat):

rm -f /opt/aleph-vm.ubuntu-24.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.1.0/aleph-vm.ubuntu-24.04.deb
sudo apt install /opt/aleph-vm.ubuntu-24.04.deb

2. Enable Confidential Computing (optional)

In order to enable Confidential Computing on our Compute Resource Node, you must:

  1. Use an AMD CPU from the 8004 or 9004 families.
  2. Ensure that your system supports confidential computing. We have only tested Ubuntu 24.05 so far.
  3. Enable SEV and SEV-SNP in the BIOS.
  4. Enable confidential computing in the aleph-vm configuration.

Enable SEV in the configuration of aleph-vm, by default in /etc/aleph-vm/supervisor.env. This is not the default yet.

ALEPH_VM_ENABLE_CONFIDENTIAL_COMPUTING=True

After launching the server you can check the endpoint
http://localhost:4020/status/config or https://<your-node-domain>/status/config and verify that ENABLE_CONFIDENTIAL_COMPUTING has the value true.

Aleph-vm 1.0.1

27 Aug 15:37
d66de42
Compare
Choose a tag to compare

This release fixes an important bug for confidentials computing.

Main changes

Core Functionality and Stability

  • Bug Fixes: Addressed issue running a confidential VM inside an updated CRN.

What's Changed

  • Update aleph_message package on packaging steps by @nesitor in #684

Full Changelog: 1.0.0...1.0.1

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.1/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.1/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.1/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

On Ubuntu 24.04 (Noble Numbat):

rm -f /opt/aleph-vm.ubuntu-24.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.1/aleph-vm.ubuntu-24.04.deb
sudo apt install /opt/aleph-vm.ubuntu-24.04.deb

2. Enable Confidential Computing (optional)

In order to enable Confidential Computing on our Compute Resource Node, you must:

  1. Use an AMD CPU from the 8004 or 9004 families.
  2. Ensure that your system supports confidential computing. We have only tested Ubuntu 24.05 so far.
  3. Enable SEV and SEV-SNP in the BIOS.
  4. Enable confidential computing in the aleph-vm configuration.

Enable SEV in the configuration of aleph-vm, by default in /etc/aleph-vm/supervisor.env. This is not the default yet.

ALEPH_VM_ENABLE_CONFIDENTIAL_COMPUTING=True

After launching the server you can check the endpoint
http://localhost:4020/status/config or https://<your-node-domain>/status/config and verify that ENABLE_CONFIDENTIAL_COMPUTING has the value true.

Aleph-vm 1.0

26 Aug 13:35
cd6463c
Compare
Choose a tag to compare

We are excited to announce our release candidate for aleph-vm in version 1.0 !

The team has been working hard to ship this major new release.

This new release brings both exciting new features, such as the support for Confidential Computing (in beta), and many bug fixes and stability improvements.

As usual, node operators are expected to upgrade to the new release within a 2 weeks windows from the release.

Main changes

Core Functionality and Stability

  • Confidential Computing: We added support for Confidential Computing on supported hardware (AMD EPYC 8004 and 9004).
  • Enhanced Testing: More automated tests and code quality checks improve the reliability and identify potential bugs early.
  • Better build process: The build process was streamlined, ensuring compatibility with different Ubuntu versions and efficient resource management.
  • Bug Fixes: Addressed issues with duplicated CORS headers in the HTTP response, ensuring proper handling and preventing CORS-related errors.
  • Ubuntu 24.04: We added the support for Ubuntu 24.04 as a host.

In details

  • Fix: Pytest did not test legacy diagnostic by @hoh in #603
  • Installation documentation was moved to aleph doc by @olethanh in #613
  • Problem /about/usage/system was not tested by @olethanh in #609
  • Problem: allocation endpoints was not tested by @olethanh in #610
  • Fix: Backquote in shell script executed command by @hoh in #611
  • Fix: System testing on DO took too many resources by @hoh in #614
  • Added Qemu automatic tests by @nesitor in #615
  • Fix: Branch main could not be tested easily by @hoh in #612
  • Fix: Unkwnown hashes raised exception by @hoh in #606
  • Use standard system package for ECDSA verification and add tests by @BjrInt in #460
  • Added USE_CONFIDENTIAL_COMPUTING check by @nesitor in #617
  • 601 creating instance tests by @Antonyjin in #616
  • Minor code cleanup in check_system_module by @hoh in #621
  • Fix: Some dependencies were inconsistent between pyproject.toml and packaging by @hoh in #625
  • Fix: No .deb was built for Ubuntu 24.04 by @hoh in #624
  • Add platform confidential directory on Settings by @nesitor in #618
  • Implement get platform certificates endpoint by @nesitor in #619
  • Fix: Correct string formatting in VM startup response by @1yam in #631
  • Fix: Orchestrator failed with assert result["result"] == HTTPOk.status_code by @hoh in #628
  • Problem: Crash when trying to auth via websocket by @olethanh in #630
  • Fix: CI Droplet cleanup failed when same name was used by @hoh in #633
  • Fix: make clean did not cleanup all resources by @hoh in #634
  • Update test and linting dependencies by @hoh in #623
  • Fix: Binary sevctl was absent from debian packages by @hoh in #629
  • Disable printing system logs on deb package as per default configuration recommendation by @aliel in #640
  • Add more information on testing for devs by @olethanh in #642
  • Add test for the reboot endpoint by @olethanh in #635
  • Problem : Log was not working on system. Unify logging method by @olethanh in #644
  • Fix: Path to sevctl was not from settings by @hoh in #637
  • Fix: CRN API did not expose CPU features for trusted computing by @hoh in #622
  • Problem: Websocket were required to fetch logs by @olethanh in #645
  • Improve instances code by @nesitor in #654
  • Fix: AttributeError: 'MicroVM' object has no attribute 'send_shutdown_message' by @hoh in #653
  • Implement Confidential Computing by @olethanh in #650
  • Problem: sevctl command was not tested on the proplet by @olethanh in #651
  • Add missing cpuid dependency by @nesitor in #656
  • Solve Websocket error handling by @nesitor in #657
  • Small fixes noticed on new installations. by @nesitor in #659
  • Solve Firecracker reboot issues by @nesitor in #658
  • Allocate endpoint allow starting confidential with hold payment method by @olethanh in #660
  • Fix: error when user balance is zero and no remaining executions to r… by @olethanh in #661
  • Start documentation on confidential by @olethanh in #655
  • Enable Qemu support by default by @nesitor in #662
  • Fix: Droplet with Ubuntu 24.04 was not tested by @hoh in #663
  • Update confidential README.md by @hoh in #664
  • Fix wrong balance endpoint by @philogicae in #666
  • CoCo image: Improve example user creation by @olethanh in #669
  • Mitigate concurrency issues by @olethanh in #670
  • Add duration info to pytest by @olethanh in #671
  • Problem: Vm execution failed due to network interface by @olethanh in #596
  • Do not reuse the id of any vm in pool.executions by @olethanh in #672
  • Problem: Login token was not display with default conf by @olethanh in #673
  • Problem: status_check_fastapi endpoint raising eror by @olethanh in #676
  • Fix is_confidential property by @olethanh in #674
  • Problem: Websocked auth for fail user was not returning error by @olethanh in #675
  • Solve failing tests on main branch by @nesitor in #678
  • Check message status before checking the payment by @nesitor in #679
  • Solve duplicated network issues for ephemeral VMs by @nesitor in #680
  • Fix: Update new aleph-message package version. by @nesitor in #683

New Contributors

Full Changelog: 0.4.1...1.0.0

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.0/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.0/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.0/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

On Ubuntu 24.04 (Noble Numbat):

rm -f /opt/aleph-vm.ubuntu-24.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.0.0/aleph-vm.ubuntu-24.04.deb
sudo apt install /opt/aleph-vm.ubuntu-24.04.deb

2. Enable Confidential Computing (optional)

In order to enable Confidential Computing on our Compute Resource Node, you must:

  1. Use an AMD CPU from the 8004 or 9004 families.
  2. Ensure that your system supports confidential computing. We have only tested Ubuntu 24.05 so far.
  3. Enable SEV and SEV-SNP in the BIOS.
  4. Enable confidential computing in the aleph-vm configuration.

Enable SEV in the configuration of aleph-vm, by default in /etc/aleph-vm/supervisor.env. This is not the default yet.

ALEPH_VM_ENABLE_CONFIDENTIAL_COMPUTING=True

After launching the server you can check the endpoint
http://localhost:4020/status/config or https://<your-node-domain>/status/config and verify that ENABLE_CONFIDENTIAL_COMPUTING has the value true.

Aleph-vm 0.5.1-rc1

30 Jul 11:32
e2fcccd
Compare
Choose a tag to compare
Aleph-vm 0.5.1-rc1 Pre-release
Pre-release

This release fixes important bugs and increases the reliability of the metrics of the node.

As usual, node operators are expected to upgrade to the new release within a 2 weeks windows from the release.

Main changes

Core Functionality and Stability

  • Confidential Computing Implementation: We have implemented confidential computing features using AMD SEV, enhancing data security and privacy.
  • Enhanced Testing: Comprehensive tests were added for various components to improve code reliability and identify potential issues early.
  • Internet Connectivity Checks: The build process was streamlined, ensuring compatibility with different Ubuntu versions and efficient resource management.
  • Bug Fixes: Addressed issues with duplicated CORS headers in the HTTP response, ensuring proper handling and preventing CORS-related errors.

Security and Compliance

  • Security Enhancements: Additional checks and measures were put in place to strengthen the overall security posture of the system.

User Experience and Developer Productivity

  • Documentation Improvements: Documentation was updated to provide better guidance for developers and users.
  • Code Quality: Codebase was cleaned up and refactored for better maintainability and readability.

These changes aim to improve the robustness, usability, and maintainability of the system, ensuring a smoother experience for both developers and end-users. Please refer to the project documentation for detailed instructions on the new features and improvements.

What's Changed

  • Fix: Pytest did not test legacy diagnostic by @hoh in #603
  • Installation documentation was moved to aleph doc by @olethanh in #613
  • Problem /about/usage/system was not tested by @olethanh in #609
  • Problem: allocation endpoints was not tested by @olethanh in #610
  • Fix: Backquote in shell script executed command by @hoh in #611
  • Fix: System testing on DO took too many resources by @hoh in #614
  • Added Qemu automatic tests by @nesitor in #615
  • Fix: Branch main could not be tested easily by @hoh in #612
  • Fix: Unkwnown hashes raised exception by @hoh in #606
  • Use standard system package for ECDSA verification and add tests by @BjrInt in #460
  • Added USE_CONFIDENTIAL_COMPUTING check by @nesitor in #617
  • 601 creating instance tests by @Antonyjin in #616
  • Minor code cleanup in check_system_module by @hoh in #621
  • Fix: Some dependencies were inconsistent between pyproject.toml and packaging by @hoh in #625
  • Fix: No .deb was built for Ubuntu 24.04 by @hoh in #624
  • Add platform confidential directory on Settings by @nesitor in #618
  • Implement get platform certificates endpoint by @nesitor in #619
  • Fix: Correct string formatting in VM startup response by @1yam in #631
  • Fix: Orchestrator failed with assert result["result"] == HTTPOk.status_code by @hoh in #628
  • Problem: Crash when trying to auth via websocket by @olethanh in #630
  • Fix: CI Droplet cleanup failed when same name was used by @hoh in #633
  • Fix: make clean did not cleanup all resources by @hoh in #634
  • Update test and linting dependencies by @hoh in #623
  • Fix: Binary sevctl was absent from debian packages by @hoh in #629
  • Disable printing system logs on deb package as per default configuration recommendation by @aliel in #640
  • Add more information on testing for devs by @olethanh in #642
  • Add test for the reboot endpoint by @olethanh in #635
  • Problem : Log was not working on system. Unify logging method by @olethanh in #644
  • Fix: Path to sevctl was not from settings by @hoh in #637
  • Fix: CRN API did not expose CPU features for trusted computing by @hoh in #622
  • Problem: Websocket were required to fetch logs by @olethanh in #645
  • Improve instances code by @nesitor in #654
  • Fix: AttributeError: 'MicroVM' object has no attribute 'send_shutdown_message' by @hoh in #653
  • Implement Confidential Computing by @olethanh in #650
  • Problem: sevctl command was not tested on the proplet by @olethanh in #651
  • Add missing cpuid dependency by @nesitor in #656
  • Solve Websocket error handling by @nesitor in #657
  • Small fixes noticed on new installations. by @nesitor in #659
  • Solve Firecracker reboot issues by @nesitor in #658
  • Allocate endpoint allow starting confidential with hold payment method by @olethanh in #660
  • Fix: error when user balance is zero and no remaining executions to r… by @olethanh in #661
  • Start documentation on confidential by @olethanh in #655
  • Enable Qemu support by default by @nesitor in #662

Full Changelog: 0.4.1...v0.5.1-rc1

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.5.1-rc1/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.5.1-rc1/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.5.1-rc1/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

On Ubuntu 24.04 (Noble Numbat):

rm -f /opt/aleph-vm.ubuntu-24.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.5.1-rc1/aleph-vm.ubuntu-24.04.deb
sudo apt install /opt/aleph-vm.ubuntu-24.04.deb

2. Enable Confidential Computing (optional)

In order to enable Confidential Computing on our Compute Resource Node, you must:

Enable SEV in the configuration of aleph-vm, by default in /etc/aleph-vm/supervisor.env:

ALEPH_VM_ENABLE_QEMU_SUPPORT=1
ALEPH_VM_ENABLE_CONFIDENTIAL_COMPUTING=1

After launching the server you can check the endpoint
http://localhost:4020/status/config and verify that ENABLE_CONFIDENTIAL_COMPUTING is true

Aleph-vm 0.4.1

26 Apr 16:26
@hoh hoh
Compare
Choose a tag to compare

We are happy to announce aleph-vm in version 0.4.1.

This release fixes important bugs and increases the reliability of the metrics of the node.

As usual, node operators are expected to upgrade to the new release within a 2 weeks windows from the release.

Main changes

Improvements

  • Diagnostic API Updated: Integrated a new diagnostic VM with the latest runtime, improving the handling of message reading, IPv6 detection, and message signing tests.
  • Internet Connectivity Checks: Enhanced the internet connectivity checks by the diagnostic VM to multiple endpoints, improving reliability in connectivity assessments.
  • CORS Headers Fix: Addressed issues with duplicated CORS headers in the HTTP response, ensuring proper handling and preventing CORS-related errors.

Developer tooling

  • VM Launching from pytest: Enabled testing of VMs from pytest, increasing code coverage and preparing the space for more advanced automated tests.
  • Hatch Configuration: Modified the Hatch configuration to properly set up environments for testing using the virtual environment built-in module.
  • Makefile and Documentation Updates: Updated Makefile and documentation to require an 'update' argument for the 'aleph program', facilitating the publishing process.

Bug Fixes

  • Error Handling and Validation: Improved error handling in various APIs to ensure earlier and more accurate failure detection. Notably, fixed issues where invalid item hashes and double-encoded JSON data led to errors.
  • Typing and Syntax Corrections: Numerous fixes related to Python typing annotations and syntax corrections, including proper handling of strict types, correct annotations, and elimination of circular imports.

These changes aim to improve the robustness, usability, and maintainability of the system, ensuring a smoother experience for both developers and end-users. Please refer to the project documentation for detailed instructions on the new features and improvements.

Git commits

fe9235a Fix: Diagnostic API was not updated
ab79b77 Solve last CORS issues about duplicated headers (#604)
54680ba Problem: could not start Instances from command line (#597)
b7d9202 Problem: Makefile for publishing example were not working
c74ed5a Fix: Internet diagnostic due to single endpoint
8bbd65b Fix: Solved CORS issues on PAYG creation.
57695a1 Fix: Prevent diagnostic VM to fail if the ipv6 or ipv4 raises a Timeout.
0f77070 Cleanup: Frozen requirements were not maintained
fe2e74f Problem cannot import name 'async_sessionmaker' from 'sqlalchemy.ext.asyncio'
f0922f2 Problem: Execution test hanging. Python runtime slow
64af5a1 Fix: Missing comments in workflow
53b52b6 Problem: hatch envs needed manual manipulation for testing
af5b5fd Fix: Could not launch a VM without building it locally (#588)
1b6d429 Fix: Missed documentation, no TESTING.md
e28fcaa Fix: run_guest_api mixed str and Path
d660948 Fix: Assertion errors did not display missing path
6d1482d Doc: Add docstring to settings.setup(), .check()
f096134 Fix: Pytest failed due to missing files
cacb83c Fix: Circular imports prevented pytest to run
950d3e8 Fix: Execution creation was not tested
da112e6 Doc: Update outdated orchestrator README (#592)
0a4f75f Fix: Invalid ItemHash did not raise a ValidationError
2f5aa79 Fix: Error data was JSON encoded twice
4989892 Fix: Imports could be cleaned up
553d1aa Fix: Domain name must always be specified
f1fd306 Fix typing: Missing path was not considered
d386374 Fix typing: Missing annotation on methods
3bfe28d Fix: Automated code cleanup
4381075 Fix typing: Use of lambda caused typing errors
811d791 Fix typing: continue inside try/finally block is unimplemented in mypyc
f31819c Fix typing: ... in class is not allowed
ceecc10 Fix: Properties were initialized with a global object
7e11125 Fix typing: Strict type checks raised issues
c2b540c Fix typing: Missing return types on methods
07c34f9 Fix typing: SQLAlchemy annotations were incorrect
19b0916 Fix typing: Replace Dict->dict, List->list
1b278e0 Fix typing: Invalid type annotations
b65fd9e Fix typing: FakeRequest class was not of type Request
a6508f1 Fix typing: Wrong type in annotation
a355428 Fix typing: web.HTTPBadRequest may not be raised
b90cb84 Fix: Log level was DEBUG instead of WARNING in prod
b6053f6 Fix: Tests were run twice

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.1/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.1/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.1/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

2. Enable Pay-as-you-go (optional)

See the release notes of version 0.4.0 alpha1.

Aleph-vm 0.4.0

22 Mar 10:17
@hoh hoh
Compare
Choose a tag to compare

We are excited to announce aleph-vm in version 0.4.0.

This update brings a series of improvements and bug fixes that enhance the stability, performance, and usability of Aleph.im's virtual machine infrastructure. With this version, we aim at deploying the features introduced at the beginning of the year to the entire network.

As usual, node operators are expected to upgrade to the new release within a 2 weeks windows from the release.

Improvements and New Features

  • Improved Error Handling and Debugging: Refactoring and enhancements have been made to improve the traceability of exceptions and errors, making it easier for developers to debug issues.
  • Interface and Network Handling Enhancements: The handling of busy network interfaces and the management of network errors have been improved, including more informative logging and adjustments to prevent instance creation failures.
  • Support for QEMU Instances: aleph-vm now allows the running of QEMU instances, expanding the versatility of the virtual machine environment.
  • Runtime and Dependency Updates: Updated runtime dependencies to include newer versions of aleph-sdk-python and fastapi, among others, ensuring better performance and security.
  • Cors Support: Implemented CORS support on both supervisor and diagnostic VM endpoints, enhancing integration capabilities with different frontends.
  • Configuration Improvements: Introduced default hypervisor options and refined the configuration of MyPy for better type checking and code quality.
  • Persistent VM Management: Enhancements to the detection and management of persistent VMs improve stability and reduce potential for errors after orchestrator reboots.

Notable changes

  • Fixed a series of bugs related to VM execution stopping, interface management, and asynchronous operations that could lead to crashes or unexpected behavior.
  • Resolved issues with network interface manipulation, making error conditions more visible and manageable.
  • Adjusted the handling of missing or busy interfaces, reducing the potential for errors during VM setup.
  • Addressed various code quality issues, including outdated dependencies, incorrect type annotations, and issues identified through static analysis.
  • Enhanced the system's resilience to network and execution errors, including better handling of timeouts and busy resources.
  • Implemented several fixes and updates aimed at improving the testing environment, from integration with CodeCov to adjustments in CI workflows to ensure tests are more reliable and comprehensive.

This release consolidates several weeks of dedicated work to enhance aleph-vm's robustness, ease of use, and feature set. We appreciate the community's feedback and contributions, which have been invaluable in making these improvements possible.

Pull Requests in details

  • Fix: Argument vm_id was missing. by @hoh in #539
  • Fix: Status check fastapi view could crash due to ServerDisconnectedError. by @hoh in #537
  • Fix: An IndexError was raised if no execution was left for this sender. by @hoh in #536
  • Fix: TypeError: catching classes that do not inherit from BaseException is not allowed by @hoh in #535
  • Fix: socket.getaddrinfo does not always return 2 values by @hoh in #540
  • Added CORS support on supervisor endpoints by @nesitor in #542
  • Detect already running Persistent VMs by @nesitor in #541
  • Cleanup: Minor code cleanup and refactoring by @hoh in #546
  • Fix: Linux kernel from package could not be on a different device by @hoh in #543
  • Add nftables as a dependency by @aliel in #547
  • Implement CORS on diagnostic VM endpoints by @nesitor in #551
  • Check request token exists by @nesitor in #550
  • Fix: CI did not run pytest by @hoh in #545
  • Fix: Caller expected tuple but got a single value by @hoh in #555
  • Allow running Qemu instances by @nesitor in #557
  • Solve random 500 errors on ephemeral VMs by @nesitor in #549
  • Fix issues with stopping VMs by @hoh in #554
  • Use stronger typing with Mypy by @hoh in #556
  • Update runtime dependencies by @hoh in #548
  • Runtimes: Update locale settings to en_US UTF-8 by @aliel in #562
  • Fix: Paths to fake data were broken by refactoring by @hoh in #559
  • Fix: Benchmark command did not initialize or check settings by @hoh in #561
  • Fix: Errors in network interface manipulation were invisible by @hoh in #566
  • Fix: Small code quality fixes by ruff check --fix by @hoh in #565
  • Fix: Firecracker would not start without DNS servers, even when networking is disabled. by @hoh in #564
  • Fix: Workflows used deprecated actions by @hoh in #567
  • Fix: Tests on Droplets ran even when tests failed by @hoh in #568
  • Fix: asyncio.run was sometimes used within a coroutine by @hoh in #560
  • Fix: Depencency aleph-message was outdated by @hoh in #569
  • Fix: Network errors were hard to inspect by @hoh in #571
  • Fix FAKE_DATA_PROGRAM issue on instances. by @nesitor in #572
  • Implement default hypervisor options on settings by @nesitor in #573
  • Fix: pyproject.toml license field must point to a file by @hoh in #574
  • Fix: Deleting a missing interface crashed by @hoh in #576
  • Fix: Interface being busy prevented instance creation by @hoh in #579
  • Fix: Waiting for another tasks reached timeout by @hoh in #580
  • Fix: Failing to restart nddpd caused the exception to escalate by @hoh in #584
  • Fix: Guest API would crash due to FileNotFound by @hoh in #583
  • Solve network issues on Ubuntu hosts by @nesitor in #586

Full Changelog: 0.4.0a3...0.4.0

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

2. Enable Pay-as-you-go (optional)

See the release notes of version 0.4.0 alpha1.

Aleph-vm 0.4.0 alpha3

13 Feb 11:50
@hoh hoh
Compare
Choose a tag to compare

Thanks to your feedback, we are happy to announce this bugfix release that improves the future of our computing platform !

ℹ️ alpha release: This new release introduces many new features that we would like to share with the community as soon as possible, but may not be rock solid yet. Community feedback on early releases is very important to us, especially with a large and diverse ecosystem of nodes.

Improvements and New Features

While aleph.im stives to be compatible with all Linux systems and distributions, we provide two officially supported runtimes: The latest based on Debian 12, and the legacy based on Debian 11. The legacy runtime is used by the metrics and some operators, who faced issues with that runtime not working, had no easy way to visualize this information.

This release improves the diagnostic page by displaying the status check for both runtimes.

image

What's Changed

  • added missing Debian 12 install doc link by @gdelfino in #521
  • Solve holding tier issue for instances by @nesitor in #523
  • Fix: Syntax | is not compatible with Python 3.9 by @hoh in #527
  • Cleanup: Update black ruff isort and apply new rules by @hoh in #528
  • Fix: Connectivity errors crashed the endpoint by @hoh in #529
  • Fix: AttributeError when self.vm == None by @hoh in #531
  • Fix: Logs of invalid messages were too verbose by @hoh in #532
  • Add diagnostic for legacy VM by @hoh in #530
  • Solve issues on Operator API by @nesitor in #534

Full Changelog: 0.4.0a1...0.4.0a3

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0a3/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0a3/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0a3/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

2. Enable Pay-as-you-go (optional)

See the release notes of version 0.4.0 alpha1.

Upgrading directly from version 0.3.2 should not cause any issue.

Aleph-vm 0.4.0 alpha1

26 Jan 11:02
@hoh hoh
c171880
Compare
Choose a tag to compare
Aleph-vm 0.4.0 alpha1 Pre-release
Pre-release

We are excited to share a first look into the next version of our computing platform !

ℹ️ alpha release: This new release introduces many new features that we would like to share with the community as soon as possible, but may not be rock solid yet. Community feedback on early releases is very important to us, especially with a large and diverse ecosystem of nodes.

Improvements and New Features

  • We've introduced the capability to start VM Instances via QEMU in addition to Firecracker.
  • Users can use Pay-as-you-go instead or in addition to holding token to pay for virtual machines.
  • A revamped diagnostic page shows more information and documentation for troubleshooting.
  • Operators can now configure the sampling rate for Sentry's performance analysis via the settings.

Fixes

  • Instances won't be stopped or restarted when updating the VM orchestrator.
  • Instances are automatically restarted if the node reboots.
  • Holding token or using the pay-as-you-go is now required for all VMs.
  • Better CORS handling and 404 pages on internal paths.
  • And many small bug fixes...

How to upgrade

1. Upgrade the packages

This part did not change, download and install the new package as usual.

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0a1/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0a1/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.4.0a1/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

2. Enable Pay-as-you-go (optional)

In order to enable Pay-as-you-go on our Compute Resource Node, you must:

  1. Have IPv6 Egress configured and working.
  2. Add a STREAM REWARD ADDRESS on both the node account page and the settings file.

2.a. Configure IPv6 Egress

Pay-as-you-go requires virtual machines to have IPv6 connectivity from the host.

According to the IPv6 specifications, a system is expected to receive an IPv6 with a /64 mask and all addresses inside that mask
should simply be routed to the host.

Assuming hosting provider follows the specification, the procedure is the following:

  1. Obtain the IPv6 address of your node.
  2. Remove the trailing number after :: if present, for example 2a01:4f8:171:787::2/64 becomes 2a01:4f8:171:787::/64.
  3. Add the IPv6 range you obtained under the setting ALEPH_VM_IPV6_ADDRESS_POOL in the file /etc/aleph-vm/supervisor.env on the node. Example: ALEPH_VM_IPV6_ADDRESS_POOL="2a01:4f8:171:787::/64".
  4. Restart the node with systemctl restart aleph-vm-supervisor.service
  5. Confirm that everything is OK by opening the path /status/check/ipv6 on the CRN's URL

⚠️ While most hosting providers do exactly this, some tend to not do that. Everything worked fine in our tests on Hetzner, but we had to enable NDP Proxy in order to support OVH and we faced weird setups on some other providers.

2.b. Configure the stream reward address

  1. Create an Avalanche (AVAX) wallet.

  2. Open the information of your CRN on the aleph.im account page and enter the address in the section named STREAM REWARD ADDRESS.

    Add the reward address inside the CRN configuration /etc/aleph-vm/supervisor.env in the form of:

    ALEPH_VM_PAYMENT_RECEIVER_ADDRESS="0x0000000000000000000000000000000000000000"
    

    Where 0x0000000000000000000000000000000000000000 is the address of your wallet.

  3. Restart the node with systemctl restart aleph-vm-supervisor.service

  4. Confirm that the address appears on the path /status/config on the CRN's URL/config

Aleph-vm 0.3.2

11 Dec 15:51
@hoh hoh
Compare
Choose a tag to compare

This is a minor bugfix release.

It includes:

  • Blocks ISP KPN Internet (kpn.com) since they reported IPFS as DDoS to node hosting providers
  • Tune the settings of Kubo IPFS to CRN usecases instead of using the defaults
  • Fixes issues in the metrics graphs

Full Changelog: 0.3.1...0.3.2

How to upgrade

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.3.2/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.3.2/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.3.2/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb

Aleph-vm 0.3.1

05 Dec 16:22
@hoh hoh
Compare
Choose a tag to compare

This new release brings bug fixes, performance improvements and adds APIs that allow the owner of a VM to access the logs of a VM, reboot it, stop it or delete it.

There is no change since the release candidate 0.3.1-rc1.

What's Changed since the last release

  • Fix: Circular imports between controllers and orchestrator by @hoh in #439
  • Fix: Fixed pyproject file to support Python 3.9 by @nesitor in #443
  • Refactor VMPool class by @nesitor in #444
  • Doc fix typo in Readme.md by @olethanh in #446
  • Fix: Dates did not use UTC by @hoh in #449
  • Attach loop singleton to aiohttp app singleton. by @hoh in #448
  • Problem: CACHE_ROOT & EXECUTION_ROOT not respected by @olethanh in #452
  • Fix configuration edge cases by @olethanh in #453
  • Fix: Sentry context did not include version info by @hoh in #451
  • Fix: Index did not show IPv6 available by @hoh in #462
  • Fix: Public configuration fields were not exposed by @hoh in #461
  • Feature: Add a graph for the latest node metrics by @BjrInt in #464
  • Cleanup code for standards by @hoh in #450
  • Fix virtualization message when everything is ok by @BjrInt in #468
  • Update INSTALL-Ubuntu-22.04.md by @MHHukiewitz in #469
  • Improve download integrity by @hoh in #467
  • Fix: Users could fill all RAM using queues by @hoh in #457
  • Problem: print_log tasks keep reading after vm end by @olethanh in #459
  • Fix errors cascade on Websocket.prepare() error by @olethanh in #472
  • PR Difficulty Rating Workflow by @MHHukiewitz in #473
  • Fix: Download progress printed nothing ("") by @hoh in #470
  • Problem: MicroVM had no str which made log ugly by @olethanh in #474
  • Refactor VMType path by @nesitor in #445
  • Remove CDN link from the status page by @BjrInt in #465
  • Feature: Create instance CLI command by @nesitor in #454
  • Fix issue scheduling instance on CI by @nesitor in #477
  • Fixes regarding concurrency by @hoh in #475
  • Update pr-rating.yml by @MHHukiewitz in #483
  • Problem: Crash when not using jailer due to inexisting folder by @olethanh in #476
  • Improve VM control by owner by @hoh in #458
  • Fix minor issues in #458 by @MHHukiewitz in #485
  • Problem: nftables chain initialization failed if no nat table present by @olethanh in #480
  • Problem: Stopped Instance could not be restarted by @olethanh in #486
  • Make JAILER_BASE_DIR dependend on execution root by @olethanh in #481
  • Problem: Exception when stopping multiple VM via allocation endpoint by @olethanh in #488
  • Allow accessing then logs endpoint using the allocation key auth method by @olethanh in #489
  • Fix: Concurrent creation resulted in no execution.vm by @hoh in #491

New Contributors

How to upgrade

On Debian 11 (Bullseye):

rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.3.1/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb

On Debian 12 (Bookworm):

rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.3.1/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb

On Ubuntu 22.04 (Jammy Jellyfish):

rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.3.1/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb