Cointelegraph śledzi rozwój całkowicie nowego łańcucha bloków od jego powstania do sieci mainnet i dalej w swojej serii Inside the Blockchain Developer’s Mind, napisanej przezAndrzej Levine Grupy Koinos.
Niedawno opublikowaliśmy trzecią i ostateczną wersję sieci testowej Koinos, dlatego chcę opowiedzieć o czymś, o czym lubi mówić kilka projektów: Budowanie blockchainów jestpiekło rozwoju. W tym artykule wyjaśnię, dlaczego i jak inni programiści mogą w tym uniknąć.
Nasze najlepsze roboty biznesowe
Na pierwszy rzut oka budowanie blockchaina nie brzmi tak ciężko. Blockchain to po prostu połączenie ugruntowanych prymitywów kryptograficznych, które odpowiednio zaimplementowane pozwalają na zbudowanie księgi głównej zawierającej weryfikowalną historię transakcji przez sieć. Im bardziej zdecentralizowana sieć, tym bardziej wiarygodna historia.
„frameworki” blockchain
Aby ułatwić tworzenie nowych blockchainów, inne zespoły udostępniły „frameworki” blockchain, które teoretycznie powinny wyeliminować potrzebę martwienia się programistami o budowanie samego łańcucha bloków, aby mogli skupić się na dowolnych unikalnych funkcjach, w które chcą wbudować blockchain. Cosmos, EOSIO i Polkadot’s Substrate to przykłady takich frameworków blockchain.
Kiedy nasz zespół przestał pracować nad Steemem (pierwszym na świecie bezpłatnym blockchainem), naszym pierwotnym zamiarem było wykorzystanie istniejącej struktury blockchain do zbudowania blockchaina zaprojektowanego tak, aby był jak najbardziej dostępny. Spędziliśmy cztery lata na dopracowywaniu bezpłatnego projektu Steema i doszliśmy do wniosku, że przenosząc to rozwiązanie do istniejącej struktury blockchain, możemy dostarczyć blockchain, który byłby znacznie bardziej dostępny niż jakikolwiek inny blockchain w stosunkowo krótkim czasie.
Związane z:W umyśle dewelopera blockchain: konsensus w sprawie dowodu spalonego łańcucha bloków
Naprawdę bez opłat i ogólnego przeznaczenia
Byliśmy jednak zaskoczeni, gdy okazało się, że żaden z istniejących frameworków nie pozwolił nam na stworzenie prawdziwie pozbawionego uczucia doświadczenia użytkownika, które chcieliśmy wprowadzić na rynek. Nie chcieliśmy tylko usunąć opłat na poziomie technicznym, chcieliśmy umożliwić programistom tworzenie aplikacji, z których można było korzystać za darmo. Brakowało im również wielu innych funkcji, które naszym zdaniem były wymagane, aby zapewnić zadowalające wrażenia programistów.
Siła łańcucha bloków ogólnego przeznaczenia wynika nie z funkcji, które inżynierowie wbudowali w łańcuch bloków, ale z funkcji, które programiści dodają do tego łańcucha bloków jako inteligentne kontrakty. Jest to podwójnie prawdziwe w przypadku frameworka blockchain, który naprawdę powinien być najbardziejmożna sobie wyobrazić blockchain ogólnego przeznaczenia, ponieważ cała idea polega na umożliwieniu ludziom zbudowania dowolnego rodzaju łańcucha bloków, jaki mogą sobie wyobrazić. A jednak istniejące frameworki nie dały nam, jednemu z najbardziej doświadczonych zespołów programistycznych blockchain, możliwości w naszych próbach zbudowania blockchaina, który chcieliśmy zbudować na wiele sposobów.
Istniejące frameworki nie tylko uniemożliwiały programistom tworzenie darmowych aplikacji, ale także zmuszały programistów do uczenia się nowych i często trudnych języków programowania oraz drastycznie ograniczały tempo, w jakim zarówno aplikacje, jak i sam blockchain mogą się doskonalić.
Związane z:W umyśle programistów blockchain: budowanie darmowej społecznościowej aplikacji DApp
Uwalnianie programistów
Chcieliśmy zbudować blockchain, który umożliwiłby programistom tworzenie niesamowicie świetnych aplikacji, z których zwykli ludzie chcieliby korzystać. To pozwoliło programistom pracować w językach programowania, które już znali i kochali (co nazywamy „obsługą języka uniwersalnego”); to pozwoliło ich aplikacjom (i samym blockchainowi) szybko ewoluować; i, co najważniejsze, umożliwiło im tworzenie aplikacji, z których można było korzystać bezpłatnie.
Ale żeby to zbudowaćblockchain najpierw potrzebowaliśmy naprawdę uniwersalnego frameworka blockchainto nie tylko pozwoliłoby nam zbudować blockchain naszych marzeń, ale jako naturalna konsekwencja bycia najbardziej uniwersalnym frameworkiem, jaki można sobie wyobrazić, powinno pozwolić każdemu zbudować blockchain ich własnychsny.
Koinos to ostateczna platforma blockchain ogólnego przeznaczenia, która posłuży jako podstawa dla ostatecznej warstwy pierwszej warstwy głównej Koinos. Koinos Blockchain Framework (KBF) został zaprojektowany jako najprostszymożna sobie wyobrazić łańcuch blokowy, zawierający tylko te prymitywne elementy kryptograficzne, które są niezbędne do skonstruowania łańcucha blokowego i odpowiednie „wywołania systemowe”, aby umożliwić dodanie najszerszego zakresu zachowań wewnątrz pasma (bez hard forka) poprzez przesłanie inteligentnego kontraktu.
Nieskończona możliwość rozbudowy
Zaletą tego projektu jest nieskończona możliwość aktualizacji, ale koszt jest taki, że sprawia, że prawidłowe wywołania systemowe są jeszcze ważniejsze. Pominięcie wywołania systemowego lub nieprawidłowe zaprojektowanie go oznaczałoby konieczność radzenia sobie z trudnym do uniknięcia w inny sposób hard forkiem. Ponieważ hard forki są tak czasochłonne, polityczne i destrukcyjne, są największym pojedynczym czynnikiem ograniczającym zdolność łańcucha bloków do samodoskonalenia, co ostatecznie odczuwa każdy programista, którego aplikacja jest zbudowana na takiej platformie.
Teraz możemy zobaczyć, jak deweloperzy aplikacji i blockchain mogą wpaść w pułapkę deweloperskiego piekła: pracując w niewygodnych dla nich językach programowania na platformach, które zmuszają ich do uwzględniania opłat i które poprawiają się w ślimaczym tempie. W tych warunkach nawet drobne zmiany mają niewiarygodnie wysoką stawkę, a my nawet nie wzięliśmy pod uwagę scenariuszy, w których zagrożone są miliony, a czasem miliardy dolarów.
To jest piekło rozwoju. Jako główny zespół programistów stojący za blockchainem Steema, który musiał nadzorować 23 hard fork, znamy ten teren lepiej niż prawie ktokolwiek inny, dlatego tak bardzo chcieliśmy go usunąć, cóż… do diabła.
Zbudowanie od podstaw Koinos Blockchain Framework z całkowicie nową architekturą mikrousług i doprowadzenie jej do punktu, w którym mogliśmy uruchomić wersje 1 i 2 sieci testowej, było niezwykle trudne. Ale integracja informacji zwrotnych, które otrzymaliśmy z tych sieci testowych, naprawienie ujawnionych przez nie błędów i sfinalizowanie wszystkich ważnych wywołań systemowych to zupełnie inny poziom. Ale przeszliśmy przez to piekło rozwoju z nadzieją, że zrobimy to tak, że inni nigdy nie będą musieli.
Zwiastun
Testnet v3 jest zatem czymś więcej niż „tylko kolejną” wersją sieci testowej. Jest to ostateczna wersja Koinos Blockchain Framework, dlatego teraz będziemy odnosić się do sieci testowej nie numerem wersji, ale nazwą: Harbinger. Jest to zwieńczenie prawie dwóch lat pracy, identyfikowania i wdrażania wszystkich niezbędnych wywołań systemowych potrzebnych do zapewnienia deweloperom blockchain najwyższego poziomu wolności i umożliwienia ich twórcom aplikacji korzystania z platformy, która rozwija się w szybszym tempie niż jakakolwiek inna blockchain tam.
Oczywiście za każdym razem, gdy próbujesz rozwiązać naprawdę ważny problem, pewien poziom piekła rozwoju jest nieunikniony. Po prostu chcesz się upewnić, że nie stosujesz technologii, które niepotrzebnie podnoszą stawki, i że cel, do którego dążysz, jest wart swojej ceny.
Dla nas celem tym jest nie tylko oszczędzenie programistom łańcucha bloków (w tym nas samych) od niezliczonych godzin spędzonych w piekle programistów, ale także wykorzystanie tej nowej technologii do budowy sieci głównej Koinos: ostatecznej, beztroskiej warstwy 1, która umożliwia programistom tworzenie niesamowicie świetnych aplikacji opartych na blockchain.
Nigdy więcej piekła rozwoju
KBF ma na celu wyeliminowanie piekła rozwoju, umożliwiając programistom budowanie dowolnego łańcucha bloków, jaki mogą sobie wyobrazić, po prostu poprzez pisanie inteligentnych kontraktów, co jest nieskończenie łatwiejsze niż praca w samym kodzie blockchain. I dokładnie w takiej sytuacji się teraz znajdujemy. Chociaż tworzenie frameworka blockchain było niezwykle trudne, teraz, gdy to się skończyło, wszystko, co jest potrzebne do ukończenia mainnetu Koinos, to tylko dwainteligentne kontrakty: jeden dla naszego algorytmu konsensusu sprawdzającego zgodność, a drugi dla zarządzania.
Pisanie inteligentnych kontraktów jest nie tylko znacznie prostsze niż rozwój blockchain, ale oznacza to również, że programiści blockchain mogą teraz korzystać z ciągle rozwijających się narzędzi, które są dostępne dla programistów inteligentnych kontraktów, takich jak AssemblyScript SDK stworzony przez jednego z członków naszej społeczności. AssemblyScript nie tylko tworzy znacznie wydajniejsze inteligentne kontrakty niż te napisane w C++ (to była niespodzianka), ale sprawia, że tworzenie inteligentnych kontraktów jest dostępne dla programistów JavaScript.
Ponieważ KBF zmienia każdego programistę inteligentnych kontraktów w potencjalnego programistę blockchain, oznacza to, że tworzenie niestandardowych łańcuchów bloków będzie teraz dostępne dla programistów JavaScript z jeszcze większą liczbą języków, takich jak Rust.
Jeśli interesuje Cię uruchamianie Harbinger, sprawiliśmy, że uruchomienie węzła jest szalenie łatwe, dzięki czemu możesz zacząć działać w mniej niż pięć minut.
Ten artykuł nie zawiera porad inwestycyjnych ani rekomendacji. Każdy ruch inwestycyjny i handlowy wiąże się z ryzykiem, a czytelnicy powinni przeprowadzić własne badania podczas podejmowania decyzji.
Poglądy, przemyślenia i opinie wyrażone tutaj są wyłączną własnością autora i niekoniecznie odzwierciedlają lub reprezentują poglądy i opinie Cointelegraph.