consensys.tessera

Ansible Rolle: Tessera

Beschreibung

Dieses Repository enthält ein Ansible-Playbook zur Bereitstellung von Tessera auf einem Bare-Metal-Server.

Inhaltsverzeichnis

Voraussetzungen

  1. Java JDK 11+
  2. Build-Werkzeuge zum Erstellen von libsodium

Rollenvariablen

Variablen sind in defaults/main.yml definiert und können direkt überschrieben werden, indem man die Datei bearbeitet, Befehlszeilenparameter übergibt oder Variablen in einem Playbook festlegt. Die meisten Variablen beziehen sich auf die Konfigurationsdatei für Tessera, die in den Dokumenten zu finden sind.

Empfohlene erforderliche Rollenvariablen

Die folgende Tabelle listet die empfohlenen Rollenvariablen auf, die verwendet werden sollten. Bitte siehe die zweite Tabelle, wenn du die vollständige Liste der änderbaren Variablen sehen möchtest.

Name Standard Erforderlich?
tessera_version unset Ja
run_with_besu false Ja, wenn es mit Besu läuft. Ungesetzt oder false lassen, wenn es mit GoQuorum verwendet wird.
server_configs unset Ja. Wenn ungesetzt, wird die Standardkonfiguration verwendet, die für die Entwicklungsumgebung geeignet ist. Prüfe templates/config.json.j2
peers unset Ja. Wenn ungesetzt, wird standardmäßig auf sich selbst gesetzt. Überprüfe templates/config.json.j2
public_key unset Öffentliches Schlüssel.
config_details unset Konfigurationsdetails für die geschützten oder ungeschützten Inline-Schlüsselpaaren.
jdbc_url Setzt auf tessera_config_dir/db Ja. Standard wird auf tessera_config_dir/db als lokale Datei gesetzt.
jdbc_username "sa" Ja. Stelle sicher, dass du änderst.
jdbc_password "" Ja. Stelle sicher, dass du änderst.
default_log_level INFO Nein. Kann auf 'DEBUG' gesetzt werden, wenn nötig.

Vollständige Liste der Rollenvariablen

