Corda uzmanı olmak mı istiyorsunuz? Aşağıdaki corda öğreticisi, bir Corda uygulaması geliştirme hakkında bilmeniz gereken her şeyi kapsayacaktır..

Blockchain uzun bir yol kat etti. Dağıtılmış defter teknolojisi fikri, mevcut organizasyonların yaşadığı birçok sıkıntıyı çözdü. Temel amaç, milyonlarca dolar yatırım yapmadan daha verimli, güvenli ve ölçeklenebilir hale gelmektir..

Corda, küresel bir blockchain ekosistemi sağlayan açık kaynaklı bir blockchain platformudur. Akıllı sözleşmelerin kullanımıyla katı gizlilik sunar. Ayrıca işletmenin doğrudan işlem yapmasına ve işletme operasyonlarını kolaylaştırmak için uygun maliyetli bir yaklaşım sağlamasına yardımcı olur..

Temel fark, Corda’nın işlemleri nasıl gerçekleştirdiğidir. Her eşde tam bir defter bulunmayarak blok zincirinin fizibilitesini, hızını ve ölçeklenebilirliğini geliştirmek isteyen bir DLT’dir. Tüm ağı bilgilendirmeden iki eş arasında bir işlem tamamlanabilirse, Corda bu yaklaşımı kullanacaktır. Ayrıca, işlemi takip etmeyi ve geçerliliğini görmeyi kolaylaştıran diğer tarafları da içerecek şekilde tasarlanmıştır. İşletme için dağıtılmış bir defter teknolojisidir.


Şimdi Corda blockchain eğiticimize başlayalım!

Çok yakında: Corda Geliştirme Kursu Yeni Başlayanlar Kılavuzu

Corda Geliştirme Eğitimi Nasıl Yapılandırılır?

Corda’yı ayrıntılı olarak ele alacağız. Bölümlerin çoğunda, önemli Corda kavramlarını ele almaya çalışacağız..

Ele alacağımız temel kavramlar aşağıdakileri içerir:.

  • Durum
  • Kontrat
  • Akış bölümleri

Eğitimimiz bir IOU uygulaması oluşturacaktır. IOU, “Sana borçluyum” anlamına gelir. Bu, bir kişinin başka bir kişiden paraya sahip olduğu gerçeğinin basit bir sunumudur. Konsepti daha sonra daha ayrıntılı olarak ele alacağız..

İşleri kolaylaştırmak için Kotlin programlama dilini kullanacağız. Bir öğrenci olarak Kotlin’i tanıyorsanız harika olur, ancak öğreticiyi takip etmek zorunda olmak gerekli bir beceri değildir..

Araçlar

Yeni başlayanlar için Corda eğitimine başlamadan önce aşağıdaki araçlara ihtiyacımız olacak. Ayrıca geliştiricinin sık sık kullanmayı çok sevdiği blockchain araçları da var. Ancak bugün bunları ele almayacağız.

  • Kotlin
  • Gradle
  • Git
  • IntelliJ
  • Komut satırı

Entegre geliştirme ortamı itibariyle IntelliJ’i kullanacağız. Gelişimimizi basitleştirecek.

Corda Eğitimi

Corda öğreticisi

Corda nedir?

Corda blok zinciri en iyi, birlikte çalışabilir bir blok zinciri ağı sağlayarak iş sorunlarını çözen bir açık kaynak olarak tanımlanır. Temel özellikleri arasında katı gizlilik, verimlilik ve akıllı sözleşme teknolojisini kullanan doğrudan işlemler bulunur.

Corda’da kullanılan akıllı sözleşmeler JVM dilleri veya Java kullanılarak yazılabilir. Corda platformundaki dApp’ler CorDapps olarak bilinir. Ayrıca, Noter altyapısını kullanma yeteneği ile eşler arası düğüm ağı sunarlar. Altyapı, işlem ayrıntılarını ağdaki her eşe yayınlamaya gerek kalmadan işlemleri doğrulamak ve sıralamak için kullanılır.

Blok zinciri tarafından kullanılan bir diğer önemli bileşen, katılımcılar arasındaki müzakereyi ve iletişimi yöneten Flow çerçevesidir..

Corda Defterini Anlamak

