Samouczek DAML: Pierwsze kroki z DAML

Szukasz samouczka DAML? Jeśli tak, to trafiłeś we właściwe miejsce. W tym artykule będziemy robić odpowiedni samouczek dotyczący łańcucha blokowego DAML.

W samouczku omówiono podstawową wiedzę na temat DAML, dlaczego jest on potrzebny, oraz przykłady kodu, aby nadać mu większy sens. Jeśli jesteś początkującym, znajdziesz samouczek, aby rozpocząć korzystanie z DAML. Krótko mówiąc, jest to doskonały samouczek DAML dla początkujących. Jednak nie jest to kompletny samouczek dotyczący programowania DAML, ponieważ nie zamierzamy budować żadnej kompletnej aplikacji w samouczku, ponieważ wykracza to poza zakres artykułu.

Samouczek DAML: Pierwsze kroki z DAML

Samouczek DAML

Więc co to jest DAML? Odkryjmy.

Potrzebujesz odświeżenia technologii blockchain? Aby rozpocząć, zapoznaj się z przewodnikiem Blockchain for Beginners! Zapoznaj się również z naszym najlepszym przewodnikiem po DAML.

Co to jest DAML?

DAML to język programowania typu open source do tworzenia aplikacji rozproszonych. Pozwala programistom tworzyć te rozproszone aplikacje zwięźle, szybko i poprawnie.

Hyperledger utrzymuje DAML i uczynił go częścią swojego ekosystemu. To sprawia, że ​​DAML jest jednym z języków programowania, które działają na czołowych platformach blockchain. Tak, jest akceptowany przez wiele platform. Ułatwia również programistom szybkie tworzenie aplikacji, a następnie decydowanie, gdzie chcą ją wdrożyć.

Co sprawia, że ​​DAML jest tak wyjątkowy?

DAML to język programowania do tworzenia języków rozproszonych. Ponieważ coraz więcej firm rozumie znaczenie aplikacji rozproszonych, DAML zapewnia tym firmom i ich programistom narzędzie do osiągania ich celów. W rzeczywistości jest to jedno z tych niesamowitych narzędzi, które pozwalają przejąć kontrolę nad rozproszoną aplikacją.

DAML stawia czoła trudnym problemom projektowym, ponieważ zapewnia rozwiązanie złożonych problemów, takich jak rozproszona synchronizacja stanów i kryptografia. Aby osiągnąć cel, został przeprojektowany.

Podstawowy projekt lub implementacja jest abstrakcyjna, gdy programista pisze swoją aplikację blockchain. Pozwala programistom skupić się na abstrakcyjnych wymaganiach i pozwolić DAML zająć się całą ciężką pracą. Wiedząc, że DAML jest wyjątkowy, możesz lepiej docenić naukę DAML za pomocą naszego samouczka DAML.


Funkcje DAML

W tej sekcji naszego samouczka DAML dowiemy się o kluczowych funkcjach DAML.

Model danych: DAML umożliwia programistom łatwe tworzenie złożonych schematów danych dla ich aplikacji. Ułatwia to projektowanie i wdrażanie złożonych wymagań lub procesów biznesowych.

Uprawnienia szczegółowe: Kontrakty DAML są dostosowywane do ustawiania uprawnień. Oznacza to, że programiści mogą ustawić, kto może podpisać umowę, kto może ją zobaczyć i na jakich warunkach.

Logika biznesowa: Logikę biznesową można również z łatwością zintegrować. Deweloper może pisać akcje wymagane w umowie, jej potwierdzeniach, parametrach i nie tylko!

Testowanie oparte na scenariuszach: Testowanie oparte na scenariuszach jest również możliwe z DAML. Umożliwia programistom testowanie logiki biznesowej i innych aspektów zdecentralizowanych aplikacji, takich jak przepływy pracy.

Funkcje środowiska uruchomieniowego

Oprócz powyższych czterech podstawowych funkcji, mamy również DAML Runtime. Runtime odnosi się do środowiska utworzonego przez aplikację podczas jej wykonywania. W tym stanie posiada kluczowe cechy, które sprawiają, że program działa wydajnie i efektywnie. Ucząc się o nich w samouczku DAML, będziesz w stanie utrwalić swoją naukę DAML.