Name Standard Beschreibung
tessera_version unset Version von Tessera, die installiert werden soll. Muss für die Ausführung der Rolle festgelegt werden.
tessera_user tessera Der Benutzer, der auf dem System für Tessera erstellt wird.
tessera_group tessera Gruppe, zu der der Benutzer gehören wird.
tessera_download_url Vorgegeben URL zu Tessera tar.
enclave_download_url Vorgegeben URL zu Enclave tar.
azure_key_vault_download_url Vorgegeben URL zu Azure Key Vault tar.
aws_key_vault_download_url Vorgegeben URL zu AWS Key Vault tar.
hashicorp_key_vault_download_url Vorgegeben URL zu Hashicorp Key Vault tar.
libsodium_download_url Vorgegeben URL zu Libsodium tar.gz.
tessera_base_dir /opt/tessera Basisverzeichnis für Tessera-Binärdateien und Abhängigkeiten.
tessera_install_dir /opt/tessera/tessera-{{ tessera_version }} Installationsverzeichnis für Tessera.
tessera_config_dir /etc/tessera Konfigurationsverzeichnis für Tessera.
tessera_log_dir /var/log/tessera Protokollverzeichnis für Tessera.
tessera_libsodium_dir /opt/tessera/libsodium Libsodium Installationsverzeichnis.
default_log_level INFO Setzt das Protokollevel für Tessera.
jdbc_url --- JDBC-Verbindungs-URL.
jdbc_username "sa" JDBC-Benutzername.
jdbc_password "" JDBC-Passwort.
disable_peer_discovery false Wenn auf true gesetzt, wird die Kommunikation auf Peers in der Konfigurationsdatei beschränkt.
use_whitelist false Wenn auf true gesetzt, wird die Verbindung zu Tessera auf bestimmte Peers beschränkt.
run_with_besu false Setze dies auf true, wenn Tessera mit Besu anstelle von GoQuorum ausgeführt werden soll.
bootstrap_mode false Wenn auf true gesetzt, fungiert der Knoten als Bootstrap für andere Knoten.
server_configs [] Siehe Dokumente.
peers [] Liste der Peers, mit denen man sich verbinden möchte.
public_key "" Öffentliches Schlüssel für Tessera.
config_details "" Konfigurationsdetails für die geschützten oder ungeschützten Inline-Schlüsselpaaren.
private_key_path "" Pfad zum privaten Schlüssel.
public_key_path "" Pfad zum öffentlichen Schlüssel.
private_key "" Privater Schlüssel für Tessera.
aws_secret_manager false Setze dies auf true, wenn der AWS Secrets Manager verwendet wird.
aws_region us-east-1 Setze die gewünschte AWS-Region für den Secrets Manager.
aws_SecretsManager_PublicKeyId "" AWS Secrets Manager öffentlicher Schlüssel ID.
aws_SecretsManager_PrivateKeyId "" AWS Secrets Manager privater Schlüssel ID.
azure_key_vault false Setze dies auf true, wenn der Azure Key Vault verwendet wird.
azure_Vault_PrivateKeyId "" Azure privater Schlüssel ID.
azure_Vault_PublicKeyId "" Azure öffentlicher Schlüssel ID.
azure_Vault_PublicKeyVersion "" Azure öffentlicher Schlüssel Version.
azure_Vault_PrivateKeyVersion "" Azure privater Schlüssel Version.
hashicorp_vault false Setze auf true, wenn Hashicorp Vault verwendet wird.
vault_url "https://localhost:8200" Setze die Vault-URL.
tls_KeyStorePath "" Pfad zum TLS-Schlüssel-Store.
tls_TrustStorePath "" Pfad zum Trust-Store.
app_role_Path not-default
hashicorp_vaultSecretEngineName "" Name der Vault Secret Engine.
hashicorp_vaultSecretName "" Geheimnummer.
hashicorp_vaultSecretVersion "" Geheimversion.
hashicorp_vaultPrivateKeyId "" Privater Schlüssel ID.
hashicorp_vaultPublicKeyId "" Öffentlicher Schlüssel ID.
enable_remoteKeyValidation false Überprüft, ob ein Remote-Knoten die veröffentlichten öffentlichen Schlüssel besitzt.
enable_privacyEnhancements false Aktiviert Partyschutz (PP) und private Statusvalidierung (PSV).
enable_multiplePrivateStates false Aktiviert das Feature mehrerer privater Zustände.
always_send_to [] Komma-getrennte Liste von öffentlichen Schlüsseln, die als Empfänger jeder über den Knoten gesendeten Transaktion enthalten sind. Dies ermöglicht die Konfiguration eines Knotens, der eine Kopie jeder Transaktion erhält, auch wenn er nicht als Partei der Transaktion festgelegt ist.
symmetric_cipher "AES/GCM/NoPadding"
elliptic_curve "secp256r1"
nonce_length "24"
shared_key_length "32"

Beispielverwendung

  1. Rolle aus Ansible Galaxy installieren

ansible-galaxy install consensys.tessera

Erstelle die requirements.yml mit den erforderlichen Variablen

- hosts: localhost
  connection: local
  force_handlers: True

  roles:
    - role: consensys.tessera
      vars:
        besu_version: 21.10.2
        tessera_version: 21.10.0
        config_details: '["data":{"bytes":"Wl+...........tA="},"type":"unlocked"}]'
        public_key: BUL.....3Bo=

Hinweis: Die obigen config_details und public_key Informationen dienen nur zu Demonstrationszwecken in einer Entwicklungsumgebung. Sie sollten NICHT in der Produktion verwendet werden. Bitte siehe Tessera-Dokumente wie man neue Schlüssel generiert und Vault-Dienste verwendet.

Hinweis: Der obige Befehl sollte nur für Entwicklungsumgebungen verwendet werden. Normalerweise musst du deine eigenen peers und server_config angeben, um deinen Anforderungen gerecht zu werden.

  1. Rolle von Github installieren

ansible-galaxy install git+https://github.com/consensys/ansible-role-tessera.git

Erstelle requirements.yml für die von Github installierte Rolle

- hosts: localhost
  connection: local
  force_handlers: True

  roles:
    - role: ansible-role-tessera
      vars:
        besu_version: 21.10.2
        tessera_version: 21.10.0
        config_details: '["data":{"bytes":"Wl+...........tA="},"type":"unlocked"}]'
        public_key: BUL.....3Bo=
  1. Führe das Ergebnis mit folgendem Befehl aus: ansible-playbook -v requirements.yml -vvv

Lizenz

Apache

Autoreninformation

ConsenSys, 2021

Über das Projekt

Tessera is a private transaction manager for an Ethereum client like GoQuourm or Besu

Installieren
ansible-galaxy install consensys.tessera
GitHub Repository
Lizenz
apache-2.0
Downloads
90
Besitzer
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.