Releases: trustbloc/sidetree-core-go
Release v1.0.0
What's Changed
- fix: Fixed log messages by @bstasyszyn in #696
- fix: Add additional operations only after batch write succeeds by @bstasyszyn in #698
- fix: Ensure "patches" slice is alway constructed in the same order by @bstasyszyn in #700
- chore: Add error param to operation queue, 'nack' function by @bstasyszyn in #701
- feat: Added Type and Properties to Operation by @bstasyszyn in #702
Full Changelog: v1.0.0-rc5...v1.0.0
Release v1.0.0-rc5
What's Changed
- chore(deps): Bump golang.org/x/sys from 0.0.0-20210630005230-0f9fa26af87c to 0.1.0 by @dependabot in #693
- chore(deps): Bump golang.org/x/crypto from 0.0.0-20210616213533-5ff15b29337e to 0.1.0 by @dependabot in #694
- chore: Use logutil-go for logging by @bstasyszyn in #695
New Contributors
- @dependabot made their first contribution in #693
Full Changelog: v1.0.0-rc4...v1.0.0-rc5
Release v1.0.0-rc4
What's Changed
- fix: Change context in resolution result from string to interface by @sandrask in #684
- chore: Remove dependency on edge-core by @bstasyszyn in #686
- chore: Use structured logging by @bstasyszyn in #688
- chore: Upgrade Go version to 1.19 and golangci-lint to v1.50.0 by @bstasyszyn in #690
- chore: Fill-in controller when base is present by @sandrask in #692
Full Changelog: v1.0.0-rc3...v1.0.0-rc4
Release v1.0.0-rc3
Release v1.0.0-rc2
What's Changed
- feat: Service endpoint object should accept list of strings and list of objects by @sandrask in #675
- chore: Add CAS write size metric by @bstasyszyn in #676
Full Changelog: v1.0.0-rc.1...v1.0.0-rc2
Release v1.0.0-rc.1
What's Changed
- feat: Add did operations to document metadata by @sandrask in #613
- feat: Add additional operations to Resolver and Operation Processor by @sandrask in #615
- chore: Organize published/unpublished operations in metadata by @sandrask in #617
- chore: Add operation decorator to document handler by @sandrask in #619
- chore: Use batch flag during operation commitment assembling by @sandrask in #621
- chore: Make functions for getting document transformation info public by @sandrask in #623
- feat: Process additional operations for suffix in the next batch by @sandrask in #625
- chore: Add support for multiple operations in unpublished store by @sandrask in #627
- chore: Add metrics to ProcessOperation by @sandrask in #629
- fix: Adding new operations don't wait for batch to be cut by @bstasyszyn in #630
- chore: add metrics for create and resolve rest call by @fqutishat in #631
- chore: change log msg from info to debug by @fqutishat in #632
- chore: Do not accept DID operations after successful deactivate opera… by @sandrask in #634
- feat: Allow update without published create operation by @sandrask in #636
- feat: Add alternate sources for CAS files during Observer processing by @bstasyszyn in #638
- chore: Add logging for alternate CAS sources by @bstasyszyn in #639
- fix: Potential race condition in operation resolver by @bstasyszyn in #641
- fix: Fix race condition in resolve by @bstasyszyn in #643
- feat: Return the number of operations processed by @bstasyszyn in #644
- feat: Resolve DID based on versionId by @sandrask in #646
- feat: Resolve DID based on versionTime by @sandrask in #648
- fix: Filter document metadata operations based on resolution options by @sandrask in #650
- fix: Should not be able to specify both versionId and versionTime by @sandrask in #652
- fix: Fix published operations in document metadata by @sandrask in #654
- feat: add support for ed25519signature2020 by @fqutishat in #655
- chore: support ed25519VerificationKey2020 by @fqutishat in #656
- chore: add sonarcloud github action step by @fqutishat in #657
- chore: fix upload code cov by @fqutishat in #658
- chore: provide SONAR_TOKEN by @fqutishat in #659
- chore: use SONAR_TOKEN by @fqutishat in #660
- chore: remove sonar build name by @fqutishat in #661
- chore: change sonar build name by @fqutishat in #662
- chore: fix sonar name by @fqutishat in #663
- feat: Add created and updated to document metadata during resolution by @sandrask in #665
- chore: Fix propagating created by @sandrask in #667
- chore: Remove "updated" for deactivated document by @sandrask in #669
- chore: Return deactivate operation anchoring time in "updated" by @sandrask in #671
- chore: Rename operationRequest to operation by @sandrask in #673
Full Changelog: v0.7.0...v1.0.0-rc.1
Release v0.7.0
Merge pull request #611 from sandrask/issue-610 feat: Add unpublished operation store option
Release v0.6.0
sidetree-core-go Release Notes - Mar 4, 2021
What's new in sidetree-core-go v0.6.0
Complete SIP-1:
-- Add reveal value to update, recover, deactivate request #521
-- Support multiple hashing algorithms (an array) in protocol parameters
-- Remove proof size from parameters
Align resolution object with did core spec
Align deactivated document resolution with did core spec
- return "deactivate" flag in document metadata and an empty document
- return HTTP 200 instead of HTTP 410
Support for anchorOrigin property #546
Support for anchorFrom and anchorUntil properties #547 #554 #555
Rename BlockchainClient to AnchorWriter #548
Implement support for JWK nonce #558
Implement max memory decompression factor #532
Release v0.1.5
sidetree-core-go Release Notes - Dec 4, 2020
What's new in sidetree-core-go v0.1.5
SIP-1: Efficient Operation Mapping
For details see: decentralized-identity/sidetree#766
SIP-2: Eliminate Base64URL Storage Bloat
For details see: decentralized-identity/sidetree#781
Version Manager
The protocol version manager returns the protocol version implementation associated with a transaction time (block number). One protocol version is currently implemented: 0.1. As new protocol versions are implemented, documents created with older versions may still be resolved.
During resolution advance commitment as soon as it becomes revealed for create, update and recovery
Hash canonicalized public key to produce public key commitment
Resolve next operation when multihashing algorithm changes
Long form resolution with JCS
Deprecate initial-state parameter
Add canonicalId to document metadata
Generic form for enabling/disabling patches
New protocol parameters: max delta, max uri, max hash, max proof
Refactor according to latest renaming and transformation rules
Add support for base context
Rename anchor/map file to core/provisional index file plus related protocol params
Add support for service endpoint as object
Release v0.1.4
sidetree-core-go Release Notes - Aug 27, 2020
What's new in sidetree-core-go v0.1.4
Add ability to configure method context(s)
If required method context(s) can be passed in as parameter
Validation of supported signing algorithms
Add new parameter to protocol parameters called signature algorithms that will allow configuring supported algorithms.
Validation of supported key algorithms
Add new parameter to protocol parameters called key algorithms that will allow configuring supported key algorithms.
Updated protocol parameters
Add/rename protocol parameter as per latest spec
Add support for JsonWebKey2020
JsonWebKey2020 is added to the list of supported key types
Add initial state to method metadata
When attempting resolution with initial state add initial state to method metadata
Preserve the order of public keys and services during resolution
When patches are applied during resolution preserve the order of public keys and services
Add ability to enable 'replace' patch
Add protocol parameter to enable 'replace' patch (by default this patch is disabled; it is used for interop testing)
Implement latest protected header validation rules
- kid MUST be present in the protected header (deviation due to failing interop tests)
- alg MUST be present in the protected header, its value MUST NOT be none
- no additional members may be present in the protected header
Update ID size limit to 50
Applies to public key ids and service ids
Get protocol parameters by transaction number
Added to protocol interface get function for retrieving protocol parameters by transaction number (block number)
Create anchored operation model
Create the smallest subset of operation data that will be stored into operation store as anchored operation.
Operation Hash Map
Create operation hash map (calculate operation commitment value) during resolution and use it to determine next operation to be applied.
Add common validations for batch files
Add following check when creating anchor, map, chunk files for Sidetree transaction:
- there can be only one operation per suffix in all batch files combined per transaction (deviation - log subsequent operations as warning and ignore them)
Switch logrus logging to edge-core logging
Replace logging provider
Add support for 'replace' action
Added support for 'replace' action
Generate commitment from public JWK
- generate recovery and update commitments from corresponding public JWK during create
- add update key to update request
- add recovery key for deactivate and recover requests
- validate keys against previously provided commitments
- validate signature against passed in keys
- return update and recovery commitments in resolution result metadata (remove recovery key and operation keys)
Add compression for batch files
-- compress batch files before storing them to CAS (batch writer)
-- decompress batch files upon retrieving them from CAS (observer)
-- add compression algorithm and maximum batch sizes (protocol)
Add compression registry
Add compression registry with gzip algorithm implementation
Create Anchor String
Record anchor string (num of transactions + anchor address) on blockchain.
Add chunk, map, anchor files
- batch writer creates chunk, map, anchor file from batch operations
- observer parses batch files (chunk, map, anchor) into anchored operation
Outstanding Sidetree protocol specification issues:
- handling patch errors inconsistent across operations (decentralized-identity/sidetree#836)
usage - there is a mismatch between spec and reference implementation in regards to the usage of next commitment in case of patch errors
decentralized-identity/sidetree#835
decentralized-identity/sidetree#835
Not implemented
-- method versioning (required)
-- all fee related requirements (optional)
-- verification methods: operation and recovery (optional)
Known deviations
-
kid MUST be present in the protected header
deviation is due to failing interop tests; reference application doesn't accept kid in protected header (#365) -
an Anchor File MUST NOT include multiple operations in the operations section of the Anchor File for the same DID Suffix - if any duplicates are found, cease processing, discard the file data, and retain a reference that the file is to be ignored.
Reference implementation/spec assumes that there is only one batch writer in the system. That assumption is not valid with fabric deployment so we can have multiple batch writers, After discussion with the team it was decided that cease processing is not an option. Instead, we log subsequent operations as warning and ignore them.