Releases: microsoft/CCF
Releases · microsoft/CCF
5.0.0-dev13
Fixed
- Improvements to the Raft implementation, to retain commit safety and liveness despite message loss (#6016).
Added
- Added 2 new log lines which may be helpful diagnostics in production deployments, both including a new
[rollback]
tag. [rollback] ... Dropping conflicting branch
may be emitted after network partitions, and indicates that somePending
(non-committed) transactions have been lost. This is expected, but worth investigating if it occurs regularly - it is a sign of elections impacting service availability.[rollback] ... Ignoring conflicting AppendEntries
could also be emitted after a network partition, but should be reported to the CCF development team. It is a sign of an unexpected execution path, which could lead to loss of liveness (inability to advance commit).
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev12
Added
- There is now a
contains_globally_committed(k)
method onkv::Set<K>
, with the same semantics asget_globally_committed(k)
onkv::Map<K, V>
(#5928).
Changed
- JS endpoints marked as
"mode": "readonly"
are prevented from writing to the KV. Attempting to callmap.set(k, v)
,map.delete(k)
, ormap.clear()
on any KV table in such an endpoint will now result in an error being thrown (#5921).
Fixed
- Nodes are now more robust to unexpected traffic on node-to-node ports (#5889).
- Added a GET /node/backup endpoint, returning 200 when backup and 404 when not, for load balancers to use (#5789).
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
4.0.14
Fixed
- Nodes are now more robust to unexpected traffic on node-to-node ports (#5889).
ccf.crypto.digest
andccf.crypto.isValidX509CertBundle
are accessible again throughccf.digest
andccf.isValidX509CertBundle
, to faciliate migration of CCF 3.x-era constitutions. The constitution sample undersamples/constitutions/default/actions.js
has been updated to show how migration is possible without relying on aliasing in 4.x.
5.0.0-dev11
Removed
ccf::historical::adapter_v2
is removed, replaced byccf::historical::adapter_v3
first introduced in 2.0.0.ccf::EnclaveAttestationProvider
has been removed. It is replaced byccf::AttestationProvider
- The
attestation.environment.security_context_directory
configuration entry and--snp-security-context-dir-var
CLI option have been removed. SNP collateral must now be provided through thesnp_security_policy_file
,snp_uvm_endorsements_file
andsnp_endorsement_servers
configuration values. See documentation for details and platform-specific configuration samples.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev10
- The
url
field insnp_endorsements_servers
can now contain environment variables that will be resolved at startup, such as "$Fabric_NodeIPOrFQDN:2377" (#5862). - Add a new
snp_security_policy_file
configuration value underattestation
, superseding the lookup from$UVM_SECURITY_CONTEXT_DIR
. The value can contain environment variables, for example:"snp_security_policy_file": "$UVM_SECURITY_CONTEXT_DIR/security-policy-base64"
. - Add a new
snp_uvm_endorsements_file
configuration value underattestation
, superseding the lookup from$UVM_SECURITY_CONTEXT_DIR
. The value can contain environment variables, for example:"snp_uvm_endorsements_file": "$UVM_SECURITY_CONTEXT_DIR/reference-info-base64"
. This value can come from an untrusted location, likesnp_security_policy_file
and AMD endorsements (fetched fromsnp_endorsements_servers
), because the CCF code contains pre-defined roots of trust.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev9
snp_endorsements_servers
now supports aTHIM
type, which is the recommended value when running in Confidential AKS preview.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev8
ccf.crypto.generateEddsaKeyPair
,pubEddsaPemToJwk
andeddsaPemToJwk
now supportx25519
as well ascurve25519
(#5846).POST /recovery/members/{memberId}:recover
is now authenticated by COSE Sign1, making it consistent with the otherPOST
endpoints in governance, and avoiding a potential denial of service where un-authenticated and un-authorised clients could submit invalid shares repeatedly. Thesubmit_recovery_share.sh
script has been amended accordingly, and now takes a--member-id-privk
and--member-id-cert
(#5821).- CCF can now fetch SEV-SNP attestations from kernel 6.0 and above (#5848).
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev7
POST /recovery/members/{memberId}:recover
is now authenticated by COSE Sign1, making it consistent with the otherPOST
endpoints in governance, and avoiding a potential denial of service where un-authenticated and un-authorised clients could submit invalid shares repeatedly. Thesubmit_recovery_share.sh
script has been amended accordingly, and now takes a--member-id-privk
and--member-id-cert
(#5821).
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev6
- Lifted parser size limits on forwarded request from default values to more permissive ones. Note that the limits set out on the interface of the inbound node still apply (#5803).
- ccf.crypto.unwrapKey() has been added to the JS API (#5792).
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime