Releases: aleph-im/aleph-vm
Aleph-vm 1.3.0
We are excited to announce our release for aleph-vm in version 1.3.0 !
The team has been working hard to ship this major new release.
New Features and Improvements
- Improved: The logic for assigning unique identifiers (
vm_id
) to virtual machines for better reliability (by @olethanh). - New Feature: Added support for new Ethereum Virtual Machine (EVM) chains (by @nesitor).
Bug fixes
- Fixed: An issue where FirecrackerVM wouldn't work if
/var/lib
and/var/cache
directories were located on separate partitions (by @olethanh). - Fixed: A problem where Sentry error reporting wasn't including release information (by @olethanh).
- Fixed: An issue preventing
sevctl
installation on Ubuntu systems (by @olethanh).
What's Changed
- FirecrackerVM drive not working if /var/lib and /var/cache on two sep… by @olethanh in #711
- Problem: Sentry reporting didn't have release information by @olethanh in #712
- Problem: sevctl installation broken on Ubuntu by @olethanh in #715
- Make vm_id assignment more robust by @olethanh in #714
- Implement new EVM chains by @nesitor in #717
Full Changelog: 1.2.0...1.3.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.3.0/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.deb
On Ubuntu 22.04 (Jammy Jellyfish):
sudo rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.3.0/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb
On Ubuntu 24.04 (Noble Numbat):
sudo rm -f /opt/aleph-vm.ubuntu-24.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/1.3.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:
- Use an AMD CPU from the 8004 or 9004 families.
- Ensure that your system supports confidential computing. We have only tested Ubuntu 24.04 so far.
- Enable SEV and SEV-SNP in the BIOS.
- 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.2.0
We are excited to announce our release for aleph-vm in version 1.2.0 !
The team has been working hard to ship this major new release.
Bug Fixes
- Removed support for the deprecated Debian 11 Bullseye operating system. (PR #693)
- Fixed various issues identified in tests (PR #689, #692, #696, #697, #699, #700, #710). This includes:
- Non-deterministic teardown during testing.
- Test failures not being clearly indicated.
- QEMU VM being killed prematurely before shutdown.
- Dictionary size modification during iteration.
- Solana wallet not being usable for VM control.
- Errors related to confidential initialization and message fetching.
- Ensured clearer error messages for failing test cases. (PR #697)
New Features and Improvements
- Added a return type to the
aleph.vm.utils.to_json
function for better type safety. (PR #704) - Integrated tools for code formatting and linting:
- Renamed the Hatch linting environment for clarity. (PR #706)
- Improved user experience by displaying a message when CoCo disk creation is aborted. (PR #709)
- Enhanced API response format for the
/confidential/initialize
endpoint. (PR #708)
What's Changed
- Fix: Debian 11 Bullseye is deprecated, remove it by @hoh in #693
- Fix 199 ruff errors by @hoh in #689
- Problem: Non deterministic teardown by @olethanh in #696
- Problem: Test failing not clearly by @olethanh in #697
- Problem: QEMUVM killed before shutdown command by @olethanh in #698
- Fix: dictionary changed size during iteration by @hoh in #699
- Problem: Test test_websocket_logs_invalid_auth fail on Python 3.12.3 by @olethanh in #692
- Debug Error Unknown exception while deleting address by @olethanh in #703
- Problem: error org.freedesktop.systemd1.NoSuchUnit: Unit aleph-vm-con… by @olethanh in #702
- feat: add return type to aleph.vm.utils.to_json by @Psycojoker in #704
- add pyproject-fmt by @Psycojoker in #707
- feat: add yamlfix by @Psycojoker in #705
- chore: rename hatch lint env to linting by @Psycojoker in #706
- Problem: Solana wallet couln't be used to control the VM by @olethanh in #700
- Endpoint /confidential/initialize return json error now and proper https status by @olethanh in #708
- Display message when CoCo disk creation abort by @olethanh in #709
- Fix: Error fetching message from vm-connector for start_watch_for_messages_task by @olethanh in #710
Full Changelog: 1.1.0...1.2.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.2.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.2.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.2.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:
- Use an AMD CPU from the 8004 or 9004 families.
- Ensure that your system supports confidential computing. We have only tested Ubuntu 24.04 so far.
- Enable SEV and SEV-SNP in the BIOS.
- 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.1.0
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
- @Psycojoker made their first contribution in #690
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:
- Use an AMD CPU from the 8004 or 9004 families.
- Ensure that your system supports confidential computing. We have only tested Ubuntu 24.05 so far.
- Enable SEV and SEV-SNP in the BIOS.
- 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
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
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:
- Use an AMD CPU from the 8004 or 9004 families.
- Ensure that your system supports confidential computing. We have only tested Ubuntu 24.05 so far.
- Enable SEV and SEV-SNP in the BIOS.
- 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
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
- @philogicae made their first contribution in #666
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:
- Use an AMD CPU from the 8004 or 9004 families.
- Ensure that your system supports confidential computing. We have only tested Ubuntu 24.05 so far.
- Enable SEV and SEV-SNP in the BIOS.
- 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
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
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
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
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.
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
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:
- Have IPv6 Egress configured and working.
- 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:
- Obtain the IPv6 address of your node.
- Remove the trailing number after
::
if present, for example2a01:4f8:171:787::2/64
becomes2a01:4f8:171:787::/64
. - 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"
. - Restart the node with
systemctl restart aleph-vm-supervisor.service
- 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
-
Create an Avalanche (AVAX) wallet.
-
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. -
Restart the node with
systemctl restart aleph-vm-supervisor.service
-
Confirm that the address appears on the path
/status/config
on the CRN's URL/config