DAML Eğitimi: DAML ile Başlarken

Bir DAML öğreticisi mi arıyorsunuz? Eğer yaparsanız, o zaman doğru yere geldiniz. Bu makalede, uygun bir DAML blockchain öğreticisi yapacağız.

Eğitim, DAML hakkında temel bir anlayışa, neden gerekli olduğuna ve bundan daha anlamlı hale getirmek için kod örneklerinden geçecektir. Yeni başlayan biriyseniz, DAML ile başlamak için öğretici bulacaksınız. Kısacası, bu yeni başlayanlar için mükemmel bir DAML eğitimidir. Bununla birlikte, makalenin kapsamı dışında olduğu için öğreticide herhangi bir eksiksiz uygulama oluşturmayacağımız için tam bir DAML geliştirme öğreticisi değildir..

DAML Eğitimi: DAML ile Başlarken

DAML Eğitimi

Peki, DAML nedir? Hadi keşfedelim.

Bir blok zinciri tazelemeye mi ihtiyacınız var? Başlamak için Yeni Başlayanlar İçin Blockchain kılavuzuna göz atın! Ayrıca, DAML için Nihai Kılavuzumuza göz atın.

DAML nedir?

DAML, dağıtılmış uygulamalar geliştirmek için açık kaynaklı bir programlama dilidir. Geliştiricilerin bu dağıtılmış uygulamaları kısa, öz, hızlı ve doğru bir şekilde oluşturmasına olanak tanır.

Hyperledger, DAML’yi korur ve onu ekosisteminin bir parçası haline getirmiştir. Bu aynı zamanda DAML’yi önde gelen blockchain platformlarının üzerinde çalışan programlama dillerinden biri yapar. Evet, birden fazla platform tarafından kabul edilmektedir. Ayrıca, geliştiricilerin uygulamalarını hızla geliştirmelerini ve ardından onu nereye dağıtmak istediklerine karar vermelerini kolaylaştırır..

DAML’ı bu kadar özel yapan şey?

DAML, dağıtılmış diller oluşturmak için kullanılan bir programlama dilidir. Dağıtılmış uygulamaların önemini giderek daha fazla şirketin anlamasıyla DAML, bu şirketler ve geliştiricileri için hedeflerine ulaşmaları için bir araç sağlar. Aslında, dağıtılmış uygulamanızı kontrolünüz altına almanıza izin veren harika araçlardan biridir..

DAML, dağıtılmış durum senkronizasyonu ve kriptografi gibi karmaşık sorunlara çözüm sağladığı için zorlu tasarım sorunlarını doğrudan ele alır. Hedefe ulaşmak için yeniden tasarlandı.

Temel tasarım veya uygulama, bir geliştirici blok zinciri uygulamasını yazdığında soyutlanır. Geliştiricinin soyut gereksinime odaklanmasına ve DAML’ın tüm zor işleri halletmesine izin verir. DAML’nin özel olduğunu bilerek, DAML eğitimimizi kullanarak DAML öğrenmeyi daha iyi takdir edebilirsiniz..


DAML özellikleri

DAML eğitimimizin bu bölümünde, DAML’nin temel özelliklerini öğreneceğiz.

Veri örneği: DAML, geliştiricilerin uygulamaları için kolaylıkla karmaşık veri şemaları oluşturmasına olanak tanır. Bu, karmaşık gereksinimleri veya iş süreçlerini tasarlamayı ve uygulamayı kolaylaştırır.

Ayrıntılı izinler: DAML sözleşmelerinde, izinleri ayarlamak için ince ayar yapılmıştır. Bu, geliştiricilerin sözleşmeyi kimin imzalayacağını, kimin görebileceğini ve hangi koşullarda belirleyebileceği anlamına gelir..

İş mantığı: İş mantığı da kolaylıkla entegre edilebilir. Bir geliştirici, sözleşmede gerekli olan eylemleri, iddialarını, parametrelerini ve daha fazlasını yazabilir.!

Senaryo Bazlı Testler: DAML ile senaryo tabanlı test yapmak da mümkündür. Geliştiricinin iş mantığını ve merkezi olmayan uygulamalarınızın iş akışları gibi diğer yönlerini test etmesini sağlar..

Çalışma Zamanı Özellikleri

Yukarıdaki dört temel özelliğin yanı sıra, DAML Runtime’a da sahibiz. Çalışma zamanı, uygulamanın yürütülmesi sırasında oluşturduğu ortamı ifade eder. Programın verimli ve verimli çalışmasını sağlayan temel özelliklere sahip olan bu durumda. DAML eğitiminde onlar hakkında bilgi edinerek, DAML öğrenmenizi sağlamlaştırabileceksiniz..

