Skip to content

Latest commit

 

History

History
136 lines (102 loc) · 7.92 KB

RELEASE-NOTES-4.0.0.md

File metadata and controls

136 lines (102 loc) · 7.92 KB

About this release

This is a major Fortuna release, mainly aimed at easing development of applications using state channels in the presence of generic accounts. It:

  • Introduces State Channel FSM Generalized Accounts awareness. It now fully supports creation of meta transactions and verifies them.
  • Changes WebSocket API regarding signing transactions: now sign requests provide a signed transaction to be signed. Old approach was sending unsigned transactions.
  • Changes channel reestablish checks: for on-chain transactions authentication can not always be checked at current chain top. Check is done, if the last transaction is an on-chain one, it must be present in on-chain.
  • Changes the off-chain protocol to accommodate Generalized Account authentication methods. This is off-chain noise protocol breaking change.
  • Enhances the state Channels WebSocket API, that now supports starting a responder with "initiator_id": "any". The responder instance will get the proper initiator Id from the channel_open message once a connection is established.
  • Enables multiple different State Channel responder pubkeys to share the same listen port.
  • Changes the channel_open and channel_accept messages to contain both the initiator and responder public keys. This is not backwards compatible for the noise protocol.
  • Enhances State Channel's WebSocket API with providing more meaningful messages when failing to open a channel because of invalid opening arguments.
  • Makes State Channel WebSocket API more consistent regarding the usage of caller and contract vs caller_id and contract_id. This is an API breaking change.
  • Allows sending and receiving generic messages in State Channels in any FSM state. Until this - generic messages were allowed only in open state. channel_id is part of the message body and if it is unknown - the temporary one is used instead. This is not backwards compatible for the noise protocol. This enhances the WebSocket API accordingly.
  • Fixes the value of the discriminator field (type) for the oracle response transaction in the user API paths returning transactions (e.g. path /transactions/{hash}).
  • Enhances the response of the dry-run API (path /debug/transactions/dry-run) for contract create transaction by adding the information for the call of the initialization function e.g. the gas used. This makes the response of the dry-run for the contract create transaction analogous to the one for the contract call transaction.

This release introduces backward incompatibilities in the channels user WebSocket API and in the channels external Noise endpoint protocol. For the rest, this release is backward compatible with previous v3.* releases.

Please join the mainnet by following the instructions below, and let us know if you have any problems by opening a ticket. Troubleshooting of common issues is documented in the wiki.

The instructions below describe:

Retrieve the software for running a node

You can run a node by either:

The instructions for configuring the node using the Docker image are in the dedicated separate document.

The node user API is documented:

  • HTTP API endpoints are specified online in swagger.yaml;
    • A JSON version of the same specification is located in the node at path lib/aehttp-*/priv/swagger.json (you will need to amend the wildcard * placeholder in the path with the version).
    • The JSON version can be obtained from a running node using the endpoint /api.
    • An interactive visualization of the same specification is available online.
  • WebSocket API endpoints are specified online;
  • The intended usage of the user API (HTTP and WebSocket) is documented online.

Install node

The instructions for installing a node using a release binary are in the dedicated separate document.

For installation of a node using the Docker image, please refer to the documentation online.

Join the mainnet

In order to join the mainnet follow the operation instructions to run the node with default configuration as mainnet is the default network.

To join the mainnet by using the Docker image, please refer to docker documentation.

Mainnet seed nodes

The release package comes preconfigured with seed nodes. Here is example subset of the seed nodes:

  • aenode://pp_2L8A5vSjnkLtfFNpJNgP9HbmGLD7ZAGFxoof47N8L4yyLAyyMi@18.136.37.63:3015
  • aenode://pp_2gPZjuPnJnTVEbrB9Qgv7f4MdhM4Jh6PD22mB2iBA1g7FRvHTk@52.220.198.72:3015
  • aenode://[email protected]:3015
  • aenode://pp_2mwr9ikcyUDUWTeTQqdu8WJeQs845nYPPqjafjcGcRWUx4p85P@3.17.30.101:3015
  • aenode://pp_2CAJwwmM2ZVBHYFB6na1M17roQNuRi98k6WPFcoBMfUXvsezVU@13.58.177.66:3015
  • aenode://pp_7N7dkCbg39MYzQv3vCrmjVNfy6QkoVmJe3VtiZ3HRncvTWAAX@13.53.114.199:3015
  • aenode://pp_22FndjTkMMXZ5gunCTUyeMPbgoL53smqpM4m1Jz5fVuJmPXm24@13.53.149.181:3015
  • aenode://pp_Xgsqi4hYAjXn9BmrU4DXWT7jURy2GoBPmrHfiCoDVd3UPQYcU@13.53.164.121:3015
  • aenode://[email protected]:3015

Inspect the mainnet

Here are example nodes that can be used to inspect current top block and see information about e.g. height or target:

Join the testnet

In order to join the testnet change the Network ID in node configuration file to ae_uat.

To join the testnet by using the Docker image, please refer to the docker documentation.

Testnet seed nodes

The release package comes preconfigured with testnet seed nodes, this is the list:

  • aenode://pp_QU9CvhAQH56a2kA15tCnWPRJ2srMJW8ZmfbbFTAy7eG4o16Bf@52.10.46.160:3015
  • aenode://pp_2vhFb3HtHd1S7ynbpbFnEdph1tnDXFSfu4NGtq46S2eM5HCdbC@18.195.109.60:3015
  • aenode://pp_27xmgQ4N1E3QwHyoutLtZsHW5DSW4zneQJ3CxT5JbUejxtFuAu@13.250.162.250:3015
  • aenode://pp_DMLqy7Zuhoxe2FzpydyQTgwCJ52wouzxtHWsPGo51XDcxc5c8@13.53.161.215:3015

Inspect the testnet

The core nodes of the public test network are accessible from the Internet.

Information, e.g. height, of the top block of the longest chain as seen by these core nodes of the testnet can be obtained by opening in the browser any of the following URLs:

Setup your node

Setting up your node consists of: