Skip to content

Releases: aleph-im/pyaleph

v0.3.1

06 Jun 14:34
2bdf719
Compare
Choose a tag to compare

This release fixes a synchronisation issue introduced in 0.3.0. Messages where the "item_type"
field was not specified could not be processed in real-time and had to wait for the on-chain
confirmation to be processed.

How to upgrade: https://pyaleph.readthedocs.io/en/latest/guides/upgrade.html

v0.3.0 - Harder, Better, Faster, Stronger

01 Jun 21:41
67d7999
Compare
Choose a tag to compare

This release focuses on improvements related to performance, stability and code quality. We also introduce new features related to FORGET and PROGRAM messages.

How to upgrade: https://pyaleph.readthedocs.io/en/latest/guides/upgrade.html

New features

Improvements

Other

Full Changelog: v0.2.1...v0.3.0

v0.2.1

28 Mar 11:21
1e55437
Compare
Choose a tag to compare

TLDR;

This minor release focuses on code improvements, improved test coverage and bug fixes.

Breaking changes

  • CCNs now required Python 3.8+ instead of Python 3.6.

Changelog

  • Improved the code for the storage module and improved test coverage.
  • Fixed a major synchronisation issue between CCNs. A shared variable was not updated correctly, making it impossible
    for CCNs to fetch the content linked to random messages.
  • Fixed an issue where IPFS/P2P jobs in charge of listening to the "alive" topics would not restart
    once an error occurred.
  • Fixed an issue resulting in a KeyError if an IPFS pin timed out.

v0.2.0 Codename "Asimov, a new foundation."

22 Feb 13:35
11167b1
Compare
Choose a tag to compare

TLDR;

  • Support for FORGET messages
  • A new dedicated service handles P2P connections
  • Node private keys need to be migrated for the new service to work
  • Many API improvements and fixes

Breaking changes

  • This release requires a new way to manage private keys. The private key must now be provided in a new serialized format. Use the configuration updater to migrate to the new format.
  • The "protocol" P2P config is disabled until further notice as it was not working properly.
  • MongoDB becomes the only supported internal storage engine. RocksDB is not supported anymore.

Main features

FORGET message

This is a new type of message. It is designed to order the explicit deletion of a message by a user.

When a FORGET message is received by a node, it will immediately:

  • remove the ‘content’ and ‘item_content’ sections of the targeted messages
  • add a field ‘forgotten_by’ that references to the processed FORGET message

The FORGET message will only be accepted if either:

  • the sender of the FORGET matches the ‘sender’ field of the message
  • the targeted message was created by a VM and the sender of the FORGET matches the ‘sender’ of the VM

If the forgotten message is of type STORE, the number of references to the data will be counted.
If the new count amounts to zero, the file will be deleted from the database or unpinned and cleared from IPFS.

P2P daemon

P2P communication is now managed with the official libp2p daemon.
This allows us to get rid of a dependency to the unmaintained py-libp2p library.
This in turn enables many improvements. We:

  • Moved to newer versions of many dependencies
  • Resolved many bugs related to P2P communication
  • Simplified the overall architecture of PyAleph.

API improvements

  • Calling /api/v0/messages.json with unsupported fields returns a proper error message instead of the obscure 500 Internal Server Error
  • Improved reliability of the Websocket API
  • New parameters to /api/v0/messages.json: contentKeys, startDate, endDate.

Other changes

  • The --gen-key option is renamed to --gen-keys. It now stores the public key along with the private key, and a serialized version of the private key for use by the P2P daemon.
  • The private key for the P2P host can no longer be provided through the config.yml file using the p2p.key field. The key must be provided as a serialized file in the keys directory.
  • Decommissioned the dockerized VMs as they were replaced by the micro-VMs.
  • Introduced a new tool called the configuration updater to manage changes in the configuration
    files and key files between versions.
  • Fixed minor issues in the index page of the web service.
  • Optimized the processing of messages by prioritizing new messages over messages that are waiting for a retry.
  • Add support for a IPFS content identifier (CID) format version 1.
  • Improve the reliability of the Websocket API
  • A new API /api/v0/storage/count/<storage-hash> exposes the number of times a IPFS/storage hash is pinned
  • A new metric exposes the number of files pinned that belong to a chain and cannot be unpinned
  • Operators can now distinguish the different processes of the node
  • Fixed issues where errors could not be reported on Sentry
  • Fixed an issue where the logging level was different in subprocesses

v0.2.0-rc1

18 Feb 17:58
Compare
Choose a tag to compare
v0.2.0-rc1 Pre-release
Pre-release
[DB] Create indexes in debug mode

Indexes should be created in all execution modes.

v0.2.0-rc0

18 Feb 17:47
6e19f13
Compare
Choose a tag to compare
v0.2.0-rc0 Pre-release
Pre-release
[Doc] Simplify install guide (#178)

[Doc] Simplify install guide

Removed the native install guide from the docs as it is
unused. Simplified the docs by merging the main install
guide with the Docker Compose section.

Split the upgrade part into a dedicated guide and added
more information on how to mount key files.

v0.1.11

02 Jun 10:17
@hoh hoh
Compare
Choose a tag to compare

This minor release fixes an inconsistency in the confirmed value of some messages.

Useful small fixes and improvements are also included.

v0.1.10

11 Mar 09:34
@hoh hoh
Compare
Choose a tag to compare

Changes:

  • Various small bugfixes
  • Removal of Neo (deprecated) and BinanceChain legacy (BC message are handled by CSDK now and BSC by ETH)
  • No more hard errors on bad data received or timeout in p2p
  • Less retries on ethereum api from metrics