Skip to content

Releases: microsoft/CCF

v0.10

01 May 15:35
Compare
Choose a tag to compare
v0.10 Pre-release
Pre-release

New

  • Brand new versioned documentation: https://microsoft.github.io/CCF.
  • New /tx endpoint to check that a transaction is committed (#1111). See docs.
  • Disaster recovery is now performed with members key shares (#1101). See docs.
  • Open Enclave install is included in CCF install (#1125).
  • New sgxinfo.sh script (#1081).
  • New --transaction-rate flag to performance client (#1071).

Changed

  • CCF now uses Open Enclave 0.9 (#1098).
  • cchost's --enclave-type is release by default (#1083).
  • keygenerator.sh's --gen-key-share option renamed to --gen-enc-key to generate member encryption key (#1101).
  • Enhanced view change support for PBFT (#1085, #1087, #1092).
  • JavaScript demo logging app is now more generic (#1110).
  • Updated method to retrieve time in enclave from host (#1100).
  • Correct use of Everycrypt hashing (#1098).
  • Maximum number of active members is 255 (#1107).
  • Python infra: handle proposals correctly with single member (#1079).
  • Dependencies updates (#1080, #1082).

Removed

  • cchost no longer outputs a sealed secrets file to be used for recovery (#1101).

0.9.3

16 Apr 12:09
7756118
Compare
Choose a tag to compare
0.9.3 Pre-release
Pre-release

Added

  1. Install artifacts include virtual build (#1072)
  2. add_enclave_library_c is exposed in ccp_app.cmake (#1073)

0.9.2

15 Apr 21:16
53e5648
Compare
Choose a tag to compare
0.9.2 Pre-release
Pre-release

Added

  • Handlers can decide if transaction writes are applied independently from error status (#1054)
  • Scenario Perf Client is now part of the CCF install to facilitate performance tests (#1058)

Changed

  • Handle writes when host is reconnecting (#1038)
  • Member tables are no longer whitelisted for raw_puts (#1041)
  • Projects including CCF's CMake files now use the same build type default (#1057)

0.9.1

01 Apr 12:46
dc1ae7f
Compare
Choose a tag to compare
0.9.1 Pre-release
Pre-release

Added

0.9

27 Mar 17:34
b1d3916
Compare
Choose a tag to compare
0.9 Pre-release
Pre-release

This pre-release improves support for handling HTTP requests.

Added

  • Key shares will be accepted after multiple disaster recovery operations (#992).
  • HTTP response headers and status can be set directly from handler (#921, #977).
  • Handlers can be restricted to accept only specific HTTP verbs (#966).
  • Handlers can accept requests without a matching client cert (#962).
  • PBFT messages are authenticated by each receiving node (#947).
  • snmalloc can be used as allocator (#943, #990).
  • Performance optimisations (#946, #971).
  • Install improvements (#983, #986).

Changed

  • HTTP request and responses no longer need to contain JSON-RPC objects (#930, #977).
  • Files and binaries have been renamed to use a consistent lower_snake_case (#989). Most app includes should be unaffected, but users of the luageneric app should now look for lua_generic.
  • Threading support relies on fixes from a recent build of OE (#990). Existing machines should re-run the ansible playbooks to install the current dependencies.
  • Consensus is chosen at run-time, rather than build-time (#922).
  • API for installing handlers has changed (#960). See the logging app or documentation for the current style.
  • Several standard endpoints are now GET-only, and must be passed a URL query (ie GET /users/getCommit?id=42).

0.8.2

13 Mar 17:05
aee15c6
Compare
Choose a tag to compare
0.8.2 Pre-release
Pre-release

Changed

  • CCF install can now be installed anywhere (#950).
  • PBFT messages are now authenticated (#947).
  • Miscellaneous performance improvements (#946).

0.8.1

12 Mar 18:06
49c7800
Compare
Choose a tag to compare
0.8.1 Pre-release
Pre-release

New

  • PBFT timers can be set fromcchost CLI (#929). See docs.
  • Nodes output their PID in a cchost.pid file on start-up (#927).
  • (Experimental) Members can retrieve their decrypted recovery shares via getEncryptedRecoveryShare and submit the decrypted share via submitRecoveryShare (#932).

Changed

  • App handlers should set HTTP response fields instead of custom error codes (#921). See docs.
  • Single build for Raft and PBFT consensuses (#922, #929, #935).
  • Members' proposals are forever rejected if they fail to execute (#930).
  • Original consortium members can ACK (#933).
  • PBFT performance improvements (#940, #942).
  • PBFT ledger private tables are now encrypted (#939).

0.8

04 Mar 14:42
b4d16e1
Compare
Choose a tag to compare
0.8 Pre-release
Pre-release

This pre-release enables experimental support for running CCF with the PBFT consensus protocol. In providing an experimental release of CCF with PBFT we hope to get feedback from early adopters.

Added

  • Experimental PBFT support docs
  • Increased threading support docs (#831, #838)
  • Governance proposals can now be rejected, which allows consitutions to implement veto power (#854)
  • Support for non JSON-RPC payloads (#852)
  • RPC to get the OE report (containing the SGX quote) of a specific node (#907)

Changed

  • Compatibility with msgpack 1.0.0
  • Members now need to provide two public keys, an identity to sign their proposals and votes as before, and public key with which their recovery key share will be encrypted. --member_cert cli argument replaced with --member-info when starting up a network to allow this docs
  • Member status is now a string, eg. "ACTIVE" rather than an integer (#827)
  • User apps have access to standard user-cert lookup (#906)
  • get_rpc_handler() now returns UserRpcFrontend instead of RpcHandler docs (#908)
  • All governance RPC's must now be signed (#911)
  • Test infra stores keys and certificates (e.g. networkcert.pem, user0_privk.pem) in new workspace/<test_label>_common/ folder (#892)

Removed

  • FramedTCP support

0.7.1

12 Feb 12:12
80476b2
Compare
Choose a tag to compare
0.7.1 Pre-release
Pre-release

This release contains some minor additions to 0.7:

  • Installed Python infrastructure can now be used to launch test networks of external builds (#809)
  • Initial threading support, Raft nodes now execute transactions on multiple worker threads (#773, #822)

0.7

30 Jan 18:35
2ad1536
Compare
Choose a tag to compare
0.7 Pre-release
Pre-release

This pre-release enables experimental support for Javascript as a CCF runtime, and switches the default transport to HTTP. FramedTCP is still supported in this release (-DFTCP=ON) but is deprecated and will be dropped in the next release.

Changed

  • Fixed node deadlock that could occur under heavy load (#628)
  • Fixed vulnerability to possible replay attack (#419)
  • CCF has an installable bundle (#742)
  • HTTP is the default frame format (#744)

Added

  • Added support for re-keying the ledger (#50)
  • Added QuickJS runtime and sample Javascript app (#668)

Deprecated

  • FramedTCP support. Please use the ccf_FTCP.tar.gz release bundle or build CCF with -DFTCP=ON if you require FTCP support.