+
Skip to content

0.9.0

Latest

Choose a tag to compare

@nesitor nesitor released this 13 Oct 13:21
· 2 commits to main since this release
c63d6b3

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 the add_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 the pyaleph and pyaleph-api services must use alephim/pyaleph-node:0.9.0.
  • On the docker-compose.yml file, in the p2p-service service must use alephim/p2p-service:0.1.4.
  • On the same folder than docker-compose.yml file, should be a proper 001-update-ipfs-config.sh configuration file, can be downloaded with wget https://raw.githubusercontent.com/aleph-im/pyaleph/0.9.0/deployment/scripts/001-update-ipfs-config.sh.
  • On the docker-compose.yml file, in the ipfs service must use the ipfs/kubo:v0.37.0 and the command section should be ["daemon", "--enable-pubsub-experiment", "--migrate", "--enable-gc"].
  • On the docker-compose.yml file, in the ipfs service must include a volume pointing to local 001-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 the ipfs service the volume and the file kubo.json are not necessary anymore, so it can be removed.
  • On the docker-compose.yml file, in the ipfs service must have a new environment variable called IPFS_TELEMETRY set to off value, disabling the IPFS telemetry signals, like - IPFS_TELEMETRY=off.
  • On the docker-compose.yml file, ONLY FOR CCNs WITH HIGH CPU LOADS, in the ipfs 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 script 001-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 script 001-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.

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载