Trillian Versions Save

A transparent, highly scalable and cryptographically verifiable data store.

v1.6.0

4 months ago

What's Changed

Storage

CI

Misc

Dependency updates

New Contributors

Full Changelog: https://github.com/google/trillian/compare/v1.5.3...v1.6.0

v1.5.3

6 months ago

What's Changed

Storage

MySQL

Documentation

Misc

Dependency updates

New Contributors

Full Changelog: https://github.com/google/trillian/compare/v1.5.2...v1.5.3

v1.5.2

1 year ago

Repo magagement

Cleanups

Claimant model

Misc

Dependency updates

New Contributors

Full Changelog: https://github.com/google/trillian/compare/v1.5.1...v1.5.2

v1.5.1

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/google/trillian/compare/v1.5.0...v1.5.1

v1.5.0

1 year ago

Storage

  • Ephemeral nodes are no-longer written for any tree by default (and have not been read since the v1.4.0 release), the corresponding --tree_ids_with_no_ephemeral_nodes flag is now deprecated (and will be removed in a future release).

Cleanup

Misc

Dependency updates

v1.4.2

1 year ago

Allow disabling the writes of ephemeral nodes to storage via the --tree_ids_with_no_ephemeral_nodes flag to the sequencer.

Developer updates

  • https://github.com/google/trillian/pull/2765 copies the required protos from googleapis into third_party in this repository. This simplifies the preconditions in order to compile the proto definitions, and removes a big dependency on $GOPATH/src which was archaic; $GOPATH/src/github.com/googleapis/googleapis is no longer required.

Minor fixes

Maintenance

Dependency updates

New Contributors

Full Changelog: https://github.com/google/trillian/compare/v1.4.1...v1.4.2

v1.4.1

2 years ago

This release mostly contains refactoring and dependency updates, and some improvements in log operation cycle.

Improved log operation

  • Add undeletetree command [#2638]
  • Query information_schema compatible with MySQL 8 [#2652]
  • Gracefully exit the program when lease expires [#2655]
  • Fix MySQL world-writable config warning [#2713]
  • Update provision tree script in k8s to use createtree [#2676]

Merkle refactoring

Minor refactoring

  • Check the tile height invariant stricter [#2726]
  • Remake dumplib into integration test [#2710]
  • Remove unused code and data [#2709, #2711]

Some changes technically break semver, but most of this code was not intended for external use. E.g.:

  • Unexport helper [#2720]

Dependency updates

  • bitbucket.org/creachadair/shell: 0.0.6 -> 0.0.7 [#2637]
  • cloud.google.com/go/spanner: 1.25.0 -> 1.31.0 [#2630, #2639, #2650, #2697]
  • contrib.go.opencensus.io/exporter/stackdriver: 0.13.8 -> 0.13.12 [#2634, #2699, #2723]
  • github.com/apache/beam: 2.32.0+incompatible -> 2.33.0+incompatible [#2620]
  • github.com/fullstorydev/grpcurl: 1.8.2 -> 1.8.6 [#2621, #2674]
  • github.com/google/go-cmp: 0.5.7 -> 0.5.8 [#2729]
  • github.com/prometheus/client_golang: 1.11.0 -> 1.12.1 [#2662]
  • github.com/pseudomuto/protoc-gen-doc: 1.5.0 -> 1.5.1 [#2677]
  • github.com/transparency-dev/merkle: v0.0.1 [#2734]
  • go.etcd.io/etcd/*/v3: 3.5.0 -> 3.5.4 [#2631, #2667, #2716]
  • golang.org/x/tools: 0.1.5 -> 0.1.10 [#2615, #2618, ..., #2684]
  • google.golang.org/api: 0.54.0 -> 0.77.0 [#2613, #2619, ..., #2728]
  • google.golang.org/grpc: 1.40.0 -> 1.44.0 [#2617, #2635, #2643, #2661]
  • google.golang.org/grpc/cmd/protoc-gen-go-grpc: 1.1.0 -> 1.2.0 [#2645]
  • google.golang.org/protobuf: 1.27.1 -> 1.28.0 [#2686]
  • protoc: 3.12.4 -> 3.20.1 [#2731]

Full Changelog: https://github.com/google/trillian/compare/v1.4.0...v1.4.1

v1.4.0

2 years ago

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.

v1.3.13

3 years ago

Cleanup

  • Removed the experimental map API.

v1.3.12

3 years ago

Misc improvements

  • Removed unused PeekTokens method from the quota.Manager interface.
  • Ensure goroutines never block in the subtree cache (#2272).
  • Breaking unnecessary dependencies for Trillian clients:
    • Moved verifiers from merkle into merkle/{log,map}verifiersub-pacakges, reducing the amount of extra baggage inadvertently pulled in by clients.
  • Concrete hashers have been moved into subpackages, separating them from their registration code, allowing clients to directly pull just the hasher they're interested in and avoid the Trillian/hasher registry+protobuf deps.
  • Moved some packages intended for internal-only use into internal packages:
    • InMemoryMerkleTree (indended to only be used by Trillian tests)
  • Removed wrapper for etcd client (#2288).
  • Moved --quota_system and --storage_system flags to main.go so that they are initialised properly. It might break depending builds relying on these flags. Suggested fix: add the flags to main.go.
  • Made signer tolerate mastership election failures [#1150].
  • testdb no longer accepts the --test_mysql_uri flag, and instead honours the TEST_MYSQL_URI ENV var. This makes it easier to blanket configure tests to use a specific test DB instance.
  • Removed experimental Skylog folder (#2297).
  • Fixed a race condition in the operation manager that should only affect tests (#2302).
  • Run gofumpt formatter on the whole repository (#2315).
  • Refactor signer operation loop (#2294).

Upgrades

  • Dockerfiles are now based on Go 1.13 image.
  • The etcd is now pinned to v3.4.12.
  • The golangci-lint suite is now at v1.36.0.
  • CI/CD has migrated from Travis to Google Cloud Build.
  • prometheus from 1.7.1 to 1.9.0 (#2239, #2270).
  • go-cmp from 0.5.2 to 0.5.4 (#2262).
  • apache/beam from 2.26.0+incompatible to 2.27.0+incompatible (#2273).
  • lib/pq from 1.8.0 to 1.9.0 (#2264).
  • go-redis from 6.15.8+incompatible to 6.15.9+incompatible (#2215).

Process

  • Recognise that we do not follow strict semantic versioning practices.