Corda Ledger, geleneksel blok zinciri teknolojileri tarafından kullanılan defter sistemine benzemez. Bu nedenle, nasıl çalıştığını net bir şekilde kavramamız ve onu hem işlevsel hem de veri perspektifinden anlamamız gerekir..

Corda defteri bir grafik gibi çalışır. Bir grafikteki tüm düğümler, doğrudan veya diğer bazı düğümler aracılığıyla birbirine bağlanır. Tüm düğümler isterlerse birbirleriyle iletişim kurabilir. Grafiğin kullanılması, işlemi küresel olarak yayınlamaya gerek olmadığı anlamına gelir..

Düğüm keşfi

Peki, düğümler birbirlerini nasıl keşfediyor? Birbirlerini bulmak için bir Ağ haritası kullanırlar. Bunu bir telefon rehberine benzer şekilde düşünebilirsiniz. Ağ haritası, bu hizmetlerin her birini bulmak için meta verileri içerir ve bu nedenle harita keşfi için güzel bir yol sağlar..

O nasıl çalışır?

Küresel olmayan bir yayın blok zinciri ağındaki en büyük zorluk fikir birliğidir. Öyleyse, düğümler birbirlerini nasıl tanır ve bu bilgileri nasıl doğrular??

Buradaki cevap, paylaşılan gerçeklerdir. Her düğüm bir şekilde başka herhangi bir düğümle çakışır. Paylaşılan gerçekler, daha sonra bilgileri doğrulamak için kullanılabilen Corda defterinde saklanır. Corda defteri bu kümelerin bir setini içerir. Merkezi bir düğüm olmadığından, bu düğümler bir şeyleri doğrulamaya ihtiyaç duyulduğunda proxy olarak hareket eder. Bu bilgiyi depolamak için, her düğümün değiştirilemeyecek olguyu içeren bir kasası vardır. Geliştiriciler blockchain’i bu şekilde uygular.

Eyaletler

Corda blok zincirindeki durumlar değişmezdir. Belirli bir zamanda bir işlem, anlaşma veya sözleşme hakkındaki paylaşılan gerçekleri saklamak için kullanılırlar..

Kulağa teknik mi geliyor? Daha basit kelimelere ayırmaya çalışalım.

Paylaşılan gerçekler

Corda defteri kullanan iki kişiyi ele alalım. Onlara Alpha ve Bravo diyelim.

Her ikisinin de ortak bir gerçeği var. Paylaşılan gerçek bir IOU’dur (Sana Sahipim). IOU, bir borç verenin kredi sağlayıcısından dolayı parası olduğunda kullanılır. Gerçeği paylaşmak için, her ikisi de IOU’da temsil edilen aynı paylaşılan bilgilere sahiptir..

Her Şeyi Temsil Et

Devletler herhangi bir şeyi temsil etmek için kullanılabilir. Bu, farklı corda kullanım durumları için her türlü bilgiyi depolayabileceği anlamına gelir. Bir geliştirici olarak, KYC bilgilerini, finansal araçları, sendikasyon kredilerini vb. Depolamak için eyaletleri kullanabilirsiniz..

Ayrıca, durumlar birden çok özniteliği depolamak için kullanılabilir. Ancak devletler için bir sınırlama var. Sınırlama, bir duruma bir tür verildiğinde, türünün değiştirilememesidir. Bir IOU durumu yaratırsanız, ömrünün geri kalanında IOU durumunu belirtmesi gerekecektir..

Değişmez ve Gelişen

Devletler değişmez olacak şekilde yaratılmıştır. Ancak değişmezlikleri zamanla ilgilidir. Belirli bir zamanda bir durum sunulur.

Bu, orijinal duruma ek olarak yeni bir durumun oluşturulabileceği anlamına gelir. Depolanması gereken durumda yeni bir değişiklik yapıldığında yapılır. Eski devlet daha sonra tarihsel olarak adlandırılır.

