diff --git a/docs/Concepts/Multitenancy.md b/docs/Concepts/Multitenancy.md index 7db679d..609d354 100644 --- a/docs/Concepts/Multitenancy.md +++ b/docs/Concepts/Multitenancy.md @@ -6,7 +6,10 @@ sidebar_position: 4 # Multi-tenancy -In a typical [GoQuorum](https://consensys.net/docs/goquorum/en/stable/) or [Hyperledger Besu privacy-enabled](https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/) network, each participant (tenant) uses their own GoQuorum or Besu node and Tessera node. Tessera can be configured to manage multiple key pairs owned by one tenant. This model is costly to run and scale as more tenants join the network. +In a typical [GoQuorum](https://consensys.net/docs/goquorum/en/stable/) network or +[privacy-enabled Hyperledger Besu](https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/) network (versions earlier than 25.1.0), +each participant (tenant) uses their own GoQuorum or Besu node and Tessera node. +You can configure Tessera to manage multiple key pairs owned by one tenant. This model is costly to run and scale as more tenants join the network. Multi-tenancy allows multiple tenants to use the same GoQuorum or Besu node, with each tenant having its own private state. Each tenant can perform all operations (create, read, and write) on any contract in its private state. Multi-tenancy provides a user experience similar to a user running their own managed node. @@ -33,6 +36,6 @@ To use GoQuorum multi-tenancy via MPS: ## Use Besu multi-tenancy -To use Besu multi-tenancy, you must [create a privacy-enabled network](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/). +To use Besu multi-tenancy, you must use a Besu version earlier than 25.1.0, and [create a privacy-enabled network](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/). Configure multi-tenant Besu and Tessera nodes according to the [Besu multi-tenancy configuration tutorial](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Multi-Tenancy/). diff --git a/docs/Concepts/Privacy-Groups.md b/docs/Concepts/Privacy-Groups.md index 95e4055..c63feab 100644 --- a/docs/Concepts/Privacy-Groups.md +++ b/docs/Concepts/Privacy-Groups.md @@ -6,7 +6,8 @@ sidebar_position: 3 # Privacy groups -Tessera supports operations related to [Hyperledger Besu privacy groups](https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Groups/) and [resident groups for GoQuorum multiple private states (MPS)](https://consensys.net/docs/goquorum/en/latest/concepts/multi-tenancy/#tessera-resident-groups), such as managing privacy group data and handling transactions intended for a privacy group. +Tessera supports operations related to [Hyperledger Besu privacy groups (versions earlier than 25.1.0)](https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Groups/) +and [resident groups for GoQuorum multiple private states (MPS)](https://consensys.net/docs/goquorum/en/latest/concepts/multi-tenancy/#tessera-resident-groups), such as managing privacy group data and handling transactions intended for a privacy group. Behavior may differ depending on which [`mode`](../HowTo/Configure/Orion-Mode.md) Tessera is running on. @@ -45,7 +46,8 @@ The following is an example of a privacy group and its related data: Tessera automatically creates a legacy privacy group when a private transaction is sent to a list of recipient public keys using `privateFor`. -When returning private transaction data to a Besu client (as part of a `/receive` response), the legacy `privacyGroupId` is also returned. +When returning private transaction data to a Besu client (as part of a `/receive` response), the legacy `privacyGroupId` +is also returned. The legacy `privacyGroupId` is generated by hashing the list of recipient keys. For a given set of recipients, there can be only one legacy privacy group. diff --git a/docs/Concepts/Privacy-Manager/Privacy-manager.md b/docs/Concepts/Privacy-Manager/Privacy-manager.md index 598b2a4..aca3803 100644 --- a/docs/Concepts/Privacy-Manager/Privacy-manager.md +++ b/docs/Concepts/Privacy-Manager/Privacy-manager.md @@ -6,7 +6,7 @@ sidebar_position: 1 # Privacy manager -Tessera is the privacy manager for the [GoQuorum](https://docs.goquorum.consensys.net) and [Hyperledger Besu](https://besu.hyperledger.org/en/stable/) Ethereum clients. +Tessera is the privacy manager for [GoQuorum](https://docs.goquorum.consensys.net) and [Hyperledger Besu versions earlier than 25.1.0](https://besu.hyperledger.org/en/stable/). A privacy manager consists of two components, each with their own responsibilities: diff --git a/docs/HowTo/Configure/Orion-Mode.md b/docs/HowTo/Configure/Orion-Mode.md index 472e5dd..5bbf06f 100644 --- a/docs/HowTo/Configure/Orion-Mode.md +++ b/docs/HowTo/Configure/Orion-Mode.md @@ -6,7 +6,7 @@ sidebar_position: 11 # Configure Hyperledger Besu support -Tessera provides support for [Hyperledger Besu](https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Privacy/). +Tessera provides support for [Hyperledger Besu versions earlier than 25.1.0](https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Privacy/). To enable Besu support in Tessera, set [`mode`](../../Reference/SampleConfiguration.md#mode) in the Tessera [configuration file](Tessera.md) to `orion`. @@ -22,8 +22,9 @@ tessera --configfile config.json -o mode="orion" If you enable `orion` mode, Tessera: -- Attempts to retrieve the [privacy group](../../Concepts/Privacy-Groups.md) and its associated members for transactions sent with `privacyGroupId`. -- Creates a legacy privacy group for transactions sent with `privateFor` containing a list of recipient keys. -- Uses SHA-512/256 to generate 32-byte hashes of encrypted payloads to be returned to Besu. -- Adds support for `/receive` `POST` requests using the `application/json` media type. -- Includes the `senderKey` (for Besu sender authentication) and the transaction's associated `privacyGroupId` in responses to `/receive` requests. +* Attempts to retrieve the [privacy group](../../Concepts/Privacy-Groups.md) and its associated members for transactions + sent with `privacyGroupId`. +* Creates a legacy privacy group for transactions sent with `privateFor` containing a list of recipient keys. +* Uses SHA-512/256 to generate 32-byte hashes of encrypted payloads to be returned to Besu. +* Adds support for `/receive` `POST` requests using the `application/json` media type. +* Includes the `senderKey` (for Besu sender authentication) and the transaction's associated `privacyGroupId` in responses to `/receive` requests. diff --git a/docs/HowTo/Configure/Tessera.md b/docs/HowTo/Configure/Tessera.md index 9dcd685..8233ed9 100644 --- a/docs/HowTo/Configure/Tessera.md +++ b/docs/HowTo/Configure/Tessera.md @@ -20,7 +20,7 @@ You can also configure: - An [external database](Database.md). - Support for [multiple private states](Multiple-private-state.md) and [resident groups](Multiple-private-state.md#resident-groups). - [Cryptographic elliptic curves](Cryptographic-elliptic-curves.md). -- Support for [Hyperledger Besu](Orion-Mode.md). +- Support for [Hyperledger Besu versions earlier than 25.1.0](Orion-Mode.md). - [High availability](High-availability.md). You can [override configuration options](Override-config.md) using the command line. diff --git a/docs/HowTo/Get-started/Use-GoQuorum-with-Tessera.md b/docs/HowTo/Get-started/Use-GoQuorum-with-Tessera.md index 3b2e2aa..8ec6845 100644 --- a/docs/HowTo/Get-started/Use-GoQuorum-with-Tessera.md +++ b/docs/HowTo/Get-started/Use-GoQuorum-with-Tessera.md @@ -6,14 +6,17 @@ sidebar_position: 3 # Use GoQuorum or Besu with Tessera -You can use Tessera as the private transaction manager for [GoQuorum](https://consensys.net/docs/goquorum/en/stable/) or [Hyperledger Besu](https://besu.hyperledger.org/en/stable/). Get started with the following tutorials: +You can use Tessera as the private transaction manager for [GoQuorum](https://consensys.net/docs/goquorum/en/stable/) or [Hyperledger Besu versions earlier than 25.1.0](https://besu.hyperledger.org). +Get started with the following tutorials: - [Create a privacy-enabled GoQuorum network](https://consensys.net/docs/goquorum/en/stable/tutorials/create-privacy-enabled-network/). - [Send a private transaction on GoQuorum](https://consensys.net/docs/goquorum/en/stable/tutorials/send-private-transaction/). -- [Create a privacy-enabled Besu network](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/). -- [Configure a multi-tenant Besu network](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Multi-Tenancy/). -- [Use the Besu multi-node example in the web3js-quorum library](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/web3js-quorum-Multinode-example/). +- [Create a privacy-enabled Besu network](https://besu.hyperledger.org/private-networks/concepts/privacy). +- [Configure a multi-tenant Besu network](https://besu.hyperledger.org/private-networks/concepts/privacy/multi-tenancy). +- [Use the Besu multi-node example in the web3js-quorum library](https://besu.hyperledger.org/private-networks/tutorials/privacy/web3js-quorum). :::note All Tessera nodes included in a private transaction must be running when the private transaction is sent. Otherwise, the transaction doesn't propagate and an error is returned. + +::: \ No newline at end of file diff --git a/docs/HowTo/Migrate/MigrateFromOrion.md b/docs/HowTo/Migrate/MigrateFromOrion.md index cb35963..57e1d35 100644 --- a/docs/HowTo/Migrate/MigrateFromOrion.md +++ b/docs/HowTo/Migrate/MigrateFromOrion.md @@ -6,7 +6,8 @@ sidebar_position: 1 # Migrating from Orion to Tessera -A utility is included in Tessera which enables migration of an Orion configuration file and database to a Tessera configuration file and database for Hyperledger Besu users. +Tessera includes a utility that enables migration of an Orion configuration file and database to a Tessera configuration file and database, +for Hyperledger Besu (versions earlier than 25.1.0). A full migration workflow would be as follows: diff --git a/docs/Reference/SampleConfiguration.md b/docs/Reference/SampleConfiguration.md index 2982e3b..2e694d0 100644 --- a/docs/Reference/SampleConfiguration.md +++ b/docs/Reference/SampleConfiguration.md @@ -152,7 +152,7 @@ Configuration items can be [overridden from the command line]. ### `mode` -Set the `mode` to `orion` to use Tessera as the privacy manager when using [Hyperledger Besu in non-GoQuorum mode](https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Use-GoQuorum-compatible-privacy/). [Enabling this mode](../HowTo/Configure/Orion-Mode.md) changes Tessera's behavior. This property is optional. +Set the `mode` to `orion` to use Tessera as the privacy manager when using [Hyperledger Besu (versions earlier than 25.1.0) in non-GoQuorum mode](https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Use-GoQuorum-compatible-privacy/). [Enabling this mode](../HowTo/Configure/Orion-Mode.md) changes Tessera's behavior. This property is optional. ### `useWhiteList` diff --git a/docs/index.md b/docs/index.md index ec9ed62..d1d7d45 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,7 +9,9 @@ slug: overview ## What is Tessera? -Tessera is an open-source private transaction manager developed under the Apache 2.0 license and written in Java. The primary application of Tessera is as the privacy manager for privacy-enabled Ethereum clients such as [GoQuorum](https://docs.goquorum.consensys.net) and [Hyperledger Besu](https://besu.hyperledger.org/en/stable/). +Tessera is an open-source private transaction manager developed under the Apache 2.0 license and written in Java. +The primary application of Tessera is as the privacy manager for privacy-enabled Ethereum clients such as +[GoQuorum](https://docs.goquorum.consensys.net) and [Hyperledger Besu versions earlier than 25.1.0](https://besu.hyperledger.org/en/stable/). ## What can you do with Tessera?