consensys.tessera

Rola Ansible: Tessera

Opis

To repozytorium zawiera playbook Ansible do wdrożenia Tessera na serwerze fizycznym.

Spis Treści

Wymagania Wstępne

  1. Java JDK 11+
  2. Narzędzia do budowania libsodium

Zmienne Roli

Zmienne są zdefiniowane w defaults/main.yml i można je bezpośrednio zmieniać edytując ten plik, przekazując parametry z linii poleceń lub zmienne w playbooku. Większość zmiennych to opcje dotyczące pliku konfiguracyjnego dla Tessera, który można znaleźć w jego dokumentacji.

Zalecane Zmienne Roli

Poniższa tabela przedstawia zalecane zmienne roli, które powinny być używane. Zobacz drugą tabelę, jeśli chcesz zobaczyć pełną listę zmiennych, które można modyfikować.

Nazwa Domyślna Wymagana?
tessera_version nieustawiona Tak
run_with_besu fałsz Tak, jeśli działa z Besu. Pozostaw nieustawione lub fałsz, jeśli używasz z GoQuorum.
server_configs nieustawiona Tak. Jeśli pozostawisz nieustawione, użyta zostanie domyślna konfiguracja odpowiednia dla środowiska deweloperskiego. Sprawdź templates/config.json.j2
peers nieustawiona Tak. Jeśli pozostawisz nieustawione, domyślnie będzie to sam. Sprawdź templates/config.json.j2
public_key nieustawiona Klucz publiczny.
config_details nieustawiona Szczegóły konfiguracji dla kluczy inline chronionych lub niechronionych.
jdbc_url Ustawione na tessera_config_dir/db Tak. Domyślnie zostanie ustawione na tessera_config_dir/db jako lokalny plik.
jdbc_username "sa" Tak. Upewnij się, że zmienisz.
jdbc_password "" Tak. Upewnij się, że zmienisz.
default_log_level INFO Nie. Można ustawić na 'DEBUG', jeśli to konieczne.

Pełna Lista Zmiennych Roli

