diff --git a/README.md b/README.md index 37e846f31..2ebb332e8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Trillian Tessera -[![Go Report Card](https://goreportcard.com/badge/github.com/transparency-dev/trillian-tessera)](https://goreportcard.com/report/github.com/transparency-dev/trillian-tessera) -[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/transparency-dev/trillian-tessera/badge)](https://scorecard.dev/viewer/?uri=github.com/transparency-dev/trillian-tessera) -[![Benchmarks](https://img.shields.io/badge/Benchmarks-blue.svg)](https://transparency-dev.github.io/trillian-tessera/dev/bench/) +[![Go Report Card](https://goreportcard.com/badge/github.com/transparency-dev/tessera)](https://goreportcard.com/report/github.com/transparency-dev/tessera) +[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/transparency-dev/tessera/badge)](https://scorecard.dev/viewer/?uri=github.com/transparency-dev/tessera) +[![Benchmarks](https://img.shields.io/badge/Benchmarks-blue.svg)](https://transparency-dev.github.io/tessera/dev/bench/) [![Slack Status](https://img.shields.io/badge/Slack-Chat-blue.svg)](https://transparency-dev.slack.com/) Trillian Tessera is a Go library for building [tile-based transparency logs (tlogs)](https://c2sp.org/tlog-tiles). @@ -41,7 +41,7 @@ into any other API, this strategy will lose a lot of the read scaling that Tesse ## Status -Tessera is under active development, with an [alpha 2 release](https://github.com/transparency-dev/trillian-tessera/releases/tag/v0.1.1) available now. +Tessera is under active development, with an [alpha 3 release](https://github.com/transparency-dev/tessera/releases/tag/v0.1.2) available now. Users of GCP, AWS, MySQL, and POSIX are welcome to try the relevant [Getting Started](#getting-started) guide. ## Roadmap @@ -83,7 +83,7 @@ This section introduces concepts and terms that will be used throughout the user ### Sequencing -When data is added to a log, it is first stored in memory for some period (this can be controlled via the [batching options](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera#WithBatching)). +When data is added to a log, it is first stored in memory for some period (this can be controlled via the [batching options](https://pkg.go.dev/github.com/transparency-dev/tessera#WithBatching)). If the process dies in this state, the entry will be lost. Once a batch of entries is processed by the sequencer, the new data will transition from a volatile state to one where it is durably assigned an index. @@ -107,9 +107,9 @@ Once this process has been completed, a new entry will: ### Publishing Publishing is a background process that creates a new Checkpoint for the latest tree. -This background process runs periodically (configurable via [WithCheckpointInterval](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera#AppendOptions.WithCheckpointInterval) and performs the following steps: - 1. Create a new Checkpoint and sign it with the signer provided by [WithCheckpointSigner](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera#AppendOptions.WithCheckpointSigner) - 2. Contact witnesses and collect enough countersignatures to satisfy any witness policy configured by [WithWitnesses](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera#AppendOptions.WithWitnesses) +This background process runs periodically (configurable via [WithCheckpointInterval](https://pkg.go.dev/github.com/transparency-dev/tessera#AppendOptions.WithCheckpointInterval) and performs the following steps: + 1. Create a new Checkpoint and sign it with the signer provided by [WithCheckpointSigner](https://pkg.go.dev/github.com/transparency-dev/tessera#AppendOptions.WithCheckpointSigner) + 2. Contact witnesses and collect enough countersignatures to satisfy any witness policy configured by [WithWitnesses](https://pkg.go.dev/github.com/transparency-dev/tessera#AppendOptions.WithWitnesses) 3. If the witness policy is satisfied, make this new Checkpoint public available An entry is considered published once it is committed to by a published Checkpoint (i.e. a published Checkpoint's size is larger than the entry's assigned index). @@ -172,20 +172,20 @@ You'll need to import the Tessera library: ```shell # This imports the library at main. # This should be set to the latest release version to get a stable release. -go get github.com/transparency-dev/trillian-tessera@main +go get github.com/transparency-dev/tessera@main ``` #### Constructing the Appender Import the main `tessera` package, and the driver for the storage backend you want to use: ```go file=README_test.go region=common_imports - tessera "github.com/transparency-dev/trillian-tessera" + "github.com/transparency-dev/tessera" // Choose one! - "github.com/transparency-dev/trillian-tessera/storage/posix" - // "github.com/transparency-dev/trillian-tessera/storage/aws" - // "github.com/transparency-dev/trillian-tessera/storage/gcp" - // "github.com/transparency-dev/trillian-tessera/storage/mysql" + "github.com/transparency-dev/tessera/storage/posix" + // "github.com/transparency-dev/tessera/storage/aws" + // "github.com/transparency-dev/tessera/storage/gcp" + // "github.com/transparency-dev/tessera/storage/mysql" ``` @@ -226,7 +226,7 @@ Now the fun part - writing to the log! ``` The `AppendOptions` allow Tessera behaviour to be tuned. -Take a look at the methods named `With*` on the `AppendOptions` struct in the root package, e.g. [`WithBatching`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#AppendOptions.WithBatching) to see the available options are how they should be used. +Take a look at the methods named `With*` on the `AppendOptions` struct in the root package, e.g. [`WithBatching`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#AppendOptions.WithBatching) to see the available options are how they should be used. Writing to the log follows this flow: 1. Call `Add` with a new entry created with the data to be added as a leaf in the log. @@ -276,8 +276,8 @@ The antispam mechanism consists of two layers which sit in front of the underlyi version's assigned position in the log. These layes are configured by the `WithAntispam` method of the -[AppendOptions](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#AppendOptions.WithAntispam) and -[MigrateOptions](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#AppendOptions.WithAntispam). +[AppendOptions](https://pkg.go.dev/github.com/transparency-dev/tessera@main#AppendOptions.WithAntispam) and +[MigrateOptions](https://pkg.go.dev/github.com/transparency-dev/tessera@main#AppendOptions.WithAntispam). > [!Tip] > Persistent antispam is fairly expensive in terms of storage-compute, so should only be used where it is actually necessary. @@ -293,14 +293,14 @@ Logs are required to be append-only data structures. This property can be verified by witnesses, and signatures from witnesses can be provided in the published checkpoint to increase confidence for users of the log. Personalities can configure Tessera with options that specify witnesses compatible with the [C2SP Witness Protocol](https://github.com/C2SP/C2SP/blob/main/tlog-witness.md). -Configuring the witnesses is done by creating a top-level [`WitnessGroup`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#WitnessGroup) that contains either sub `WitnessGroup`s or [`Witness`es](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#Witness). +Configuring the witnesses is done by creating a top-level [`WitnessGroup`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#WitnessGroup) that contains either sub `WitnessGroup`s or [`Witness`es](https://pkg.go.dev/github.com/transparency-dev/tessera@main#Witness). Each `Witness` is configured with a URL at which the witness can be requested to make witnessing operations via the C2SP Witness Protocol, and a Verifier for the key that it must sign with. `WitnessGroup`s are configured with their sub-components, and a number of these components that must be satisfied in order for the group to be satisfied. These primitives allow arbitrarily complex witness policies to be specified. Once a top-level `WitnessGroup` is configured, it is passed in to the `Appender` lifecycle options using -[AppendOptions#WithWitnesses](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#AppendOptions.WithWitnesses). +[AppendOptions#WithWitnesses](https://pkg.go.dev/github.com/transparency-dev/tessera@main#AppendOptions.WithWitnesses). If this method is not called then no witnessing will be configured. > [!Note] @@ -309,7 +309,7 @@ If this method is not called then no witnessing will be configured. ### Synchronous Publication -Synchronous Publication is provided by [`tessera.PublicationAwaiter`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera#PublicationAwaiter). +Synchronous Publication is provided by [`tessera.PublicationAwaiter`](https://pkg.go.dev/github.com/transparency-dev/tessera#PublicationAwaiter). This allows applications built with Tessera to block until leaves passed via calls to `Add()` are committed to via a public checkpoint. > [!Tip] @@ -322,19 +322,19 @@ This allows applications built with Tessera to block until leaves passed via cal This is the most common lifecycle mode. Appender allows the application to add leaves, which will be assigned positions in the log contiguous to any entries the log has already committed to. -This mode is instantiated via [`tessera.NewAppender`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#NewAppender), and -configured using the [`tessera.NewAppendOptions`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#NewAppendOptions) struct. +This mode is instantiated via [`tessera.NewAppender`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#NewAppender), and +configured using the [`tessera.NewAppendOptions`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#NewAppendOptions) struct. This is described above in [Constructing the Appender](#constructing-the-appender). -See more details in the [Lifecycle Design: Appender](https://github.com/transparency-dev/trillian-tessera/blob/main/docs/design/lifecycle.md#appender). +See more details in the [Lifecycle Design: Appender](https://github.com/transparency-dev/tessera/blob/main/docs/design/lifecycle.md#appender). ### Migration Target This mode is used to migrate a log from one location to another. -This is instantiated via [`tessera.NewMigrationTarget`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#NewMigrationTarget), -and configured using the [`tessera.NewMigratonOptions`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#NewMigrationOptions) struct. +This is instantiated via [`tessera.NewMigrationTarget`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#NewMigrationTarget), +and configured using the [`tessera.NewMigratonOptions`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#NewMigrationOptions) struct. > [!Tip] > This mode enables the migration of logs between different Tessera storage backends, e.g. you may wish to switch @@ -349,13 +349,13 @@ These binaries take the URL of a remote tiled log, and copy it into the target l These binaries ought to be sufficient for most use-cases. Users that need to write their own migration binary should use the provided binaries as a reference codelab. -See more details in the [Lifecycle Design: Migration](https://github.com/transparency-dev/trillian-tessera/blob/main/docs/design/lifecycle.md#migration). +See more details in the [Lifecycle Design: Migration](https://github.com/transparency-dev/tessera/blob/main/docs/design/lifecycle.md#migration). ### Freezing a Log Freezing a log prevents new writes to the log, but still allows read access. We recommend that operators allow all pending [sequenced](#sequencing) entries to be [integrated](#integration), and all integrated entries to be [published](#publishing) via a Checkpoint before proceeding. -Once all pending entries are published, the log is now _quiescent_, as described in [Lifecycle Design: Quiescent](https://github.com/transparency-dev/trillian-tessera/blob/main/docs/design/lifecycle.md#quiescent). +Once all pending entries are published, the log is now _quiescent_, as described in [Lifecycle Design: Quiescent](https://github.com/transparency-dev/tessera/blob/main/docs/design/lifecycle.md#quiescent). To ensure all pending entries are published, keep an instance object for the current lifecycle state in a running process, but disable writes to this at the personality level. For example, a personality that takes HTTP requests from the Internet and calls `Appender.Add` should keep a process running with an `Appender`, but disable any code paths that lead to `Add` being invoked (e.g. by flipping a flag that changes this behaviour). diff --git a/README_test.go b/README_test.go index b680fcf82..040fa9648 100644 --- a/README_test.go +++ b/README_test.go @@ -32,13 +32,13 @@ import ( "testing" // #region common_imports - tessera "github.com/transparency-dev/trillian-tessera" + "github.com/transparency-dev/tessera" // Choose one! - "github.com/transparency-dev/trillian-tessera/storage/posix" - // "github.com/transparency-dev/trillian-tessera/storage/aws" - // "github.com/transparency-dev/trillian-tessera/storage/gcp" - // "github.com/transparency-dev/trillian-tessera/storage/mysql" + "github.com/transparency-dev/tessera/storage/posix" + // "github.com/transparency-dev/tessera/storage/aws" + // "github.com/transparency-dev/tessera/storage/gcp" + // "github.com/transparency-dev/tessera/storage/mysql" // #endregion "golang.org/x/mod/sumdb/note" diff --git a/SECURITY.md b/SECURITY.md index 26ac346dc..004aa3fa7 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,6 +4,6 @@ **Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.** -To report a security issue, please use the GitHub Security Advisory ["Report a Vulnerability"](https://github.com/transparency-dev/trillian-tessera/security/advisories) tab. +To report a security issue, please use the GitHub Security Advisory ["Report a Vulnerability"](https://github.com/transparency-dev/tessera/security/advisories) tab. We ask you to submit high-quality reports, including as many details as possible, a buildable proof of concept against a recent build, a crash dump if available, and instructions on reproducing the issue. Please also include information about the affected software version, a description of the issue’s impact, and an attack scenario, as that helps us assess the vulnerability quickly and effectively. diff --git a/api/layout/example_test.go b/api/layout/example_test.go index db824a6e4..0e87ec1d2 100644 --- a/api/layout/example_test.go +++ b/api/layout/example_test.go @@ -17,7 +17,7 @@ package layout_test import ( "fmt" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera/api/layout" ) func ExampleNodeCoordsToTileAddress() { diff --git a/api/state.go b/api/state.go index d86e67cc2..92825d713 100644 --- a/api/state.go +++ b/api/state.go @@ -23,7 +23,7 @@ import ( "encoding/binary" "fmt" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera/api/layout" ) // HashTile represents a tile within the Merkle hash tree. diff --git a/api/state_test.go b/api/state_test.go index 86333e197..c9bd4d600 100644 --- a/api/state_test.go +++ b/api/state_test.go @@ -24,8 +24,8 @@ import ( "testing" "github.com/google/go-cmp/cmp" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" ) func TestHashTile_MarshalTileRoundtrip(t *testing.T) { diff --git a/append_lifecycle.go b/append_lifecycle.go index de24e051c..ee2854c8d 100644 --- a/append_lifecycle.go +++ b/append_lifecycle.go @@ -27,10 +27,10 @@ import ( f_log "github.com/transparency-dev/formats/log" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/otel" - "github.com/transparency-dev/trillian-tessera/internal/parse" - "github.com/transparency-dev/trillian-tessera/internal/witness" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/otel" + "github.com/transparency-dev/tessera/internal/parse" + "github.com/transparency-dev/tessera/internal/witness" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/metric" "golang.org/x/mod/sumdb/note" diff --git a/await.go b/await.go index 895a5a0af..3070e3cdf 100644 --- a/await.go +++ b/await.go @@ -24,7 +24,7 @@ import ( "container/list" - "github.com/transparency-dev/trillian-tessera/internal/parse" + "github.com/transparency-dev/tessera/internal/parse" "k8s.io/klog/v2" ) diff --git a/await_test.go b/await_test.go index e989dc8d1..ea7a00d42 100644 --- a/await_test.go +++ b/await_test.go @@ -26,7 +26,7 @@ import ( "testing" "github.com/transparency-dev/formats/log" - tessera "github.com/transparency-dev/trillian-tessera" + "github.com/transparency-dev/tessera" "golang.org/x/mod/sumdb/note" ) diff --git a/client/client.go b/client/client.go index cc212ff14..07910439d 100644 --- a/client/client.go +++ b/client/client.go @@ -29,9 +29,9 @@ import ( "github.com/transparency-dev/merkle/compact" "github.com/transparency-dev/merkle/proof" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/otel" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/otel" "golang.org/x/mod/sumdb/note" ) diff --git a/client/client_test.go b/client/client_test.go index 50f99bf84..a48e80e21 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -25,8 +25,8 @@ import ( "github.com/transparency-dev/formats/log" "github.com/transparency-dev/merkle/compact" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" "golang.org/x/mod/sumdb/note" ) diff --git a/client/fetcher.go b/client/fetcher.go index 9e80bf0db..46672f943 100644 --- a/client/fetcher.go +++ b/client/fetcher.go @@ -24,7 +24,7 @@ import ( "path" "strings" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera/api/layout" "k8s.io/klog/v2" ) diff --git a/client/otel.go b/client/otel.go index 021ec5260..d2b420860 100644 --- a/client/otel.go +++ b/client/otel.go @@ -19,7 +19,7 @@ import ( "go.opentelemetry.io/otel/attribute" ) -const name = "github.com/transparency-dev/trillian-tessera/client" +const name = "github.com/transparency-dev/tessera/client" var ( tracer = otel.Tracer(name) diff --git a/cmd/conformance/aws/main.go b/cmd/conformance/aws/main.go index f01aee237..2a837a93a 100644 --- a/cmd/conformance/aws/main.go +++ b/cmd/conformance/aws/main.go @@ -28,9 +28,9 @@ import ( "github.com/aws/aws-sdk-go-v2/credentials" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/go-sql-driver/mysql" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/storage/aws" - aws_as "github.com/transparency-dev/trillian-tessera/storage/aws/antispam" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/storage/aws" + aws_as "github.com/transparency-dev/tessera/storage/aws/antispam" "golang.org/x/mod/sumdb/note" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" diff --git a/cmd/conformance/demo.cast b/cmd/conformance/demo.cast index 34a2c79e8..a3a79aa95 100644 --- a/cmd/conformance/demo.cast +++ b/cmd/conformance/demo.cast @@ -1,10 +1,10 @@ {"version": 2, "width": 113, "height": 34, "timestamp": 1727258639, "env": {"SHELL": "/bin/zsh", "TERM": "screen-256color"}} -[0.030351, "o", "\u001b[0m\u001b[49m\u001b[39m\u001b[23m\u001b[24m\r\u001b[K\r\n\r\n\u001b[2A\u001b7\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/git/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/cmd/conformance/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[49m\u001b[34m\u001b[0m\u001b[34m\u001b[49m\u001b[39m\u001b[38;5;244m─────────────\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:03:59\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[?2004h"] +[0.030351, "o", "\u001b[0m\u001b[49m\u001b[39m\u001b[23m\u001b[24m\r\u001b[K\r\n\r\n\u001b[2A\u001b7\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/git/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/cmd/conformance/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[49m\u001b[34m\u001b[0m\u001b[34m\u001b[49m\u001b[39m\u001b[38;5;244m─────────────\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:03:59\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[?2004h"] [0.177885, "o", "\u001b[?25l"] [0.178087, "o", "\u001b8\u001b[0m\u001b[49m\u001b[39m\u001b[23m\u001b[24m\u001b[J"] -[0.179528, "o", "\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007\u001bk../mysql/docker\u001b\\\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] +[0.179528, "o", "\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007\u001bk../mysql/docker\u001b\\\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] [0.17966, "o", "\u001b[0m\u001b[38;5;254m\u001b[49m\u001b[39m\u001b[23m\u001b[24m\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r\u001b[0m\u001b[49m\u001b[39m\u001b[23m\u001b[24m\u001b[K"] -[0.184357, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:03:59\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47"] +[0.184357, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:03:59\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47"] [0.184388, "o", "m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [0.184493, "o", "\u001b[?1h\u001b="] [0.185412, "o", "\u001b[?25h"] @@ -81,8 +81,8 @@ [6.539201, "o", " \u001b[32m✔\u001b[0m Container tessera-conformance-mysql \u001b[32mStarted\u001b[0m \u001b[34m10.9s \u001b[0m\r\n\u001b[?25h"] [6.542471, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [6.542665, "o", "\u001bk../mysql/docker\u001b\\"] -[6.560902, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[6.570385, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m\r\n\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] +[6.560902, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[6.570385, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m\r\n\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [6.570488, "o", "\u001b[?1h\u001b="] [6.571588, "o", "\u001b[?2004h"] [7.098436, "o", "d"] @@ -132,8 +132,8 @@ [7.947078, "o", "I0925 10:04:13.992164 1 main.go:213] Initializing database schema\r\nI0925 10:04:14.015320 1 main.go:233] Database schema initialized\r\nI0925 10:04:14.022598 1 mysql.go:82] Initializing checkpoint\r\nI0925 10:04:14.024053 1 main.go:82] Environment variables useful for accessing this log:\r\nexport WRITE_URL=http://localhost:2024/ \r\nexport READ_URL=http://localhost:2024/ \r\nexport LOG_PUBLIC_KEY=transparency.dev/tessera/example+ae330e15+ASf4/L1zE859VqlfQgGzKy34l91Gl8W6wfwp+vKP62DW\r\n"] [7.948494, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [7.94874, "o", "\u001bk../mysql/docker\u001b\\"] -[7.965147, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[7.973821, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:15\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[7.965147, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[7.973821, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:15\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [7.973846, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [7.973944, "o", "\u001b[?1h\u001b="] [7.975077, "o", "\u001b[?2004h"] @@ -332,8 +332,8 @@ [10.093693, "o", "\u001b]133;C;\u0007"] [10.093904, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [10.094016, "o", "\u001bk../mysql/docker\u001b\\"] -[10.10987, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[10.118122, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:22\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[10.10987, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[10.118122, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:22\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [10.118176, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [10.118282, "o", "\u001b[?1h\u001b="] [10.119428, "o", "\u001b[?2004h"] @@ -416,8 +416,8 @@ [15.074474, "o", "0"] [15.075172, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [15.075413, "o", "\u001bk../mysql/docker\u001b\\"] -[15.091904, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[15.100401, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:27\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[15.091904, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[15.100401, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:27\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [15.100465, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [15.100517, "o", "\u001b[?1h\u001b="] [15.101465, "o", "\u001b[?2004h"] @@ -450,8 +450,8 @@ [19.074446, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [19.074589, "o", "\u001bk../mysql/docker\u001b\\"] [19.09114, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007"] -[19.091237, "o", "\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[19.099773, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:31\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[19.091237, "o", "\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[19.099773, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:31\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [19.099865, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [19.099905, "o", "\u001b[?1h\u001b="] [19.101085, "o", "\u001b[?2004h"] @@ -487,8 +487,8 @@ [24.575167, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [24.575336, "o", "\u001bk../mysql/docker\u001b\\"] [24.591653, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007"] -[24.591675, "o", "\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[24.600283, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:37\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[24.591675, "o", "\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[24.600283, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:37\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [24.600325, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [24.600428, "o", "\u001b[?1h\u001b="] [24.601557, "o", "\u001b[?2004h"] @@ -531,8 +531,8 @@ [27.560075, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [27.560303, "o", "\u001bk../mysql/docker\u001b\\"] [27.576918, "o", "\u001b]133;D;0\u0007"] -[27.577018, "o", "\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[27.585479, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:40\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[27.577018, "o", "\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[27.585479, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:40\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [27.585514, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [27.585582, "o", "\u001b[?1h\u001b="] [27.586684, "o", "\u001b[?2004h"] @@ -591,8 +591,8 @@ [30.186916, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [30.187113, "o", "\u001bk../mysql/docker\u001b\\"] [30.203469, "o", "\u001b]133;D;0\u0007"] -[30.203572, "o", "\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[30.211997, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:42\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] +[30.203572, "o", "\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[30.211997, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/mysql/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m───\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[33m mhutchinson@thinkcentre\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m \u001b[0m\u001b[33m\u001b[40m\u001b[40m\u001b[33m\u001b[37m\u001b[0m\u001b[37m\u001b[40m\u001b[47m\u001b[30m 10:04:42\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b["] [30.212101, "o", "47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [30.212181, "o", "\u001b[?1h\u001b="] [30.213213, "o", "\u001b[?2004h"] @@ -779,8 +779,8 @@ [39.548631, "o", "\u001b[34h\u001b[?25h\u001b[39;49m\u001b[m\u000f\u001b[?1l\u001b>\u001b[H\u001b[J\u001b[?1049l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?2004l\u001b[?1004l"] [39.553952, "o", "\u001b[1m\u001b[3m%\u001b[23m\u001b[1m\u001b[0m \r \r"] [39.554125, "o", "\u001bk../mysql/docker\u001b\\"] -[39.570812, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/trillian-tessera/cmd/conformance/mysql/docker\u0007"] -[39.579978, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtrillian-tessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m\r\n\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] +[39.570812, "o", "\u001b]133;D;0\u0007\u001b]1337;RemoteHost=mhutchinson@thinkcentre\u0007\u001b]1337;CurrentDir=/home/mhutchinson/git/tessera/cmd/conformance/mysql/docker\u0007"] +[39.579978, "o", "\r\u001b[0m\u001b[23m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b]133;A\u0007\r\n\r\n\u001bM\u001b[0m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[47m\u001b[38;5;232m \u001b[0m\u001b[38;5;232m\u001b[47m\u001b[44m\u001b[37m\u001b[0m\u001b[37m\u001b[44m\u001b[44m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mtessera\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mcm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mc\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[38;5;250mm\u001b[0m\u001b[38;5;250m\u001b[44m\u001b[44m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mdocker\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m codelab-demo \u001b[30m!3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;244m\r\n\u001b[0m\u001b[38;5;244m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b]133;B\u0007\u001b[K"] [39.580161, "o", "\u001b[?1h\u001b="] [39.581605, "o", "\u001b[?2004h"] [41.113782, "o", "\u001b[?2004l\r\r\n"] diff --git a/cmd/conformance/gcp/main.go b/cmd/conformance/gcp/main.go index b6272d496..ddf8e48de 100644 --- a/cmd/conformance/gcp/main.go +++ b/cmd/conformance/gcp/main.go @@ -24,9 +24,9 @@ import ( "net/http" "time" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/storage/gcp" - gcp_as "github.com/transparency-dev/trillian-tessera/storage/gcp/antispam" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/storage/gcp" + gcp_as "github.com/transparency-dev/tessera/storage/gcp/antispam" "golang.org/x/mod/sumdb/note" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" diff --git a/cmd/conformance/mysql/main.go b/cmd/conformance/mysql/main.go index 91bea8aff..d8d25d85d 100644 --- a/cmd/conformance/mysql/main.go +++ b/cmd/conformance/mysql/main.go @@ -27,9 +27,9 @@ import ( "os" "time" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/storage/mysql" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/storage/mysql" "golang.org/x/mod/sumdb/note" "k8s.io/klog/v2" ) diff --git a/cmd/conformance/posix/main.go b/cmd/conformance/posix/main.go index e3c085bb8..a1721ab07 100644 --- a/cmd/conformance/posix/main.go +++ b/cmd/conformance/posix/main.go @@ -30,9 +30,9 @@ import ( "golang.org/x/mod/sumdb/note" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/storage/posix" - badger_as "github.com/transparency-dev/trillian-tessera/storage/posix/antispam" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/storage/posix" + badger_as "github.com/transparency-dev/tessera/storage/posix/antispam" "k8s.io/klog/v2" ) diff --git a/cmd/examples/posix-oneshot/main.go b/cmd/examples/posix-oneshot/main.go index 884eb1132..a700f5a48 100644 --- a/cmd/examples/posix-oneshot/main.go +++ b/cmd/examples/posix-oneshot/main.go @@ -29,8 +29,8 @@ import ( "golang.org/x/mod/sumdb/note" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/storage/posix" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/storage/posix" "k8s.io/klog/v2" ) diff --git a/cmd/experimental/fsck/README.md b/cmd/experimental/fsck/README.md index 07c52524b..ef29d5ea0 100644 --- a/cmd/experimental/fsck/README.md +++ b/cmd/experimental/fsck/README.md @@ -15,7 +15,7 @@ tiles implied by the tree size it contains. It can be run with the following command: ```bash -$ go run github.com/transparency-dev/trillian-tessera/cmd/experimental/fsck --storage_url=http://localhost:2024/ --public_key=tessera.pub +$ go run github.com/transparency-dev/tessera/cmd/experimental/fsck --storage_url=http://localhost:2024/ --public_key=tessera.pub I0515 11:53:10.652868 241971 fsck.go:54] Fsck: checkpoint: TestTessera 193446 diff --git a/cmd/experimental/fsck/main.go b/cmd/experimental/fsck/main.go index a56bdcdd4..f4b179cb8 100644 --- a/cmd/experimental/fsck/main.go +++ b/cmd/experimental/fsck/main.go @@ -24,9 +24,9 @@ import ( f_note "github.com/transparency-dev/formats/note" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/internal/fsck" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/internal/fsck" "golang.org/x/mod/sumdb/note" "k8s.io/klog/v2" ) diff --git a/cmd/experimental/migrate/aws/main.go b/cmd/experimental/migrate/aws/main.go index 8333329c4..a46e30c2d 100644 --- a/cmd/experimental/migrate/aws/main.go +++ b/cmd/experimental/migrate/aws/main.go @@ -26,10 +26,10 @@ import ( "github.com/aws/aws-sdk-go-v2/credentials" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/go-sql-driver/mysql" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/internal/parse" - "github.com/transparency-dev/trillian-tessera/storage/aws" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/internal/parse" + "github.com/transparency-dev/tessera/storage/aws" "k8s.io/klog/v2" ) diff --git a/cmd/experimental/migrate/gcp/main.go b/cmd/experimental/migrate/gcp/main.go index c628918af..18fbf63c7 100644 --- a/cmd/experimental/migrate/gcp/main.go +++ b/cmd/experimental/migrate/gcp/main.go @@ -25,10 +25,10 @@ import ( "strconv" "strings" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/storage/gcp" - gcp_as "github.com/transparency-dev/trillian-tessera/storage/gcp/antispam" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/storage/gcp" + gcp_as "github.com/transparency-dev/tessera/storage/gcp/antispam" "k8s.io/klog/v2" ) diff --git a/cmd/experimental/migrate/mysql/main.go b/cmd/experimental/migrate/mysql/main.go index 284dfe300..7979ae1bf 100644 --- a/cmd/experimental/migrate/mysql/main.go +++ b/cmd/experimental/migrate/mysql/main.go @@ -27,9 +27,9 @@ import ( "strings" "time" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/storage/mysql" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/storage/mysql" "k8s.io/klog/v2" ) diff --git a/cmd/experimental/migrate/posix/main.go b/cmd/experimental/migrate/posix/main.go index a03590d82..3abd9839a 100644 --- a/cmd/experimental/migrate/posix/main.go +++ b/cmd/experimental/migrate/posix/main.go @@ -24,9 +24,9 @@ import ( "strconv" "strings" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/storage/posix" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/storage/posix" "k8s.io/klog/v2" ) diff --git a/cmd/experimental/mirror/internal/mirror.go b/cmd/experimental/mirror/internal/mirror.go index a3109d773..db1e58425 100644 --- a/cmd/experimental/mirror/internal/mirror.go +++ b/cmd/experimental/mirror/internal/mirror.go @@ -25,8 +25,8 @@ import ( "sync/atomic" "github.com/avast/retry-go/v4" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/parse" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/parse" "golang.org/x/sync/errgroup" ) diff --git a/cmd/experimental/mirror/posix/main.go b/cmd/experimental/mirror/posix/main.go index c06e69fe9..447d84cfe 100644 --- a/cmd/experimental/mirror/posix/main.go +++ b/cmd/experimental/mirror/posix/main.go @@ -24,9 +24,9 @@ import ( "path/filepath" "time" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/client" - mirror "github.com/transparency-dev/trillian-tessera/cmd/experimental/mirror/internal" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/client" + mirror "github.com/transparency-dev/tessera/cmd/experimental/mirror/internal" "k8s.io/klog/v2" ) diff --git a/ct_only.go b/ct_only.go index 193b0b371..37532bcaf 100644 --- a/ct_only.go +++ b/ct_only.go @@ -20,8 +20,8 @@ import ( "fmt" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/ctonly" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/ctonly" "golang.org/x/crypto/cryptobyte" ) diff --git a/ct_only_test.go b/ct_only_test.go index 9670121b3..1dd58306a 100644 --- a/ct_only_test.go +++ b/ct_only_test.go @@ -20,7 +20,7 @@ import ( "fmt" "testing" - "github.com/transparency-dev/trillian-tessera/ctonly" + "github.com/transparency-dev/tessera/ctonly" ) func TestCTEntriesPath(t *testing.T) { diff --git a/deployment/live/aws/codelab/README.md b/deployment/live/aws/codelab/README.md index 5105bd587..aeb19faa7 100644 --- a/deployment/live/aws/codelab/README.md +++ b/deployment/live/aws/codelab/README.md @@ -44,7 +44,7 @@ the defaults settings, including for the default VPC. Don't forget to run Here's an example run: ``` - [ec2-user@ip-172-31-21-186 trillian-tessera]$ aws configure sso + [ec2-user@ip-172-31-21-186 tessera]$ aws configure sso SSO session name (Recommended): greenfield-session SSO start URL [None]: https://console.aws.amazon.com/ // unless you use a custom signin console SSO region [None]: us-east-1 @@ -79,8 +79,8 @@ the defaults settings, including for the default VPC. Don't forget to run 1. Fetch the Tessera repo, and go to its root: ``` - git clone https://github.com/transparency-dev/trillian-tessera - cd trillian-tessera/ + git clone https://github.com/transparency-dev/tessera + cd tessera/ ``` ### Deploy a Trillian Tessera storage infrastructure @@ -88,7 +88,7 @@ In this section, we'll bring up a [S3](https://aws.amazon.com/s3/) bucket, an [Aurora](https://aws.amazon.com/rds/aurora/) MySQL, and we'll connect them to the VM. - 1. From the root of the trillian-tessera repo, initialize terragrunt: + 1. From the root of the tessera repo, initialize terragrunt: ``` terragrunt init --working-dir=deployment/live/aws/codelab/ ``` @@ -158,7 +158,7 @@ endpoint. Log entries can be read directly from S3 without going through the server, at `READ_URL`, and checkpoint signatures can be verified with `LOG_PUBLIC_KEY`. - 1. Head over to the [remainder of this codelab](https://github.com/transparency-dev/trillian-tessera/tree/main/cmd/conformance#codelab) + 1. Head over to the [remainder of this codelab](https://github.com/transparency-dev/tessera/tree/main/cmd/conformance#codelab) to add leaves to the log and inspect its contents. > [!IMPORTANT] diff --git a/deployment/live/aws/conformance/README.md b/deployment/live/aws/conformance/README.md index 2ed55d4aa..7882d216b 100644 --- a/deployment/live/aws/conformance/README.md +++ b/deployment/live/aws/conformance/README.md @@ -31,7 +31,7 @@ export AWS_PROFILE={VALUE} ``` Optionally, customize the AWS region (defaults to "us-east-1"), prefix, and base -name for resources (defaults to "trillian-tessera" and "conformance"): +name for resources (defaults to "tessera" and "conformance"): ```bash export TESSERA_BASE_NAME={VALUE} export TESSERA_PREFIX_NAME={VALUE} diff --git a/deployment/modules/gcp/cloudbuild/main.tf b/deployment/modules/gcp/cloudbuild/main.tf index bdf77292c..5414ab096 100644 --- a/deployment/modules/gcp/cloudbuild/main.tf +++ b/deployment/modules/gcp/cloudbuild/main.tf @@ -26,7 +26,7 @@ resource "google_cloudbuild_trigger" "docker" { github { owner = "transparency-dev" - name = "trillian-tessera" + name = "tessera" push { branch = "^main$" } diff --git a/docs/design/antispam.md b/docs/design/antispam.md index dba594f95..02121b444 100644 --- a/docs/design/antispam.md +++ b/docs/design/antispam.md @@ -29,7 +29,7 @@ If your transparency application needs such properties you will need to handle t The anti-spam support is optional, and needs to be explicitly provisioned in the infrastructure and enabled by the personality application (via the -[`WithAntispam`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#AppendOptions.WithAntispam)) +[`WithAntispam`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#AppendOptions.WithAntispam)) option). The following diagram gives a high-level overview of how it works. @@ -74,7 +74,7 @@ architecture-beta If the process of following the log falls too far behind a configurable threshold (e.g. on -[GCP's antispam](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#AppendOptions.WithPushback) +[GCP's antispam](https://pkg.go.dev/github.com/transparency-dev/tessera@main#AppendOptions.WithPushback) implementation), the decorator will start returning `ErrPushback` to the application until such time as the follower has caught up. This helps to prevent the anti-spam mechanism getting so far behind as to become ineffective in preventing abuse. diff --git a/docs/design/lifecycle.md b/docs/design/lifecycle.md index ccee9a708..524b7a285 100644 --- a/docs/design/lifecycle.md +++ b/docs/design/lifecycle.md @@ -20,7 +20,7 @@ The definitions below will use terms that we'll define here: The purpose of this mode is to allow entries to be assigned indices by, and integrated into, the log. This is the "normal" state of most active logs, and is characterized by the writer personality using only the -[`tessera.NewAppender`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#NewAppender) +[`tessera.NewAppender`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#NewAppender) lifecycle API. In this mode, storage drivers: @@ -42,7 +42,7 @@ infrastructure. This state must start from an empty tree. It is characterized by the personality that uses only the -[`tessera.NewMigrationTarget`](https://pkg.go.dev/github.com/transparency-dev/trillian-tessera@main#MigrationTarget) +[`tessera.NewMigrationTarget`](https://pkg.go.dev/github.com/transparency-dev/tessera@main#MigrationTarget) lifecycle API. In this mode, the lifecycle struct will copy entry bundle resources from the source log into the target log, and diff --git a/go.mod b/go.mod index db11bb8f7..43e6af3da 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/transparency-dev/trillian-tessera +module github.com/transparency-dev/tessera go 1.24.0 diff --git a/integration/integration_test.go b/integration/integration_test.go index 64151a3bb..295542b67 100644 --- a/integration/integration_test.go +++ b/integration/integration_test.go @@ -34,8 +34,8 @@ import ( "github.com/transparency-dev/merkle/proof" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/client" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/client" "golang.org/x/mod/sumdb/note" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" diff --git a/internal/fsck/fsck.go b/internal/fsck/fsck.go index 05b1ce9ca..1cba2b470 100644 --- a/internal/fsck/fsck.go +++ b/internal/fsck/fsck.go @@ -24,9 +24,9 @@ import ( f_log "github.com/transparency-dev/formats/log" "github.com/transparency-dev/merkle/compact" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/stream" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/stream" "golang.org/x/mod/sumdb/note" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" diff --git a/internal/hammer/hammer.go b/internal/hammer/hammer.go index 5cb1d3040..fb2e27b9f 100644 --- a/internal/hammer/hammer.go +++ b/internal/hammer/hammer.go @@ -27,8 +27,8 @@ import ( "sync" "time" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/internal/hammer/loadtest" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/internal/hammer/loadtest" "golang.org/x/mod/sumdb/note" "golang.org/x/net/http2" diff --git a/internal/hammer/loadtest/client.go b/internal/hammer/loadtest/client.go index 004318e37..bcd36f230 100644 --- a/internal/hammer/loadtest/client.go +++ b/internal/hammer/loadtest/client.go @@ -27,7 +27,7 @@ import ( "sync" "time" - "github.com/transparency-dev/trillian-tessera/client" + "github.com/transparency-dev/tessera/client" "k8s.io/klog/v2" ) diff --git a/internal/hammer/loadtest/hammer.go b/internal/hammer/loadtest/hammer.go index deb04ca6a..033beb9cd 100644 --- a/internal/hammer/loadtest/hammer.go +++ b/internal/hammer/loadtest/hammer.go @@ -19,7 +19,7 @@ import ( "errors" "time" - "github.com/transparency-dev/trillian-tessera/client" + "github.com/transparency-dev/tessera/client" "k8s.io/klog/v2" ) diff --git a/internal/hammer/loadtest/workers.go b/internal/hammer/loadtest/workers.go index f062a5c45..275a2cbbc 100644 --- a/internal/hammer/loadtest/workers.go +++ b/internal/hammer/loadtest/workers.go @@ -22,8 +22,8 @@ import ( "math/rand/v2" "time" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/client" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/client" "k8s.io/klog/v2" ) diff --git a/internal/parse/parse_test.go b/internal/parse/parse_test.go index bfa5257c0..9a73c96b2 100644 --- a/internal/parse/parse_test.go +++ b/internal/parse/parse_test.go @@ -18,7 +18,7 @@ import ( "encoding/base64" "testing" - "github.com/transparency-dev/trillian-tessera/internal/parse" + "github.com/transparency-dev/tessera/internal/parse" ) func TestCheckpointUnsafe(t *testing.T) { diff --git a/internal/stream/otel.go b/internal/stream/otel.go index 6c230adf2..fe4b48a66 100644 --- a/internal/stream/otel.go +++ b/internal/stream/otel.go @@ -18,7 +18,7 @@ import ( "go.opentelemetry.io/otel" ) -const name = "github.com/transparency-dev/trillian-tessera/internal/stream" +const name = "github.com/transparency-dev/tessera/internal/stream" var ( tracer = otel.Tracer(name) diff --git a/internal/stream/stream.go b/internal/stream/stream.go index b3fde7f13..6ab82ac41 100644 --- a/internal/stream/stream.go +++ b/internal/stream/stream.go @@ -20,8 +20,8 @@ import ( "fmt" "time" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api/layout" "k8s.io/klog/v2" ) diff --git a/internal/witness/witness.go b/internal/witness/witness.go index a3a5ec5ce..5afbb5009 100644 --- a/internal/witness/witness.go +++ b/internal/witness/witness.go @@ -29,8 +29,8 @@ import ( "sync" "github.com/transparency-dev/formats/log" - "github.com/transparency-dev/trillian-tessera/client" - "github.com/transparency-dev/trillian-tessera/internal/parse" + "github.com/transparency-dev/tessera/client" + "github.com/transparency-dev/tessera/internal/parse" "golang.org/x/mod/sumdb/note" ) diff --git a/internal/witness/witness_test.go b/internal/witness/witness_test.go index f6d8b803f..7b362c7e7 100644 --- a/internal/witness/witness_test.go +++ b/internal/witness/witness_test.go @@ -28,10 +28,10 @@ import ( "testing" "github.com/transparency-dev/formats/log" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/witness" - "github.com/transparency-dev/trillian-tessera/storage/posix" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/witness" + "github.com/transparency-dev/tessera/storage/posix" "golang.org/x/mod/sumdb/note" ) diff --git a/lifecycle.go b/lifecycle.go index f610bfde8..68b89cf99 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -21,8 +21,8 @@ import ( "fmt" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" ) // NoMoreEntries is a sentinel error returned by StreamEntries when no more entries will be returned by calls to the next function. diff --git a/migrate.go b/migrate.go index 7b41f313b..7975122aa 100644 --- a/migrate.go +++ b/migrate.go @@ -20,8 +20,8 @@ import ( "sync/atomic" "github.com/avast/retry-go/v4" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/client" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/client" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" ) diff --git a/migrate_lifecycle.go b/migrate_lifecycle.go index a897a3b0a..998f33580 100644 --- a/migrate_lifecycle.go +++ b/migrate_lifecycle.go @@ -21,8 +21,8 @@ import ( "strings" "time" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/client" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/client" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" ) diff --git a/otel.go b/otel.go index da276fc5b..ce1ca8234 100644 --- a/otel.go +++ b/otel.go @@ -19,7 +19,7 @@ import ( "go.opentelemetry.io/otel/attribute" ) -const name = "github.com/transparency-dev/trillian-tessera" +const name = "github.com/transparency-dev/tessera" var ( tracer = otel.Tracer(name) diff --git a/storage/aws/antispam/aws.go b/storage/aws/antispam/aws.go index 104be314a..f55acca21 100644 --- a/storage/aws/antispam/aws.go +++ b/storage/aws/antispam/aws.go @@ -27,8 +27,8 @@ import ( "sync/atomic" "time" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/internal/stream" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/internal/stream" "k8s.io/klog/v2" _ "github.com/go-sql-driver/mysql" diff --git a/storage/aws/antispam/aws_test.go b/storage/aws/antispam/aws_test.go index 95937479e..4d268e9f0 100644 --- a/storage/aws/antispam/aws_test.go +++ b/storage/aws/antispam/aws_test.go @@ -23,10 +23,10 @@ import ( "testing" "time" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - aws "github.com/transparency-dev/trillian-tessera/storage/aws/antispam" - "github.com/transparency-dev/trillian-tessera/testonly" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + aws "github.com/transparency-dev/tessera/storage/aws/antispam" + "github.com/transparency-dev/tessera/testonly" "k8s.io/klog/v2" ) diff --git a/storage/aws/aws.go b/storage/aws/aws.go index 47c63d907..2b2a085f1 100644 --- a/storage/aws/aws.go +++ b/storage/aws/aws.go @@ -52,11 +52,11 @@ import ( "github.com/aws/smithy-go" "github.com/google/go-cmp/cmp" "github.com/transparency-dev/merkle/rfc6962" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/stream" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/stream" + storage "github.com/transparency-dev/tessera/storage/internal" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" diff --git a/storage/aws/aws_test.go b/storage/aws/aws_test.go index b7360c98f..6d465d689 100644 --- a/storage/aws/aws_test.go +++ b/storage/aws/aws_test.go @@ -39,10 +39,10 @@ import ( "github.com/aws/aws-sdk-go-v2/service/s3/types" "github.com/aws/smithy-go" "github.com/google/go-cmp/cmp" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + storage "github.com/transparency-dev/tessera/storage/internal" "k8s.io/klog/v2" ) diff --git a/storage/gcp/antispam/gcp.go b/storage/gcp/antispam/gcp.go index 7c7f35102..aa7146d77 100644 --- a/storage/gcp/antispam/gcp.go +++ b/storage/gcp/antispam/gcp.go @@ -30,8 +30,8 @@ import ( adminpb "cloud.google.com/go/spanner/admin/database/apiv1/databasepb" "cloud.google.com/go/spanner/apiv1/spannerpb" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/internal/stream" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/internal/stream" "google.golang.org/grpc/codes" "k8s.io/klog/v2" ) diff --git a/storage/gcp/antispam/gcp_test.go b/storage/gcp/antispam/gcp_test.go index 9faf9462d..2800e9316 100644 --- a/storage/gcp/antispam/gcp_test.go +++ b/storage/gcp/antispam/gcp_test.go @@ -23,9 +23,9 @@ import ( "cloud.google.com/go/spanner" "cloud.google.com/go/spanner/spannertest" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/testonly" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/testonly" "k8s.io/klog/v2" ) diff --git a/storage/gcp/antispam/otel.go b/storage/gcp/antispam/otel.go index c9bea4454..05d8efe5a 100644 --- a/storage/gcp/antispam/otel.go +++ b/storage/gcp/antispam/otel.go @@ -19,7 +19,7 @@ import ( "go.opentelemetry.io/otel/attribute" ) -const name = "github.com/transparency-dev/trillian-tessera/storage/gcp/antispam" +const name = "github.com/transparency-dev/tessera/storage/gcp/antispam" var ( tracer = otel.Tracer(name) diff --git a/storage/gcp/gcp.go b/storage/gcp/gcp.go index a48c5fd5e..daf929b84 100644 --- a/storage/gcp/gcp.go +++ b/storage/gcp/gcp.go @@ -49,12 +49,12 @@ import ( gcs "cloud.google.com/go/storage" "github.com/google/go-cmp/cmp" "github.com/transparency-dev/merkle/rfc6962" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/otel" - "github.com/transparency-dev/trillian-tessera/internal/stream" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/otel" + "github.com/transparency-dev/tessera/internal/stream" + storage "github.com/transparency-dev/tessera/storage/internal" "golang.org/x/sync/errgroup" "google.golang.org/api/googleapi" "google.golang.org/api/iterator" diff --git a/storage/gcp/gcp_test.go b/storage/gcp/gcp_test.go index 3d1e07c4d..91583a679 100644 --- a/storage/gcp/gcp_test.go +++ b/storage/gcp/gcp_test.go @@ -31,10 +31,10 @@ import ( "cloud.google.com/go/spanner/spannertest" gcs "cloud.google.com/go/storage" "github.com/google/go-cmp/cmp" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + storage "github.com/transparency-dev/tessera/storage/internal" ) func newSpannerDB(t *testing.T) func() { diff --git a/storage/gcp/otel.go b/storage/gcp/otel.go index 6eeea53c8..d05bf7f1c 100644 --- a/storage/gcp/otel.go +++ b/storage/gcp/otel.go @@ -19,7 +19,7 @@ import ( "go.opentelemetry.io/otel/attribute" ) -const name = "github.com/transparency-dev/trillian-tessera/storage/gcp" +const name = "github.com/transparency-dev/tessera/storage/gcp" var ( tracer = otel.Tracer(name) diff --git a/storage/internal/integrate.go b/storage/internal/integrate.go index 222ad6bd8..1a60ef593 100644 --- a/storage/internal/integrate.go +++ b/storage/internal/integrate.go @@ -22,9 +22,9 @@ import ( "github.com/transparency-dev/merkle/compact" "github.com/transparency-dev/merkle/rfc6962" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/otel" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/otel" "golang.org/x/exp/maps" "k8s.io/klog/v2" ) diff --git a/storage/internal/integrate_test.go b/storage/internal/integrate_test.go index 932e8589e..53fad48ba 100644 --- a/storage/internal/integrate_test.go +++ b/storage/internal/integrate_test.go @@ -24,9 +24,9 @@ import ( "github.com/google/go-cmp/cmp" "github.com/transparency-dev/merkle/compact" "github.com/transparency-dev/merkle/rfc6962" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" "k8s.io/klog/v2" ) diff --git a/storage/internal/otel.go b/storage/internal/otel.go index 0b31f4a91..6dc8ad169 100644 --- a/storage/internal/otel.go +++ b/storage/internal/otel.go @@ -19,7 +19,7 @@ import ( "go.opentelemetry.io/otel/attribute" ) -const name = "github.com/transparency-dev/trillian-tessera/storage" +const name = "github.com/transparency-dev/tessera/storage" var ( tracer = otel.Tracer(name) diff --git a/storage/internal/queue.go b/storage/internal/queue.go index 4305a18ef..e49a288a0 100644 --- a/storage/internal/queue.go +++ b/storage/internal/queue.go @@ -22,7 +22,7 @@ import ( "time" "github.com/globocom/go-buffer" - tessera "github.com/transparency-dev/trillian-tessera" + "github.com/transparency-dev/tessera" ) // Queue knows how to queue up a number of entries in order, taking care of deduplication as they're added. diff --git a/storage/internal/queue_test.go b/storage/internal/queue_test.go index c85baff50..1fe926d35 100644 --- a/storage/internal/queue_test.go +++ b/storage/internal/queue_test.go @@ -22,8 +22,8 @@ import ( "testing" "time" - tessera "github.com/transparency-dev/trillian-tessera" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + storage "github.com/transparency-dev/tessera/storage/internal" ) func TestQueue(t *testing.T) { diff --git a/storage/mysql/PERFORMANCE.md b/storage/mysql/PERFORMANCE.md index b8b142b79..f3b7bd2cf 100644 --- a/storage/mysql/PERFORMANCE.md +++ b/storage/mysql/PERFORMANCE.md @@ -70,20 +70,20 @@ MiB Swap: 0.0 total, 0.0 free, 0.0 used. 37.3 avail Mem 1. Clone the Trillian Tessera repository ```sh - instance:~$ git clone https://github.com/transparency-dev/trillian-tessera.git - Cloning into 'trillian-tessera'... + instance:~$ git clone https://github.com/transparency-dev/tessera.git + Cloning into 'tessera'... ``` 1. Run `cmd/conformance/mysql` and MySQL database via Docker compose ```sh - instance:~/trillian-tessera$ sudo docker compose -f ./cmd/conformance/mysql/docker/compose.yaml up + instance:~/tessera$ sudo docker compose -f ./cmd/conformance/mysql/docker/compose.yaml up ``` 1. Run `hammer` and get performance metrics ```sh - hammer:~/trillian-tessera$ go run ./internal/hammer --log_public_key=transparency.dev/tessera/example+ae330e15+ASf4/L1zE859VqlfQgGzKy34l91Gl8W6wfwp+vKP62DW --log_url=http://10.128.0.3:2024 --max_read_ops=0 --num_writers=512 --max_write_ops=512 + hammer:~/tessera$ go run ./internal/hammer --log_public_key=transparency.dev/tessera/example+ae330e15+ASf4/L1zE859VqlfQgGzKy34l91Gl8W6wfwp+vKP62DW --log_url=http://10.128.0.3:2024 --max_read_ops=0 --num_writers=512 --max_write_ops=512 ``` ### GCP Free Tier VM Instance + Cloud SQL (MySQL) @@ -149,8 +149,8 @@ The bottleneck comes from CPU usage of the `cmd/conformance/mysql` binary on the 1. Clone the Trillian Tessera repository ```sh - instance:~$ git clone https://github.com/transparency-dev/trillian-tessera.git - Cloning into 'trillian-tessera'... + instance:~$ git clone https://github.com/transparency-dev/tessera.git + Cloning into 'tessera'... ``` 1. Run `cloud-sql-proxy` @@ -162,13 +162,13 @@ The bottleneck comes from CPU usage of the `cmd/conformance/mysql` binary on the 1. Run `cmd/conformance/mysql` ```sh - instance:~/trillian-tessera$ go run ./cmd/conformance/mysql --mysql_uri="root:root@tcp(127.0.0.1:3306)/test_tessera" --init_schema_path="./storage/mysql/schema.sql" --private_key_path="./cmd/conformance/mysql/docker/testdata/key" --db_max_open_conns=1024 --db_max_idle_conns=512 + instance:~/tessera$ go run ./cmd/conformance/mysql --mysql_uri="root:root@tcp(127.0.0.1:3306)/test_tessera" --init_schema_path="./storage/mysql/schema.sql" --private_key_path="./cmd/conformance/mysql/docker/testdata/key" --db_max_open_conns=1024 --db_max_idle_conns=512 ``` 1. Run `hammer` and get performance metrics ```sh - hammer:~/trillian-tessera$ go run ./internal/hammer --log_public_key=transparency.dev/tessera/example+ae330e15+ASf4/L1zE859VqlfQgGzKy34l91Gl8W6wfwp+vKP62DW --log_url=http://10.128.0.3:2024 --max_read_ops=0 --num_writers=512 --max_write_ops=512 + hammer:~/tessera$ go run ./internal/hammer --log_public_key=transparency.dev/tessera/example+ae330e15+ASf4/L1zE859VqlfQgGzKy34l91Gl8W6wfwp+vKP62DW --log_url=http://10.128.0.3:2024 --max_read_ops=0 --num_writers=512 --max_write_ops=512 ``` ## POSIX @@ -237,20 +237,20 @@ MiB Swap: 0.0 total, 0.0 free, 0.0 used. 403.2 avail Mem 1. Clone the Trillian Tessera repository ```sh - instance:~$ git clone https://github.com/transparency-dev/trillian-tessera.git - Cloning into 'trillian-tessera'... + instance:~$ git clone https://github.com/transparency-dev/tessera.git + Cloning into 'tessera'... ``` 1. Run `cmd/conformance/posix` via Docker compose ```sh - instance:~/trillian-tessera$ sudo docker compose -f ./cmd/conformance/posix/docker/compose.yaml up + instance:~/tessera$ sudo docker compose -f ./cmd/conformance/posix/docker/compose.yaml up ``` 1. Run `hammer` and get performance metrics ```sh - hammer:~/trillian-tessera$ go run ./internal/hammer --log_public_key=example.com/log/testdata+33d7b496+AeHTu4Q3hEIMHNqc6fASMsq3rKNx280NI+oO5xCFkkSx --log_url=http://localhost:2025 --max_read_ops=0 --num_writers=512 --max_write_ops=512 + hammer:~/tessera$ go run ./internal/hammer --log_public_key=example.com/log/testdata+33d7b496+AeHTu4Q3hEIMHNqc6fASMsq3rKNx280NI+oO5xCFkkSx --log_url=http://localhost:2025 --max_read_ops=0 --num_writers=512 --max_write_ops=512 ``` ## GCP diff --git a/storage/mysql/README.md b/storage/mysql/README.md index b91910bb3..e96d4643a 100644 --- a/storage/mysql/README.md +++ b/storage/mysql/README.md @@ -20,8 +20,8 @@ Here is an example code snippet to initialise the MySQL storage in Trillian Tess import ( "context" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/storage/mysql" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/storage/mysql" "k8s.io/klog/v2" ) @@ -45,4 +45,4 @@ See [MySQL conformance example](/cmd/conformance/mysql/). ## Future Work -- [Separate sequencing and integration](https://github.com/transparency-dev/trillian-tessera/pull/282) +- [Separate sequencing and integration](https://github.com/transparency-dev/tessera/pull/282) diff --git a/storage/mysql/mysql.go b/storage/mysql/mysql.go index 8f7e49ef0..353fe9661 100644 --- a/storage/mysql/mysql.go +++ b/storage/mysql/mysql.go @@ -31,10 +31,10 @@ import ( _ "github.com/go-sql-driver/mysql" "github.com/transparency-dev/merkle/rfc6962" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + storage "github.com/transparency-dev/tessera/storage/internal" "k8s.io/klog/v2" ) diff --git a/storage/mysql/mysql_test.go b/storage/mysql/mysql_test.go index 545431207..30579ee5f 100644 --- a/storage/mysql/mysql_test.go +++ b/storage/mysql/mysql_test.go @@ -33,9 +33,9 @@ import ( "time" "github.com/transparency-dev/merkle/rfc6962" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" "golang.org/x/mod/sumdb/note" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" diff --git a/storage/posix/PERFORMANCE.md b/storage/posix/PERFORMANCE.md index 7cf6104d5..cb77df88b 100644 --- a/storage/posix/PERFORMANCE.md +++ b/storage/posix/PERFORMANCE.md @@ -105,18 +105,18 @@ MiB Mem : 970.0 total, 62.2 free, 839.5 used, 227.0 buff/cache 1. Clone the Trillian Tessera repository ```sh - instance:~$ git clone https://github.com/transparency-dev/trillian-tessera.git - Cloning into 'trillian-tessera'... + instance:~$ git clone https://github.com/transparency-dev/tessera.git + Cloning into 'tessera'... ``` 1. Run `cmd/conformance/posix` via Docker compose ```sh - instance:~/trillian-tessera$ sudo docker compose -f ./cmd/conformance/posix/docker/compose.yaml up + instance:~/tessera$ sudo docker compose -f ./cmd/conformance/posix/docker/compose.yaml up ``` 1. Run `hammer` and get performance metrics ```sh - hammer:~/trillian-tessera$ go run ./internal/hammer --log_public_key=example.com/log/testdata+33d7b496+AeHTu4Q3hEIMHNqc6fASMsq3rKNx280NI+oO5xCFkkSx --log_url=http://localhost:2025 --max_read_ops=0 --num_writers=512 --max_write_ops=512 + hammer:~/tessera$ go run ./internal/hammer --log_public_key=example.com/log/testdata+33d7b496+AeHTu4Q3hEIMHNqc6fASMsq3rKNx280NI+oO5xCFkkSx --log_url=http://localhost:2025 --max_read_ops=0 --num_writers=512 --max_write_ops=512 ``` diff --git a/storage/posix/antispam/badger.go b/storage/posix/antispam/badger.go index 63a04b8f6..1375dd70e 100644 --- a/storage/posix/antispam/badger.go +++ b/storage/posix/antispam/badger.go @@ -26,9 +26,9 @@ import ( "time" "github.com/dgraph-io/badger/v4" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/internal/otel" - "github.com/transparency-dev/trillian-tessera/internal/stream" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/internal/otel" + "github.com/transparency-dev/tessera/internal/stream" "k8s.io/klog/v2" ) diff --git a/storage/posix/antispam/otel.go b/storage/posix/antispam/otel.go index 127ea72f0..451bb8dc3 100644 --- a/storage/posix/antispam/otel.go +++ b/storage/posix/antispam/otel.go @@ -19,7 +19,7 @@ import ( "go.opentelemetry.io/otel/attribute" ) -const name = "github.com/transparency-dev/trillian-tessera/storage/posix/antispam" +const name = "github.com/transparency-dev/tessera/storage/posix/antispam" var ( tracer = otel.Tracer(name) diff --git a/storage/posix/files.go b/storage/posix/files.go index 3aca070c5..3f706813a 100644 --- a/storage/posix/files.go +++ b/storage/posix/files.go @@ -30,11 +30,11 @@ import ( "time" "github.com/transparency-dev/merkle/rfc6962" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/api" - "github.com/transparency-dev/trillian-tessera/api/layout" - "github.com/transparency-dev/trillian-tessera/internal/stream" - storage "github.com/transparency-dev/trillian-tessera/storage/internal" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/api" + "github.com/transparency-dev/tessera/api/layout" + "github.com/transparency-dev/tessera/internal/stream" + storage "github.com/transparency-dev/tessera/storage/internal" "k8s.io/klog/v2" ) diff --git a/testonly/testlog.go b/testonly/testlog.go index c94509afe..4242bc30b 100644 --- a/testonly/testlog.go +++ b/testonly/testlog.go @@ -18,8 +18,8 @@ import ( "context" "testing" - tessera "github.com/transparency-dev/trillian-tessera" - "github.com/transparency-dev/trillian-tessera/storage/posix" + "github.com/transparency-dev/tessera" + "github.com/transparency-dev/tessera/storage/posix" "golang.org/x/mod/sumdb/note" ) diff --git a/witness_test.go b/witness_test.go index 87991032c..dfedcdac3 100644 --- a/witness_test.go +++ b/witness_test.go @@ -5,7 +5,7 @@ import ( "slices" "testing" - tessera "github.com/transparency-dev/trillian-tessera" + "github.com/transparency-dev/tessera" "golang.org/x/mod/sumdb/note" )