Örneğin, Alpha Bravo’ya olan borcunu öderse, o zaman Alpha’nın borcu kapattığı gerçeğini gerekçe göstererek yeni bir devlet yaratılacaktır. Ayrıca, durum tamamlanırsa, IOU’nun süresi dolacaktır. Basit bir ifadeyle, bu durumda devletin yaşam döngüsü aşağıdaki gibidir.

  1. Alpha’nın Bravo’ya borçlu olduğunu göstermek için ilk eyalet oluşturulur. Bu eyaletler ayrıca IoU hakkında tarih, saat, faiz oranı, ödünç verilen tutar ve IoU için gerekli diğer yararlı bilgiler dahil olmak üzere daha fazla bilgi paylaşır..
  2. Şimdi, Alpha borcu çözdüğünde, yeni bilgileri güncelleyen yeni bir durum oluşturulur. Değişmez olduğu için eski duruma hiçbir şekilde dokunulmaz..
  3. Yeni durum artık iki kullanıcı arasında paylaşılan gerçeklerde güncelleniyor.
  4. Şimdi, eski devlet tarihi olarak adlandırılıyor. Tek bir işlemde birden çok geçmiş durum olabilir. Bu, bir dizi durum oluşturmaya yol açabilir.
  5. En son duruma atıfta bulunan bir dizi başlığı oluşturulur. Ayrıca, son eyaletler de tüketilmemiş olarak adlandırılır..

Daha fazla oku:Hyperledger, Corda ve Ethereum Karşılaştırma Kılavuzu

Geliştirme Ortamını Hazırlama

Şimdi, dApp geliştirme kılavuzuna göre ortam Corda geliştirme eğitimine hazır olmalıdır. Başlamak için aşağıdaki araçlara ihtiyacınız var.

  • Oracle JDK 8 JVM – v8u171 veya üzeri.
  • Git
  • IntelliJ IDEA

Git deposunu klonlama

Yolculuğumuza başlamanın en iyi yolu, geliştirme ortamımızda bir CorDapp örneği çalıştırmaktır. İyi haber, Corda’nın yerel olarak indirip çalıştırabileceğiniz bir örnek CorDapp sunmasıdır..

Aşağıdaki gibi git clone komutunu kullanarak depoyu yerel olarak klonlayabilirsiniz..

git klon http://github.com/roger3cev/corda-training-template.git

Öğretici için git deposunu içe aktarmak için IntelliJ kullanacağız. IntelliJ’i açın. Bittiğinde, Sürüm Kontrolünden teslim alma seçeneğini göreceksiniz. Üzerine tıklayın ve ardından depoyu bilgisayarınızda klonlayın.

intelliJ

Projeyi kaydetmeyi seçebilirsiniz; proje havuzunu aşağıdaki gibi bulacaksınız.

proje yapısı

Sağ altta, aşağıdaki gibi Gradle Projesini içe aktar diyen bir bildirim bulacaksınız. Corda Eğitimimizin çalışması önemlidir.

“Gradle Projesini İçe Aktar” ı tıklayın.

ithal gradle projesi

Ayrıca Proje SDK’sını da kurmanız gerekir. Proje ayarlarına gidin ve ardından Java’nın en son sürümünü seçin. Benim durumumda Java 11.0.5 olarak ayarlandı.

Çalıştırılacak herhangi bir hata bulursanız, Gradle’ınızı yükseltmeli ve çalışması için gerekli depoları içeri aktarmasına izin vermelisiniz. Bunu yapmak biraz zaman alacak. Öyleyse, arka koltukta oturun ve tamamlanmasını bekleyin.

Benim için, tüm Gradle bağımlılıkları güncellemelerini tamamlamak yaklaşık 20 dakika sürdü.

Corda eğitici projemizin yapısını hızlı bir şekilde inceleyelim. Ana depomuz src dosyasıdır. Kotlin kullandığımız için Kotlin-kaynak klasörünü kullanacağız; src klasörünü bunun altında bulacaksınız. Lütfen java kaynak klasörüyle karıştırmayın.

Corda öğretici kotlin kaynağı

Burada, gerekli tüm dosyaları eğitim klasöründe bulacaksınız. Uygulama için test birimlerini içeren bir “test” klasörü de vardır.

Bilmemiz gereken bir diğer önemli dosya da IOUState.kt. Eğitim içinde yer alır > durum.

Devlet Birimleri Testlerinin Çalışmasını Sağlama