Porozmawiajmy o nich poniżej.

Abstrakcja pamięci masowej → Abstrakcja pamięci masowej oferuje warstwę trwałości, która zapewnia, że ​​wszystkie programy DAML są niezależne od pamięci. Mówiąc najprościej, programy DAML nie zależą od wybranej pamięci, ponieważ mogą konwertować wspomniane dane do formatu strawnego.

abstrakcji pamięci masowej

Kontrole uprawnień → Autoryzacja sprawdza wszystkie działania w ramach kontraktu. Jeśli akcja nie przejdzie odpowiedniej autoryzacji, nie będzie można jej wykonać.

daml-tutorial-sprawdzenie-autoryzacji-

Umowa wyświetli wtedy błąd w czasie wykonywania i poinformuje kupującego lub dewelopera.

daml-tutorial-error.

Śledzenie odpowiedzialności → Środowisko wykonawcze jest również odpowiedzialne za śledzenie odpowiedzialności. Dba o to, aby strony dobrowolnie zawarły umowę. Aby tak się stało, wymagane były podpisy sygnatariuszy. Ma to na celu ochronę kupującego przed jakimkolwiek silnym zachowaniem ze strony organizatora lub sprzedawcy.

Komponowalność atomowa → DAML obsługuje projektowanie atomowe. Oznacza to, że wszystkie działania są wykonywane atomowo, a zatem mogą zostać popełnione lub w ogóle nie zostać popełnione. Nie ma kompromisu, jeśli chodzi o zawieranie umów. Ma to na celu zapewnienie bezpieczeństwa przepływu pracy i powstrzymanie wyzyskiwaczy.

Brak podwójnych wydatków → W przypadku DAML runtime kontrakty mają na celu zapewnienie, że podwójne wydatki nie są możliwe. Oznacza to, że tego samego kontraktu nie można wykonać dwukrotnie.

Najważniejsze informacje Prywatność → DAML oferuje poziom subtransakcji, który udostępnia informacje po zatwierdzeniu.

Deterministyczne wykonanie → Wreszcie środowisko wykonawcze obsługuje wykonywanie deterministyczne. Oznacza to, że efekt każdej czynności zależy od bieżącego stanu księgi.

Pierwsze kroki z DAML

W tej sekcji naszego samouczka DAML zajmiemy się przewodnikiem wprowadzającym do samouczka DAML blockchain. Zanim będziesz mógł używać DAML, musisz go zainstalować.

Aby korzystać z DAML, musisz wykonać dwuetapowy proces.

1) Instalowanie zależności

Aby używać DAML, musisz najpierw zainstalować zależności. Aby to zrobić, musisz pobrać pakiet SDK i zainstalować go w swoim systemie operacyjnym.

Poza tym najlepiej byłoby, gdybyś miał również następujące elementy

  • Visual Studio Code lub dowolne kompatybilne zintegrowane środowisko programistyczne
  • JDK 8 lub nowszy.

2) Instalacja SDK

Jeśli używasz systemu Windows, możesz przejść do połączyć, i pobierz plik wykonywalny.

W systemie Linux lub MAC musisz uruchomić następujące polecenie za pomocą curl.

curl –sSL https://get.daml.com/ | sh

Poprosi Cię o dodanie ~ / .daml / bin do zmiennej PATH. Po zakończeniu możesz korzystać z DAML.

Poradnik DAML dla początkujących

Czy nigdy nie pracowałeś z DAML? W takim razie nie martw się, ponieważ w tej sekcji omówimy podstawy DAML, jego typy danych, szablony, funkcje, wyrażenia i tak dalej!

Ale zanim to zrobimy, musimy zrozumieć model DA Ledger (zasobów cyfrowych). Jest to ważna część naszego samouczka DAML.

Model księgi DA

Model DA Ledger jest podstawą DAML. Oferuje wielostronne przepływy pracy za pomocą wirtualnej wspólnej księgi. Aby uzyskać lepszy pomysł, możesz sprawdzić zrzut ekranu poniżej.

DAML-Tutorial-Ledger-Model

Źródło: dokumentacja DAML

