consensys.hyperledger_besu

Rola Ansible: Besu

Opis

Rola Ansible, która zainstaluje, skonfiguruje i uruchomi Besu: klienci Ethereum w Javie dla przedsiębiorstw.

Spis treści

Obsługiwane platformy

* MacOS
* Debian
* Ubuntu
* Redhat(CentOS/Fedora)
* Amazon

Zależności

  • JDK 11 lub wyższe

Zmienne roli:

Wszystkie zmienne, które można przedefiniować, są przechowywane w pliku defaults/main.yml. Te zmienne to głównie opcje konfiguracyjne. Proszę zapoznać się z dokumentacją Besu tutaj po więcej informacji.

Nazwa Wartość domyślna Opis
besu_build_from_source nieustawione Gdy ustawione na true, Besu jest budowany z kodów źródłowych z gita. Zobacz także besu_git_repo i besu_git_commit
besu_version nieustawione WYMAGANE jeśli besu_build_from_source jest fałszywe. Wersja Besu do zainstalowania i uruchomienia. Wszystkie dostępne wersje są wymienione na stronie Besu rozwiązań
besu_git_repo https://github.com/hyperledger/besu.git URL do użycia przy klonowaniu źródeł besu. Konieczne tylko wtedy, gdy besu_build_from_source jest true.
besu_git_commit master Komitet git, który ma być używany przy budowaniu Besu z kodu. Może być nazwą gałęzi, hashem komitu lub inną legalną wartością do użycia jako argument do git checkout. Używane tylko, jeśli besu_build_from_source jest true.
besu_user besu Użytkownik Besu
besu_group besu Grupa Besu
besu_download_url https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/{{ besu_version }}/besu-{{ besu_version }}.tar.gz Plik tar.gz do pobrania. Możesz użyć tego, jeśli potrzebujesz pobrać besu z niestandardowej lokalizacji, takiej jak wewnętrzne repozytorium.
besu_install_dir /opt/besu Ścieżka do instalacji
besu_config_dir /etc/besu Ścieżka do domyślnej konfiguracji
besu_node_private_key_file "" Ścieżka do prywatnego klucza węzła, jeśli dostarczony. Musi zawierać nazwę pliku klucza węzła i ścieżkę, jak /home/me/me_node/myPrivateKey. Jeśli nie podano, Besu automatycznie go utworzy.
besu_data_dir /opt/besu/data Ścieżka do katalogu danych
besu_log_dir /var/log/besu Ścieżka do logów
besu_log4j_config_file nieustawione Absolutna ścieżka do niestandardowego pliku konfiguracyjnego log4j. Zauważ, że ta konfiguracja logów jest nadpisywana, jeśli besu_log_level jest ustawiony
besu_profile_file /etc/profile.d/besu-path.sh Ścieżka do załadowania Besu do systemowego PATH
besu_managed_service true Umożliwia usługi systemd (lub launchd, jeśli na systemie Darwin)
besu_launchd_dir /Library/LaunchAgents Domyślny katalog launchd
besu_systemd_dir /etc/systemd/system/ Domyślny katalog systemd
besu_systemd_state restarted Domyślna opcja dla stanu usługi systemd
besu_identity nieustawione Konfiguracja tożsamości w identyfikatorze klienta
besu_host_ip "" Adres IP, który Besu używa do sieci P2P. Określa hosta, na którym P2P nasłuchuje
besu_max_peers nieustawione Maksymalna liczba połączeń P2P, które można nawiązać
besu_network mainnet Sieć, do której dołączy ten węzeł. Inne wartości to 'ropsten', 'rinkeby', 'goerli', 'classic', 'mordor', 'kotti', 'dev' oraz 'custom'
besu_genesis_path nieustawione Ścieżka do pliku genesis, ważna tylko wtedy, gdy besu_network jest custom
besu_required_blocks [] Wymaga węzła z określoną liczbą bloku, który mażące hashe, gdy łączy się, lub Besu odrzuca ten węzeł
besu_sync_mode FAST Określa tryb synchronizacji. Inne wartości to 'FULL'
besu_log_level nieustawione Poziom logowania do użycia. Inne poziomy logowania to 'OFF', 'FATAL', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL'. Ustawienie tego ma priorytet nad konfiguracją ustawioną przez besu_log4j_config_file
besu_data_storage_format nieustawione Format przechowywania danych. Możliwe wartości to 'FOREST' oraz 'BONSAI'. Domyślnym formatem besu jest 'FOREST'
besu_engine_jwt_disabled nieustawione Wyłącza uwierzytelnianie dla API silnika. Domyślnie besu jest fałszywe.
besu_engine_jwt_secret nieustawione Ścieżka do pliku ze wspólnym kluczem, używanego do uwierzytelniania klientów konsensusu, gdy używa się API silnika JSON-RPC (zarówno HTTP, jak i WebSocket). Zawartość pliku mogą być ustawione za pomocą besu_engine_jwt_secret_content i musi wynosić co najmniej 32 bajty w kodzie szesnastkowym, nie zaczynając od 0x, w przeciwnym razie zostanie automatycznie ustawiona losowa wartość, ale tylko jeśli na dysku nie istnieje jeszcze tajny klucz. Jeśli nie podano, domyślnie Besu tworzy efemeryczny klucz w katalogu danych, który jest usuwany po wyjściu.
besu_engine_jwt_secret_content losowa wartość Dostępny tylko, gdy besu_engine_jwt_secret jest podany, plik jest wypełniany tą wartością, która musi mieć co najmniej 32 bajty kodu szesnastkowego i nie zaczynać się od 0x, i powinna być zaszyfrowana za pomocą Ansible Vault.
besu_engine_rpc_port nieustawione Port nasłuchujący dla wywołań API silnika (ENGINE, ETH) dla JSON-RPC przez HTTP i WebSocket. Domyślnie besu to 8551
besu_p2p_port 30303 Określa porty nasłuchujące P2P (UDP i TCP). Porty muszą być odpowiednio udostępnione
besu_min_gas 1000 Minimalna cena, jaką transakcja oferuje, aby zostać uwzględnioną w wykopanym bloku
besu_miner_enabled false Włącza wydobywanie, gdy węzeł jest uruchamiany
besu_miner_coinbase 0x Konto, na które trafią nagrody za wydobywanie
besu_miner_extra_data "" Ciąg hex reprezentujący 32 bajty, które mają być zawarte w polu dodatkowych danych wykopanego bloku.
besu_rpc_http_enabled true Włącza usługę HTTP JSON-RPC
besu_rpc_http_host 0.0.0.0 Określa hosta, na którym HTTP JSON-RPC nasłuchuje
besu_rpc_http_port 8545 Określa port, na którym HTTP JSON-RPC nasłuchuje
besu_rpc_http_api ["ADMIN","DEBUG","NET","ETH","MINER","WEB3"] Lista API rozdzielonych przecinkami do włączenia w kanale HTTP JSON-RPC. Przy użyciu tej opcji, opcja besu_rpc_http_enabled również musi być włączona
besu_rpc_http_cors_origins ["all"] URL domeny źródłowej rozdzielonych przecinkami do walidacji CORS
besu_rpc_ws_enabled true Włącza usługę WebSockets
besu_rpc_ws_api ["NET", "ETH", "WEB3"] Lista API rozdzielonych przecinkami do włączenia w kanale WebSockets JSON-RPC. Przy użyciu tej opcji, opcja besu_rpc_ws_enabled również musi być włączona
besu_rpc_ws_host 0.0.0.0 Określa hosta, na którym WebSockets nasłuchuje
besu_rpc_ws_port 8546 Określa port nasłuchujący Websockets JSON-RPC (TCP). Port musi być odpowiednio udostępniony
besu_graphql_http_enabled true Włącza usługę HTTP JSON-RPC
besu_graphql_http_host 0.0.0.0 Określa hosta, na którym HTTP JSON-RPC nasłuchuje
besu_graphql_http_port 8547 Określa port, na którym HTTP JSON-RPC nasłuchuje
besu_graphql_http_cors_origins ["all"] Lista domen źródłowych rozdzielonych przecinkami do walidacji CORS
besu_rpc_http_authentication_enabled "false" Włącza uwierzytelnianie RPC WS
besu_rpc_http_authentication_credentials_file "" Określa plik do użycia dla danych uwierzytelniających RPC http
besu_rpc_http_authentication_jwt_public_key_file "" Określa plik do użycia dla danych uwierzytelniających RPC http za pośrednictwem klucza publicznego
besu_rpc_ws_authentication_enabled "false" Włącza uwierzytelnianie RPC WS
besu_rpc_ws_authentication_credentials_file "" Określa plik do użycia dla danych uwierzytelniających RPC http
besu_rpc_ws_authentication_jwt_public_key_file "" Określa plik do użycia dla danych uwierzytelniających RPC http za pośrednictwem klucza publicznego
besu_metrics_host 0.0.0.0 Określa hosta, na którym Prometheus uzyskuje dostęp do metryk Besu. Serwer metryk respektuje opcję besu_whitelist
besu_metrics_port 9545 Określa port, na którym Prometheus uzyskuje dostęp do metryk Besu
besu_bootnodes [] Lista URL enode rozdzielonych przecinkami do wykrywania P2P. Przy łączeniu się z MainNet lub publicznymi testnetami, domyślnie jest to predefiniowana lista URL enode
besu_static_nodes_file /etc/besu/static-nodes.json Ścieżka do pliku statycznych węzłów
besu_host_whitelist ["*"] Lista rozdzielonych przecinkami nazw hostów, które mają dostęp do API JSON-RPC. Domyślnie akceptowany jest dostęp z localhost i 127.0.0.1.
besu_local_permissions_enabled "false" Włącza lokalne uprawnienia
besu_local_permissions_config_file /etc/besu/permissions_config.toml Ścieżka do pliku konfiguracyjnego lokalnych uprawnień dla lokalnych kont i węzłów
besu_local_permissions_accounts [] Lista uprawnionych kont
besu_local_permissions_nodes [] Lista uprawnionych węzłów
besu_permissions_accounts_contract_address nieustawione Adres umowy dla uprawnień kont on-chain
besu_permissions_nodes_contract_address nieustawione Adres umowy dla uprawnień węzłów on-chain
besu_cmdline_args "" Argumenty wiersza poleceń przekazywane jako nadpisania
besu_env_opts [] Ustawienia przekazywane do JVM za pomocą zmiennej środowiskowej BESU_OPTS. np: [-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005]
besu_env_vars {} Słownik z zmiennymi środowiskowymi do ustawienia podczas uruchamiania Besu jako usługi systemd. np: {MALLOC_ARENA_MAX: 2}
besu_privacy_enabled false Włącza prywatność
besu_privacy_url "" URL do kontaktu z Orionem, w tym port np: http://localhost:8888
besu_privacy_public_key_file "" Ścieżka do klucza publicznego Oriona
besu_privacy_marker_tx_signing_key_file "" Ścieżka do pliku klucza prywatnego używanego do podpisywania transakcji oznaczających prywatność. Jeśli nie podasz tej opcji, Besu podpisuje każdą transakcję innym losowo wygenerowanym kluczem.
besu_xdns_enabled "false" Obsługa DNS z zaufanym dostawcą DNS w sieciach prywatnych z powodu ograniczeń, gdzie adresy IP mogą się zmieniać. Na przykład, gdy używasz podów Kubernetes
besu_target_gas_limit nieustawione Konfiguracja docelowego limitu gazu
besu_tx_pool layered Wybór implementacji puli transakcji, ustaw na legacy, aby przełączyć się na starą implementację
besu_tx_pool_price_bump 10 Procentowy wzrost ceny do zastąpienia istniejącej transakcji
besu_tx_pool_limit_by_account_percentage 0.001 Maksymalna liczba transakcji, względnie do maksymalnego rozmiaru puli, dla tego samego nadawcy dozwolona w puli transakcji. Domyślnie 5, aby zapobiec atakowi DoS. Używa wartości zmiennoprzecinkowej [0..1], więc ustawienie na 1 oznacza, że pojedynczy nadawca może zapełnić całą pulę transakcji. Zastosuj tylko, jeśli wybrana jest implementacja legacy
besu_tx_pool_max_size 4096 Maksymalna liczba transakcji przechowywanych w puli transakcji. Zastosuj tylko, jeśli wybrana jest implementacja legacy
besu_tx_pool_retention_hours 13 Maksymalny czas, w godzinach, na przechowywanie oczekujących transakcji w puli transakcji. Zastosuj tylko, jeśli wybrana jest implementacja legacy

Przykładowy Playbook

  1. Domyślna konfiguracja: Zainstaluj rolę z galaktyki
ansible-galaxy install consensys.hyperledger_besu

Utwórz plik requirements.yml z następującą zawartością: Zamień x.y.z poniżej na wersję, którą chcesz użyć z strony Besu rozwiązań

---
- hosts: localhost
  connection: local
  force_handlers: True

  roles:
  - role: consensys.hyperledger_besu
    vars:
      besu_version: x.y.z

Uruchom za pomocą ansible-playbook:

ansible-playbook -v /path/to/requirements.yml
  1. Instalacja z użyciem GitHub:
ansible-galaxy install git+https://github.com/consensys/ansible-role-besu.git

Utwórz plik requirements.yml z następującą zawartością: Zamień x.y.z poniżej na wersję, którą chcesz użyć z strony Besu rozwiązań

---
- hosts: localhost
  connection: local
  force_handlers: True

  roles:
  - role: ansible-role-besu
    vars:
      besu_version: x.y.z

Uruchom za pomocą ansible-playbook:

ansible-playbook -v /path/to/requirements.yml

Licencja

Apache

Informacje o autorze

Consensys, 2023

O projekcie

Besu is an open-source java enterprise ethereum client

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