IOUState sınıfı çok basit görünüyor. Henüz tamamlanmadı. Sınıfı geliştirmek ve çalışmaya hazır hale getirmek için test odaklı bir geliştirme metodolojisi kullanacağız..

Test odaklı geliştirme, modern geliştirme uygulamaları söz konusu olduğunda harika bir yaklaşımdır. En baştan hataları veya diğer sorunları gidermeye yardımcı olur.

Bu nedenle, indirdiğiniz şablonda sözleşme, akış ve durum dahil olmak üzere her sınıf için karşılık gelen testler vardır..

Başlamak için Testlere gitmemiz gerekiyor > Kotlin> ağ > Corda > Eğitim > durum > IOUStateTests

IOUStattestler

Orada daha önce yazılmış testleri bulacaksınız. Ayrıca tonlarca belge ile birlikte gelir. R3 Corda ekibi şablonu oluşturmak için zaman ayırdı.

Çalıştırmak üzere tek bir test yapmak için aşağıda gösterildiği gibi bölümün açıklamasını kaldırmanız gerekir..

açıklama kodu

Kodu seçin ve yorumu kaldırmak için Ctrl + / tuşlarına basın. MAC kullanıyorsanız, yorumu kaldırmak için CMD + / kullanın.

Şimdi, birim testini çalıştırmanın zamanı geldi.

IOUState sınıfımız neredeyse boş olduğu için testler başarısız olacak ve aşağıdaki test hatasını alacaksınız.

başarısız testler

Gördüğünüz gibi Kotlin-source: testinin NoSuchFieldException nedeniyle başarısız olduğu söyleniyor. Bu, testin hiçbirini bulamadığı miktar değişkenini beklediği anlamına gelir..

Düzeltmek için IOUState.kt dosyamıza geri dönüp onu düzenlememiz gerekiyor. Bir blockchain uygulamasının nasıl oluşturulacağını biliyorsanız, o zaman bu sizin için kolay bir görev olacaktır..

Devam etmeden önce Kotlin’i daha iyi anlamamız gerekiyor. Düzenleyeceğimiz kodu anlamlandırmak için, bir giriş almak daha iyidir. Kotlin, yoğun bir programlama dilidir. Ayrıca Kotlin, JVM sanal makineye dönüşecek, bu nedenle eğitimimizde bunun kullanımı konusunda sorun yaşamalıyız..

proje yapısı

  • veri sınıfı IOUState → Bu anahtar kelime, “IOUState” adlı bir veri sınıfı tanımladığımız anlamına gelir.
  • val verileri → değişken bildirimi. Alanın adı veridir
  • String = “veri” → bu, hiçbir şey tanımlanmamışsa veri değişkeninin varsayılan değerini tanımlar.
  • ContractState → Arayüz

IOUState.kt dosyasında teste göre tüm değişiklikleri yaptıysanız, IOUState sınıfı aşağıdaki gibi görünecektir..

veri sınıfı IOUState (val miktar: Tutar,

val borç veren: Parti,

val borçlu: Parti,

val ödenen: Tutar = Tutar (0, amount.token),

vali geçersiz kıl linearId: UniqueIdentifier = UniqueIdentifier ()): LinearState {

/ **

* Bu özellik, bu durumu geçerli bir işlemde “kullanabilen” düğümlerin bir listesini tutar. Bu durumda

* borç veren veya alan.

* /

vali geçersiz kıl katılımcılar: Liste almak() = listOf (borç veren, borç alan)

/ **

* IOU’ları yerleştirmek ve aktarmak için işlem oluştururken yardımcı yöntemler.

* – [ödemek] ödenen mülke bir miktar ekler. Doğrulama yapmaz.

* – [withNewLender] yeni belirtilen bir borç veren ile mevcut durumun bir kopyasını oluşturur. Aktarırken kullanmak için.

* /

eğlence ödeme (amountToPay: Tutar) = kopyala (ödenen = ödenen.plus (amountToPay))

eğlence withNewLender (newLender: Party) = kopya (borç veren = newLender)

}

Artık yukarıdaki yorumlara göre yardımcı yöntemler ekleyebilmelisiniz..

Corda uzmanı olmak ister misiniz? Sertifikasyon sürecinizde size rehberlik edecek bir R3 Corda sertifikasyonu kılavuzu..

Corda İletişim

