 Okej, ja widzę, że zaczęłaś w tym streamie, więc zacznijmy. Chodźmy, ludzie will probably join later. Dzień dobry. Witam wszystkich na kolejnym spotkaniu z serii Hyperledger Meetup Poland. Jest mi bardzo miło gościć was wszystkich, po raz trzeci już. Zainteresowanie naszym Meetupem, jak widzę, nie spada. Bardzo się cieszę z tego powodu. Tutaj razem wspólnie z Maciejem Jędrzyczykiem i Wetą Laskowską i Tomkiem Korwin-Gajkowskim. Jesteśmy organizatorami tego Meetupu. Ze względów na różne zobowiązania niestety pozostali nasi chości. Dzisiaj nie mogą uczestniczyć w Meetupie, więc będę jedynym z organizatorów obecnych podczas dzisiejszego spotkania. I dziś będziemy gościć Piotra Hajwowskiego z firmy SoftwareMeal, który zaprezentuje nam swoje narzędzie SoftwareMeal, który na dzień dzisiejszy już jest opensource-owym narzędziem fabryka, który służy do szybkiego tworzenia nowych sieci bazujących na Hyperledger Fabrik oraz funkcjonalnym smartkontraktem, czyli ChainCode-u. Umożliwiające oczywiście postawienie tej sieci i szybkie rozpoczęcie prototypowania czy tworzenia nowych rozwiązań na bazie Hyperledger Fabrik, co jest naprawdę nieocenione, ja będę tutaj osobą już dość długi czas związaną z Hyperledger Fabrikiem i mającą mniejsze lub większe doświadczenie z tworzeniem tej sieci. Naprawdę muszę przyznać, że proces tego tworzenia, konfigurowania, konfigurowania sieci jest naprawdę bardzo złożonym procesem i sam jestem bardzo ciekaw tego, co zaprezentuje nam dzisiaj Piotr i w czym to narzędzie fabryka będzie w stanie pomóc przy budowaniu takich sieci. Garcinformacji na początek, zanim przejdziemy do naszego prowadzącego. Przede wszystkim to spotkanie, tak jak wszystkie poprzednie, jest nagrywane. Lifestream na YouTube został uruchomiony zaraz na początku naszego spotkania, więc jeżeli ktoś nie ma możliwości pozostać do końca albo dla osób, które tutaj dołączą później, albo chciałby sobie tworzyć to spotkanie, jest oczywiście taka możliwość, to wszystko po spotkaniu będzie znajdować się na YouTube'ie w całości, więc będzie można sobie to tworzyć w dowolnym momencie. Przypomnę również, że takie zasady, które sobie przyjęliśmy na początku naszych meetupów, zakładają, że w trakcie prezentacji wszyscy uczestnicy proszeni są o wyciszenie swoich mikrofonów, jakiekolwiek pytania, które by się pojawiły w trakcie, proszę o zadawanie ich poprzez chat i oczywiście po zakończeniu sesji prezentacyjnej będzie sesja Q&A, gdzie będzie można już odmiutować się, zadać pytania prowadzącemu. Według takiej formuły będziemy się tutaj w trakcie tego spotkania poruszać i przypomnę również dla wszystkich tutaj uczestników, że jesteśmy otwarci na wszelkie propozycje, zarówno związane z kolejnymi tematami wystąpień, jeśli ktoś z was jest zainteresowany tym, żeby pokazać jakiś ciekawy temat związany z Hyperledger Fabric, ewentualnie zna kogoś, mógłby polecić osobę, która mogłaby zaprezentować nam jakieś ciekawe wartościowe rzeczy. Jesteśmy otwarci na propozycje i oczywiście rozważymy wszystkie tego typu tematy, jeżeli pojawią się one z waszej strony. Jak również bardzo zachęcamy do zadawania pytań takich, powiedzmy, challenge'ujących zarówno nas, jako prowadzących, jak również prowadzącego samego, samą prezentację. Ponieważ ta dyskusja, która wynika w trakcie sesji Q&A, jest naprawdę wartościowa. Najczęściej pojawiają się pytania, które bardzo dogłębnie poruszają niektóre tematy i pozwalają wejść w detal, czego tak naprawdę pożądamy i życzymy, żeby w ten sposób właśnie wyglądała taka dyskusja. Nie będę już przedłużał tutaj tego wprowadzenia. Piotr, oddaję ci głos. Przekazuję ci również możliwość sterowania ekranem i zostawiam scenę dla ciebie na następne kilkanaście, kilkadziesiąt minut. OK. Dobra, to pierwsze generalne pytanie jest, czy i tym razem się udało widzieć cały ekran? Tak, wszystko widać. Dobra, fantastycznie. To dziękuję po tryku za ciepłe przywitanie, za przedstawienie mnie, za przedstawienie nas. I tak, parę słów o sobie. Więc po pierwsze, tak jakby już mówione jestem Piotrek, firmie Software Mill pracuje od około 3 lat, a Sniper Ledger Fabric związany jestem ponad 2 lata, jakieś 2,5 roku, coś w tych granicach. A dzisiaj przychodzę do was z prezentacją, jak łatwo zacząć przygodę Sniper Ledger Fabric. Będzie trochę o naszą opersorcie, trochę o innych rozwiązaniach, ale zanim zaczniemy, parę kwestii organizacyjnych. Tak, żebyście mi więcej poczuli strukturę, żebyście wiedzieli, jaki jest plan na to dzisiejsze spotkanie. Więc tak, po pierwsze porozmawiamy sobie o firmie Software Mill i nie chodzi o to, żeby tutaj się jakoś przesadnie chwalić, tylko dosłownie minimum informacji, abyście złapali kontekst. Kontekst, czyli dlaczego takie narzędzie stworzyliśmy, jakie tam mieliśmy problemy i w jaki sposób się tam dokładnie u nas działa. Potem płynnie przejdziemy do drugiego punktu, czyli pogadamy o złożoności Hyper Ledger Fabric, o jego sieci, o jakichś typowych problemach i podczas tego drugiego punktu będę jakby zaczynał od prostego schematu sieci, na którym coś demojemy. Będę stopniowo pokazywał, jak jesteśmy w stanie rozbudować z czasem taki schemat sieci i będę poszczególnie wyjaźnił abstrakcja Hyper Ledgera i po komponenty, aż dojdziemy do naprawdę ciekawego i takiego dosyć dużego rozwiązania. Potem pogadamy sobie troszeczkę o tym, jakie my mieliśmy problemy z tą złożonością i gdzie właśnie z tą złożonością dostaliśmy po kostkach, jak się tego fabryka uczyliśmy i gdzie potrafimy nas jeszcze często zaskoczyć. Jak to ostatecznie rozwiedzaliśmy, zademujemy sobie właśnie nasze open source rozwiązanie a potem też pogadamy trochę innych rozwiązaniach dlatego, że nie samo fabriką świat stoi, jeśli chodzi o właśnie problemy z zażądaniem sieciów. A więc tak. Dla kogo przede wszystkim jest ta prezentacja? Jak raczej łatwo wyczuć, jest ona bardziej deweloperska. Może na pewno przydać się osobom, które zaczynają swoją przygodę z Hyper Ledgerem i mają trochę takie poczucie, że nie wiedzą w co sobie ręce błożyć i mają problemy, żeby zadyplojować switch and code, mają problemy, żeby w ogóle odpalić tą sieć i jeszcze troszeczkę się w tym gubią. Ta prezentacja też jest skierowana do osób, które mają naprawdę dużo doświadczenia. Dlatego, że tak jak Patryk fajnie powiedział, też jesteśmy otwarci na dyskusję, na jakiś feedback i chcemy pogadać właśnie o rozwiązaniach, o podejściach, może też dowiedzieć się czegoś od was. Ale póki co lecimy z tematem. Więc tak. Parę krótkich słów o software mill. Po pierwsze to mamy coś około 10 lat, bo zawsze jesteśmy firmą zdalną i tak jakoś fajnie nam wyszło, że mamy szczęście do mądrych ludzi. Nie dość, że do ludzi z długim starzem, to do ludzi, którym dalej chce się rozwijać, robić challenge'ujące i ambitne rzeczy. I chyba właśnie przez tych ludzi też mamy szczęście do poważniejszych projektów. Dużo u nas skali, dużo u nas ML, dużo u nas właśnie blockchain'a. No i jest właśnie ten Hyper Ledger Fabric. Ale może właśnie najważniejsza rzecz i istotna z perspektywy dzisiejszego metapu jest taka, że nie jesteśmy firmą typowo produktową. To znaczy, że nie stworzyliśmy jakby jednego, jedynego produktu, na którym bazujemy, tylko robimy projekty. A to wyglądało u nas tak, że zgłasza się do nas klient z problemem do rozwiązania. I jest wiele wariantów. Czasami jest to team leasing, że dajemy mu cały team, który ma zaprojektować jakiś komponent, być może całą platformę, cały system. Czasami jest to consulting, kiedy potrzebuje trochę mniejszego wsparcia, na przykład, żeby wdrożyć jego doweloperów, porozmawiać z nimi, pozprawniać jakieś rozwiązania. Ale zawsze to wszystko wiąże się z jedną rzeczą. Z tym, że trzeba troszeczkę poeksperymentować z rozwiązaniem. No bo klient, jak to klient, nie musi znać się na biznesie, nie musi wiedzieć dokładnie, czy jego architektura jest poprawna, z ilu sieci, z ilu organizacji ma się składać, z ilu channeli, bo wystarczy mu coś, co jest dobre dla jego biznesu, a jednocześnie poprawne z perspektywy blockchaina. Co samo w sobie jest wyzywające, a często też wyzywające jest to, że trzeba to dostarczyć w skonczonym terminie, a te sieci fabrikowe nie raz potrafią być skomplikowane. Ale temat naszej firmy póki co urywa i zajmijmy się złożonością Hyperledgera i jego sieci, a potem połączymy sobie te wszystkie tematy. Więc tak, kiedy zaczynamy stawić naszą sieć fabrikową, to typowo zaczynamy od jakby pierwszej organizacji, tutaj nazwałem ją root organization, która posiada swoje certificate authority, które ma możliwość zapraszenia innych członków sieci, dodawania kolejnych organizacji, definiowania jakichś podstawowych rzeczy, typowo taki root organization posiada też orderera, czyli taki komponent, który służy do sortowania transakcji. O nim dzisiaj za dużo nie będziemy rozmawiać, ale też jest bardzo, bardzo ważny komponent z perspektywy Hyperledgera. No i poza takim root orgiem zazwyczaj zaczynamy też od jakiejś pierwszej organizacji. Ta pierwsza organizacja posiada swoje certificate authority i posiada piry. Piry, czyli już takie faktyczne maszynki, na których dypluje się na szczękot, czy też inaczej zwany smart contract, który wykonuje naszą cenną logikę business over. Na potrzeby takiego pierwszego rozwiązania i prototypowania możemy powiedzieć, że gdzieś tam w ubrębie tej pierwszej organizacji jest ten szczękot. W rzeczywistości pokażę, gdzie on tam dokładnie się kreje, pokażę już dokładnie za chwilę. No ale mamy takie nasze pierwsze rozwiązanie i zwykle mniej więcej na takim prostym modelu, gdzie mamy root organization i gdzie mamy jednego orga, coś jesteśmy w stanie podymować, coś jesteśmy w stanie prototypować i zwykle jak zaczynamy naszą przygodę z hyperledgerem to tak to wygląda. Jednak jak to bywa czas szybko mija i podstawia sobie już za nami i chcemy troszeczkę nasze rozwiązanie rozbudować, dlatego, że każde rozwiązanie blockchainowe powinno zarabieniać więcej niż jedną organizację, żebyśmy faktycznie mogło dojść do jakiegoś konsorcjum między nimi, tak więc dodajemy drugą organizację. Jeśli chcemy nawiązać jakąś komunikację między nimi, to wykorzystujemy abstrakcję, która w hyperledgerze nazywa się kanał. Tutaj po prostu nazwałem to channel 1 i zwróćcie uwagę, że jakby rozpięty jest on między organizacją pierwszą i drugą, ale w ramach piera drugiego tylko i wyłącznie. I tak się składa, że w ramach takiego jakby kanału komunikacyjnego dopiero w ramach takiego kanału instalujemy chain code. I to już jest troszeczkę bardziej rozbudowana sieć i już bliższa prawdzie. Ale jeżeli chcemy to pociągnąć stronę rozwiązania produkcyjnego, to pewnie będziemy chcieli z czasem dodawać kolejne organizacje, czyli na przykład będziemy chcieli dodać trzecią organizację. I po raz kolejny, żeby połączyć z sobą jakiś grupy, to wykorzystujemy abstrakcję i około jest kanał. Tutaj stworzyliśmy channel 2, tylko zwróćcie uwagę, że rozpięty jest on między jakby piramizerów poszczególnych organizacjach i piramijedem, czyli zajmuje pewną jakby większą pulę tych pierów. I w ramach tego kanału drugiego też dyplujemy nasz chain code. I ok. Mamy taką sieć. Taka sieć mogłoby być jakby już pewną prostszą formą supply chaina i jest już prawie rozwiązaniem produkcyjnym. Chcecie jeszcze coś bardziej poprawnego? Powinniśmy trochę przeskalować naszego orderera. Rekomendowanym trybem pracy orderera jest tak zwany tryb raft, czyli potrzebujemy na przykład 3 albo trochę większej liczby instancji, tak na wypadek gdyby któraś z instancji orderera padła, tak żeby nie zawiesią nam się cały system. I raft jest takim rekomendowanym rozwiązaniem. I ok. Mamy na tą sieć. To jest rozwiązanie produkcyjne. Ale możemy też czasem dodawać trochę więcej smaczków. Gdyby okazało się, że nasz case jest bardzo skomplikowany, to ta abstrakcja kanału jest na tyle elastyczna, że jesteśmy w stanie na nie instalować więcej niż jeden chain code. Na przykład możemy mieć jeden na potrzeby jakiegoś ogólnej komunikacji między organizacjami, a drugi na przykład na jakieś potrzeby dokumentów, przesłania dokumentów, czegoś takiego. Gdybyśmy się zdecydowali, że między organizacją 1 a 2 potrzebne jest więcej chain code do komunikacji. Ale, fabryk jest na tyle duży i na tyle elastyczny, że możemy iść jeszcze bardziej i jeszcze głębiej. I jeszcze bardziej sobie to całe fabrikowe rozwiązanie customizować. Chociaż i takie już jest duże, to mogło dojść na przykład do czegoś takiego, organizacja pierwsza, w którymś momencie stwierdziła, że na potrzeby ze względu na swojej wiernecznej polityki decyduje się ona na podmienienie bazy do CA. Domyślnie jest to baza SQL Light, która jest embedowana niejako wewnątrz serwisu. Ale powiedzmy, że organizacja pierwsza ma swoje polityki i zdecydowała się obok postawić bazę postgresową i na przykład deprojować ją oddzielnie. Jak najbardziej jest to do zrobienia, fabryk daje też takie możliwości. I skoro jesteśmy też przy bazach, może też się okazać, że powiedzmy, organizacja trzecia decyduje się podmienić bazy tym razem na pierach. Dlatego, że bazy na pierach też są embedowane i by default jest to level DB. Ale organizacja trzecia może okazać się, że ma zaawansowane wymagania co do okreowania chain code'u. Chcę robić trochę więcej getów, chcę robić jakiś paging, chcę pobierać z niego po prostu dużo więcej informacji. I do takiego korelowania wordstata zdecydowanie bardziej nadaje się baza, która nazywa się couch DB. Także fabryk też stwarza nam taką możliwość i tutaj możemy podpiąć inną bazę danych. Także doszliśmy już do czegoś bardzo skomplikowanego, a żeby dać jakby jeszcze jeden smaczek, wszystkich nie powiem, ale jakby ostatni, to moglibyśmy stwierdzić, że organizacja trzecia, pewną część informacji chcę przechowywać bardzo blisko swojego blockchain'a i blisko chain'a, ale jednak nie jako off-chain i do tego służy coś takie jak private data collection. Czyli może też powiedzieć, że w obrębie channelu drugiego i chain code'a drugiego musi być też private data collection, żeby mogło sobie coś przechowywać w ramach swojej organizacji. I ok, co widzimy? Że fabryk jest naprawdę złożony. Ja tutaj starają się to po kolei rozbudowywać, ale też świadomie pomijają takie nowe siki, jak config.ex, jak profilę, jak inne możliwości skarowania, dodawania certyfikatów, tam naprawdę jeszcze dużo się kryje. Ale to wszystko ma naprawdę wielki sens, bo chociaż te abstrakcje wydają się na początku strasznie skomplikowane i złożone, to są na tyle dobre, że są w stanie nas prowadzić za rękę i pomagać nam odoskonalać sieć tak w zasadzie, jak tego potrzebujemy. W zasadzie tak, jak tego nasz case potrzebuje nie dają nam jakiś sztywnych ram, które nas ograniczają. No ale z perspektywy dewelopera jest to dosyć skomplikowane i przeswoić sobie to wszystko, nauczyć się i zacząć o tym rozmować to jest naprawdę dużo pracy. Co więcej, kiedy zaczynamy naszą przygodę z fabrykiem to też wydaje się, że wszystko to musimy robić ręcznie. Kiedy zaczynamy zaciągać sobie jakiś fabryk samples i zaczynamy odpalać taki klasyczny tutorial jak Build Your First Network, to mamy tam dużo skryptów waszowych, dużo jamy i praktycznie dostajemy to na twarz i możemy poczuć się zagubienieni jako w tym wszystkim i ok. A jak to było u nas? Jakim mieliśmy problemy z tą złożonością? W zasadzie to wystarczy jedno krótkie zdanie. Tak to bywało, że jak zaczynaliśmy naszą przygodę z Hyperlegerem to tego timu nie mieliśmy zbyt dużego. To było kilka osób i wpadły na takie trzy projekty, które trzeba było rozkręcać i maintenance w jakiś tam sposób. A ponieważ były to trzy projekty, to każdy z tych projektów miał swój zestaw jamy konfiguracyjnych i miał swój zestaw skryptów waszowych w spory doker kompozy i wielokrotnie okazywało się, że na przykład siedzimy sobie w obrębie projektu numer 1 okazuje się, że dowiedzieliśmy się czegoś ważnego jakiejś dobrej fabryki związanej z Hyperlegerem wprowadziliśmy ją w tych skryptach a potem niejako trzeba było to przemigrować dla tych pozostałych dwóch projektów. Analogicznie, w projekcie trzecim powiedzmy mogliśmy się nauczyć jak trochę lepiej budować swoje cienkody od fabryka 2.0 a skoro lepiej budować swoje cienkody bo to też jest generalne rozwiązanie które mogłoby się przyjąć w projekcie 1.0 i 2.0 i tak w kółko w zasadzie lataliśmy między z tymi skryptami, matejnowaliśmy je rozwijaliśmy, poprawialiśmy. Co warto też zauważyć to nie chodziło tylko i wąż nie są same skrypty jakieś drobne niuancy ale to też były inne biznesy. W pierwszym przypadku to był bardziej taki asset tokenization w drugim przypadku to był komensuk dostaw a w trzecim przypadku to była system jakby takiej komunikacji i przekazywania sobie dokumentów a skoro trzy projekty to trzy razy inne topologie sieci czyli troszeczkę inny zestaw organizacji, troszeczkę inaczej nazywające się organizacje troszeczkę inny układ i rozmieszczenie tych kanałów i to samo w sobie spowodowało naprawdę duże problemy i duże zamieszanie ale jak to rozwiązaliśmy w pewnym momencie stwierdziliśmy że bardzo wygodnie byłoby gdybyśmy taki łyse opis tego wszystkiego czego potrzebujemy do tych skryptów mogli zapisać do jednego pliku na przykład do konfiguracyjnego Jasona i tam po prostu umieścić nasze życzenie tego jak ma wyglądać ta sieć i de facto taki plik stworzyliśmy i oprócz tego stworzyliśmy narzędzie które się nazywa fabryka, które służy do tych skryptów no i wyplowania tych jami baszów i doker kompozów i od tej pory jakby nie musimy zajmować się tymi trzema projektami tylko wszystkie te rzeczy, których się nauczyliśmy wszystkie dobre praktyki w zasadzie gormadzimy w obrębie fabryki, która później pomoże nam w sposób powtarzany tworzyć te skrypty a jednocześnie zaoszczędza naprawdę bardzo dużo czasu i tutaj też jest bardzo fajna informacja dlatego że ponieważ mamy jeden plik gdzie mamy komplet takich informacji to niejako mamy taki blueprint tej sieci jesteśmy po prostu w stanie kliknąć na jednego Jasona zobaczyć jak on wygląda jak wygląda podział między organizacjami jaka jest liczba kanałów jaka jest liczba chaincodes i o co Pira Zeczki chodzi w tym biznesie jeśli byśmy to robili klasycznie i mielibyśmy jakieś skrypty baszowe albo doker kompoza no to zanim byśmy się domyślili no to mielibyśmy za sobą całkiem konkretną porcję scrollowania ale teraz dosyć slajdów i przejdziemy płynnie do dama i postaram Wam się pokazać co możemy za pomocą takiej fabryki robić ok, czy widać ekran czy wszystko jest ok? tak, wszystko jest ok interlejżeje bywają czasami zgubna więc wolę zapytać dobra, to tak jak widzimy mamy tutaj bardzo prosty przykład stworzyłem sobie tutaj minimalny chaincode on jest akurat napisany tutaj w javascript mamy parę jakichś metodek samym chaincode'em dzisiaj się nie będziemy zajmować ale tak chcę pokazać że coś tutaj nam się pojawiło ale jak widzimy poza chaincode'em nie ma absolutnie żadnej informacji o sieci, nie ma nic i postaramy się to dosyć szybko naprawić i postawić coś działającego i tak, pierwszą komandą od której możemy zaczynać nie musimy mieć nic więcej poza tym i zainstalowanym do kerem i pierwszą komandą jaką musimy odpalić to jest to czyli pobieramy sobie nasz minimalny skrypcik sh tutaj akurat pobieram go do usr localbin i nazywam go fabrika dlatego że tak lubię ale jeśli nie czujemy się zbyt komfortowo żeby w tak poważnym katalogu coś wrzucać to bez problemu możemy to dołączyć tutaj do naszego projektu na trochę mniejszych uprawnieniach i okej, pobieramy taki klik zobaczmy sobie szybko co jest w środku zrobiłem tutaj header bo potem jest tam troszeczkę więcej drobnych detali ale na pierwszy rzut oka co widać że to komunikuje się z dedykowanym obrazem dokerowym który w zasadzie odpowiada za całą ludikę co w praktyce oznacza że mamy jeden prosty skrypt sh jedne rzeczy do doker a doker zwraca nam gotowe rozwiązania i tak też w ten sposób realizujemy nowsze wersje fabryki i teraz postaramy się nią troszeczkę pobawić pierwsza rzecz jaką możemy zrobić to po prostu napisać sobie fabrika init czy chwileczkę pewnie mi się maszymy a rozgrzewa zawsze jak mi pierwszy raz odpala doker to chwile trwa ale jak widać wszystko się udało i okej, zrobiliśmy fabryka init i jak widać stworzyło nam taki plik który się nazywa fabryka config a kiedy zajrzymy sobie do środka to widzimy tutaj informacje o root organization którą pokazywałem wraz z tym jak ona dokładnie ma się nazywać z idomeno z ordererem, który na razie jest trybie solo i ma jedną instancję mamy też informacje o jednej jedynej organizacji którą mamy tutaj która nazywa się po prostu orkiedem i która posiada dwa piry mamy też informacje o kanale ten kanal nazywać się będzie po prostu mychannel1 i będzie będą w nim dwa piry, czyli będzie pier zero i pier 1 mamy tutaj też coś takiego fajnego jak sekcję to nazywa się chaincodes sekcja chaincodes na razie jest pusta i tutaj nic nie ma i postaramy się coś na szybko tutaj dodać okej, jak widzimy jest to lista, także jesteśmy w stanie po pierwsze dodawać bardzo wiele chaincodes i po pierwsze możemy chcieć nadać mu nazwę nazwijmy go chaincode1 potem możemy chcieć powiedzieć w jakim języku jest mamy parę rzeczy do wyboru tutaj akurat wcześniej pokazywałem chaincode jesowy i postaramy się go zaviplojować więc decydujemy się na flagę note widzę że tak w fabryku się nazywa chcemy podać jak dokładnie można nazywać się tego wersja tego chaincode'u okej, chcemy też podać directory w jakim znajduje się ten chaincode żeby nic nie skopać o, to przekupiuję sobie to czyli mamy zainstalować chaincode dokładnie z tego directory a kiedy to zrobiliśmy możemy też określić dokładnie na jakim kanale chcemy go zainstalować i tutaj po prostu podajemy widoczny już wcześniej channel1 czyli podajemy coś takiego jeśli chodzi o dodawanie chaincode'a to chciałbym jeszcze dwa pola pokazać które nazywają się init i endorsement init to są jakby takie paramety inicjalizacyjne jakby niejako takie parametry konstruktora które dostarczamy do danego chaincode'u endorsement to już taki dożyć bardziej złożony temat, czyli dokładnie kto ma weryfikować ten chaincode tutaj akurat pozwolę sobie skorzystać z prostej szczutki gitowej i po prostu uzupełnienie te chaincodes, tutaj chodzi o to żeby nigdzie się tam w tym nie machną i ok, kiedy mamy taki łysy opis sieci to możemy zrobić coś takiego możemy zrobić fabrykę up i podać naszego konfiguracyjnego Jasona klikamy enter i jak widzimy pod spodem zaczyna jest lekka magia fabryka w tym momencie połapała się o jaką sieć nam chodzi co tutaj jest grane i że będziemy chcieli postawić se cały sieć ja na razie tutaj to schowam bo sieć będzie chwilę wstawała i pokaże co jakby w międzyczasie się stało jakby w międzyczasie fabryka wygenerowała nam w projekcie folder, które nazywa się fabrika target i tak jak widzimy dalej posiadamy tutaj doker kompoza który posiada informacje o orderera, oca, ocli, o pirach gdzie mamy wszystkie zmienne które są potrzebne aby to poprawnie wstawało dalej posiadamy tak cenne informacje jak config.ex który przy okazji mówi nam jakie mamy channel capabilities dlatego że byliśmy je w stanie zgadnąć na podstawie flagi którą też podawaliśmy czyli żądanej wersji fabryka mamy tutaj informacje o organizacjach które jakby skonfigurowaliśmy no i mamy tutaj też informacje o kanale pierwszym który zdecydowaliśmy się stworzyć mamy też skastomi wyzowane i wygenerowane pod nasz case scripty które mówią na razie tylko drobne rzeczy czyli że instalujemy tutaj raz na jednym pirze, raz na drugim pirze chaincode a potem nie rachowo uruchamiamy a nie robimy instantietic i sprawa wygląda tak że jeżeli tylko i wyłącznie prototypujemy no to raczej nie będziemy potrzebowali w tych scriptów które są w miarę generyczne i spokojnie możemy to dodać do naszego gitignora czyli możemy je wykosić i musi być ich absolutnie w projekcie ale jeżeli okaże się że potrzebujemy czegoś bardziej skomplikowanego i czegoś czego my deweloperzy no to bez problemu możemy sobie jakby włączyć się z powrotem do projektu, zmienić na przykład max message count na jakąś inną praktykę, której potrzebujemy albo jakieś inne szczegółowe informacje także tutaj też zostawiamy pewną dowolność i takie scripty mogą służyć za start dla naszej aplikacji i coś co później rozwijamy albo coś co jesteśmy w stanie jakby dosyć łatwo wykaszać i tak a międzyczasie i tego mojego gadańska jak zobaczyliście cały script się skończył a kiedy zrobimy tutaj doker.psa to widzimy, że mamy już dwa piry mamy zainstalowany chencode mamy ca, c, l mamy naszego orderera czyli zadziało się dużo, bardzo dużo dobrych rzeczy ale nie jest to koniec i teraz postaram się pokazać co jeszcze możemy w tej fabryce zrobić i pokazać jak mniej więcej za pomocą tego JSONa jesteśmy w stanie dostosować sieć tak, żeby przypominała to co jakby pokazywałem pod koniec toka czyli coś już dużo bardziej skomplikowanego więc zacznijmy mieszać w tym klikokonfiguracyjnym więc po pierwsze tak zmienimy sobie wersję fabryka i powiedzmy, że to jest 2.4.11 dlatego, że zdecydowaliśmy się na takie podbicie na początku mieliśmy też włączoną komunikację po TLSie chcemy być jednak troszeczkę bardziej bezpieczni, także włączamy po prostu tego TLSa orderer w trybie solo to zdecydowanie nie jest rozwiązaniem produkcyjnym tutaj przydałby się zdecydowanie RAVT powiedzmy, że w trzech instancjach no, na razie mieliśmy tylko jedną organizację więc postaramy się wprowadzić kolejną organizację czyli zróbmy po prostu tak i następną i nazwijmy ją po prostu ORB2 i może dodajemy jeszcze kolejną organizację tak, żeby już naprawdę przypominało to, co pokazywałem na tamtym toku czyli mamy tutaj ORB3 bo tak to sobie nazywaliśmy stwierdziliśmy, że organizacja trzecia ma też większe wymagania co do page'owania także mile widziany byłby tutaj couch db mamy tutaj chain code, który nazywa się mile channel 1 do którego teraz płynnie przechodzimy, żeby jakoś połączyć sobotą organizację i jak widzimy, na razie jest rozpięty w ramach organizacji pierwszej czyli to są pewne ślady po tym naszym prototypie co też nie jest zbyt dobre powiedzmy, że zrobimy sobie tak czyli ograniczymy to, żeby ten tylko pier zero był dołączony z organizacji pierwszej do tego kanału dodajmy tutaj organizację drugą i teraz mamy kanał, który jest rozpięty między organizacją 1 i 2 na pierach, które nazywały się pier zero możemy też na przykład dodać sobie kolejny chain code tutaj pozwolę sobie zrobić pewnego rodzaju skord myślowy czyli po prostu drugi raz zainstaluje ten chain code tylko w trochę innej konfiguracji dlatego, że nie przygotowałem drugiego ale na przykład, gdybyśmy mieli chain code drzewowy czy w go także to wtedy wystarczyłaby flaga lang, którą byśmy sobie zmieniali i moglibyśmy sobie inny type chain code na spokojnie zainstalować a na razie zostajemy tylko przy tym prototypowym powiedzmy jednak, że chcemy go zainstalować na drugim kanale a ten drugi kanał fajnie jakby po pierwszym nazywał się chanów 2 po drugie żeby było zgodnie z tymi wcześniejszymi obrazkami był rozwięty między organizacją pierwszą między drugą i trzecią ale żeby było, nie było nudno to na przykład między pirami 1, byśmy pokazali, że możemy joinować różne piery do danego kanału no i ok, mamy takie rozwiązanie już na razie nic więcej mieszać nie będę dlatego, że i tak całkiem dużo osiągnęliśmy i w tym momencie robimy coś takiego piszemy fabryka Recreate i podajemy ten JSON konfiguracyjny, który przed chwilą zmieniliśmy i teraz dzieje się coś nad czym jeszcze pracujemy czyli na dzień jeszcze jeszcze jakby nie obsługujemy update'ów faktycznie działającej sieci fabrikowej i nad tym jakby teraz open source'o pracujemy i troszeczkę możemy się nad tym jak to fajnie zrobić chwilowo nasza sieć będzie musiała być zniszczona i będziemy musieli jakby ją na nowo wygenerować także na pewno jest to pole do jakiejś usprawnień ale jest to coś, co już działa czyli po prostu podajemy na nową definicję zaczynamy od zera i jak widzimy w trakcie tego jak rozmawiam już bardzo dużo rzeczy tutaj się dzieje pewnie będzie się więcej działo ale jak już widzimy na docker.ps mamy już organizację 1 mamy organizację 2 mamy piry już nasz coach wstał już wstał nasz jeden orderer i nasze pozostałe orderery świeżutkie dopiero od 9 sekund a w międzyczasie jak to mówię to instalowane są powoli chaincodes instalowany jest chaincodes 1 który będzie teraz przechodził przez te firz wszystkie piry instalował je a następnie robił instantient także na to rozwiązanie ale prawdopodobnie się wykona i wszystko będzie dobrze także jeżeli są jakieś pytania bo powiem szczerze, że nie patrzyłem teraz chwilowo to możemy sobie odpowiedzieć na jakieś pytania zobaczyć czy to przeszło a potem dalej polecimy stokiem tak Piotrze mamy kilka pytań na czacie. Myślę, że możemy przez mnie przejść po kolei ja na kilka pozwoliłem sobie odpowiedzieć ale będę prosił Cię na pierdzenie ewentualnie skorygowanie jeśli coś powiedziałem nie tak pierwsze pytanie jakie się pojawiło to było pytanie odnośnie współpracy pomiędzy software mill i IBM czy software mill jest partnerem IBM ja sobie tutaj pozwoliłem odpowiedzieć że jako że jestem związany z IBM że nie mieliśmy do tej pory okazji współpracować a przynajmniej ja nie wiem nic o takich współpracy więc nie uważam, że nie jesteśmy partnerami ale nie oznacza to, że nigdy nie będziemy kolejne pytanie to było pytanie odnośnie księgi głównej gdzie znajduje się księga główna w Hyperledger tutaj też udzieliłem odpowiedzi że na każdym spirów zgodnie z prawdą każdy spirów posiada tą księgę główną kolejne pytanie odnosi się do chain code czy dany chain code istnieje tylko w danym kanale tutaj nie udzielałem odpowiedzi więc poproszę Cię może od zabrania głosu to jest tak, no bo ja tutaj może to pytanie zostało spowodowane przez ten trick, który tutaj zrobiłem o chain code gdzie możemy myśleć jako takim drobnym programiku który instalujemy w obrębie jakiegoś kanału więc on będzie tutaj teraz istniał w ramach channel 1 a jeżeli zrobiliśmy ten trick to jakby tworzymy drugi raz jakby odrębny zupełnie inny chain code tylko który de facto ma taki sam source code nie wiem czy tak dobrze na to odpowiedziałem ale istnieje on jakby w obrębie jednego kanału ale jakby jeśli mamy nasz source code to może on służyć jakby za template i możemy go instalować w różnych miejscach tak, wydaje mi się, że o to chodziło w tym pytaniu co prawda może autor wypowie się czy zostało udzielone odpowiedź poprawnie natomiast tutaj chciałem doprecyzować, że jeżeli chain code zostanie skomplikowany w kanale powiedzmy 1 to nie ma możliwości wywołania go na kanale 2 można by napisać smart contract w kanale 2 który odnosił by się jakoś do smart contractu w kanale 1 ale jest to troszkę taka nie chcę mówić kalkołomna ale dosyć skomplikowana procedura jednak żeby robić takie transfery pomiędzy kanałami kolejne pytanie od Michała to jest pytanie czy software mi poszukuje zespołu studentów lub mniej doświadczonych programistów no to na razie jest takie trudniejsze no prawda jest taka, że i w sumie fajnie bo tak zastanawiałem się czy robić to introduction nasza specyfika jest taka, że pracujemy zdalnie i jesteśmy firmą tylko i wyłącznie zdalnie więc na początku mamy taką praktykę, że fajnie byłoby się odszaskać w jakimś biurze zdobyć troszkę dobrych praktyk tak żeby widzieć jak sobie systematyzować taką pracę pracować samodzielnie a kiedy złapie się więcej doświadczenia to zatrudniamy bidów i seniorów ale jak najbardziej zachęcamy i możemy coś pomóc z jakiejś przygodzie ja na końcu pokażę też swojego Twittera także możemy coś więcej pogadać jak zacząć na tym rynku YT a potem z czasem też zapraszamy do nas ok kolejne pytanie mamy od Grega czy fabryka jest w oparciu o fabryki 1.4.6 i później mamy dalej kontynuację tego pytania ok teraz w 1.4.11 czyli w ten sposób mnożymy containers tutaj prawdę mówiąc nie do końca rozumiem o co w tym pytaniu chodzi więc Greg jeśli mógłbyś napisać doprecyzować co można myśli mówiąc że mnożymy containers żeby mnie słuchać tak czyli każde dodawanie organizacji czy peer to jest nowy container tak jakby każdy peer każde orderer i każde CA to jest jakby oddzielny serwis który de facto jest oddzielną tutaj składową doker kompoza którego otworzyłem a jeszcze wracanie z tego pytania czy fabryka w oparciu o 1.4.6 czy ona działa również na fabriku 2 plus 2, 2, 2, 1 to tak na razie tutaj niestety mogę powiedzieć i tak i nie bo jak widzicie pewnie tutaj macie podpowiadaczkę i ona działa w obrębie większości wersji z 1.4 działa w wersji 1.3.0 i w tym momencie mamy świeżego PR który będzie nam gwarantował to że będzie działała ona w obrębie dwa coś tam dwa dowolne wersje ale nie są jeszcze wymarżowane także już bliziotko to podobnie połowa maja już wszystko będzie ok ale LTS wspieracie wkrótce ok kolejne pytanie od Tomka co dzieje się z danymi po zmianie konfiguracji jeśli chodzi o zmianę fabryka konfiga no to tutaj jest właśnie ten generalny problem no może nie problem generalne wyzwanie które w tym momencie mamy czyli cała sieć jest garszona więc chwilowo dane są tracone i pracujemy nad tym żeby było patchowanie takiej faktycznie działającej sieci tak żebyśmy tracili dane ale chwilowo jest to prototypowanie i niestety tracimy dane ok to może ja tutaj od siebie dodam pytanie jeśli mogę mówisz o patchowaniu sieci czyli można myślić że po zmianie tego konfigur i odpaleniu recreate na przykład dodawalibyśmy nowe kanały albo instalowali nowy smart contract od tego typu zmianie konfiguracji mówisz tak że na to chcielibyście pozwolić ok no tutaj właśnie mamy takie generalne podejście że fajnie jakby ten fabryka konfig robił jakby za takie uniwersalne źródoprawdy jest dla takiego orkiestratora i za pomocą niego można byłoby te zlecać patche i mówić co mamy w tej sieci transformować i robić difa między poprzednią wersją a aktualną wersją żeby zobaczyć co dodać co ustąąć itd a to jeszcze mam pytanie do tego pierwszego pliku konfiguracyjnego tego jasona który tworzymy na samym początku czy tam macie możliwość ustalenia dowolnej topologii sieci to znaczy dodać tam więcej niż jedną organizację z inną milością pirów itd. czy to dopiero robi się po wygenerowaniu tutaj tych artefaktów i na etapie recreate dopiero w skutek manipulacji chaincode'a na razie nie przewidowaliśmy żeby zrobić coś bardziej złożonego ale to powinno i to jest w sumie cenna uwaga bo moglibyśmy na przykład zrobić fabrykę init i tutaj popodawać jakiś to orks albo coś takiego żeby dawać troszeczkę inne tak to właśnie o tym chodzi ale jasne dobra rozumiem dobrze kolejne pytanie od Michała R jak wygląda deployment sieci na kilku hostach to ja pozwolę się tutaj zapołzować to jest bardzo fajne pytanie i ja mam jakby dalszą część slajdów o tym i chcę troszeczkę porozmawiać dlatego że deployment na paru hostach uważamy za coś dużo bardziej produkcyjnego pokaże tutaj że tylko zadziałam i jak najbardziej Michał odpowiem na to pytanie tylko chciałbym wytłumaczyć na jakim etapie jesteśmy z tym ok dobra to ja myślę że w takim razie możemy przejść do dalszej części prezentacji a do pytań wrócimy na koniec jasne no szybkie podsumowanie że mamy tutaj do CRPS i że się udało wszystko zadziałało jeszcze sobie zrobię jedną rzecz dlatego że mój komputer nie domaga zrobię sobie coś takiego fabryka PRON która pauzuje całą sieć znaczy distroje całą sieć i distroje wygenerowane scripty także zostajemy tylko wyłącznie z fabryka konfigiem a chodzi tutaj o to żebym zaraz ten komputerek nie padł i tak jak mówiłem lecimy dalej i żeby troszeczkę lepiej odpowiedzieć na to pytanie to chciałbym powiedzieć o tym że nie samą fabriką świat stoi i prawda jest taka, że jak tworzyliśmy ten open source to zaczynaliśmy pod koniec 2019 nasze internalowe potrzeby i z czasem i to dużo późniejszym czasem też zorientowaliśmy się że równolegle idzie parę innych rozwiązań które się rozwija nominalnie dwa takie, które jakby wyróżniliśmy to jest mini fabrik a drugie rozwiązanie to jest mikrofab oba te rozwiązania też upraszczają nam pracę z tym hyperlegere mini fabrik to jest takie bardziej narzędzie command line interface to znaczy też podejemy różnego typu command line nowe rzeczy żeby stworzyć nowe piry żeby stworzyć kanał żeby je dojoynować ale w znacznie łatwiejszy sposób niż taki transfer exec mini fabrik posiada też jakiś taki koncert, jakby takiej sieci od której startujemy ale jeżeli chcemy zadyplojować chaincode stworzyć jakiś kanał to musimy najpierw ręcznie podjoynować do niego piry, potworzyć te piry więc jest to rozwiązanie które wymaga dużo więcej pisania ale jest dużo bardziej produkcyjne podobne jest rozwiązanie mikrofab, któremu za bardzo nie przeglądałem ale który jest dosyć podobny dlatego że oferuje w zasadzie to co mini fabrik tylko jak widzimy różni się praktycznie tylko jedną rzeczą czyli mamy dodatkowo do naszej sieci fabrykowej dostawiany rest server który umożliwia zlecenie takich command i transformowanie sieci a dlaczego o tym mówię dlatego że oba te rozwiązania cechuje to, że mają takie podejście imperatywne stwórz pira, stwórz jakiś kanał i dużo łatwiej jest tworzyć tam coś gotowego produkcyjnie gdzie moglibyśmy nie operować tylko w maszynę docker kompozy tylko moglibyśmy operować na wielu hostach tak jak na przykład robi to mini fabrik a u nas tego jeszcze nie ma więc mam nadzieję, że w sposób może trochę przedługi i zdezkaliamy jakby odpowiedziałem i też chcemy coś takiego rozwijać i możemy jeszcze za chwilkę o tym pogadać ale na razie nie obsługujemy jakby deployowania na wiele hostów w przeciwieństwie do mini fabrika, który wiem, że coś takiego posiada i parę ostatnich słów tutaj o nas że tak jak już to wiele razy podkreślałem jak to też widać, że my operujemy dosyć mocno takim podejściem jak 1 config file czyli nasze uniwersalne źródło prawdy czyli takie bardzo deklaratywne podejście my po prostu z górnego lotu opisujemy jak ma wyglądać ta sieć a pewne procesy są w zasadzie skrojone na miarę tego czego będziemy potrzebowali będzie na pewno coś takiego i to jest bardzo cenne jakaś transformacja do tego rozwiązania które zrobiło ASencher które możliwe skonfigurowanie sieci już Kubernetesowej za pomocą jednego Yamla ale jeszcze jeszcze tego nie mamy póki co fabrika jest bardzo dobra co do testów continuous deployment i continuous integration dlatego, że jeśli mamy to przytulone do naszego backendu to w zasadzie w pipeline Jenkins'owym albo jakimś innym do wojny testowym podajemy po prostu fabrika app, podajemy tego JSONa już na potrzeby naszych testów integracyjnych przy aplikacji mamy działającą sieć fabrikową my też dosyć mocno ciśniemy w eksperymentowanie czyli żeby ten nasz konfig był bardzo elastyczny i żeby dało się to na bardzo wiele różnych sposobów połączyć no bo tak same założenie tego projektu tego wymagało i te pierwsze trzy projekty które jakby mówiłem i chcemy być gotowi produkcyjnie mamy nadzieję, że będzie to w niedługim czasie trochę tak po cicho i z wizją liczymy na to, że taki fabrika konfig może być uniwersalnym źródłem prawdy gdzie z jednej strony wygenurujemy jakieś skrypty kompozowe za pomocą których developer na swoim laptopie jest w stanie stworzyć taką sieć ale też za pomocą tego samego źródła prawdy jesteśmy w stanie podbić nasz cluster i zrobić jakieś tam zamieszanie czyli pododować nowe organizacje, nowe kanały i cały czas mieć to w obrębie jednego pliku co byłoby super fajne i ostatnia rzecz i to taka zupełnie świeża bo to się w zasadzie stało wczoraj czyli zaczęliśmy też rozmawiać nad zacieśnieniem współpracy z minifabrikiem i jesteśmy umówieni na kolab udajże w przyszłym tygodniu żeby pokazać i porozmawiać troszeczkę o tym że dużo mamy podobieństw, mamy troszeczkę różnic i co zrobić żeby wszystkim było lepiej w naszych hyperledger lapsach i teraz to jest tyle dzięki serdeczne za wysłuchanie za całość, tutaj macie link do mojego Twittera jeśli byli byście zainteresowani fabriką to tutaj macie linka, tutaj macie QR code ja znikam i teraz zamieniam się kompletnie w słów dla was ok, bardzo ci dziękuję Piotr naprawdę świetna prezentacja ja sam mocno kibicuję nie chcę powiedzieć, że wspieram konkurencję bo zaraz ktoś może coś takiego skarżyć ale naprawdę kibicuję każdemu kto próbuje tworzyć jakieś narzędzie automatyzujące tworzenie tej sieci bo potwierdzam, że jest to tak jak mówiłem na początku bardzo złożony proces, jest to trudne szczególnie jak zarządza się kilkoma projektami posiadanie takich narzędzi jest jak najbardziej mocno pożądane i no mam nadzieję, że będzie się to rozwijało jak najbardziej i myślę, że teraz jesteśmy gotowi na to żeby przejść już do takiej sesji Q&A w pełnej formie, pojawiły się jeszcze dwa pytania na czacie, więc zanim oddam głos tutaj poszczególnym osobom, które biorą udział w naszym mitapie, to jeszcze pozwolę sobie przeczytać te dwa pytania, one oba są od Grega więc pierwsze pytanie to właśnie czy Kubernetes ma zastąpić uzupełnić Docker Compose tutaj wspominałeś o tym, że istnieją już implementacje, które pozwalają w innych projektach na odpalanie sieci w oparciu o Kubernetes ale właśnie czy wy myślicie o tym, żeby przejść na taką konfigurację? To znaczy my mamy takie podejście, że Docker Compose używamy u nas lokalnie na laptopie, czyli na deweloperskie potrzeby a produkcyjnie to mamy dosyć dużą znajomość z Kubernetesem i raczej podejście, w którym będziemy testować, to nie będziemy u nas wypierać do Docker Compose'a, tylko Docker Compose będzie traktowane jako coś lokalnego a nie będziemy chcieli odpalać na przykład MiniCube, żeby postawić sobie całą sieć tylko będziemy chcieli trzymać to lekko i do czego bardziej produkcyjnych gdzieś tam w klas trzę, to Kubernetes Ok, jeszcze jedno pytanie od Grega, czy jest jakiś explorer tutaj myślę, że mówimy o Hyperledger Explorer, ale może są jeszcze inne narzędzia, które znasz? Jest Hyperledger Explorer faktycznie, czyli że możemy sobie podejrzeć, jak wygląda ten check-out. Wiem, że swojego czasu był też dosyć dobry rest-server, tylko ja jeszcze pamiętam już czasów kompuzera i wiem właśnie, jak tego sprawa się ma ale też za pomocą niego mogliśmy dosyć fajnie querować sieć i nasze check-outs już. Wydaje mi się, że wszystko to było powiązane z kompuzerem, chyba już w ogóle nie istnieje, może w jakiejś wersji duplicated starej, ale nie sądzę, że to ktokolwiek rozwijał gdzieś dalej. No dobrze, to były wszystkie pytania z chatu, więc teraz ja również zamieniam się w słuch i może ktoś tutaj z osób, które biorą udział w naszym kolumen, ma jakieś pytania, które chciałby zadać na żywo. Cześć, nazywam się Michał nie wiem, czy my słuchać Super no dziękuję za prezentację, bardzo ciekawa super projekt bardzo się cieszę, że w Polsce też coś takiego rozwija no ja miałem doświadczenie właśnie z minifabem i przyznam szczerze, że jak znalazłem to narzędzie, to wiele godzin mi ono zaoszczędziło wspomniałeś, że chcecie, że tak powiem, zawiązać jakąś współpracę, czy tam porozmawiać chociażby i wspomniałeś o tym, że wasze projekty różnią, czy byśmy mógł coś więcej powiedzieć o tych różnicach? Tak u nas to znaczy, my akurat mówiliśmy nie z tych o minifabie, tylko mówiliśmy o minifabriku i to prawdę mówiąc z nimi będziemy rozmawiać a taka generalna różnica u nas jest taka, że my chcemy orkiestrować całą sieć za pomocą jednego konfiga czyli to uniwersalne źródło prawdy i to jest jakby generalna różnica czyli za pomocą niego coś paczować i za pomocą jednego konfiga tworzyć różne transformacje czyli albo tworzyć Docker Kompauza albo tworzyć jakiś deployment kubernetesowy albo tworzyć na potrzeby biznesu, wizualizację jak wygląda nasza sieć żeby pokazać gdzie są te kanały, gdzie są te piry gdzie są te onderery a tego nie ma w minifabriku i minifabrik jest raczej skupiony na takim podejściu, że startujemy od jakiejś sieci a później stopniowo jakby ją rozbudowywujemy i dodajemy piry kanały chaincodes więc to jest ta podstawowa różnica ok, rozumiem tak, bo minifabrik też mam wrażenie, że on bardziej działa tak jak jest opisane w tutorialu hyperledgerfabrik właśnie, żeby tą sieć na początku zawiązać a potem jakby rozbudowywać o kolejnych uczestników i jeszcze chciałem się tak spytać takie generalne pytanie ktoś jeszcze by się wypowiedział jak testujecie całe flow sieci całe flow to znaczy chodzi o jakieś info invocation po prostu, tak? no tak, na przykład właśnie czy uprawnienia dane się zgadzają i tak dalej jakie macie praktyki związane to znaczy u nas akurat fajnie jakby też ktoś inny się wypowiedział dlatego, że nie jestem pewien może też jest nieco fajniejsze rozwiązania u nas to jest po prostu seria testów jednostkowych czyli mamy bardziej takich integracyjnych, już popisanych czyli wywołujemy coś dany chain code jako jakiś tam user jako jakaś tam organizacja potem próbujemy wywołać to jako inna organizacja, jako inna osoba i zobaczyć czy mamy jakiś read and write permissions ale to po prostu jest klasyczny kod nie wiem czy istnieją jakieś narzędzia, które pomagają wykluczyć jakieś takie bardziej zaawansowane case które troszeczkę to upraszczają jeśli ktoś jest to bardzo pewnie usłyszał ok, to ja może tak pokrótce powiem jaki my pomysł mieliśmy na to u nas jakby założyliśmy, że zrobimy po prostu testowy chain code jakby on był jeden do jeden z chain code'em, który miał faktycznie działać i po prostu na nim puszczaliśmy testy i sprawdzaliśmy czy wszystko się zgadza zanim, że tak powiem, updateowaliśmy ten chain code faktycznie używany tylko no właśnie takie pytanie powstało, czy to jest dobra metodologia, być może nie stąd właśnie moje pytanie ale słyszałem, że ktoś tam też chciał się wypowiedzieć, więc chętnie usłyszę to znaczy ja tylko chciałem zabrać głos, że też nie znam takich narzędzi, które automatyzują to tak out of the box, to wszystko trzeba dotworzyć samemu, przynajmniej z doświadczenia, które ja mam No ja tak tutaj właśnie trochę właśnie o tym naszym rozwiązaniu to o tyle chcę powiedzieć, już włączę najmniejszym ekranie, że u nas dosyć łatwo coś takiego wrzucić do ParkPlaner.js nisowego, opowiedzieć, że mamy te trzy organizacje że mamy powiedzmy jakiś tutaj chain code i po prostu próbować go testami wyinwokować na różne sposoby które kompozji jest to dosyć leciutkie to da radę to jeszcze uruchomić w ramach takiego Jenkinsa i na Jenkinsie już powinno nam się coś posypać jeśli mamy coś bardzo źle skonfigurowane No Ach tak, bo właśnie było tam kwestie widoczności i my też planujemy rozwianie właśnie też profili, czyli read i write permissions dla danych organizacji, także także też będzie mógł jakby wzbogacić config.txt, a tego o to co nie dana organizacja może zrobić w danym kanale także to też mógłby pomóc do takiego testowania, no ale to tyle chyba jeśli są jakieś inne pytania to super chętnie coś usłysze Czy można zobaczyć CouchDB powiem, że jest browserze Tak, tak, to znaczy chodzi o to, żeby teraz pokazać, tak? No jeżeli network jeszcze jest live Nie, niestety zgasiłem ten network, możemy za chwilkę spróbować, ale to troszeczkę zajmie, da się zobaczyć, porty są wyekspouzowane spróbujemy Międzyczasie możemy polecić z nimi pytaniami i zobaczyć czy się udało Tak, no bo tutaj dostęp do CouchDB jest dostępniany standardowym interfejsem Foxtona, tak? Tutaj nie ma chyba, no ale to jasne możemy to zobaczyć jak w stanie sieć No nie wiem, czy ktoś jeszcze chciałby zadać jakieś pytanie Myślę, że temat jest naprawdę warty dyskusji To ja może Piotrze zadał takie pytanie troszeczkę znowu z perspektywy IBM ale nie oskarżajmy tutaj, że próbuję wyciągać jakimś wiedzę, to po prostu z czystej ciekawości, chciałem się dowiedzieć czy miałeś okazję używać tego narzędzia IBM Blockchain Platform Chodzi o to nasze polskie rozwiązanie tak, naszą chmurkę Nie, nie, chodzi mi o IBM Blockchain Platform jako narzędzie do tworzenia właśnie sieci blockchain, takie z poziomu interfejsu dostępnego na IBM Cloud bo można w zasadzie zdiploiować to na dowolnym cloudzie, ale o sam fakt czy korzystałeś z tego narzędzia Nie, nie korzystałem Ok, dobrze Ale chętnie też mogę coś więcej usłyszeć to działa na podobnej zasadzie Podobnej, można powiedzieć Myślę, że tutaj mogłbym Cię podesłać po prostu link do webinaru, który prezentuje jak to rozwiązanie działa plus jakieś dokumentacje ale to tylko tak zupełnie z czystej ciekawości Chciałem zapytać czy miałaś możliwość skorzystania z tego to nie jest tak, że tam konfigurujemy sobie jakiś plik tylko dostajemy dostęp do konsoli gdzie możemy tworzyć sobie poszczególne komponenty ale robimy to step by step ewentualnie z kryptami ansiblowymi po prostu odpalamy całą tą siedzia do takich z kryptów Można powiedzieć, że na podobnej zasadzie ale to nie jest to samo, co tutaj prezentujesz w swoim narzędziu Jasne, tak z góry też powiem że właśnie tutaj jest takie śmieszne podejście software mill IBM Ja osobiście bardzo cenię sobie za fabrika ich samego Hyperledgera za to, że niejako nie jest ponad pewnymi organizacjami Dzięki czemu można robić właśnie jakieś fajne open-sourcy Dzięki czemu też mamy takie mitapy jak ten, gdzie możemy się wymieniać wiedzą Ja też bardzo sobie cenię takie okazje żeby więcej się dowiedzieć albo żeby coś współpracować żeby coś więcej porozmawiać Jasne, ale to właśnie całą magię open-sourc No dobrze Ja będę miał może pytanie do ciebie Patryk O tego IBMowego Hyperledgera w cloudzie bo miałem okazję korzystać AWS blockchain tak zwanego czyli na AWSie przyznam szczerze, że cały proces jakby tworzenia sieci wydaje mi się tam dosyć dobrze uproszczony ale problem pojawił się w momencie kiedy chcieliśmy tam wpiąć narzędzie typu kaliper które miałoby mierzyć wydajność tej sieci nie było to praktycznie wykonalne ze względu po prostu na to, że narzędzie było niedostosowane do tego co wystawiała, że tak powiem platforma jak to wygląda w przypadku IBM Wiesz co akurat w odnośnie kaliper nie będę ci w stanie udzielić odpowiedzi bo nigdy nie próbowałem go podłączyć wydaje mi się, że nie powinno to stanowić większego problemu bo sieć, która powstaje z użyciem IBM Blockchain Platform jest praktycznie jeden do jednego z siecią HLF ale kalipera nie podłączałem blockchain explorer jak najbardziej z kalipera nie korzystają więc mogę to sprawdzić, być może ktoś to próbował robić więc jeśli zostawibyśmy tutaj swój adres e-mail to mogę ci taką wiadomość później podesłać No to z czystej ciekawości pytałem po prostu taki problem mi się też pojawił gdzieś tam w cloudzie, tym blockchainowym byłem po prostu ciekawy jak to czy ktoś może też się z tym spotkał i jak to jest rozwiązane gdzie się dzieje no niestety na to pytań ci nie odpowiem teraz, mogę podesłać później natomiast Piotr chciałem właśnie ciebie zapytać odnośnie takich narzędzi jak kaliper czy budując takie sieci produkcyjne korzystacie właśnie z kalipera do testowania jakoś performance czy macie swoje własne narzędzia Chwilowo korzystaliśmy z własnych narzędzi to znaczy my pisaliśmy takie rzeczy jak gatling i staraliśmy się popracować za pomocą jakichś robów gatlingowych strzelać i sprawdzać jak mi więc ale też słyszeliśmy o kaliperze i też zastanawiamy się czy przy następnym jak by okazji też nie pobawić się nim nie obużyć w międzyczasie pozwoliłem sobie zrobić drugi ekran i zalogować na CouchDB do pierwszego zorganizacji, trzeciej dlatego, że ktoś chciał także jak widzimy mamy tutaj kanał mamy już tutaj wszystkie potrzebne informacje i jak najbardziej też możemy się zalogować a takie uniwersalne adres do caucza to jest localhost tutaj akurat mamy porcie zmieniony ale to jest po prostu slash utils gdybyśmy chcieli co sprawdzić w cauczu już mam nadzieję, że to odpowiada jest jeszcze coś do tej pory żadnego cienko nie użyliśmy do niczego Adner Records nie były napisane to znaczy z tego co mi wiadomo to informacje o chain code pojawiają się dopiero kiedy faktycznie ten chain code zostanie wywołany ja tutaj niestety nie przygotowałem żadnych skryptów żeby zrobić jakieś invocation ale jak najbardziej możemy coś takiego zrobić także tutaj faktycznie mogę pociągnąć dalej to damko i przepraszam ale jak najbardziej to działa i da się czyli to jest CouchDB Folkstone czyli użyliśmy, widziałem chyba tam był Postgres i SQL Lite czyli każda z tych bazy danych może być użyta do jakiegokolwiek backup and storage czyli jak chcemy zniszczyć sieć to da się ją odzyskać później z tych databases znaczy odpowiedź brzmi w zasadzie i tak i nie, dlatego że w przypadku blockchaina sprawa jest doszło bardziej skomplikowana Couch i LevelDB i te bazy, które podmieniamy w ramach Pira, przechowują coś takie jak Wordstate czyli nasz aktualny stan gdybyśmy na przykład mieli tutaj konto bankowe to byłby mój aktualny balans ale w rzeczywistości mamy jeszcze przy pierach coś takiego jak faktyczny Chain czyli mamy listę transakcji która składa się na aktualny stan i żeby jakby to było w pełni backupowalne rozwiązanie to powinniśmy też backupować cały Chain a nie tylko aktualny Wordstate czyli za każdym razem jak zniszczymy czy recreate fabric z powodu zmiany konfiguracji tracimy Genesis Block tak, na dzień dzisiejszy za każdym razem Genesis Block to jest aktualny ale idziemy w lepszą stronę z tym Dzięki Dobrze, jeszcze jakieś pytania na razie widzę, że zaległa cisza to jeszcze od siebie w takim razie Piotrze, czy może jakieś doświadczenia też z innymi projektami hyperledgerowymi miałeś okazję pracować na innych protokołach typu Indii na przykład Ja dosyć mocno się właśnie interesuje Distributed Identity i to jako koncept mi się bardzo podoba bardzo, bardzo w tym momencie dopiero zaczynam się tym bawić także to jest takie doświadczenie można powiedzieć studenckie jeszcze raczej jestem skupiony na razie zawodowo na Vanilla Fabriku ale bardzo interesuje mnie właśnie Indii chciałbym się dosyć mocno od niego wdrożyć Ciekawe dosyć jest koncept Softofa i tego, że możemy normalne solidity kontrakty na nim instalować i na pewno też jest wiele narzędzi Ostatnio usłyszałem o kaktusie kaktusy nie przepawiłem także całkiem dużo tego jest Jasne, tutaj akurat Marta Piekarska na pierwszym naszym mitapie, który prowadziliśmy opowiadała troszeczkę więcej o całym ekosystemie hyperledgera, nie wiem czy miałeś okazję posłuchać tego wystąpienia Też tam byłem No prawda, że hyperledger sam w sobie, chociaż jest najstarszy z tego całego ekosystemu zajmuje bardzo dużo czasu, żeby nauczyć A jak już człowiek tak wyściubi nosa to tam jest też bardzo dużo ciekawych konceptów Może jeszcze się coś z plakami może coś więcej opowiem, ale na razie tutaj przygaszę dlatego, że fajnie byłoby coś więcej, więc powiedzieć o jak już się troszeczkę oczaskam z innymi życzami Jasne, ale tak Potwierdzam, że fabrik jest naprawdę bardzo złożonym narzędziem w pozorom, co komuś może się wydawać że postawienie sieci to prosta sprawa Pewnie nie jest prostą sprawą Szczególnie po takiej prezentacji jak twoja jak każdy sobie myśli, no tak 15 minut mamy wieć W rzeczywistości to w ogóle nie działa w ten sposób No dobrze, to czy jeszcze są jakieś pytania od naszej publiczności Nie słyszę, nie widzę nic na czacie, także myślę, że możemy powoli kończyć nasze spotkanie Jeszcze raz Piotrze bardzo dziękuję za prezentację Super informacje Bardzo dobrze poprowadzone, tak jak mówiłem kibicuję rozwojowi narzędzia i mam nadzieję, że będziemy mieli jeszcze okazję porozmawiać gdzieś w przyszłości i również zapraszam wszystkich na kolejne meet-upy, które będą organizowane Następny meet-up odbędzie się prawdopodobnie gdzieś pod koniec maja, tak będziemy próbować zachować tą ciągłość jednego meet-upu na miesiąc I tak jak wspomniałem na początku to również to spotkanie będzie dostępne na YouTube na oficjalnym kanale Hyperledger więc będzie można sobie otworzyć dla osób, które opuściły nas wcześniej bądź po prostu nie miały okazji uczestniczyć w tym spotkaniu I również przypominam, że jeżeli macie jakieś propozycje tematów które mogłyby zainteresować nasze community Ktoś chciałby się podzielić jakąś wiedzą, może projektami, w których wierzecie udział to również zapraszamy do kontaktu bardzo chętnie będziemy was gościć jako naszych prelegentów także jeszcze raz bardzo dziękuję i życzę wszystkim miłego wieczoru Dzięki, dziękuję Dzięki wszystkim Dzięki, do zobaczenia, cześć Cześć