This new release of the aleph.im Core Channel Node application introduces significant new functionality for credit-based cost and lifecycle management and enhances IPFS configuration flexibility. It also includes fixes for data type handling and migration stability.
New Features:
- Comprehensive Credit-Based Cost Calculation and Lifecycle Management: Implemented a major feature for comprehensive credit-based cost calculation and full lifecycle management of messages. (PR #836)
- Separate IPFS Pinning Service Configuration: Added an
ipfs.pinning
configuration section to allow for a separate pinning service, while maintaining backward compatibility. (PR #859) - Python 3.13 Support: Added support for Python 3.13. (PR #864)
Bug Fixes:
- Migration File Number: Fixed an issue with the migration file numbering. (PR #860)
- IPFS Byte Size Casting: Corrected the method for casting IPFS byte size. (PR #858)
add_file
Regression: Fixed a regression bug related to theadd_file
functionality. (PR #862)
Internal/Maintenance:
- Local Testing Fix: Fixed an issue related to local testing. (PR #863)
What's Changed
- Fix migration file number by @aliel in #860
- Cast IPFS byte size method by @nesitor in #858
- Add ipfs.pinning configuration section for separate pinning service with backward compatibility by @aliel in #859
- feat: Implement comprehensive credit-based cost calculation and lifecycle management by @amalcaraz in #836
- Fix add_file regression by @aliel in #862
- chore: support Python 3.13 by @odesenfans in #864
- internal: fix local testing by @odesenfans in #863
- feat: Add node_id execution_id and price in the historical credit exp… by @amalcaraz in #867
Full Changelog: 0.8.2...0.9.0
Upgrade guide
Make sure that your node is running v0.5.1 or later. If that is not the case already, follow the upgrade guide here.
From v0.5.1, simply bump the version of these services:
- On the
docker-compose.yml
file, in thepyaleph
andpyaleph-api
services must usealephim/pyaleph-node:0.9.0
. - On the
docker-compose.yml
file, in thep2p-service
service must usealephim/p2p-service:0.1.4
. - On the same folder than
docker-compose.yml
file, should be a proper001-update-ipfs-config.sh
configuration file, can be downloaded withwget https://raw.githubusercontent.com/aleph-im/pyaleph/0.9.0/deployment/scripts/001-update-ipfs-config.sh
. - On the
docker-compose.yml
file, in theipfs
service must use theipfs/kubo:v0.37.0
and the command section should be["daemon", "--enable-pubsub-experiment", "--migrate", "--enable-gc"]
. - On the
docker-compose.yml
file, in theipfs
service must include a volume pointing to local001-update-ipfs-config.sh
configuration file, like- "./001-update-ipfs-config.sh:/container-init.d/001-update-ipfs-config.sh:ro"
. - On the
docker-compose.yml
file, in theipfs
service the volume and the filekubo.json
are not necessary anymore, so it can be removed. - On the
docker-compose.yml
file, in theipfs
service must have a new environment variable calledIPFS_TELEMETRY
set tooff
value, disabling the IPFS telemetry signals, like- IPFS_TELEMETRY=off
. - On the
docker-compose.yml
file, ONLY FOR CCNs WITH HIGH CPU LOADS, in theipfs
service, must have some CPU and memory limitations. On CPU side should be the half of total CPU cores, and on memory side around 20% of the total memory. To configure it, the service should look like (new lines added with comments):
ipfs:
restart: always
image: ipfs/kubo:v0.37.0
ports:
- "4001:4001"
- "4001:4001/udp"
- "127.0.0.1:5001:5001"
volumes:
- "pyaleph-ipfs:/data/ipfs"
- "./001-update-ipfs-config.sh:/container-init.d/001-update-ipfs-config.sh:ro"
environment:
- IPFS_PROFILE=server
- IPFS_TELEMETRY=off
- GOMAXPROCS=4 # 50% of total CPU cores amount
- GOMEMLIMIT=23500MiB # 25% of total RAM memory minus 500MB
networks:
- pyaleph
command: ["daemon", "--enable-pubsub-experiment", "--migrate", "--enable-gc"]
cpus: 4.0 # 50% of total CPU cores amount
mem_limit: 24g # 25% of total RAM memory
memswap_limit: 24g # Same amount than up
Upgrade troubleshooting
Occasionally, when migrating IPFS to a newer version, you may encounter the log error: "Error: ipfs repo needs migration, please run migration tool." If this occurs, the following steps should be taken to resolve the issue.
Troubleshooting IPFS Repository Migration
- Halt all containers using the command
docker-compose down
. - Edit the
docker-compose.yml file
and comment out the line that mounts the configuration script001-update-ipfs-config.sh
within the IPFS service putting a#
at the initial of the line. - Start only the IPFS container with the command
docker-compose up ipfs
. Monitor the container logs until you see the message: "Success: fs-repo migrated to version XX using embedded migrations.", where XX corresponds to the IPFS repository version. - Wait for the "Daemon is ready" message to appear in the container logs. After just press
Control + C
to exit the container. - Stop the IPFS container again with
docker-compose down
. Uncomment the line for the configuration script001-update-ipfs-config.sh
that you previously commented out. - Restart all containers normally using the command
docker-compose up -d
.
⚠️ Warning: After updating pyaleph, the service may take up to 10 minutes to start due to a one-time migration. Do not restart the VM; the service will start automatically once the migration completes.
Then, restart your node: docker-compose pull && docker-compose down && docker-compose up -d
.