Aşağıda onlar hakkında konuşalım.

Depolama Soyutlaması → Depolama soyutlaması, tüm DAML programlarının depolamadan bağımsız olmasını sağlayan bir kalıcılık katmanı sunar. Basit bir ifadeyle, DAML programları, söz konusu verileri özetlenebilir bir biçime dönüştürebildiğinden seçilen depolamaya bağlı değildir..

depolama-soyutlama

Yetki Kontrolleri → Yetki, bir sözleşmedeki tüm eylemleri kontrol eder. İşlem uygun yetkilendirmeyi geçmezse, yürütülmesine izin verilmez.

daml-tutorial-yetki-kontrolleri

Sözleşme daha sonra bir çalışma zamanı hatası atacak ve alıcıyı veya geliştiriciyi bilgilendirecektir..

daml-tutorial-error.

Hesap Verebilirlik Takibi → Çalışma zamanı aynı zamanda sorumluluk takibinden de sorumludur. Tarafların sözleşmeye gönüllü olarak girmesini sağlar. Bunun gerçekleşmesi için imza sahiplerinin imzaları gerekiyordu. Bu, alıcıyı organizatörün veya satıcının zorlayıcı davranışlarından korumak için yapılır..

Atomik Oluşturulabilirlik → DAML, atomik tasarımı destekler. Bu, tüm eylemlerin atomik olarak gerçekleştirildiği ve dolayısıyla taahhüt edilebileceği veya hiç yapılmayacağı anlamına gelir. Kontratların yürütülmesi söz konusu olduğunda orta yol yoktur. Bu, iş akışının güvenliğini sağlamak ve istismarcıları uzak tutmak için yapılır..

Çifte Harcama Yok → DAML çalışma zamanı ile sözleşmeler, çifte harcamanın mümkün olmadığından emin olmak için tasarlanmıştır. Bu, aynı sözleşmenin iki kez yapılamayacağı anlamına gelir.

Bilinmesi Gerekenler Gizlilik → DAML, bilgileri onaylandığında kullanılabilir hale getiren bir alt işlem seviyesi sunar.

Deterministik Yürütme → Son olarak, çalışma zamanı deterministik yürütmeyi destekler. Bu, herhangi bir eylemin etkisinin genel muhasebe defterinin mevcut durumuna bağlı olduğu anlamına gelir.

DAML ile Başlarken

DAML eğitimimizin bu bölümünde, DAML blockchain eğitiminin başlangıç ​​kılavuzunu inceleyeceğiz. DAML’ı kullanmadan önce onu yüklemeniz gerekir.

DAML’ı kullanmak için iki aşamalı bir süreci izlemeniz gerekir.

1) Bağımlılıkları Yükleme

DAML’ı kullanmak için önce bağımlılıkları kurmanız gerekir. Bunu yapmak için, SDK’yı indirmeniz ve işletim sisteminize yüklemeniz gerekir..

Bunun dışında aşağıdakilere de sahipseniz en iyisi olur

  • Visual Studio Code veya herhangi bir uyumlu tümleşik geliştirme ortamı
  • JDK 8 veya üstü.

2) SDK kurulumu

Windows kullanıyorsanız, şu adrese gidebilirsiniz: bağlantı, ve çalıştırılabilir dosyayı indirin.

Linux veya MAC için curl kullanarak aşağıdaki komutu çalıştırmanız gerekir..

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

PATH değişkeninize ~ / .daml / bin eklemenizi isteyecektir. Bittiğinde, DAML kullanmaya hazırsınız.

DAML Eğitimi Başlangıç ​​Kılavuzu

DAML ile hiç çalışmadınız mı? Sonra, endişelenmeyin, bu bölümde olduğu gibi, DAML’nin temellerini, veri türlerini, şablonlarını, işlevlerini, ifadelerini ve benzerlerini inceleyeceğiz.!

Ancak bunu yapmadan önce, (Digital Asset) DA Ledger Modelini anlamamız gerekiyor. DAML eğitimimizin önemli bir parçasıdır.

DA Ledger Modeli

DA Ledger Modeli, DAML’ın merkezinde yer alır. Sanal bir paylaşılan defterin yardımıyla çok partili iş akışları sunar. Daha iyi bir fikir edinmek için aşağıdaki ekran görüntüsüne bakabilirsiniz..

