v1.4.0
v1.4.0
- Recommended go version for development: 1.17
This is the version used by the cloudbuild presubmits. Using a different version can lead to presubmits failing due to unexpected diffs. - GCP terraform script updated. GKE 1.19 and updated CPU type to E2
Dependency updates
Many dep updates, including:
- Upgraded to etcd v3 in order to allow grpc to be upgraded (#2195)
- etcd was v0.5.0-alpha.5, now v3.5.0
- grpc upgraded from v1.29.1 to v1.40.0
- certificate-transparency-go from v1.0.21 to v1.1.2-0.20210512142713-bed466244fa6
- protobuf upgraded from v1 to v2
- MySQL driver from 1.5.0 to 1.6.0
Cleanup
- Removed signatures from LogRoot and EntryTimestamps returned by RPCs (reflecting that there should not be a trust boundary between Trillian and the personality.)
- Removed the deprecated crypto.NewSHA256Signer function.
- Finish removing the LogMetadata.GetUnsequencedCounts() method.
- Removed the following APIs:
- TrillianLog.GetLeavesByHash
- TrillianLog.GetLeavesByIndex
- TrillianLog.QueueLeaves
- Removed the incomplete Postgres storage backend (#1298).
- Deprecated LogRootV1.Revision field.
- Moved rfc6962 hasher one directory up to eliminate empty leftover package.
- Removed unused log_client tool.
- Various tidyups and improvements to merke & proof generation code.
- Remove some remnants of experimental map.
Storage refactoring
- NodeReader.GetMerkleNodes does not accept revisions anymore. The implementations must use the transaction's ReadRevision
instead. - TreeStorage migrated to using compact.NodeID type suitable for logs.
- Removed the tree storage ReadRevision and WriteRevision methods.
Revisions are now an implementation detail of the current storages. The change allows log implementations which don't need revisions. - Removed Rollback methods from storage interfaces, as Close is enough to cover the use-case.
- Removed the unused IsOpen and IsClosed methods from transaction interfaces.
- Removed the ReadOnlyLogTX interface, and put its only used GetActiveLogIDs method to LogStorage.
- Inlined the LogMetadata interface to ReadOnlyLogStorage.
- Inlined the TreeStorage interfaces to LogStorage.
- Removed the need for the storage layer to return ephemeral node hashes. The application layer always requests for complete subtree nodes comprising the compact ranges corresponding to the requests.
- Removed the single-tile callback from SubtreeCache, it uses only GetSubtreesFunc now.
- Removed SetSubtreesFunc callback from SubtreeCache. The tiles should be written by the caller now, i.e. the caller must invoke the callback.