Nazwa Domyślna Opis
tessera_version nieustawiona Wersja Tessera do zainstalowania. Musi być ustawiona, aby rola działała.
tessera_user tessera Użytkownik, który będzie tworzony w systemie dla działania Tessera.
tessera_group tessera Grupa, do której będzie należał użytkownik.
tessera_download_url Ustalone URL do pliku tar Tessera.
enclave_download_url Ustalone URL do pliku tar Enclave.
azure_key_vault_download_url Ustalone URL do pliku tar Azure Key Vault.
aws_key_vault_download_url Ustalone URL do pliku tar AWS Key Vault.
hashicorp_key_vault_download_url Ustalone URL do pliku tar Hashicorp Key Vault.
libsodium_download_url Ustalone URL do pliku tar.gz Libsodium.
tessera_base_dir /opt/tessera Katalog podstawowy dla binariów Tessera i jego zależności.
tessera_install_dir /opt/tessera/tessera-{{ tessera_version }} Katalog instalacji dla Tessera.
tessera_config_dir /etc/tessera Katalog konfiguracyjny dla Tessera.
tessera_log_dir /var/log/tessera Katalog dzienników dla Tessera.
tessera_libsodium_dir /opt/tessera/libsodium Katalog instalacji Libsodium.
default_log_level INFO Ustaw poziom logowania dla Tessera.
jdbc_url --- URL połączenia JDBC.
jdbc_username "sa" Nazwa użytkownika JDBC.
jdbc_password "" Hasło JDBC.
disable_peer_discovery fałsz Jeśli ustawione na prawda, komunikacja jest ograniczona do peerów w pliku konfiguracyjnym.
use_whitelist fałsz Jeśli ustawione na prawda, połączenie z Tessera będzie ograniczone do określonych peerów.
run_with_besu fałsz Ustaw na prawda, jeśli Tessera będzie uruchamiana z Besu zamiast GoQuorum.
bootstrap_mode fałsz Jeśli ustawione na prawda, węzeł działa jako bootstrap dla innych węzłów.
server_configs [] Odwołaj się do dokumentacji.
peers [] Lista peerów do połączenia.
public_key "" Klucz publiczny dla Tessera.
config_details "" Szczegóły konfiguracji dla chronionych lub niechronionych par kluczy inline.
private_key_path "" Ścieżka do klucza prywatnego.
public_key_path "" Ścieżka do klucza publicznego.
private_key "" Klucz prywatny dla Tessera.
aws_secret_manager fałsz Ustaw na prawda, jeśli używasz AWS Secrets Manager.
aws_region us-east-1 Ustaw na żądany region AWS dla Secrets Manager.
aws_SecretsManager_PublicKeyId "" Public Key ID dla AWS Secrets Manager.
aws_SecretsManager_PrivateKeyId "" Private Key ID dla AWS Secrets Manager.
azure_key_vault fałsz Ustaw na prawda, jeśli używasz Azure Key Vault.
azure_Vault_PrivateKeyId "" Private Key ID dla Azure.
azure_Vault_PublicKeyId "" Public Key ID dla Azure.
azure_Vault_PublicKeyVersion "" Wersja klucza publicznego Azure.
azure_Vault_PrivateKeyVersion "" Wersja klucza prywatnego Azure.
hashicorp_vault fałsz Ustaw na prawda, jeśli używasz Hashicorp Vault.
vault_url "https://localhost:8200" Ustaw URL waluty.
tls_KeyStorePath "" Ścieżka do Key Store TLS.
tls_TrustStorePath "" Ścieżka do Trust Store.
app_role_Path not-default
hashicorp_vaultSecretEngineName "" Nazwa silnika sekretów Vault.
hashicorp_vaultSecretName "" Nazwa sekretnych.
hashicorp_vaultSecretVersion "" Wersja sekretu.
hashicorp_vaultPrivateKeyId "" Private Key ID.
hashicorp_vaultPublicKeyId "" Public Key ID.
enable_remoteKeyValidation fałsz Sprawdza, czy zdalny węzeł posiada klucze publiczne, które są reklamowane.
enable_privacyEnhancements fałsz Włącz ochronę partyjną (PP) oraz walidację stanu prywatnego (PSV).
enable_multiplePrivateStates fałsz Włącz funkcję wielu prywatnych stanów.
always_send_to [] Lista kluczy publicznych, które mają być dodawane jako odbiorcy dla każdej transakcji przesyłanej przez węzeł. Umożliwia to skonfigurowanie węzła, który otrzymuje kopię każdej transakcji, nawet jeśli nie jest wskazany jako strona transakcji.
symmetric_cipher "AES/GCM/NoPadding"
elliptic_curve "secp256r1"
nonce_length "24"
shared_key_length "32"

Przykładowe Użycie

  1. Zainstaluj rolę z Ansible Galaxy

ansible-galaxy install consensys.tessera

Utwórz requirements.yml z wymaganymi zmiennymi

- 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=

Uwaga: Powyższe informacje o config_details i public_key są tylko do celów demonstracyjnych w środowisku deweloperskim. NIE powinny być używane w produkcji. Proszę zobaczyć dokumentację Tessera dotyczące generowania nowych kluczy i korzystania z usług Vault.

Uwaga: Powyższe polecenie powinno być używane tylko w środowiskach deweloperskich. Zazwyczaj będziesz musiał określić własne peers i server_config, aby spełnić swoje wymagania.

  1. Zainstaluj rolę z Github

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

Utwórz requirements.yml dla zainstalowanej roli z Github

- 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. Uruchom wynik poleceniem: ansible-playbook -v requirements.yml -vvv

Licencja

Apache

Informacje o Autorze

ConsenSys, 2021

O projekcie

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

Zainstaluj
ansible-galaxy install consensys.tessera
Licencja
apache-2.0
Pobrania
90
Właściciel
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.