Release Notes of Engine v0.13, v0.14 & v0.15 + CLI v1.3, v1.4

We’ve been very busy for the past two months working on two new major features of the Engine: Orchestrator and Network. That’s why these release notes group together MESG Engine v0.13 to v0.15!

Release of MESG Orchestrator to build apps using processes

We officially released the first public version of Orchestrator :confetti_ball: :champagne:

MESG Orchestrator is an event-driven task-orchestration system that manages the connections between the events and tasks of services by following the steps described by processes.

It lets you build and run complex applications by describing their business logic, then the Engine executes them for you.

Processes are an evolution of Applications, as they are managed by the Engine, and will be distributed on the upcoming decentralized network.

You can read more about Orchestrator and Processes in the documentation.

Process super quick start

Create a new file process.yml on your computer and copy the following content:

key: erc20-notification
steps:
  - type: trigger
    instance:
      src: https://github.com/mesg-foundation/service-ethereum-erc20
      env:
        - PROVIDER_ENDPOINT=$(env:PROVIDER_ENDPOINT)
    eventKey: transfer
  - type: task
    instance:
      src: ./convert
    taskKey: address
  - type: filter
    conditions:
      contractAddress: "0x420167d87d35c3a249b32ef6225872fbd9ab85d2"
  - type: task
    instance: 
      src: ./convert
    taskKey: email
  - type: task
    instance:
      src: https://github.com/mesg-foundation/service-email-sendgrid
      env:
        - SENDGRID_API_KEY=$(env:SENDGRID_API_KEY)
    taskKey: send

Then, execute the following command to compile, start and log the activity of the process:

mesg-cli process:dev PATH_TO_THE_PROCESS_FILE --env PROVIDER_ENDPOINT=YOUR_INFURA_URL --env SENDGRID_API_KEY=YOUR_SENDGRID_API_KEY

:confetti_ball: Congrats! You created your first MESG Process! :confetti_ball:

Beta version of the decentralized network

We are working hard on the decentralized network and are making good progress! The services are now decentralized by running on Tendermint with ownership management features!

In the next version of the Engine, we plan to release our first public testnet!

To test it before the public release, clone the engine repo and run the dev script with the flag --validator and --genesis-account:

git clone https://github.com/mesg-foundation/engine
cd engine
./dev --validator --genesis_validator

After the Engine is started, you should see a new block every 10 seconds!

Switch to gogo protobuf

The gRPC API is now using gogo protobuf to compile the proto file to Go. The main reason is the customization of the proto that gogo proto offers over the official Google version.
This has the side effect of breaking the reflection of the gRPC API. You now need to explicitly pass the proto files when using a gRPC client.
You may also need to download gogo.proto and save it locally in ./gogo/protobuf/gogoproto to allow your gRPC client to access the new features that gogo offers.

Minor versioning

The CLI is now checking for the latest matching minor version of the Engine when running:

mesg-cli daemon:start

Of course you can disable this system by using the --no-pull flag:

mesg-cli daemon:start --no-pull

Changelogs

Follow the links below to see the complete changelogs:

To update the Engine and the CLI, follow the installation process on the documentation.

2 Likes