Jak działa serwer węzła Hiero i jak sieć Hedera przetwarza transakcje
Jeśli choć przez chwilę śledziłeś rynek zdecentralizowanych sieci, prawdopodobnie słyszałeś o sieci Hedera. Przez długi czas jej silnik pozostawał zamkniętym kodem komercyjnym z określoną licencją. Sytuacja zmieniła się, gdy projekt przeszedł pod parasol Linux Foundation i otrzymał otwartą nazwę Hiero.
Kod źródłowy węzła konsensusu, napisany w Javie, jest dostępny w repozytorium hiero-consensus-node. To właśnie ta usługa przyjmuje żądania gRPC, przeprowadza transakcje przez konsensus DAG i wykonuje inteligentne kontrakty.
Co znajduje się w monorepozytorium
Kod jest podzielony na dwa główne moduły potomne:
platform-sdk/— niższy poziom platformy. Obsługuje połączenia sieciowe między węzłami, algorytm konsensusu i trwałe przechowywanie stanu sieci.hedera-node/— warstwa aplikacji. Zawiera usługi dla kont, tokenów, plików i wykonywania kodu EVM.
Podział jest logiczny. Platforma zajmuje się ciężką pracą matematyczną rozproszonego konsensusu, podczas gdy moduł aplikacji przekształca ten konsensus w wygodne API dla programistów.
Usługi, Protobuf i Solidity
Komunikacja między klientem a węzłem opiera się na protokole gRPC. Cała specyfikacja jest zdefiniowana w oddzielnych schematach Protobuf. Poprzez te protokoły węzeł obsługuje podstawowe zadania:
- Tokenizacja (HTS). Umożliwia emitowanie i transfer tokenów bez pisania inteligentnych kontraktów.
- Rejestrowanie konsensusu (HCS). Umożliwia rejestrowanie znaczników czasu i wiadomości w rozproszonym rejestrze.
- Inteligentne kontrakty. Wirtualna maszyna EVM działa wewnątrz węzła, obsługując kompilator Solidity z dyrektywą
pragma solidity <=0.8.9.
Obsługa wersji Solidity jest obecnie ograniczona do wersji 0.8.9. Dla standardowych kontraktów OpenZeppelin lub typowej logiki biznesowej jest to wystarczające, choć nie będziesz mieć dostępu do najnowszych funkcji języka.
Infrastruktura i jakość kodu
Repozytorium od razu zdradza swoje korporacyjne pochodzenie. Nie ma tu typowego chaosu małych narzędzi open source. Potoki CI/CD obejmują codzienne testy wydajności (Single Day Performance Tests) i długotrwałe testy wytrzymałościowe (Longevity Tests).
Projekt jest certyfikowany zgodnie ze standardami OpenSSF Scorecard i CII Best Practices, a pokrycie testami jest śledzone przez Codecov.
Z drugiej strony, sekcja issues zawiera ponad piętnaścieset otwartych zadań. To normalne dla dużych systemów, które przeszły na open source, ale nowi programiści będą musieli poświęcić czas na zrozumienie struktury projektu.
Od czego zacząć naukę
Projekt jest zbudowany za pomocą Gradle. Aby uruchomić go lokalnie, potrzebujesz najnowszej wersji Javy i wystarczającej ilości pamięci RAM.
Jeśli chcesz zagłębić się w szczegóły architektury, warto sprawdzić dokumentację:
- Folder
hedera-node/docs/design/zawiera diagramy architektoniczne i decyzje projektowe dotyczące usług. - Dokumentacja w
platform-sdk/docs/opisuje wewnętrzną strukturę samej platformy konsensusu.
Kto znajdzie ten projekt przydatny
Dla typowego programisty Web3, który tylko potrzebuje wydać token lub wdrożyć dApp, uruchomienie własnego węzła nie jest konieczne. O wiele prościej jest użyć gotowych SDK w preferowanym języku programowania.
To repozytorium jest przede wszystkim interesujące dla zespołów inżynieryjnych. Tych, którzy projektują własne sieci korporacyjne oparte na technologii Hashgraph, badają asynchroniczną odporność na błędy BFT lub studiują systemy Java o wysokim obciążeniu. Kod zawiera dobre przykłady optymalizacji pamięci i strukturyzacji usług gRPC pod kątem wysokiego obciążenia.
Powiązane projekty