Announcing Openchain 0.5

Cubit-Modular-Shelving-System-Rainbow-ConfigurationWe are announcing today the release of Openchain 0.5. Openchain 0.5 has a large number of improvements compared to the 0.4 version.

New features

  • New componentized architecture: Openchain has undergone a large refactoring work for the 0.5 version. Components such as storage engines are now isolated in their own modules. The core server (Openchain.Server) does not have any dependency on any external module anymore. Dependencies are added at deployment time, in function of what is needed, and pulled through NuGet.
    This allows anyone to extend Openchain by building third-party modules.
    Modules include: storage engines (such as SQLite), anchoring media (such as Blockchain anchoring) and validation modules (such as permission-based).
  • New SQL Server storage engine: Until today, the only available storage engine was based on SQLite. Since SQLite is a local database, it does not offer high availability. In this release, we are shipping a storage engine based on SQL Server. SQL Server offer high availability through mirroring, and can be hosted on Microsoft Azure. This also allows you to have several Openchain servers running on separate servers all connecting to the same database to achieve horizontal scalability.
  • New “account_create” permission: The new permission “account_create” works much like “account_modify”. “account_modify” is required for any transaction affecting an account, either positively or negatively. It is now being split in two: “account_create” is required if the record has never been touched before (version is an empty string). “account_modify” is required if the record has been touched before.
  • Namespace discovery: Previously, the namespace was based on the root URL of the Openchain endpoint. We are changing this so that the namespace is exposed directly by the Openchain server through a new “/info” endpoint. This will get rid of the infamous error “The namespace used in the transaction is invalid” that many people were experiencing.
  • Direct deployment: We now offer an easy way to deploy Openchain directly without using Docker. The only prerequisite is for you to have installed .NET Core.
  • Bug fixes: We have done a number of bug fixes, such as improvements in error handling.

Breaking changes

A number of breaking changes have been introduced in this release.

Configuration file

The schema of the configuration file has changed slightly. The highlighted lines are the ones that must be changed:

  1. “type” has been changed to “provider” in 3 places (the values can remain the same).
  2. Change the “root_url” property to “instance_seed” (the value can remain the same).
  3. A new section under “anchoring” must be added.

Deployment

The deployment now builds an image locally and pulls the dependencies from NuGet.

Permissions

Because we split “account_modify” in “account_modify” plus “account_create”, you need to update your ACL records so that “account_create” should appear anywhere “account_modify” appears (you can use the same value).

For example, this:

Will change into:

Namespace

If you are constructing transactions manually, instead of using the root URL for the namespace field of the mutation, you should call the “/info” endpoint which will return the value you must use.

Get started

Learn more about Openchain on openchain.org. Have a look at this article to get started with Openchain, and check the forum if you have any questions.

You may also like...

  • KendallArneaud

    What is the longevity of Openchain look like?