Mjölnir: Narzędzie do benchmarkingu klientów Ethereum
Budowanie narzędzi DevOps umożliwiających szybkie wdrażanie i stress-testowanie klastrów Ethereum Proof of Authority na wielu klientach dla Brave.
|" \ /" | |" | / " \ |" | (\" \|" \ |" \ /" \
\ \ // | || | // ____ \ || | |.\\ \ | || | |: |
/\\ \/. | |: |/ / ) :)|: | |: \. \\ | |: | |_____/ )
|: \. | ___| /(: (____/ // \ |___ |. \ \. | |. | // /
|. \ /: | / :|_/ )\ / ( \_|: \| \ \ | /\ |\ |: __ \
|___|\__/|___|(_______/ \"_____/ \_______)\___|\_____\)(__\_|_)|__| \___)
M J Ö L N I R
...the hammer of Thor. Wyzwanie
Brave potrzebował narzędzi DevOps do szybkiego wdrażania klastrów Ethereum Proof of Authority (PoA) na różnych klientach Ethereum do benchmarkingu. Celem było testowanie przepustowości i wydajności w różnych warunkach sieciowych.
Żadne istniejące narzędzie nie spełniało tego wymagania-możliwości szybkiego stawiania klastrów, testowania wielu klientów Ethereum i symulowania niekorzystnych warunków sieciowych jak przesunięcie zegara, porzucone pakiety TCP i jitter.
Ta próżnia dała narodziny Mjölnir-narzędziu do szybkiego wdrażania i testowania klientów Ethereum, nazwanego na cześć młota Thora za jego moc do uderzania i testowania infrastruktury blockchain.
Obsługiwane klienty Ethereum
Mjölnir umożliwia benchmarking na wielu implementacjach enterprise Ethereum, każda z unikalnym mechanizmem konsensusu.
Quorum
Enterprise Ethereum JP Morgan
Pantheon
Obecnie Hyperledger Besu
Parity
Wersja Honey Badger / POSDAO
Co zbudowaliśmy
Kompleksowy zestaw narzędzi DevOps umożliwiający wdrożenie i benchmarking klastrów Ethereum jednym poleceniem.
Rozwój Mjölnir Core
- Niestandardowe narzędzie CLI zbudowane w Go do szybkiego wdrażania
- Wsparcie wielu klientów (Quorum, Pantheon/Besu, Parity)
- Orkiestracja klastrów Proof of Authority (PoA)
- Automatyczne provisionowanie infrastruktury
- Przepływ wdrożenia jednym poleceniem
Automatyzacja infrastruktury AWS
- Infrastruktura jako kod oparta na Terraform
- Integracja EC2, IAM, S3, CloudWatch
- Architektura bastion host dla bezpiecznego dostępu
- Auto-skalowanie wdrożenia klastra
- ~15 minut wdrożenia dla 4-węzłowych klastrów
Benchmarking i stress testing
- Integracja Chainhammer do wysyłania transakcji
- Pomiar przepustowości na różnych klientach
- Symulacja niekorzystnych warunków sieciowych
- Testowanie przesunięcia zegara, porzucania pakietów, jittera
- Automatyczne zbieranie i raportowanie wyników
Monitoring i obserwowalność
- Dashboardy Grafana do wizualizacji klastra
- Zbieranie metryk Prometheus
- eth-stats do monitorowania sieci
- Agregacja logów CloudWatch
- Wgląd w wydajność w czasie rzeczywistym
Stos technologiczny
Language
IaC
Containers
Cloud
Szybki start
# Buduj, wdrażaj i testuj jednym poleceniem
$ make quorum-hammer
# ~20 minut później, wyniki w folderze ./results
Kluczowe funkcje
Szybkie wdrożenie
Wdróż pełny 4-węzłowy klaster PoA w ~15 minut jednym poleceniem. Infrastruktura jako kod zapewnia powtarzalne środowiska.
Testowanie niekorzystnych warunków sieci
Symuluj rzeczywiste warunki sieciowe: przesunięcie zegara, porzucone pakiety TCP, jitter-testuj jak klienty zachowują się pod obciążeniem.
Wsparcie wielu klientów
Porównuj przepustowość Quorum, Pantheon (Besu) i Parity. Te same warunki testowe, różne implementacje.
Zintegrowany monitoring
Dashboardy Grafana, metryki Prometheus, wizualizacja eth-stats-wszystko konfigurowane automatycznie z każdym wdrożeniem.
Rezultat
Mjölnir został wydany jako oprogramowanie open source, umożliwiając szerszej społeczności Ethereum benchmarkowanie i porównywanie implementacji klientów. Narzędzie wypełniło krytyczną lukę w ekosystemie dla standaryzowanych testów klientów.
"Chcielibyśmy podziękować binarapps za ich zdolność do zagłębienia się zarówno w infrastrukturę, jak i oprogramowanie i dostarczenie zgodnie z naszymi wymaganiami."
- Zespół Brave Experiments
Wydane na GitHub
Standaryzowane testy klientów
Sprawdzone w boju narzędzia
Budujesz infrastrukturę blockchain?
Porozmawiajmy o tym, jak nasza ekspertyza blockchain i DevOps może przyspieszyć Twoje inicjatywy Web3.
Porozmawiajmy