Skip to content

ccf-0.99.0

Choose a tag to compare

released this 06 Apr 13:31
c6bf9e3

This is a bridging release to simplify the upgrade to 1.0. It includes the new JS constitution, but also supports the existing Lua governance so that users can upgrade in 2 steps - first implementing all of the changes below with their existing Lua governance, then upgrading to the JS governance. Lua governance will be removed in CCF 1.0. See temporary docs for help with transitioning from Lua to JS.

The 1.0 release will require minimal changes from this release.

Added

  • A new read_ledger.py Python command line utility was added to parse and display the content of a ledger directory.
  • ccf-app npm package to help with developing JavaScript and TypeScript CCF apps. See docs for further details (#2331).

Changed

  • Retired members are now deleted from the store, instead of being marked as Retired (#1401).
  • retire_member proposal has been renamed to remove_member and is now idempotent (i.e. succeeds even if the member was already removed) (#1401).
  • accept_recovery and open_network proposals have been merged into a single idempotent transition_service_to_open proposal (#1791).
  • The /tx endpoint now takes a single transaction_id query parameter. For example, rather than calling /node/tx?view=2&seqno=42, call /node/tx?transaction_id=2.42.
  • The /commit endpoint now returns a response with a single transaction_id rather than separate view and seqno fields.
  • UserRpcFrontend has been removed, and the return value of get_rpc_handler which apps should construct is now simply a ccf::RpcFrontend.
  • There is now a distinction between public and private headers. The public headers under include/ccf are those we expect apps to use, and others are implementation details which may change/be deprecated/be hidden in future. Most apps should now be including "ccf/app_interface.h" and "ccf/common_endpoint_registry.h".
  • Various endpoint-related types have moved under the ccf::endpoints namespace. Apps will need to rename these types where they are not using auto, for instance to ccf::endpoints::EndpointContext and ccf::endpoints::ForwardingRequired.
  • Ledger entry frames are no longer serialised with msgpack (#2343).
  • In JavaScript apps, the field caller.jwt.key_issuer in the Request object has been renamed caller.jwt.keyIssuer (#2362).
  • The proposals set_module, remove_module and set_js_app have been removed and deploy_js_app renamed to set_js_app (#2391).