Releases: microsoft/CCF
Releases · microsoft/CCF
ccf-0.19.2
Added
- New
get_user_data_v1
andget_member_data_v1
C++ API calls have been added to retrieve the data associated with users/members. The user/member data is no longer included in theAuthnIdentity
caller struct (#2301). - New
get_user_cert_v1
andget_member_cert_v1
C++ API calls have been added to retrieve the PEM certificate of the users/members. The user/member certificate is no longer included in theAuthnIdentity
caller struct (#2301).
Changed
- String values in query parameters no longer need to be quoted. For instance, you should now call
/network/nodes?host=127.0.0.1
rather than/network/nodes?host="127.0.0.1"
(#2309). - Schema documentation for query parameters should now be added with
add_query_parameter
, rather thanset_auto_schema
. TheIn
type ofset_auto_schema
should only be used to describe the request body (#2309). json_adapter
will no longer try to convert query parameters to a JSON object. The JSON passed as an argument to these handlers will now be populated only by the request body. The query string should be parsed separately, andhttp::parse_query(s)
is added as a starting point. This means strings in query parameters no longer need to be quoted (#2309).- Enum values returned by built-in REST API endpoints are now PascalCase. Lua governance scripts that use enum values need to be updated as well, for example,
"ACTIVE"
becomes"Active"
for member info. The same applies when using the/gov/query
endpoint (#2152). - Most service tables (e.g. for nodes and signatures) are now serialised as JSON instead of msgpack. Some tables (e.g. user and member certificates) are serialised as raw bytes for performance reasons (#2301).
- The users and members tables have been split into
public:ccf.gov.users.certs
/public:ccf.gov.users.info
andpublic:ccf.gov.members.certs
/public:ccf.gov.members.encryption_public_keys
/public:ccf.gov.members.info
respectively (#2301).
ccf-0.19.1
ccf-0.19.0
Changed
x-ccf-tx-view
andx-ccf-tx-seqno
response headers have been removed, and replaced withx-ms-ccf-transaction-id
. This includes both original fields, separated by a single.
. Historical queries usingccf::historical::adapter
should also pass a single combinedx-ms-ccf-transaction-id
header (#2257).- Node unique identifier is now the hex-encoded string of the SHA-256 digest of the node's DER-encoded identity public key, which is also used as the node's quote report data. The
sandbox.sh
script still uses incrementing IDs to keep track of nodes and for their respective directories (#2241). - Members and users unique identifier is now the hex-encoded string of the SHA-256 digest of their DER-encoded identity certificate (i.e. fingerprint), which has to be specified as the
keyId
field for signed HTTP requests (#2279). - The receipt interface has changed,
/app/receipt?commit=23
is replaced by/app/receipt?transaction_id=2.23
. Receipt fetching is now implemented as a historical query, which means that the first reponse(s) may be 202 with a Retry-After header. Receipts are now structured JSON, as opposed to a flat byte sequence, and/app/receipt/verify
has been removed in favour of an offline verification sample. ccfapp::get_rpc_handler()
now takes a reference to accf::AbstractNodeContext
rather thanccf::AbstractNodeState
. The node state can be obtained from the context viaget_node_state()
.
Removed
get_receipt_for_seqno_v1
has been removed. Handlers wanting to return receipts must now use the historical API, and can obtain a receipt viaccf::historical::StatePtr
. See the historical query with receipt sample for reference.caller_id
endpoint has been removed. Members and users can now compute their unique identifier without interacting with CCF (#2279).public:ccf.internal.members.certs_der
,public:ccf.internal.users.certs_der
,public:ccf.internal.members.digests
andpublic:ccf.internal.users.digests
KV tables have been removed (#2279).view_change_in_progress
field innetwork/status
response has been removed (#2288).
ccf-0.18.5
Changed
- Historical query system now supports range queries, see API documentation for details.
ccf-0.18.4
ccf-0.18.3
Changed
- Fixed format of
notBefore
andnotAfter
in node and network certificates (#2243). - CCF now depends on Open Enclave 0.14.
ccf-0.18.2
ccf-0.18.1
Changed
"id"
field instate
endpoint response has been renamed to"node_id"
(#2150).user_id
endpoint is renamedcaller_id
(#2142).- Nodes' quotes format updated to Open Enclave's
SGX_ECDSA
. Quote endorsements are also stored in CCF and can be retrieved via thequotes/self
andquotes
endpoints (#2161). get_quote_for_this_node_v1()
takes aQuoteInfo
structure (containing the format, raw quote and corresponding endorsements) as out parameter instead of the distinct format and raw quote as two out paramters (#2161).- Several internal tables are renamed (#2166).
/node/network/nodes
correctly returns all nodes if no filter is specified (#2188).
ccf-0.18.0
Changed
endpoint_metrics
is renamedapi/metrics
and now returns an array of objects instead of nested path/method objects (#2068).- Governance proposal ids are now digests of the proposal and store state observed during their creation, hex-encoded as strings. This makes votes entirely specific to an instance of a proposal without having to include a nonce. (#2104, #2135).
quote
endpoint has been renamed toquotes/self
(#2149).TxView
s have been renamed toMapHandle
s, to clearly distinguish them from consensus views. Calls totx.get_view
must be replaced withtx.rw
.tx.rw
does not support retrieving multiple views in a single call. Instead ofauto [view1, view2] = tx.get_view(map1, map2);
, you must writeauto handle1 = tx.rw(map1); auto handle2 = tx.rw(map2);
.
Added
- Added
get_version_of_previous_write(const K& k)
toMapHandle
. If this entry was written to by a previous transaction, this returns the version at which that transaction was applied. See docs for more details.
Removed
ccf-0.17.2
Fixed
- Fixed incorrect ledger chunking on backup nodes when snapshotting is enabled (#2110).