DAML-Eğitim-Defter-Modeli

Kaynak: DAML belgeleri

Model, DA defter yapısını (ne), bütünlük modelini (kim talep edebilir) ve gizlilik modelini (kim görebilir) tanımlamak için kullanılır..

DA Ledger Modelini daha derinlemesine anlamak için resmi belgelere göz atın. İşte.

Temel Sözleşmeler

DAML’nin merkezinde bir DAML defteri bulacaksınız. İşlemler, şablon sözleşmeleri, imzacılar, DAML modülleri ve dosyalar dahil olmak üzere temel kavramları anlamamıza yardımcı olacağı için küçük bir şablondan geçeceğiz..

Kaydetme

DAML Defterinde bir “taahhütler” listesi bulunur. Basit bir ifadeyle, bir taahhüt, deftere gönderilen bir işlemdir. Sözleşme itibariyle, gerçekleştirilmesi gereken aktif bir işlem olarak düşünebilirsiniz ve yürütülmesi, sözleşme niteliklerine ve koşullarına bağlıdır..

DAML modülleri ve dosyaları

Başlamadan önce, DAML versiyonundan bahsetmeniz gerekir. DAML dosyasının en üstünde yapılabilir. Sürüm, derleyiciye dilin hangi sürümünün kullanıldığını bildirir.

kahretsin1.2

Modülü içe aktarmak için “modül” anahtar kelimesini kullanmanız gerekir.

moduleTokenwhere

Yorumlar

Yorum eklemek istiyorsanız, bunu “-” anahtar kelimesini kullanarak yapabilirsiniz.

– Bu bir yorumdur

Şablonlar

Sözleşme türünü tanımlamak için bir şablon kullanılır. Bu, sözleşmeyi yürütmek için erişimi olan varlıkları tanımlar. Sözleşmeleri şablon örnekleri olarak düşünebilirsiniz.

şablon Jetonu

ile

sahibi: Parti

nerede

imza sahibi

Gördüğünüz gibi, “şablon” anahtar kelimesini kullanarak bir Token şablonu tanımladık. Aynı zamanda bir argüman gerektirir. Fark edebileceğiniz bir şey daha, boşluk odaklı olmasıdır. Daha önce Python kullandıysanız, kodun nasıl yapılandırıldığını ve amaçlandığını anlayacaksınız..

Son olarak, sözleşme örneklerini imzalayanları belirten imza anahtar kelimesini görebilirsiniz. Bu tarafın yetkisi, arşivleme ve oluşturma dahil olmak üzere sözleşmeyle ilgili işlem yapmak için gereklidir..

Şablonları kullanarak senaryoları anlama

Artık bir şablonun temel yapısını anladığımıza göre, şimdi DAML eğitimimizdeki diğer iki şablonu kullanarak senaryoları anlayacağız. Ancak bunu yapmadan önce, tam olarak ne olduğunu anlayalım “senaryo.

Senaryo

Bir senaryo en iyi şekilde, şablonların olması gerektiği gibi davranıp davranmadığını kontrol etmek için kullanılabilecek bir test tarifi olarak tanımlanabilir. İşlem testleri yapmak için kullanılabilir. Aşağıdaki örneğe bir göz atalım.

token_test_one = senaryo yapmak

Sam <- getParty “sam”

sam do gönder

owner = sam ile Token oluştur

Yukarıdaki, “sam” olarak bilinen bir parti için Token ile ilgilenen temel senaryodur.

Senaryoyu çalıştırmak için DAML stüdyosunu kullanmanız gerekir.

Senaryo hakkında daha fazla bilgi edinmek için, senaryo dokümantasyon sayfası burada.

Veri tipi

Herhangi bir programlama dili gibi, DAML de veri türlerini destekler. Veri türleri, bir değişken tanımlamanıza ve orada veri depolamanıza izin verir.

Bunu sizin için daha basit hale getirmek için, şablonları veritabanı tabloları olarak düşünelim. Artık verileri şablona kaydedebilir ve şablon tasarımı aracılığıyla bunları kolayca yönetmenize yardımcı olabilirsiniz..

DAML’nin geldiği birçok yerel veri türü vardır. Aşağıdakileri içerir.

  • Taraf → Varlık kimliğini saklamak için. Taraflar işlemleri gönderebilir ve sözleşmeleri imzalayabilir.
  • Metin → Unicode karakterini depolar
  • Int → 64 bitlik tam sayıları depolar
  • Decime → sabit nokta sayılarını saklar
  • Tarih → bir tarihi kaydeder
  • Zaman → saati UTC olarak kaydeder
  • RelTime → Saat farkını kaydeder
  • Sözleşme Kimliği → sözleşme türüne referans

