ccf-0.99.0
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.pyPython command line utility was added to parse and display the content of a ledger directory. ccf-appnpm 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_memberproposal has been renamed toremove_memberand is now idempotent (i.e. succeeds even if the member was already removed) (#1401).accept_recoveryandopen_networkproposals have been merged into a single idempotenttransition_service_to_openproposal (#1791).- The
/txendpoint now takes a singletransaction_idquery parameter. For example, rather than calling/node/tx?view=2&seqno=42, call/node/tx?transaction_id=2.42. - The
/commitendpoint now returns a response with a singletransaction_idrather than separateviewandseqnofields. UserRpcFrontendhas been removed, and the return value ofget_rpc_handlerwhich apps should construct is now simply accf::RpcFrontend.- There is now a distinction between public and private headers. The public headers under
include/ccfare 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::endpointsnamespace. Apps will need to rename these types where they are not usingauto, for instance toccf::endpoints::EndpointContextandccf::endpoints::ForwardingRequired. - Ledger entry frames are no longer serialised with
msgpack(#2343). - In JavaScript apps, the field
caller.jwt.key_issuerin theRequestobject has been renamedcaller.jwt.keyIssuer(#2362). - The proposals
set_module,remove_moduleandset_js_apphave been removed anddeploy_js_apprenamed toset_js_app(#2391).