diff options
Diffstat (limited to 'vendor/github.com/google/trillian/CHANGELOG.md')
-rw-r--r-- | vendor/github.com/google/trillian/CHANGELOG.md | 1139 |
1 files changed, 0 insertions, 1139 deletions
diff --git a/vendor/github.com/google/trillian/CHANGELOG.md b/vendor/github.com/google/trillian/CHANGELOG.md deleted file mode 100644 index 7a072252d..000000000 --- a/vendor/github.com/google/trillian/CHANGELOG.md +++ /dev/null @@ -1,1139 +0,0 @@ -# TRILLIAN Changelog - -## HEAD - -## v1.5.1 - -### Storage - -* A new storage driver for CockroachDB has been added. It's currently in alpha stage - with support provided by Equinix Metal. - -### Misc -* Fix log server not exiting properly on SIGINT - -### Dependency updates - -* Switch from glog to klog by @jdolitsky in https://github.com/google/trillian/pull/2787 -* Bump google.golang.org/api from 0.92.0 to 0.93.0 by @dependabot in https://github.com/google/trillian/pull/2800 -* Bump cloud.google.com/go/spanner from 1.36.0 to 1.37.0 by @dependabot in https://github.com/google/trillian/pull/2803 -* Bump google.golang.org/grpc from 1.48.0 to 1.49.0 by @dependabot in https://github.com/google/trillian/pull/2804 -* Bump google.golang.org/api from 0.93.0 to 0.94.0 by @dependabot in https://github.com/google/trillian/pull/2802 -* Bump cloud.google.com/go/spanner from 1.37.0 to 1.38.0 by @dependabot in https://github.com/google/trillian/pull/2806 -* Bump k8s.io/klog/v2 from 2.70.1 to 2.80.0 by @dependabot in https://github.com/google/trillian/pull/2807 -* Bump k8s.io/klog/v2 from 2.80.0 to 2.80.1 by @dependabot in https://github.com/google/trillian/pull/2808 -* Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 by @dependabot in https://github.com/google/trillian/pull/2809 -* Bump google.golang.org/api from 0.94.0 to 0.95.0 by @dependabot in https://github.com/google/trillian/pull/2810 -* Bump go.etcd.io/etcd/etcdctl/v3 from 3.5.4 to 3.5.5 by @dependabot in https://github.com/google/trillian/pull/2812 -* Bump go.etcd.io/etcd/v3 from 3.5.4 to 3.5.5 by @dependabot in https://github.com/google/trillian/pull/2816 -* Bump google.golang.org/api from 0.95.0 to 0.96.0 by @dependabot in https://github.com/google/trillian/pull/2813 -* Bump google.golang.org/api from 0.96.0 to 0.97.0 by @dependabot in https://github.com/google/trillian/pull/2819 -* Bump cloud.google.com/go/spanner from 1.38.0 to 1.39.0 by @dependabot in https://github.com/google/trillian/pull/2818 -* Bump google.golang.org/api from 0.97.0 to 0.98.0 by @dependabot in https://github.com/google/trillian/pull/2820 -* Bump google.golang.org/grpc from 1.49.0 to 1.50.0 by @dependabot in https://github.com/google/trillian/pull/2821 -* Bump google.golang.org/grpc from 1.50.0 to 1.50.1 by @dependabot in https://github.com/google/trillian/pull/2823 -* Bump google.golang.org/api from 0.98.0 to 0.99.0 by @dependabot in https://github.com/google/trillian/pull/2822 -* Bump google.golang.org/api from 0.99.0 to 0.100.0 by @dependabot in https://github.com/google/trillian/pull/2824 -* Bump github.com/prometheus/client_model from 0.2.0 to 0.3.0 by @dependabot in https://github.com/google/trillian/pull/2825 -* Bump golang.org/x/tools from 0.1.12 to 0.2.0 by @dependabot in https://github.com/google/trillian/pull/2826 -* Bump google.golang.org/api from 0.100.0 to 0.101.0 by @dependabot in https://github.com/google/trillian/pull/2827 -* Bump github.com/prometheus/client_golang from 1.13.0 to 1.13.1 by @dependabot in https://github.com/google/trillian/pull/2828 -* Bump golang.org/x/sys from 0.1.0 to 0.2.0 by @dependabot in https://github.com/google/trillian/pull/2829 -* Bump google.golang.org/api from 0.101.0 to 0.102.0 by @dependabot in https://github.com/google/trillian/pull/2830 -* Bump go.opencensus.io from 0.23.0 to 0.24.0 by @dependabot in https://github.com/google/trillian/pull/2832 -* Bump cloud.google.com/go/spanner from 1.39.0 to 1.40.0 by @dependabot in https://github.com/google/trillian/pull/2831 -* Bump github.com/prometheus/client_golang from 1.13.1 to 1.14.0 by @dependabot in https://github.com/google/trillian/pull/2838 -* Bump google.golang.org/api from 0.102.0 to 0.103.0 by @dependabot in https://github.com/google/trillian/pull/2839 -* Bump golang.org/x/crypto from 0.1.0 to 0.2.0 by @dependabot in https://github.com/google/trillian/pull/2841 -* Bump golang.org/x/tools from 0.2.0 to 0.3.0 by @dependabot in https://github.com/google/trillian/pull/2840 -* Dependabot: Also keep GitHub actions up-to-date by @JAORMX in https://github.com/google/trillian/pull/2842 -* Bump actions/upload-artifact from 3.1.0 to 3.1.1 by @dependabot in https://github.com/google/trillian/pull/2843 -* Bump golang.org/x/crypto from 0.2.0 to 0.3.0 by @dependabot in https://github.com/google/trillian/pull/2847 -* Bump google.golang.org/grpc from 1.50.1 to 1.51.0 by @dependabot in https://github.com/google/trillian/pull/2845 -* Bump github.com/cockroachdb/cockroach-go/v2 from 2.2.16 to 2.2.18 by @dependabot in https://github.com/google/trillian/pull/2846 -* Bump go.etcd.io/etcd/v3 from 3.5.5 to 3.5.6 by @dependabot in https://github.com/google/trillian/pull/2849 -* Bump github.com/cockroachdb/cockroach-go/v2 from 2.2.18 to 2.2.19 by @dependabot in https://github.com/google/trillian/pull/2856 -* Bump golang.org/x/sys from 0.2.0 to 0.3.0 by @dependabot in https://github.com/google/trillian/pull/2858 -* Bump cloud.google.com/go/spanner from 1.40.0 to 1.41.0 by @dependabot in https://github.com/google/trillian/pull/2857 -* Bump actions/setup-go from 3.3.1 to 3.4.0 by @dependabot in https://github.com/google/trillian/pull/2862 -* Bump github/codeql-action from 2.1.34 to 2.1.35 by @dependabot in https://github.com/google/trillian/pull/2861 -* Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 by @dependabot in https://github.com/google/trillian/pull/2860 -* Bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0 by @dependabot in https://github.com/google/trillian/pull/2859 -* Bump qs, body-parser and express in /scripts/gcb2slack by @dependabot in https://github.com/google/trillian/pull/2867 -* Bump minimist from 1.2.0 to 1.2.7 in /scripts/gcb2slack by @dependabot in https://github.com/google/trillian/pull/2864 -* Bump axios and @slack/webhook in /scripts/gcb2slack by @dependabot in https://github.com/google/trillian/pull/2868 -* Bump json-bigint and google-auth-library in /scripts/gcb2slack by @dependabot in https://github.com/google/trillian/pull/2869 -* Bump node-fetch from 2.6.0 to 2.6.7 in /scripts/gcb2slack by @dependabot in https://github.com/google/trillian/pull/2866 -* Bump golang.org/x/tools from 0.3.0 to 0.4.0 by @dependabot in https://github.com/google/trillian/pull/2870 -* Bump github/codeql-action from 2.1.35 to 2.1.36 by @dependabot in https://github.com/google/trillian/pull/2874 -* Bump actions/checkout from 3.1.0 to 3.2.0 by @dependabot in https://github.com/google/trillian/pull/2873 -* Bump golang.org/x/crypto from 0.3.0 to 0.4.0 by @dependabot in https://github.com/google/trillian/pull/2872 -* Bump google.golang.org/api from 0.103.0 to 0.104.0 by @dependabot in https://github.com/google/trillian/pull/2871 -* Bump cloud.google.com/go/spanner from 1.41.0 to 1.42.0 by @dependabot in https://github.com/google/trillian/pull/2877 - - -## v.1.5.0 - -### 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 -* Format code according to go1.19rc2 by @mhutchinson in https://github.com/google/trillian/pull/2785 -* Delete merkle package, use [github.com/transparency-dev/merkle](https://pkg.go.dev/github.com/transparency-dev/merkle) instead. - -### Misc -* Fix order-dependent test by @hickford in https://github.com/google/trillian/pull/2792 - -### Dependency updates -* Updated golangci-lint to v1.47.3 (developers should update to this version) by @mhutchinson in https://github.com/google/trillian/pull/2791 -* Bump google.golang.org/api from 0.87.0 to 0.88.0 by @dependabot in https://github.com/google/trillian/pull/2783 -* Bump cloud.google.com/go/spanner from 1.35.0 to 1.36.0 by @dependabot in https://github.com/google/trillian/pull/2784 -* Bump google.golang.org/api from 0.88.0 to 0.90.0 by @dependabot in https://github.com/google/trillian/pull/2789 -* Bump golang.org/x/tools from 0.1.11 to 0.1.12 by @dependabot in https://github.com/google/trillian/pull/2790 -* Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 by @dependabot in https://github.com/google/trillian/pull/2788 -* Bump google.golang.org/api from 0.90.0 to 0.91.0 by @dependabot in https://github.com/google/trillian/pull/2796 -* Bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 by @dependabot in https://github.com/google/trillian/pull/2795 -* Bump github.com/fullstorydev/grpcurl from 1.8.6 to 1.8.7 by @dependabot in https://github.com/google/trillian/pull/2794 -* Bump google.golang.org/api from 0.91.0 to 0.92.0 by @dependabot in https://github.com/google/trillian/pull/2798 - -## v1.4.2 - -* #2568: Allow disabling the writes of ephemeral nodes to storage via the - `--tree_ids_with_no_ephemeral_nodes` flag to the sequencer. -* #2748: `--cloudspanner_max_burst_sessions` deprecated (it hasn't had any - effect for a while, now it's more explicit) -* #2768: update go.mod to use 1.17 compatibility from 1.13. - -### Dependency updates - -* Updated golangci-lint to v1.46.1 (developers should update to this version) -* Removed dependency on certificate-transparency-go - -### Developer updates - -* #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. - -## v1.4.1 - -* `countFromInformationSchema` function to add support for MySQL 8. - -### Removals - - * #2710: Unused `storage/tools/dumplib` was removed. The useful storage format - regression test moved to `integration/format`. - * #2711: Unused `storage/tools/hasher` removed. - * #2715: Packages under `merkle` are deprecated and to be removed. Use - https://github.com/transparency-dev/merkle instead. - -### Misc improvements - - * #2712: Fix MySQL world-writable config warning. - * #2726: Check the tile height invariant stricter. No changes required. - -### Dependency updates - * #2731: Update `protoc` from `v3.12.4` to `v3.20.1` - -## 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 -[Published 2021-02-16](https://github.com/google/trillian/releases/tag/v1.3.13) - -### Cleanup - * Removed the experimental map API. - -## v1.3.12 -[Published 2021-02-16](https://github.com/google/trillian/releases/tag/v1.3.12) - -### 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}verifier`sub-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. - -## v1.3.11 -[Published 2020-10-06](https://github.com/google/trillian/releases/tag/v1.3.11) - -### Documentation - -Added docs which describe the Claimant Model of transparency, a useful -framework for reasoning about the design and architecture of transparent -systems. - -### Misc improvements - - * Fixed int to string conversion warnings for golang 1.15 - * Metric improvements for fetched leaf counts - * Move tools.go into its own directory to help with dependencies - -### Dependency updates - * go-grpc-middleware from 1.2.0 to 1.2.2 (#2219, #2229) - * stackdriver from 0.13.2 to 0.13.4 (#2220, #2223) - * Google api from 0.28.0 to 0.29.0 (#2193) - - -## v1.3.10 -[Published 2020-07-02](https://github.com/google/trillian/releases/tag/v1.3.10) - -### Storage - -The StorageProvider type and helpers have been moved from the server package to -storage. Aliases for the old types/functions are created for backward -compatibility, but the new code should not use them as we will remove them with -the next major version bump. The individual storage providers have been moved to -the corresponding packages, and are now required to be imported explicitly by -the main file in order to be registered. We are including only MySQL and -cloudspanner providers by default, since these are the ones that we support. - -The cloudspanner storage is supported for logs only, while the Map storage API -is being polished and decoupled from the log storage API. We may return the -support when the new API is tested. - -Support for storage of Ed25519 signatures has been added to the mysql and -postgres storage drivers (only applicable in new installations) and bugs -preventing correct usage of that algorithm have been fixed. - -#### Storage TX Interfaces -- `QueueLeaves` has been removed from the `LogTreeTX` interface because - `QueueLeaves` is not transactional. All callers use the - `QueueLeaves` function in the `LogStorage` interface. -- `AddSequencedLeaves` has been removed from the `LogTreeTX`. - - -### Log Changes - -#### Monitoring & Metrics - -The `queued_leaves` metric is removed, and replaced by `added_leaves` which -covers both `QueueLeaves` and `AddSequencedLeaves`, and is labeled by log ID. - -#### MySQL Dequeueing Change #2159 -mysql will now remove leaves from the queue inside of `UpdateLeaves` rather -than directly inside of `Dequeue`. -This change brings the behavior of the mysql storage implementation into line -with the spanner implementation and makes consistent testing possible. - - -### Map Changes - -**The verifiable map is still experimental.** -APIs, such as SetLeaves, have been deprecated and will be deleted in the near -future. The semantics of WriteLeaves have become stricter: now it always -requires the caller to specify the write revision. These changes will not -affect the Trillian module semantic version due to the experimental status of -the Map. - -Map API has been extended with Layout, GetTiles and SetTiles calls which allow -for more direct processing of sparse Merkle tree tiles in the application layer. -Map storage implementations are simpler, and no longer use the SubtreeCache. - -The map client has been updated so that GetAndVerifyMapLeaves and -GetAndVerifyMapLeavesByRevision return the MapRoot for the revision at which the -leaves were fetched. Without this callers of GetAndVerifyMapLeaves in particular -were unable to reason about which map revision they were seeing. The -SetAndVerifyMapLeaves method was deleted. - - - -## v1.3.9 -[Published 2020-06-22](https://github.com/google/trillian/releases/tag/v1.3.9) - -### Selected Dependency Updates -* etcd from v3.3.18 to 3.4.7 (#2090) -* etcd-operator from v0.9.1 to v0.9.4 -* upgraded protoc version to latest (#2088) -* github.com/golang/protobuf to v1.4.1 (#2111) -* google.golang.org/grpc from v1.26 to 1.29.1 (#2108) - - -## v1.3.8 -[Published 2020-05-12](https://github.com/google/trillian/releases/tag/v1.3.8) - -### HTTP APIs - -The HTTP/JSON APIs have been removed in favor of a pure gRPC intereface. -[grpcurl](https://github.com/fullstorydev/grpcurl) is the recommended way -of interacting with the gRPC API from the commandline. - - -## v1.3.7 -[Published 2020-05-12](https://github.com/google/trillian/releases/tag/v1.3.7) - -### Server Binaries - -The `trillian_log_server`, `trillian_log_signer` and `trillian_map_server` -binaries have moved from `github.com/google/trillian/server/` to -`github.com/google/trillian/cmd`. A subset of the `server` package has also -moved and has been split into `cmd/internal/serverutil`, `quota/etcd` and -`quota/mysqlqm` packages. - - -## v1.3.6 -[Published 2020-05-12](https://github.com/google/trillian/releases/tag/v1.3.6) - -### Deployments - -The Kubernetes configs will now provision 5 nodes for Trillian's Etcd cluster, -instead of 3 nodes. -[This makes the Etcd cluster more resilient](https://etcd.io/docs/v3.2.17/faq/#what-is-failure-tolerance) -to nodes becoming temporarily unavailable, such as during updates (it can now -tolerate 2 nodes being unavailable, instead of just 1). - -### Monitoring & Metrics - -A count of the total number of individual leaves the logserver attempts to -fetch via the GetEntries.* API methods has been added. - - -## v1.3.5 -[Published 2020-05-12](https://github.com/google/trillian/releases/tag/v1.3.5) - -### Log Changes - -#### Potential sequencer hang fixed -A potential deadlock condition in the log sequencer when the process is -attempting to exit has been addressed. - -### Quota - -#### New Features - -An experimental Redis-based `quota.Manager` implementation has been added. - -#### Behaviour Changes - -Quota used to be refunded for all failed requests. For uses of quota that were -to protect against abuse or fair utilization, this could allow infinite QPS in -situations that really should have the requests throttled. Refunds are now only -performed for tokens in `Global` buckets, which prevents tokens being leaked if -duplicate leaves are queued. - -### Tools - -The `licenses` tool has been moved from "scripts/licenses" to [a dedicated -repository](https://github.com/google/go-licenses). - -### Bazel Changes - -Python support is disabled unless we hear that the community cares about this -being re-enabled. This was broken by a downstream change and without a signal -from the Trillian community to say this is needed, the pragmatic action is to -not spend time investigating this issue. - - -## v1.3.4 - Invalid release, do not use. -[Published 2020-05-12](https://github.com/google/trillian/releases/tag/v1.3.4) - - -## v1.3.3 - Module fixes - -Published 2019-10-31 17:30:00 +0000 UTC - -Patch release to address Go Module issue. Removes `replace` directives in our -go.mod file now that our dependencies have fixed their invalid pseudo-version -issues. - -## v1.3.2 - Module fixes - -Published 2019-09-05 17:30:00 +0000 UTC - -Patch release to address Go Module issue. Some dependencies use invalid pseudo- -versions in their go.mod files that Go 1.13 rejects. We've added `replace` -directives to our go.mod file to fix these invalid pseudo-versions. - -## v1.3.1 - Module and Bazel fixes - -Published 2019-08-16 15:00:00 +0000 UTC - -Patch release primarily to address Go Module issue. v1.3.0 declared a dependency -on github.com/russross/blackfriday/v2 v2.0.1+incompatible which made downstream -dependencies suffer. - -## v1.3.0 - -Published 2019-07-17 15:00:00 +0000 UTC - -### Storage APIs GetSignedLogRoot / SetSignedLogRoot now take pointers - -This at the storage layer and does not affect the log server API. -This is part of work to fix proto buffer usages where they are passed -by value or compared by generic code like `reflect.DeepEquals()`. Passing -them by value creates shallow copies that can share internal state. As the -generated structs contain additional exported `XXX_` fields generic -comparisons using all fields can produce incorrect results. - -### Storage Commit takes context.Context - -To support passing a context down to `NodeStorage.SetLeaves`, and remove various `context.TODO()`s, -the following functions have been modified to accept a `context.Context` parameter: - -- `storage/cache.NodeStorage.SetLeaves` -- `storage/cache.SetSubtreesFunc` -- `storage/cache.SubtreeCache.Flush` -- `storage.ReadonlyLogTX.Commit` - -### Go Module Support - -Go Module support has been enabled. Please use GO111MODULE=on to build Trillian. -Updating dependencies no longer requires updating the vendor directory. - -### TrillianMapWrite API -New API service for writing to the Trillian Map. This allows APIs such as -GetLeavesByRevisionNoProof to be removed from the read API, and these methods to -be tuned & provisioned differently for read vs write performance. - -### GetLeavesByRevisionNoProof API -Allow map clients to forgo fetching inclusion proofs. -This dramatically speeds things up for clients that don't need verifiability. -This situation occurs in some situation where a Trillian personality is -interacting directly with the Trillian Map. - -### GetMapLeafByRevision API -New GetMapLeafByRevision API for fetching a single map leaf. This allows there -to be a separate API end point for fetching a single leaf vs. the batch -GetMapLeavesByRevision API which is much slower when many leaves are requested. -This supports separate monitoring and alerting for different traffic patterns. - -### Add Profiling Flags to Binaries - -The `trillian_log_server`, `trillian_log_signer` and `trillian_map_server` -binaries now have CPU and heap profiling flags. Profiling is off by default. -For more details see the -[Go Blog](https://blog.golang.org/profiling-go-programs). -### Map performance tweaks - -The map mode has had some performance tweaks added: -* A workaround for locking issues which affect the map when it's used in - single-transaction mode. - -### Introduce BatchInclusionProof function - -Added a batch version of the Merkle Tree InclusionProof function. - -Updated the map RPC for getLeaves to use the new batch function to improve -efficiency. - -### Google Cloud Spanner support - -Google Cloud Spanner is now a supported storage backend for maps. - -The admin API calls to list trees backed by Cloud Spanner trees are fixed. - -### RPC Server Transaction Leaks Fixed - -There were some cases where the Log RPC server could leak storage transactions -in error situations. These have now been fixed. If you have a custom storage -implementation review the fixes made to the MySQL Log storage to see if they -need to be applied to your code (`storage/mysql/log_storage.go`). The Map -server had similar issues but these were fixed without requiring changes to -storage code. - -### GetLatestSignedLogRoot With Consistency Proof - -`GetLatestSignedLogRoot` in the LogServer will return a consistency proof if -`first_tree_size` > 0. This reduces the number of RPC calls from logClient from -2 to 1 in `client.getAndVerifyLatestRoot`. - -### Testing - -Support has been added for testing against a locally running mysql docker image, -in addition to a locally running mysql instance. - -### Deprecated Fields Removed From SignedLogRoot Proto - -*Important Note*: For use in Certificate Transparency this version of the -logserver binary won't work properly with an older CTFE. Make sure to update the -CTFE servers to a current version (built from a git checkout after March 20th -2019) before deploying logservers that include this change or deploy them -together with this release. Failure to do this can result in 5XX errors being -returned to clients when the old handler code tries to access fields in -responses that no longer exist. - -All the fields marked as deprecated in this proto have been removed. All the -same fields are available via the TLS marshalled log root in the proto. Updating -affected code is straightforward. - -Normally, clients will want to verify that the signed root is correctly signed. -This is the preferred way to interact with the root data. - -There is a utility function provided that will verify the signature and unpack -the TLS data. It works well in conjunction with a `LogVerifier`. The public key -of the server is required. - -```go -verifier := client.NewLogVerifier(rfc6962.DefaultHasher, pk, crypto.SHA256) -root, err := crypto.VerifySignedLogRoot(verifier.PubKey, verifier.SigHash, resp.SignedLogRoot) -if err != nil { - // Signature verified and unmarshalled correctly. The struct may now - // be used. - if root.TreeSize > 0 { - // Non empty tree. - } -} -``` - -### MySQL changes - -#### Configurable number of connections for MySQL - -Two new flags have been added that limit connections to MySQL database servers: - -- `--mysql_max_conns` - limits the total number of database connections -- `--mysql_max_idle_conns` - limits the number of idle database connections - -By default, there is no maximum number of database connections. However, the -database server will likely impose limits on the number of connections. The -default limit on idle connections is controlled by -[Go's `sql` package](https://golang.org/pkg/database/sql/#DB.SetMaxIdleConns). - -#### Enfored no concurrent use of MySQL tx - -Concurrently using a single MySQL transaction can cause the driver to error -out, so we now attempt to prevent this from happening. - -### Removal of length limits for a tree's `display_name` and `description` - -Previously, these were restricted to 20 bytes and 200 bytes respectively. These -limits have been removed. However, the underlying storage implementation may -still impose its own limitations. - -### Server validation of leaf hashes - -The log server now checks that leaf hashes are the correct length and returns -an InvalidArgument error if they are not. Previously, GetLeavesByHash would -simply not return any matching leaves for invalid hashes, and -GetInclusionProofByHash would return a NotFound error. - -### Map client - -A [MapClient](client/map_client.go) has been added to simplify interacting with -the map server. - -### Database Schema - -This version includes a change to the MySQL and Postgres database schemas to add -an index on the `SequencedLeafData` table. This improves performance for -inclusion proof queries. - -### Deployments - -The Trillian Docker images now accept GOFLAGS and GO111MODULE arguments -and set them as environment variables inside the Docker container. - -The [db\_server Docker image](examples/deployment/docker/db_server/Dockerfile) -is now based on -[the MySQL 5.7 image from the Google Cloud Marketplace](https://console.cloud.google.com/marketplace/details/google/mysql5), -rather than the [official MySQL 5.7 image](https://hub.docker.com/_/mysql). -This Dockerfile supercedes Dockerfile.db, which has been removed. - -There is now a [mysql.cnf file](examples/deployment/docker/db_server/mysql.cnf) -alongside the Dockerfile that makes it easy to build the image with a custom -configuration, e.g. to allow MySQL to use more memory. - -The `trillian-log-service` and `trillian-log-signer` Kubernetes services will -now have load balancers configured for them that expose those services outside -of the Kubernetes cluster. This makes it easier to access their APIs. When -deployed on Google Cloud, these will be -[Internal Load Balancers](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing). -Note that this change **cannot be applied to an existing deployment**; delete -the existing Kubernetes services and redeploy them, otherwise you'll see an -error similar to `The Service "trillian-log-service" is invalid: spec.clusterIP: -Invalid value: "": field is immutable`. - -A working [Docker Compose](https://docs.docker.com/compose/) configuration is -now available and can be used to bring up a local Trillian deployment for -testing and experimental purposes: - -```shell -docker-compose -f examples/deployment/docker-compose.yml up -``` - -Docker Compose v3.1 or higher is required. - -The Terraform, Kubernetes and Docker configuration files, as well as various -scripts, all now use the same, consistently-named environment variables for -MySQL-related data (e.g. `MYSQL_DATABASE`). The variable names are based on -those for the -[MySQL Docker image](https://hub.docker.com/_/mysql#environment-variables). - -Docker images have been upgraded from Go 1.9 to 1.11. They now use ["Distroless" -base images](https://github.com/GoogleContainerTools/distroless). - -### Dropped metrics - -Quota metrics with specs of the form `users/<user>/read` and -`users/<user>/write` are no longer exported by the Trillian binaries (as they -lead to excessive storage requirements for Trillian metrics). - -### Resilience improvements in `log_signer` - -#### Add timeout to sequencing loop - -Added a timeout to the context in the sequencing loop, with a default of 60s. - -#### Fix Operation Loop Hang - -Resolved a bug that would hide errors and cause the `OperationLoop` to hang -until process exit if any error occurred. - -### Linting toolchain migration - -gometalinter has been replaced with golangci-lint for improved performance and -Go module support. - -### Compact Merkle tree data structures - -`CompactMerkleTree` has been removed from `github.com/google/trillian/merkle`, -and a new package `github.com/google/trillian/merkle/compact` was introduced. A -new powerful data structure named "compact range" has been added to that -package, and is now used throughout the repository instead of the compact tree. -It is a generalization of the previous structure, as it allows manipulating -arbitrary sub-ranges of leaves rather than only prefixes. - -### Storage API changes - -The internal storage API is modified so that the ReadOnlyTreeTX.ReadRevision and -TreeWriter.WriteRevision entrypoints take a context.Context parameter and return -an optional error. - -The `SubtreeCache.GetNodeHash()` method is no longer exported. - -The memory storage provider has been refactored to make it more consistent with -the other storage providers. - -The `LogMetadata.GetUnsequencedCounts()` method has been removed. - -`NodeReader.GetMerkleNodes` now must return `Node` objects in the same order as -node IDs requested. Storage implementations known to us already adhere to this -requirement. - -### Maphammer improvements - -The maphammer test tool for the experimental Trillian Map has been enhanced. - -### Default values changed for some signer flags - -The following flags for the signer have new default values: - -- `--sequencer_interval`: changed from 10 seconds to 100 milliseconds -- `--batch_size`: changed from 50 to 1000 - -These changes improve the signer's throughput and latency under typical -conditions. - -### Master election refactoring - -The `--resign_odds` flag in `logsigner` is removed, in favor of a more generic -`--master_hold_jitter` flag. Operators using this flag are advised to set the -jitter to `master_check_interval * resign_odds * 2` to achieve similar behavior. - -The `--master_check_interval` flag is removed from `logsigner`. - -`logsigner` switched to using a new master election interface contained in -`util/election2` package. The interfaces in `util/election` are removed. - -### `CONIKS_SHA256` hash strategy added - -Support has been added for a CONIKS sparse tree hasher with SHA256 as the hash -algorithm. Set a tree's `hash_strategy` to `CONIKS_SHA256` to use it. - -### Performance - -The performance of `SetLeaves` requests on the Map has been slightly improved. -The performance of `GetConsistencyProof` requests has been improved when using -MySQL. - -### Logging - -Some warning-level logging has been removed from the sequencer in favour of -returning the same information via the returned error. The caller may still -choose to log this information. This allows storage implementations that retry -transactions to suppress warnings when a transaction initially fails but a retry -succeeds. - -Some incorrectly-formatted log messages have been fixed. - -### Documentation - -[API documentation in Markdown format](docs/api.md) is now available. - -### Other - -The `TimeSource` type (and other time utils) moved to a separate `util/clock` -package, extended with a new `Timer` interface that allows mocking `time.Timer`. - -The `Sequencer.SignRoot()` method has been removed. - -## v1.2.1 - Map race fixed. TLS client support. LogClient improvements - -Published 2018-08-20 10:31:00 +0000 UTC - -### Servers - -A race condition was fixed that affected sparse Merkle trees as served by the -map server. - -### Utilities / Binaries - -The `maphammer` uses a consistent empty check, fixing spurious failures in some -tests. - -The `createtree` etc. set of utilities now support TLS via the `-tls-cert-file` -flag. This support is also available as a client module. - -### Log Client - -`GetAndVerifyInclusionAtIndex` no longer updates the clients root on every -access as this was an unexpected side effect. Clients now have explicit control -of when the root is updated by calling `UpdateRoot`. - -A root parameter is now required when log clients are constructed. - -The client will now only retry requests that fail with the following errors: - -- Aborted -- DeadlineExceeded -- ResourceExhausted -- Unavailable - -There is one exception - it will also retry InitLog/InitMap requests that fail -due to a FailedPrecondition error. - -### Other - -The Travis build script has been updated for newer versions of MySQL (5.7 -through MySQL 8) and will no longer work with 5.6. - -Commit -[f3eaa887163bb4d2ea4b4458cb4e7c5c2f346bc6](https://api.github.com/repos/google/trillian/commits/f3eaa887163bb4d2ea4b4458cb4e7c5c2f346bc6) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.2.1) - -## v1.2.0 - Signer / Quota fixes. Error mapping fix. K8 improvements - -Published 2018-06-25 10:42:52 +0000 UTC - -The Log Signer now tries to avoid creating roots older than ones that already -exist. This issue has been seen occurring on a test system. Important note: If -running this code in production allowing clocks to drift out of sync between -nodes can cause other problems including for clustering and database -replication. - -The Log Signer now publishes metrics for the logs that it is actively signing. -In a clustered environment responsibility can be expected to move around between -signer instances over time. - -The Log API now allows personalities to explicitly list a vector of identifiers -which should be charged for `User` quota. This allows a more nuanced application -of request rate limiting across multiple dimensions. Some fixes have also been -made to quota handling e.g. batch requests were not reserving the appropriate -quota. Consult the corresponding PRs for more details. - -For the log RPC server APIs `GetLeavesByIndex` and `GetLeavesByRange` MySQL -storage has been modified to return status codes that match CloudSpanner. -Previously some requests with out of range parameters were receiving 5xx error -status rather than 4xx when errors were mapped to the HTTP space by CTFE. - -The Kubernetes deployment scripts continue to evolve and improve. - -Commit -[aef10347dba1bd86a0fcb152b47989d0b51ba1fa](https://api.github.com/repos/google/trillian/commits/aef10347dba1bd86a0fcb152b47989d0b51ba1fa) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.2.0) - -## v1.1.1 - CloudSpanner / Tracing / Health Checks - -Published 2018-05-08 12:55:34 +0000 UTC - -More improvements have been made to the CloudSpanner storage code. CloudSpanner -storage has now been tested up to ~3.1 billion log entries. - -Explicit health checks have been added to the gRPC Log and Map servers (and the -log signer). The HTTP endpoint must be enabled and the checks will serve on -`/healthz` where a non 200 response means the server is unhealthy. The example -Kubernetes deployment configuration has been updated to include them. Other -improvements have been made to the Kubernetes deployment scripts and docs. - -The gRPC Log and Map servers have been instrumented for tracing with -[OpenCensus](https://opencensus.io/). For GCP it just requires the `--tracing` -flag to be added and results will be available in the GCP console under -StackDriver -> Trace. - -Commit -[3a68a845f0febdd36937c15f1d97a3a0f9509440](https://api.github.com/repos/google/trillian/commits/3a68a845f0febdd36937c15f1d97a3a0f9509440) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.1.1) - -## v1.1.0 - CloudSpanner Improvements & Log Root structure changes etc. - -Published 2018-04-17 08:02:50 +0000 UTC - -Changes are in progress (e.g. see #1037) to rework the internal signed root -format used by the log RPC server to be more useful / interoperable. Currently -they are mostly internal API changes to the log and map servers. However, the -`signature` and `log_id` fields in SignedLogRoot have been deleted and users -must unpack the serialized structure to access these now. This change is not -backwards compatible. - -Changes have been made to log server APIs and CT frontends for when a request -hits a server that has an earlier version of the tree than is needed to satisfy -the request. In these cases the log server used to return an error but now -returns an empty proof along with the current STH it has available. This allows -clients to detect these cases and handle them appropriately. - -The CloudSpanner schema has changed. If you have a database instance you'll need -to recreate it with the new schema. Performance has been noticeably improved -since the previous release and we have tested it to approx one billion log -entries. Note: This code is still being developed and further changes are -possible. - -Support for `sqlite` in unit tests has been removed because of ongoing issues -with flaky tests. These were caused by concurrent accesses to the same database, -which it doesn't support. The use of `sqlite` in production has never been -supported and it should not be used for this. - -Commit -[9a5dc6223bab0e1061b66b49757c2418c47b9f29](https://api.github.com/repos/google/trillian/commits/9a5dc6223bab0e1061b66b49757c2418c47b9f29) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.1.0) - -## v1.0.8 - Docker Updates / Freezing Logs / CloudSpanner Options - -Published 2018-03-08 13:42:11 +0000 UTC - -The Docker image files have been updated and the database has been changed to -`MariaDB 10.1`. - -A `ReadOnlyStaleness` option has been added to the experimental CloudSpanner -storage. This allows for tuning that might increase performance in some -scenarios by issuing read transactions with the `exact_staleness` option set -rather than `strong_read`. For more details see the -[CloudSpanner TransactionOptions](https://cloud.google.com/spanner/docs/reference/rest/v1/TransactionOptions) -documentation. - -The `LogVerifier` interface has been removed from the log client, though the -functionality is still available. It is unlikely that there were implementations -by third-parties. - -A new `TreeState DRAINING` has been added for trees with `TreeType LOG`. This is -to support logs being cleanly frozen. A log tree in this state will not accept -new entries via `QueueLeaves` but will continue to integrate any that were -previously queued. When the queue of pending entries has been emptied the tree -can be set to the `FROZEN` state safely. For MySQL storage this requires a -schema update to add `'DRAINING'` to the enum of valid states. - -A command line utility `updatetree` has been added to allow tree states to be -changed. This is also to support cleanly freezing logs. - -A 'howto' document has been added that explains how to freeze a log tree using -the features added in this release. - -Commit -[0e6d950b872d19e42320f4714820f0fe793b9913](https://api.github.com/repos/google/trillian/commits/0e6d950b872d19e42320f4714820f0fe793b9913) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.8) - -## v1.0.7 - Storage API Changes, Schema Tweaks - -Published 2018-03-01 11:16:32 +0000 UTC - -Note: A large number of storage related API changes have been made in this -release. These will probably only affect developers writing their own storage -implementations. - -A new tree type `ORDERED_LOG` has been added for upcoming mirror support. This -requires a schema change before it can be used. This change can be made when -convenient and can be deferred until the functionality is available and needed. -The definition of the `TreeType` column enum should be changed to `ENUM('LOG', -'MAP', 'PREORDERED_LOG') NOT NULL` - -Some storage interfaces were removed in #977 as they only had one -implementation. We think this won't cause any impact on third parties and are -willing to reconsider this change if it does. - -The gRPC Log and Map server APIs have new methods `InitLog` and `InitMap` which -prepare newly created trees for use. Attempting to use trees that have not been -initialized will return the `FAILED_PRECONDITION` error -`storage.ErrTreeNeedsInit`. - -The gRPC Log server API has new methods `AddSequencedLeaf` and -`AddSequencedLeaves`. These are intended to support mirroring applications and -are not yet implemented. - -Storage APIs have been added such as `ReadWriteTransaction` which allows the -underlying storage to manage the transaction and optionally retry until success -or timeout. This is a more natural fit for some types of storage API such as -[CloudSpanner](https://cloud.google.com/spanner/docs/transactions) and possibly -other environments with managed transactions. - -The older `BeginXXX` methods were removed from the APIs. It should be fairly -easy to convert a custom storage implementation to the new API format as can be -seen from the changes made to the MySQL storage. - -The `GetOpts` options are no longer used by storage. This fixed the strange -situation of storage code having to pass manufactured dummy instances to -`GetTree`, which was being called in all the layers involved in request -processing. Various internal APIs were modified to take a `*trillian.Tree` -instead of an `int64`. - -A new storage implementation has been added for CloudSpanner. This is currently -experimental and does not yet support Map trees. We have also added Docker -examples for running Trillian in Google Cloud with CloudSpanner. - -The maximum size of a `VARBINARY` column in MySQL is too small to properly -support Map storage. The type has been changed in the schema to `MEDIUMBLOB`. -This can be done in place with an `ALTER TABLE` command but this could very be -slow for large databases as it is a change to the physical row layout. Note: -There is no need to make this change to the database if you are only using it -for Log storage e.g. for Certificate Transparency servers. - -The obsolete programs `queue_leaves` and `fetch_leaves` have been deleted. - -Commit -[7d73671537ca2a4745dc94da3dc93d32d7ce91f1](https://api.github.com/repos/google/trillian/commits/7d73671537ca2a4745dc94da3dc93d32d7ce91f1) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.7) - -## v1.0.6 - GetLeavesByRange. 403 Permission Errors. Signer Metrics. - -Published 2018-02-05 16:00:26 +0000 UTC - -A new log server RPC API has been added to get leaves in a range. This is a more -natural fit for CT type applications as it more closely follows the CT HTTP API. - -The server now returns 403 for permission denied where it used to return 500 -errors. This follows the behaviour of the C++ implementation. - -The log signer binary now reports metrics for the number it has signed and the -number of errors that have occurred. This is intended to give more insight into -the state of the queue and integration processing. - -Commit -[b20b3109af7b68227c83c5d930271eaa4f0be771](https://api.github.com/repos/google/trillian/commits/b20b3109af7b68227c83c5d930271eaa4f0be771) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.6) - -## v1.0.5 - TLS, Merge Delay Metrics, Easier Admin Tests - -Published 2018-02-07 09:41:08 +0000 UTC - -The API protos have been rebuilt with gRPC 1.3. - -Timestamps have been added to the log leaves in the MySQL database. Before -upgrading to this version you **must** make the following schema changes: - -* Add the following column to the `LeafData` table. If you have existing data - in the queue you might have to remove the NOT NULL clause: - `QueueTimestampNanos BIGINT NOT NULL` - -* Add the following column to the `SequencedLeafData` table: - `IntegrateTimestampNanos BIGINT NOT NULL` - -The above timestamps are used to export metrics via monitoring that give the -merge delay for each tree that is in use. This is a good metric to use for -alerting on. - -The Log and Map RPC servers now support TLS. - -AdminServer tests have been improved. - -Commit -[dec673baf984c3d22d7b314011d809258ec36821](https://api.github.com/repos/google/trillian/commits/dec673baf984c3d22d7b314011d809258ec36821) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.5) - -## v1.0.4 - Fix election issue. Large vendor updates. - -Published 2018-02-05 15:42:25 +0000 UTC - -An issue has been fixed where the master for a log could resign from the -election while it was in the process of integrating a batch of leaves. We do not -believe this could cause any issues with data integrity because of the versioned -tree storage. - -This release includes a large number of vendor commits merged to catch up with -etcd 3.2.10 and gRPC v1.3. - -Commit -[1713865ecca0dc8f7b4a8ed830a48ae250fd943b](https://api.github.com/repos/google/trillian/commits/1713865ecca0dc8f7b4a8ed830a48ae250fd943b) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.4) - -## v1.0.3 - Auth API. Interceptor fixes. Request validation + More - -Published 2018-02-05 15:33:08 +0000 UTC - -An authorization API has been added to the interceptors. This is intended for -future development and integration. - -Issues where the interceptor would not time out on `PutTokens` have been fixed. -This should make the quota system more robust. - -A bug has been fixed where the interceptor did not pass the context deadline -through to other requests it made. This would cause some failing requests to do -so after longer than the deadline with a misleading reason in the log. It did -not cause request failures if they would otherwise succeed. - -Metalinter has been added and the code has been cleaned up where appropriate. - -Docker and Kubernetes scripts have been available and images are now built with -Go 1.9. - -Sqlite has been introduced for unit tests where possible. Note that it is not -multi threaded and cannot support all our testing scenarios. We still require -MySQL for integration tests. Please note that Sqlite **must not** be used for -production deployments as RPC servers are multi threaded database clients. - -The Log RPC server now applies tighter validation to request parameters than -before. It's possible that some requests will be rejected. This should not -affect valid requests. - -The admin server will only create trees for the log type it is hosted in. For -example the admin server running in the Log server will not create Map trees. -This may be reviewed in future as applications can legitimately use both tree -types. - -Commit -[9d08b330ab4270a8e984072076c0b3e84eb4601b](https://api.github.com/repos/google/trillian/commits/9d08b330ab4270a8e984072076c0b3e84eb4601b) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.3) - -## v1.0.2 - TreeGC, Go 1.9, Update Private Keys. - -Published 2018-02-05 15:18:40 +0000 UTC - -Go 1.9 is required. - -It is now possible to update private keys via the admin API and this was added -to the available field masks. The key storage format has not changed so we -believe this change is transparent. - -Deleted trees are now garbage collected after an interval. This hard deletes -them and they cannot be recovered. Be aware of this before upgrading if you have -any that are in a soft deleted state. - -The Admin RPC API has been extended to allow trees to be undeleted - up to the -point where they are hard deleted as set out above. - -Commit -[442511ad82108654033c9daa4e72f8a79691dd32](https://api.github.com/repos/google/trillian/commits/442511ad82108654033c9daa4e72f8a79691dd32) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.2) - -## v1.0.1 - Batched Queue Option Added - -Published 2018-02-05 14:49:33 +0000 UTC - -Apart from fixes this release includes the option for a batched queue. This has -been reported to allow faster sequencing but is not enabled by default. - -If you want to switch to this you must build the code with the `--tags -batched_queue` option. You must then also apply a schema change if you are -running with a previous version of the database. Add the following column to the -`Unsequenced` table: - -`QueueID VARBINARY(32) DEFAULT NULL` - -If you don't plan to switch to the `batched_queue` mode then you don't need to -make the above change. - -Commit -[afd178f85c963f56ad2ae7d4721d139b1d6050b4](https://api.github.com/repos/google/trillian/commits/afd178f85c963f56ad2ae7d4721d139b1d6050b4) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0.1) - -## v1.0 - First Log version we believe was ready for use. To support CT. - -Published 2018-02-05 13:51:55 +0000 UTC - -Quota metrics published. Quota admin api + server implemented. Improvements to -local / AWS deployment. Map fixes and further development. ECDSA key handling -improvements. Key factory improvements. Code coverage added. Quota integration -test added. Etcd quota support in log and map connected up. Incompatibility with -C++ code fixed where consistency proof requests for first == second == 0 were -rejected. - -Commit -[a6546d092307f6e0d396068066033b434203824d](https://api.github.com/repos/google/trillian/commits/a6546d092307f6e0d396068066033b434203824d) -Download [zip](https://api.github.com/repos/google/trillian/zipball/v1.0) |