Skip to content

0.8.2

Choose a tag to compare

@nesitor nesitor released this 23 Sep 14:46
· 25 commits to main since this release

This new release of the aleph.im Core Channel Node application focuses primarily on bug fixes and performance improvements, ensuring more reliable connections, correct data handling, and faster database operations.

New Features & Improvements

  • Database Performance: Added an index to the time field in the pending_messages table to improve database query performance. (PR #850)

Bug Fixes

  • Balance Pre-check: Solved a formatting issue that was affecting the balance pre-check functionality. (PR #855)
  • RabbitMQ Connection: Fixed connection timeouts that occurred during long operations with RabbitMQ. (PR #856)
  • IPFS Configuration: Corrected the method used to update the IPFS configuration, ensuring it follows the recommended practices. (PR #846)
  • IPFS Size Handling: Resolved an issue related to how IPFS size was being handled. (PR #857)

What's Changed

  • Add an index to the pending_messages table on the time field by @aliel in #850
  • Solve format issue on balance pre-check by @nesitor in #855
  • Fix RabbitMQ connection timeouts during long operations. by @aliel in #856
  • Fix IPFS conf: use the recommended method to update IPFS configuration by @aliel in #846
  • Solve IPFS size handling by @nesitor in #857

Full Changelog: 0.8.1...0.8.2

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.8.2.
  • 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.8.2/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.