Devletlerin yeni devletlere dönüşebileceğini öğrendik. Geliştiriciler, sözleşmeleri kullanarak genel muhasebe durumunun gelişimini kontrol edebilir. Bu bölümde sözleşmeler hakkında detaylı bilgi edineceğiz.

R3 Corda, mesajların tüm ağa yayınlanmasına bağlı olmadığından, her durum türü için ortak bir işlem doğrulama tanımı kullanır. Bu şekilde Corda ağı, işlemi doğrular ve fikir birliğine varır. Diğer blok zincirinin işlemleri kaydetme şekline oldukça benzer.

Corda Sözleşmeleri, işlevler aracılığıyla uygulanır. Durumları veri depolama birimleri olarak düşünebilirsiniz ve sözleşmeler, verileri ve durum değişikliklerini doğrulamanın bir yoludur. Bu doğrulama işlevleri, durum türüne özeldir.

Durumların doğrulanabilmesini ve hizmete sunulabilmesini sağlamak için her eyalete bir sözleşmeyle atıfta bulunulması gerekir..

Her sözleşme, sözleşme kodu ve yasal düzyazı dahil olmak üzere iki öğe içerir.

Bunu anlamak için aşağıdaki resme bir göz atalım.

Sözleşme durumu

Gördüğünüz gibi, sözleşme iki öğe içeriyor ve eyalette, bu kod için bir IOU sözleşme referansı var.

Hukuk Düzyazı: Legal Prose, anlaşma için yasal sözleşmeye referans olarak kullanılır. Bir anlaşmazlık olması durumunda mevcut yasal çerçevenin ve yargı sisteminin kullanılmasını sağlamak için kullanılır..

Corda Sözleşmelerinin diğer temel özellikleri şunları içerir:

  • Birden fazla sözleşme bir sözleşmeye referans verebilir. Ayrıca, bir sözleşme birden fazla eyalet türü içerebilir
  • Corda, önerilen bir işlemi doğrulamak için bir doğrulama işlevi kullanır
  • Doğrulama yönteminin imzası aşağıdaki gibidir
  • eğlenceli doğrulama (tx: İşlem): Birim
  • Doğrulama yöntemi, tüm kısıtlamaları uygulayarak işlemi doğrular. Kısıtlama başarısız olursa, bir istisna atılır; aksi takdirde işlem geçerli sayılacaktır.
  • Doğrulama işlevi deterministiktir.

Blok zinciri şablonları aynı zamanda Corda sözleşmelerinin kodunu da içerir. Ayrıca eyaletlere benzer şekilde Corda sözleşmelerine de yaklaşmalısınız. Corda test birimlerine gitmeniz ve ardından Sözleşme Sınıfına gerekli kodu eklemeniz yardımcı olacaktır..

Corda İşlemleri

Sonraki durağımız Corda İşlemleri. Durum değişikliklerini mümkün kılan işlemlerdir.

Peki işlem nedir? En iyi, giriş durumu referanslarını (0 veya daha fazla) içeren bir kap olarak tanımlanabilir. Ayrıca durum üretirler (0 veya daha fazla).

İşlemler, birden fazla eşin gerçek zamanlı olarak birbirleriyle etkileşime girmesini mümkün kılarak ağın en iyi şekilde çalışmasını sağlar. İki tarafın diğer akran faaliyetlerini engellemeden atomik bir takas yapmasını mümkün kılar. Ayrıca, işlemler doğası gereği atomiktir. Bu, bir işlemin asla azaltılamayacağı veya bölünemeyeceği anlamına gelir.

Ayrıca üç tür işlem vardır: Sigortalar, Güncellemeler ve Çıkışlar. Her birinin kendi gündemi vardır. Bunları aşağıda listeleyelim.

  • Sigorta → Yeni durumlar yaratır
  • Güncellemeler → Durum özelliklerini değiştir
  • Çıkışlar → Genel defterden durumları kaldır

Corda Akışları

Corda Flows, eşlerin başarılı bir işlemi gerçekleştirmesi (yürütmesi) için gereken adımlardır.

