Kosmosie, poznaj CometBFT
Dzisiaj ogłaszamy uruchomienie CometBFT, silnika replikacji maszyny stanowej dla sieci międzyłańcuchowej i nie tylko! CometBFT jest rozwidleniem i następcą Tendermint Core i będzie służyć jako oficjalny silnik replikacyjny zasilający stos Interchain . Długoterminowa wizja CometBFT ma być głównym wyborem silnika replikacji dla niezawodnych, bezpiecznych, wielkoskalowych łańcuchów bloków specyficznych dla aplikacji. Zatwierdź swoje bloki z CometBFT już dziś!
Fundacja Interchain, Informal Systems, zespół Cosmos SDK i wiele innych zespołów w ekosystemie Cosmos współpracowało, aby przygotować tę premierę. Ten post odpowiada na niektóre z najważniejszych pytań związanych z tą premierą. Zapewniamy, że ciężko pracowaliśmy, aby aktualizacja lub przyjęcie CometBFT przebiegało tak płynnie, jak to tylko możliwe. Omówimy szczegóły tła, wizję i cele CometBFT, zespoły stojące za tym wysiłkiem oraz kolejne kroki pod względem implikacji technicznych.
Dlaczego teraz?
Postanowiliśmy opracować flagowy silnik konsensusu Cosmos pod tą nową nazwą, aby zaznaczyć wiele ważnych zmian zachodzących w całym ekosystemie.
Od strony technicznej sieć międzyłańcuchowa znacznie się rozwinęła w ciągu ostatnich kilku lat. Żyjemy w rodzimym dla IBC, wielołańcuchowym świecie. ABCI 2.0 to kluczowy element, którego brakuje w stosie Interchain, podobnie jak aspekty projektowania lub zapewnienia jakości, takie jak modułowość, integracja lub rygorystyczne testy. Ponadto rezygnacja z wersji 0.35 i 0.36 Tendermint Core ujawniła techniczne ograniczenia w sposobie prowadzenia rozwoju; zobacz tutaj po więcej szczegółów.
W 2022 roku organizacje utrzymujące Interchain Stack zainicjowały strategiczne podejście do łagodzenia powyższych ograniczeń technicznych. Podejście to obejmowało zbudowanie i poświęcenie kompletnego zespołu Tendermint Core w Informal Systems. Dodatkowo, przygotowując wydania, zaczęliśmy stawiać na jakość i integrację z resztą Interchain Stack (tj. Cosmos SDK, IBC i szerszymi blokami konstrukcyjnymi międzyłańcuchowymi).
Od strony administracyjnej nie jesteśmy właścicielami organizacji tendermint GitHub ani praw do znaku towarowego nad „Tendermint”. All in Bits (AiB) jest właścicielem. Rozwój oprogramowania Tendermint Core odbywał się poza firmą All in Bits przez ostatnie trzy lata. Jednak posiadanie znaku towarowego przez AiB wiązało się z ciągłym ryzykiem działań związanych ze znakiem towarowym. Bez skomplikowanych umów z AiB nie byłoby możliwe pełne ograniczenie tego ryzyka wiszącego nad głowami twórców najbardziej krytycznego elementu stosu Interchain.
Jak wspomnieliśmy wcześniej na Twitterze i w związku z tą dyskusją , AiB jednostronnie zdecydowało się zarchiwizować repozytorium Tendermint Core. Tak więc sposobem na kontynuację trajektorii rozwoju, zgodnie z zachętą AiB, było rozwidlenie repozytorium Tendermint Core. CometBFT będzie opierać się na fundamentach położonych przez Tendermint Core, z odnowionym rozwojem skupiającym się na użytkownikach, jakości i integracji.
Zgodnie z tymi kwestiami technicznymi i administracyjnymi najważniejsze zmiany dotyczą długoterminowej wizji projektu, celów i administracji. To prowadzi nas do następnej części tej dyskusji.
Co dalej?
Jako oddany zarządca Kosmosu i ekosystemu międzyłańcuchowego, Fundacja Interchain służy jako niezawodny gospodarz finansowania dóbr publicznych i aktywów. ICF jest właścicielem znaku towarowego „Cosmos” od samego początku i chroni jego użycie w najlepszym interesie szerszej społeczności. Podobnie, ICF zarejestrowało nazwę handlową „CometBFT” i założyło organizację CometBFT GitHub oraz zamierza zarządzać obiema firmami na dłuższą metę w najlepszym interesie rozwijającej się sieci międzysieciowej. CometBFT pozostanie open source i licencjonowanym Apache2.0. Zapraszamy wszystkich zainteresowanych do udziału w rozwoju tego oprogramowania oraz do promowania jego wartości open source.
Jak wspomniano wcześniej, długoterminowym mandatem dla CometBFT ma być główny wybór silnika replikacyjnego dla interchain. Zespół CosmosSDK, zespoły IBC, opiekunowie CometBFT oraz liczne zespoły inżynierów, które tworzą interchain, zarówno na poziomie aplikacji, jak i dóbr publicznych, mają wspólną wizję uczynienia CometBFT miejscem, w którym zespoły mogą eksperymentować z nowatorskimi funkcjami, budować iterować z optymalizacjami i zapewniać wysoki stopień elastyczności dla użytkowników, przy jednoczesnym zachowaniu integralności i solidności stosu. Jeśli jesteś współtwórcą Interchain Stack, obsługujesz walidatory lub węzły, integrujesz się z innymi ekosystemami lub odnajdujesz się w Kosmosie jako nowy użytkownik, Twoja pomoc byłaby bardzo mile widziana w urzeczywistnieniu tego. Zobacz „Referencje” poniżej, jak się z nami skontaktować.
Jakie są cele CometBFT?
Jak opisano powyżej i wcześniej , oznacza to nową fazę w interchain. Jego silnik konsensusu ewoluuje, aby stać się blokiem konstrukcyjnym wyspecjalizowanym w świecie rodzimym dla IBC. Staramy się kontynuować ścisłą współpracę z zespołem Cosmos SDK i obecnymi użytkownikami, jednocześnie ułatwiając adopcję dla rozwijającego się ekosystemu deweloperów aplikacji, którzy budują powyżej ABCI i z IBC. Podstawowym, długoterminowym celem CometBFT jest odgrywanie kluczowej roli we wspieraniu rozwoju sieci międzyłańcuchowej.
Mówiąc dokładniej, cele CometBFT to:
- Silna koncentracja na użytkowniku , z jasno sformułowaną strategią produktu, która przede wszystkim uwzględnia potrzeby użytkowników. Jest to strategiczny wybór zapewniający, że CometBFT jest odpowiedni i zapewnia użyteczność.
- Poprawa zapewnienia jakości i gwarancji poprawności, mająca na celu rygorystyczne określenie i przetestowanie naszej implementacji przy użyciu zaawansowanych technik, takich jak testowanie oparte na modelach. Wnosimy naszą wiedzę specjalistyczną w zakresie specyfikacji i metod formalnych, aby wzmocnić istniejącą kontrolę jakości, która została już uzupełniona testami na dużą skalę.
- Modułowość , skupiająca się na właściwych granicach abstrakcji, umożliwiająca rozebranie systemu w razie potrzeby i tam, gdzie jest to konieczne, umożliwiająca fragmentaryczną integrację w projektach, które od niej zależą. Chcemy, aby CometBFT był w coraz większym stopniu wykorzystywany jako biblioteka oraz zminimalizować rozwidlenia i fragmentację, dostarczając nowe interfejsy obsługujące stale rosnącą gamę przypadków użycia.
- Szybsze wdrażanie funkcjonalności bez utraty jakości dzięki stopniowej aktualizacji architektury systemu, aby działała jako solidna platforma do zmian, a także dzięki płynniejszej koordynacji projektu w całym stosie Interchain.
Kto stoi za CometBFT?
Uruchomienie CometBFT było decyzją wielu organizacji. CometBFT jest zarządzany przez Informal Systems we współpracy z dużą liczbą interesariuszy Cosmos. Uruchomienie obejmowało pracę kilku zespołów w całym łańcuchu, w tym Cosmos SDK, IBC, Osmosis, Cosmos Hub oraz koordynację z Agoric, Axelar, Oasis, Penumbra, Celestia, Anoma, Skip, Umee, Confio, Nomic, Numia, Sei, Evmos , Sommelier, Andromeda, Cronos i wielu innych.
Zespół CometBFT w Informal składa się z jednych z najbardziej utalentowanych i pełnych pasji współpracowników Cosmos. Będziemy kontynuować na Twitterze, przedstawiając głównych członków zespołu, a także członków wspierających z innych zespołów międzyłańcuchowych. W tej chwili wystarczy powiedzieć, że podstawowy zespół składa się z inżynierów badawczych, weteranów DevOps i inżynierów oprogramowania z dziesięcioleciami połączonego doświadczenia, a także kierowników projektów, produktów i technologii z ponad 10-letnim doświadczeniem w Cosmos.
Jakie są najbliższe kroki?
Uruchomienie CometBFT to znaczny wysiłek, który wciąż trwa. Oto kilka ważnych rzeczy, które należy wiedzieć.
Jeśli Twoja praca zależy od CometBFT , rozważ dołączenie do społecznościowych wezwań, które są organizowane co dwa tygodnie w czwartki:https://groups.google.com/g/cometbft-community/. Oprócz repozytorium GitHub, wezwanie społeczności jest ważnym forum do dyskusji na temat rozwoju CometBFT. Jest to miejsce, w którym programiści mogą zbierać od Ciebie opinie, odpowiadać na pytania, a Ty jako użytkownik wymieniać się cenną wiedzą z innymi użytkownikami.
Jeśli Twoja aplikacja opiera się na Cosmos SDK: Nowe wersje SDK dla linii 0,45, 0,46 i 0,47 zostaną wydane przez zespół Cosmos SDK. Te wydania będą wykorzystywać CometBFT v0.34 zamiast Tendermint Core 0.34, zgodnie z umową między współtwórcami i projektami Interchain Stack. Aktualizacja do tej wersji zestawu SDK nie wymaga skoordynowanej aktualizacji, ponieważ jest to niewielka zmiana wersji. Dziennik zmian Cosmos SDK udokumentuje odpowiednie zmiany dla Twojej aplikacji.
Jeśli budujesz bezpośrednio na Tendermint Core: Jako opiekunowie zalecamy przejście z Tendermint Core v0.34 na CometBFT v0.34. Przekażemy instrukcje dotyczące aktualizacji po opracowaniu pierwszych wersji. Miej oko na repozytorium Github tutaj .
Jeśli utrzymujesz rozwidlenie Tendermint Core: Zalecamy jak najszybsze przejście na CometBFT, np. poprzez zmianę bazy lub wybranie odpowiednich zmian w rozwidleniu CometBFT. Chętnie pomożemy w tym procesie. Ponadto, chętnie zapoznamy się z Twoją opinią i informacjami na temat Twoich konkretnych wymagań dotyczących wyeliminowania konieczności utrzymywania widelca (zobacz odniesienie do „społeczności” poniżej).
Bibliografia
Tutaj znajdziesz oficjalne linki i instrukcje dotyczące Comet:
- Gdzie znaleźć silnik konsensusu CometBFT?https://github.com/cometbft/cometbft/. Nie zapomnij oznaczyć gwiazdką repo!
- Jak znaleźć wsparcie? Jeśli jesteś programistą, najlepszym miejscem na wsparcie jest serwer Cosmos Network Discord, w kanale `#cometbft` .
- Wprowadziliśmy kanał Telegram, aby umożliwić szybkie przesyłanie opinii i komunikację oraz obsłużyć ten okres przejściowy. Dołącz tutaj:https://t.me/CometBFT
- Link do dokumentacji:https://docs.cometbft.com/
- Nowe uchwyty do projektu w następujący sposób. Organizacja GitHuba:https://github.com/cometbft/. Discord: Na serwerze Cosmos Network dołącz do kanału `#cometbft` . Istniejący kanał `#tendermint-core` zostanie wycofany.
- Twitter: Ogłoszenia i aktualizacje będą publikowane z @cometbft i @informalinc .
- Ogólne informacje: [email protected] .
- W przypadku bezpieczeństwa lub luk w zabezpieczeniach: [email protected] .
Jaki jest algorytm konsensusu leżący u podstaw CometBFT?
Algorytm konsensusu leżący u podstaw CometBFT jest obecnie oparty na (tj. jest implementacją) Tendermint Consensus .
Czy CometBFT odejdzie od algorytmu konsensusu Tendermint?
Nie w pierwszych wydaniach. Naszym celem jest zbudowanie CometBFT jako komponowalnej biblioteki konsensusu, w której domyślny algorytm konsensusu można łatwo zamienić na inny, ale nie ograniczając się do tych zaimplementowanych przez głównych opiekunów.
Planujemy również współpracować z zespołami, które wprowadziły zmiany lub optymalizacje w algorytmie konsensusu lub gdzie indziej (zobacz widełki autorstwa LINE , PeggyJV , SeiNetwork lub Celestia Org ) w celu przeniesienia modyfikacji, których potrzebują inni użytkownicy, do głównej linii rozwojowej.
Czy będzie wiele konkurencyjnych rozwidleń Tendermint Core zasilających interchain?
To wszystko jest open source, więc może być. Jednak kanoniczne elementy składowe zostaną zbudowane na bazie CometBFT. Łańcuchy Cosmos są budowane za pomocą Cosmos SDK (@cosmossdk), który będzie budowany na bazie CometBFT. Rozwój Cosmos SDK będzie kontynuowany jak zwykle.
Na poziomie IBC biblioteki będą nadal wspierać klientów Tendermint light; CometBFT zawiera implementację algorytmu konsensusu Tendermint, dlatego klienci Tendermint light będą kontynuować pracę z CometBFT jak zwykle.
Każdy zespół może rozwidlić CometBFT i zastąpić silnik replikacji w swoich aplikacjach. Zalecamy jednak skontaktowanie się z nami, jeśli potrzebujesz znaczących zmian (patrz „Jak znaleźć wsparcie?” powyżej). Weźmiemy pod uwagę Twoje potrzeby i odpowiednio dostosujemy naszą techniczną mapę drogową, aby uniknąć, jeśli to możliwe, niepotrzebnych lub niepewnych rozwidleń.
Czy to spowoduje rozwidlenie się łańcucha?
Stanowcze „nie”. Systemy oparte na Tendermint Core v0.34 można zaktualizować do wersji CometBFT v0.34. A linia CometBFT v0.34 pozostanie kompatybilna z Tendermint Core v0.34.
Jeśli przeprowadzam walidację w sieci opartej na Tendermint Core, czy są jakieś obawy dotyczące moich operacji?
Ostrożnie zasygnalizujemy przełomowe zmiany w dzienniku zmian wydania, a przełomowe zmiany będą minimalne. Nazwa binarna Tendermint Core zostanie zmieniona, ale większość aplikacji ma plik binarny specyficzny dla aplikacji (taki jak `osmosisd` , `gaiad` ) z wkompilowanym Tendermint Core (zastąpiony przez CometBFT). Jeśli nie uruchomisz oddzielnego pliku binarnego Tendermint Core, nie wpłynie to na twoje operacje. Istotną zmianą jest zmiana nazwy `TMHOME` env var na `CMTHOME` . Nazwy podpoleceń, takich jak „gaiad tendermint”, mogą zostać zmienione w odpowiednim czasie, w zależności od zespołu zajmującego się plikiem binarnym. Zostanie to również wyraźnie zaznaczone w dzienniku zmian.
Co dzieje się z tendermint-rs
( https://github.com/informalsystems/tendermint-rs/ )?
Wkrótce zmienimy nazwę tego projektu na cometbft-rs i będziemy kontynuować rozwój.
Co dzieje się z tm-db lub tm-load-test?
Rozwidliliśmy i zmieniliśmy nazwę tm-db na cometbft-db i będziemy kontynuować rozwój. Żadne interfejsy API nie zostały złamane w inny sposób, a użycie jest takie samo, z wyjątkiem innego modułu Go: `github.com/cometbft/cometbft-db`.
Przeniesiemy i zmienimy nazwę tm-load-test na cmt-load-test i będziemy kontynuować rozwój. Uwaga: niektóre z powyższych nazw mogą nadal podlegać zmianom.
PS. Za sprawą kosmicznego zachwytu, wystrzelenie CometBFT zbiega się w czasie z zbliżeniem się komety C/2022 E3 (ZTF) do naszej planety . Jasność komety osiągnie dziś szczyt i zapewni niezapomniane wrażenia wizualne dla obserwujących ją osób.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