Model służy do definiowania struktury ksiąg DA (co), modelu integralności (kto może zażądać) i modelu prywatności (kto może zobaczyć).

Aby uzyskać bardziej szczegółowe informacje na temat modelu DA Ledger, zapoznaj się z oficjalną dokumentacją tutaj.

Podstawowe kontrakty

W centrum DAML znajdziesz księgę DAML. Przejdziemy przez mały szablon, ponieważ pomoże nam on zrozumieć podstawowe pojęcia, w tym transakcje, szablony umów, sygnatariuszy, moduły DAML i pliki.

Commits

Księga DAML zawiera listę „zatwierdzeń”. Mówiąc najprościej, zatwierdzenie to złożona transakcja do księgi głównej. W umowie możesz o niej myśleć jako o aktywnej transakcji, która musi zostać wykonana, a jej wykonanie zależy od atrybutów kontraktu i warunków.

Moduły i pliki DAML

Zanim zaczniesz, musisz wspomnieć o wersji DAML. Można to zrobić w górnej części pliku DAML. Wersja powiadomi kompilator, która wersja języka jest używana.

cholera1.2

Aby zaimportować moduł, musisz użyć słowa kluczowego „module”.

moduleTokenwhere

Komentarze

Jeśli chcesz dodać komentarze, możesz to zrobić za pomocą słowa kluczowego „-”.

– To jest komentarz

Szablony

Do zdefiniowania typu kontraktu służy szablon. Określa podmioty, które mają dostęp do realizacji zamówienia. Możesz myśleć o kontraktach jako o przykładach szablonów.

szablon Token

z

właściciel: Impreza

gdzie

właściciel sygnatariusza

Jak widać, zdefiniowaliśmy szablon tokena za pomocą słowa kluczowego „template”. Wymaga również kłótni. Jeszcze jedną rzeczą, na którą możesz zwrócić uwagę, jest to, że jest zorientowany na białe znaki. Jeśli korzystałeś już wcześniej z Pythona, zrozumiesz, jaka jest struktura i przeznaczenie kodu.

Na koniec można zobaczyć słowo kluczowe sygnatariusz, które oznacza sygnatariuszy instancji umowy. Do podjęcia działań związanych z umową, w tym do jej archiwizacji i tworzenia, wymagane jest upoważnienie tej strony.

Zrozumienie scenariuszy przy użyciu szablonów

Teraz, gdy zrozumieliśmy podstawową strukturę szablonu, teraz zrozumiemy scenariusze przy użyciu dwóch innych szablonów w naszym samouczku DAML. Ale zanim to zrobimy, zastanówmy się, czym dokładnie jest „scenariusz.

Scenariusz

Scenariusz można najlepiej opisać jako przepis testowy, który można wykorzystać do sprawdzenia, czy szablony zachowują się tak, jak powinny. Może służyć do przeprowadzania testów transakcji. Spójrzmy na poniższy przykład.

token_test_one = scenariusz do

sam <- getParty „sam”

przesłać sam do

utwórz token z właścicielem = sam

Powyższy scenariusz przedstawia podstawowy scenariusz dotyczący tokena dla drużyny znanej jako „sam”.

Aby uruchomić scenariusz, musisz skorzystać ze studia DAML.

Aby dowiedzieć się więcej o scenariuszu, zalecamy zapoznanie się z strona dokumentacji scenariusza tutaj.

Typ danych

Podobnie jak każdy język programowania, DAML obsługuje również typy danych. Typy danych pozwalają zdefiniować zmienną i przechowywać w niej dane.

Aby to ułatwić, pomyślmy o szablonach jak o tabelach bazy danych. Teraz możesz zapisać dane w szablonie i pomóc sobie w łatwym zarządzaniu nimi poprzez projekt szablonu.

Istnieje wiele rodzimych typów danych, w które wchodzi DAML. Obejmuje to następujące.

  • Strona → Aby zapisać tożsamość jednostki. Strony mogą składać transakcje i podpisywać umowy.
  • Tekst → Przechowuje znak Unicode
  • Int → przechowuje 64-bitowe liczby całkowite
  • Decime → przechowuje liczby stałoprzecinkowe
  • Data → przechowuje datę
  • Czas → przechowuje czas w UTC
  • RelTime → Przechowuje różnicę czasu
  • ContractId → odniesienie do typu kontraktu