Aşağıda bazı yerel türleri anlamak için kod verilmiştir.

native_test = senaryo yapmak

Sam <- getParty “Sam”

Mysterio <- getParty “Mysterio”

İzin Vermek

my_int = –657

my_dec = 0.001: Ondalık

my_text = “Sam”

my_bool = Yanlış

iddia (Sam / = Mysterio)

assert (-my_int == 123)

assert (1000.0 * my_dec == 1.0)

assert (my_text == “Sam”)

DAML ayrıca Tuples, Listeler ve Kayıtlar gibi diğer veri türlerini de destekler.

DAML’deki veri türleri hakkında bilgi edinmek için dokümantasyon sayfasına bakın. İşte.

Seçimleri kullanarak verileri dönüştürme

DAML değişmezliği destekler. Bu, verileri güncelleme ihtiyacı olduğunda; yeni verilerle yeni bir sözleşme oluşturulması gerekiyor. Ancak, her zaman değiştirilecek ve değiştirilecek çok küçük bir şey olduğu için durum her zaman böyle değildir. Örneğin, bir şirket telefon numarasını kullanarak bunu yapmak isteyebilir. seçimler.

DAML belgelerinde alınan bir örneğe göz atalım.

şablon İletişim

ile

sahibi: Parti

Parti parti

adres: Metin

telefon: Metin

nerede

imza sahibi

kontrolör sahibi yapabilir

Telefon Güncelleme

: ContractIdContact

ile

newTelephone: Metin

yapmak

bunu ile oluştur

phone = newTelephone

Kodun çoğu yukarıda kendinden açıklamalıdır. Burada bilmeniz gereken tek şey, “Telefon Güncelle” olarak bilinen bir seçeneği tanımladığımızdır.

Seçimler ayrıca delegasyon olarak da kullanılabilir. Son olarak, Ledger Modeline de entegre edilebilirler..

DAML seçenekleri hakkında daha fazla bilgi edinmek için resmi belgeler sayfasına göz atabilirsiniz. İşte.

Bir sözleşmeye kısıtlamalar ekleme

“Sağlama” anahtar sözcüğünü kullanarak DAML sözleşmesine kısıtlamalar da ekleyebilirsiniz. Sözleşmeye kısıtlamalar eklemek için assert, abort ve error anahtar kelimesini kullanan diğer mekanizmayı da kullanabilirsiniz..

Ancak bunu yapmadan önce, sözleşmenizde uygun şablon ön koşullarının ayarlanmış olması gerekir..

Kısıtlamalar ve kısıtlamalar hakkında daha fazla bilgi edinmek için belgelere bakabilirsiniz. İşte.

Taraflar ve Yetki

DAML, tarafları idare etmek ve bir sözleşmeye erişme yetkisi vermek için uygun bir yola sahiptir. Bunları yalnızca yetkiyi geçmek için değil, aynı zamanda defterin çalışma şeklini değiştirebilecek gelişmiş seçimler yazmak için de kullanabilirsiniz. Bu esneklik, taraflara işleri değiştirmek ve aynı zamanda sözleşmenin temel fikrini olduğu gibi tutmak için yeterli araç sağladığından önemlidir.

Örneğin, IOU iptalini önleyebilir veya öner-kabul et iş akışlarını kullanarak tek seferlik yetkilendirmeyi daha iyi yapabilirsiniz. Hemen hemen her senaryo için bir çözüm sağlamak için DAML içinde yapılan birçok seçenek var..

Taraflar ve yetkililer hakkında daha fazla bilgi edinin İşte.

Sonuç

Bu bizi DAML eğitimimizin sonuna götürür. Bu eğitimde, DAML ve onu özel kılan özellikleri öğrenmeyi başardık. Ayrıca DAML’nin dahili işleyişini ve veri türleri, senaryolar vb. Gibi programlama dilinin diğer önemli yönlerini öğrendik. Bu temel kavramlar, gelecekte üstleneceğiniz DAML projelerine katılmanıza yardımcı olacaktır..

Peki, DAML hakkında ne düşünüyorsunuz? Merkezi olmayan uygulamalar oluşturmak için her yerde bulunan bir programlama dili olma potansiyeline sahip olduğunu düşünüyor musunuz? Aşağıya yorum yapın ve bize bildirin.

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