Releases: microsoft/CCF
Releases · microsoft/CCF
v0.10
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
isrelease
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
0.9.2
0.9.1
0.9
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 theluageneric
app should now look forlua_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
0.8.1
New
- PBFT timers can be set from
cchost
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 viasubmitRecoveryShare
(#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
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 returnsUserRpcFrontend
instead ofRpcHandler
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 newworkspace/<test_label>_common/
folder (#892)
Removed
- FramedTCP support
0.7.1
0.7
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
Deprecated
- FramedTCP support. Please use the ccf_FTCP.tar.gz release bundle or build CCF with
-DFTCP=ON
if you require FTCP support.