Poniżej znajduje się kod umożliwiający zrozumienie niektórych typów natywnych.

native_test = scenario do

Sam <- getParty „Sam”

Mysterio <- getParty „Mysterio”

pozwolić

my_int = –657

my_dec = 0,001: dziesiętny

my_text = „Sam”

my_bool = Fałsz

assert (Sam / = Mysterio)

assert (-my_int == 123)

assert (1000,0 * my_dec == 1,0)

assert (my_text == „Sam”)

DAML obsługuje również inne typy danych, w tym krotki, listy i rekordy.

Aby dowiedzieć się więcej o typach danych w DAML, sprawdź ich stronę z dokumentacją tutaj.

Przekształcanie danych za pomocą wyborów

DAML obsługuje niezmienność. Oznacza to, że zawsze istnieje potrzeba aktualizacji danych; należy utworzyć nową umowę z nowymi danymi. Jednak nie zawsze tak jest, ponieważ zawsze jest coś bardzo małego do zmiany i modyfikacji. Na przykład firma może chcieć zmienić swój numer telefonu, aby zrobić to za pomocą wybory.

Spójrzmy na przykład wzięty w dokumentacji DAML.

szablon Kontakt

z

właściciel: Impreza

impreza, impreza

adres: tekst

telefon: SMS

gdzie

właściciel sygnatariusza

właściciel kontrolera może

UpdateTelephone

: ContractIdContact

z

nowyTelephone: SMS

zrobić

utwórz to za pomocą

telefon = nowyTelephone

Większość powyższego kodu nie wymaga wyjaśnień. Jedyną rzeczą, którą musisz wiedzieć, jest to, że zdefiniowaliśmy opcję znaną jako „Zaktualizuj telefon”.

Wybory mogą być również używane jako delegacja. Wreszcie, można je również zintegrować z modelem księgi.

Aby dowiedzieć się więcej o opcjach DAML, możesz sprawdzić oficjalną stronę dokumentacji tutaj.

Dodawanie ograniczeń do kontraktu

Możesz również dodać ograniczenia do kontraktu DAML, używając słowa kluczowego „zapewnić”. Możesz także użyć innego mechanizmu, który wykorzystuje słowa kluczowe assert, abort i error, aby dodać ograniczenia do kontraktu.

Ale zanim to zrobisz, musisz mieć w umowie odpowiednie warunki wstępne dotyczące szablonu.

Aby dowiedzieć się więcej o ograniczeniach i ograniczeniach, zapoznaj się z dokumentacją tutaj.

Strony i władza

DAML ma odpowiedni sposób obsługi stron i upoważniania ich do dostępu do umowy. Możesz ich używać nie tylko do przekazywania uprawnień, ale także do pisania zaawansowanych wyborów, które mogą zmienić sposób działania księgi. Ta elastyczność jest ważna, ponieważ zapewnia stronom wystarczającą ilość narzędzi do zmiany rzeczy, a także pozwala zachować zasadniczą ideę umowy w stanie nienaruszonym.

Na przykład możesz zapobiec odwołaniu IOU lub lepiej wykonać jednorazową autoryzację za pomocą przepływów pracy zaproponuj-zaakceptuj. Istnieje wiele opcji, które są tworzone w ramach DAML, aby zapewnić rozwiązanie dla prawie każdego scenariusza.

Przeczytaj więcej o partiach i władzach tutaj.

Wniosek

To prowadzi nas do końca naszego samouczka DAML. W tym samouczku udało nam się poznać DAML i co sprawia, że ​​jest wyjątkowy. Dowiedzieliśmy się również o wewnętrznym działaniu DAML i innych kluczowych aspektach języka programowania, takich jak typy danych, scenariusze i tak dalej. Te kluczowe koncepcje pomogą Ci zaangażować się w projekty DAML, które zamierzasz podjąć w przyszłości.

Więc co myślisz o DAML? Czy uważasz, że ma potencjał, aby stać się wszechobecnym językiem programowania do tworzenia zdecentralizowanych aplikacji? Skomentuj poniżej i daj nam znać.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map