Akış, CorDapp temel iş mantığını belirler. İşlemlerin doğru sırada ve doğru parametrelerde yapılmasını sağlamaktan sorumludur. İşlemler doğası gereği karmaşık olduğundan, her şeyin amaçlandığı gibi çalışmasını sağlamak için akışlara ihtiyaç vardır..

Akış kontrolü, ne zaman iletişim kurulacağını, ne ile iletişim kurulacağını ve kiminle iletişim kurulacağını garanti eder.

Bu, işlem ayrıntılarını tüm ağa yayınlamaya odaklanan diğer dağıtılmış defter teknolojilerinin tam tersidir. Corda, işlemlerin gönderen ve alıcı olmak üzere iki önemli parametreye sahip olması gereken noktadan noktaya işlemlerde başarılıdır..

Akışlar hakkında bilmeniz gereken önemli şeyler

  • Akışlar saniyeler içinde tamamlanabilir veya tamamlanması birkaç gün sürebilir
  • Tamamen özerkler
  • Akışlar, bir yanıt için beklemeden önce uyurlar.
  • Akışlar, geliştiricilere uygun durum makinelerinin geliştirilmesini sağlamaları için bir mekanizma sağlayan Flow Framework’ü takip eder.
  • Akışlar hem çiftli hem de tek taraflı olabilir
  • Geliştiriciler, kodu daha basit hale getirmek için alt akışları da kodlayabilir

Bir kademe yukarı alıp uzman olmak ister misiniz? İşte Python’da bir blok zinciri oluşturmaya yönelik bir kılavuz.

Uzlaşma

Şimdiye kadar tartıştığımız tüm heyecan verici şeylerin dışında, Corda’nın özel olduğu şey, fikir birliğine nasıl ulaştığıdır. Corda’nın benzersiz bir yaklaşımı var ve bu nedenle onu dışarıdaki işletmeler için uygun hale getiriyor.

Corda her şeyden önce iki fikir birliği algoritması kullanır. Aşağıdakileri içerir

  • Benzersiz fikir birliği → Bu fikir birliği yöntemi, defterde hiçbir zaman çatışmanın olmamasını sağlar
  • Doğrulama konsensüsü → Doğrulama konsensüsü işlemleri ele alır ve sözleşme koduna göre herhangi bir çatışmanın olmamasını sağlar. Ağ içinde paylaşılan bir durumun gelişimini kolaylaştırır.

Corda Consensus hakkında yapmanız gereken önemli şeyler:

  • Benzersiz fikir birliği, defter güncellemelerinin her zaman benzersiz olmasını sağlar. Ayrıca, güncelleme yapılırken defterin geçerli olmasını sağlar..
  • Doğrulama fikir birliği, güncellemenin geçerli olmasını sağlar.

Corda Düğümü

Corda’nın burada tartışacağımız son bölümü Corda Düğümüdür. Corda Node, Corda’nın üst düzey bir görünümüdür.

Peki, Corda düğümü tam olarak nedir?

Corda düğümü, Java Sanal Makinesi’nde çalışan bir varlıktır. Aşağıdakileri içerir

  • Depolama hizmetleri ve kasalar sunar
  • SQL DB kasaları ve depolama hizmetlerini destekler
  • Ekleri depolamak için özel klasörler kullanılır
  • CorDapps olarak bilinen özel işlevsellik ve yerleşik uzantılar sunar
  • RPC istemci çerçevesi sunar

Corda düğümü böyle görünüyor.

Corda düğümü

Gördüğünüz gibi, Corda ağını çalıştırmak için gerekli tüm yönleri içerir. Akışla etkileşim kurarlar ve özel CorDapp işlevselliği sağlarlar.

Sonuç

Bu bizi Corda eğitimimizin sonuna götürür. Burada Corda’ya baktık ve bir IoU CorDapp görmeye çalıştık. Corda GitHub deposunda bulunan şablon eğitimini kullanarak farklı bölümlerini tartıştık..

Odak noktamız, Corda’nın sunduğu her şeyi açıklamaya çalışmadan Corda’ya başlamaktır. Bunun için her zaman Corda belgelerini kullanabilirsiniz. Ayrıca Corda geliştirme eğitimiyle ilgili yaklaşan bir kursumuz var. Eksiksiz bir geliştirme kılavuzuna ihtiyacınız varsa mutlaka kontrol etmelisiniz..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me