AELF ($ELF) Blockchain (ANA KONU) - Aelf Kurumsal 0.7.0 Beta Microsoft Azure'da!


KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf 2019 Çin Blockchain Geliştiricileri Konferansı'na Sunum Yapması İçin Davet Edildi

20 Aralık 2019'da CSDN tarafından düzenlenen ve Blockchain Base Camp'in sponsorluğunda gerçekleşen 2019 Çin Blockchain Geliştiricileri Konferansı Pekin Pavilion Otel'de düzenlendi. Konferansın teması “bağımsız inovasyon” idi ve geliştiricilere teknoloji, endüstri, uygulama inovasyonunu tartışmaları için harika bir iletişim platformu sağladı.

Konferansa Çin Bilimler Akademisi’nden, Huawei’den, Tencent’den, Baidu’dan, JD.com’dan, 360’dan, Weizhong Bank’den ve Aelf'den uzmanlar davet edildi. Aelf’in teknoloji başkan yardımcısı Rong Peng, izleyicilere Aelf Enterprise (Kurumsal) Blockchain iş çözümleri sunan “.NET Core'a Dayalı Kurumsal Düzeyde Blockchain Çözümleri Oluşturma” başlıklı bir açılış konuşması yaptı. Ve toplantıdan sonra CSDN editörü Weilong Xu ile özel bir röportaj istendi.



Peng, konuşmasında Blockchain'in ticari olarak benimsenmesini çözmenin üç yönü gerektirdiğini söyledi: yönetişim, kaynak izolasyonu ve performans. Aelf Enterprise; eksiksiz bir Blockchain sistemi, geliştirme kitleri, geliştirme belgeleri, destekleyici temel uygulamaları ve hizmetleri kapsamlı bir kurumsal Blockchain çözümüdür. Beş temel özelliği vardır: verimli DPOS mekanizması, Çoklu yan zincir, paralel yürütme, modülerleştirme ve küme tabanlı yapı. Kurumsal düzeydeki kullanıcılara “otonom, verimli ve güvenli” bir Blockchain çözümü sağlayabilir.



Temmuz 2019'da Aelf Enterprise, Sanayi ve Bilgi Teknolojileri Bakanlığı Çin Elektronik Standardizasyon Enstitüsü tarafından “Blockchain Referans Mimarisi” için yapılan standart testi geçti ve Blockchain sistemi fonksiyon testi sertifikasını aldı.

İşletmeler; Amazon AWS, Azure, Huawei Cloud ve Google Cloud'da Aelf Kurumsal Çözümü bulabilir. Kullanıcılar, çevreyi yerel olarak yapılandırıp kurmak zorunda kalmadan akıllı sözleşmelerin geliştirilmesini tamamlayabilirler. Halihazırda Aelf; çeşitli devlet kurumları, tedarik zinciri, geleneksel üretim ve finans endüstrileri ile derinlemesine iş birliği ve müzakereler gerçekleştirdi.

Çin Bilgi ve İletişim Teknolojileri Akademisi tarafından yapılan Blockchain White Paper'a (2019) göre, Çin'in Blockchain patentleri dünya toplamının %53'ünü oluşturuyor ve kendi kendine gelişen Blockchain teknolojisinin oranı 2018'de %35'ten %50'ye arttı. “Bağımsız inovasyon”, Çin’in blok zinciri için bir yeni anlamdaş haline geldi.

Aelf; Blockchain endüstrisinde önemli bir güçtür ve teknolojik, uygulama, entegrasyon ve endüstri çözümü yeniliklerini sürdürecektir. Geliştiriciler ve yenilikçi şirketlerle birlikte Aelf, ilerleyen Blockchain teknolojisini ve yeni bir Blockchain dönemini inşa etmeye devam edecektir.

KAYNAK: https://medium.com/aelfblockchain/a...blockchain-developers-conference-b1202717afc8
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf “2019 Teknolojik Olarak En Yenilikçi Halka Açık Zincir” Ödülünü Kazandı



27 Aralık 2019'da Jinse Finance'in ev sahipliğinde “Creating with the Times” Blockchain ödülleri resepsiyonu Pekin'de gerçekleştirildi. Bu ödül resepsiyonu, 2019 yılında göze çarpan başarılara sahip olan insanları ödüllendirmek için Blockchain endüstrisinin kazananlarını ortaya çıkardı. Aelf, 100'den fazla Blockchain projesi arasında dikkat çekti ve “2019 Teknolojik Olarak En Yenilikçi Halk Zinciri” ödülünü kazandı.

Bu liste, Blockchain uzman inceleme ekibinden ve çevrimiçi oylamalardan gelen fikirleri kapsamlı bir şekilde referans göstermektedir. Liste seçimi; Blockchain politika yapım şirketleri, yatırım kurumları, halka açık zincirler, uygulamalar, madencilik havuzları, cüzdanlar, servis acenteleri, medya ve topluluk platformlarını içermektedir. Yukarı ve aşağı yönlü Blockchain ekosistemlerinin tüm ekosistemini kapsayan başka birçok boyut vardır. Yüksek derecede yetki ve referansa sahiptir. Halka açık projeler için değerlendirme paneli, aday projeleri dört göstergeyi dikkate alarak objektif olarak değerlendirdi: güvenlik, teknik yetenekler, performans ve uygulama yetenekleri ve son olarak endüstrinin geleceğine liderlik etmesi beklenen şirketler ve projeler...



Son birkaç yılda bir uygulayıcı ve keşifçi olarak Aelf; Blockchain teknolojisinin en uçlarını ve sınırlarını sürekli olarak keşfediyor ve kurumsal düzeydeki kullanıcılara ticarileşme için otonom, verimli, güvenli ve uygun blockchain çözümleri sunuyor.

Aelf, paralel işleme sistemine sahip dünyanın ilk Blockchain ağıdır. Düğümler serbestçe ölçeklenebilir ve genişletilebilir ve çok sayıda işlem için esnek bilişim yetenekleri ve paralel işleme yetenekleri sağlayabilir. Aelf’in veri tabanı; tüm ağın performansını önemli ölçüde artıran ve işletme düzeyinde ticari uygulamalar için mükemmel performans desteği sağlayabilen paralel işleme, veri tabanlarının ayrılması ve işleme birimlerini kullanır. Aynı zamanda Aelf, yenilikçi çapraz zincir iş birliği mekanizmalarını da kullanır. Geliştirme bileşenleri; pratiklik, modülerlik ve tak çıkar modeline göre tasarlanmıştır. İşletmeler ve geliştiriciler, hızlı bir şekilde Aelf blok zinciri sistemlerini dağıtabilir ve merkezi olmayan uygulamalar (Dapps) oluşturabilir.

Güvenlik açısından Aelf, geleneksel DPoS mekanizmasına dayanan benzersiz bir AEDPoS konsensüs mekanizması geliştirmiştir. AEDPoS mekanizması, ana zincirdeki bilgi ve işlemlerin dolaşımını ve iletimini ve ayrıca tüm üretim düğümlerinin blok üretim sırasının rastgele olmasını etkili bir şekilde sağlayabilir, bu da kötü niyetli eylemlerin olasılığını etkili bir şekilde azaltabilir ve ana zincirin güvenliğini büyük ölçüde artırabilir.

Aelf, gerçek hayattaki kullanım durumlarının gerçekleştirilmesinde teknolojik yenilik konusunda ısrar ediyor ve doğrulanabilir rastgele sayı üreticisi kavramını önerme ve uygulamada liderlik etti: yerleşik/dahili ACS6 (aelf Sözleşme Standardı) arayüzü, kurumsal kullanıcıların Aelf tarafından tanımlanan rastgele sayılara dayanarak doğrudan ve kolayca çağrı yapmasına yardımcı olur. ACS6, geliştiricilere iki standart çağrı arayüzü sağlar: Rastgele Numara İsteme ve Rastgele Numara Alma. Hem Aelf ana zincirine dayalı SDK uygulamalarını hem de çapraz sözleşme çağrılarını destekler.

Kısa bir süre önce Aelf, Aelf Enterprise (Kurumsal) 0.9.1’i piyasaya sürdü; Aelf Enterprise, birçok bulut şirketinin AWS, Huawei Cloud, Azure ve Google Cloud gibi pazar yerlerinde listelendi. Aelf Enterprise; kurumsal kullanıcılar için verimli, kullanışlı ve yüksek kaliteli bir geliştirme ortamı sağlar. Ayrıca, kullanıcıların 2 dakika içinde Blockchain ağlarına başlamasına ve düğümleri hızlıca uygulamasına ve DAPP'leri oluşturmasına izin verir.

Aelf, ticari tanınmayı teşvik etmek için teknolojik yenilik fikrinden ötürü pazar bilinirliği kazanmıştır. Şu anda Singapur'daki bir devlet kurumu, ev satışı ve seçim süreçlerindeki yetersiz şeffaflık sorunlarını çözmek için Aelf’e dayalı bir doğrulanabilir rastgele sayı çözümü sunmayı amaçlamaktadır. Aelf teknolojisi, konut çekilişinin merkezsizleşmesini ve güvenilirliğini sağlayacaktır. Şu anda Aelf’e dayalı ticari uygulamalar; hükümet ve işletme birimlerini, tedarik zincirlerini, finans ve diğer sektörleri kapsamaktadır.

Teknolojik inovasyon yolunun sonu yoktur ve Aelf’in teknolojik atılımları arama hızı hiç durmamıştır. Gelecekte Aelf; teknolojik yeniliğe odaklanmaya, pazara yeni teknolojiler ve çözümler sunmak için yeni fikirler kullanmaya, kurumsal ihtiyaçlar ve iş dünyası ile daha uyumlu bir Blockchain altyapısı geliştirmeye ve oluşturmaya devam edecektir.

KAYNAK: https://medium.com/aelfblockchain/a...ly-innovative-public-chain-award-e1f6bca99a64
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf için bir yıllık büyüme ve önemli gelişmelerden sonra, geleneksel işletmeler ve gelişen Blockchain ekosistemi arasındaki engelleri yıkma hedefimiz konusunda kendimizi adamaya devam ediyoruz.

Bu yıl çok şey başardık ve yeni maceralar için heyecanlıyız!

 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Yazılımcı olarak anlamadığım bir iş :) nasıl güveniyor insanlar.
Genel olarak kişiler; proje hedefleri, amaçları vs. için Whitepaper'ı (https://aelf.io/gridcn/aelf_whitepaper_TR.pdf?v=1) inceleyerek, bu sürecin gelişimini Github (https://github.com/AElfProject/AElf) sayfasında yer alan kodları vs. takip ederek ve diğer tüm gelişmeleri) partnerlikler, listelenmeler gibi haberleri) sosyal medya hesaplarından takip ederek yatırım kararı almaktadır.
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf “En Teknolojik İnovasyon Sistemi” Ödülü ile 2020’deki İlk Ödülünü Aldı



6 Ocak 2020'de “İnovasyona Övgü” temalı 2019 yıllık listesine Guower Finance, Northern Capital, Horman Capital ve LORE Capital birlikte sponsor oldular. Aelf, “En Teknolojik İnovasyon Sistemi” ödüllünü kazandı. Ödül seçimi; 2019 yılında ekonomiye, inovasyon sınırlarına ve dijital ekonomiye yapılan endüstri katkılarını tanıtmayı amaçlamaktadır. Değerlendirme paneli, birden çok alanda yetkili uzmanlardan oluşuyordu; kurumsal etki, profesyonellik, itibar ve endüstri katkısı gibi çeşitli açılardan kapsamlı bir şekilde değerlendirme yapıldı.

Aelf, yenilikçi çapraz zincir iş birliği mekanizmaları ve modüler geliştirme bileşenleri ile paralel bilişimden yararlanan dünyanın ilk blok zinciri olan yüksek performanslı bir ticari Blockchain ağ sağlayıcısıdır. İşletmeler ve geliştiriciler, Aelf ağında ortamları hızlı bir şekilde dağıtabilir ve merkezi olmayan uygulamalar (Dapps) oluşturabilirler.

Uzun zamandır Aelf, mükemmel kullanıcı deneyimi ile yüksek performanslı ve yüksek oranda ölçeklenebilir bir kamu zinciri ekosistemi yaratmaya kendini adamıştır. Ticari kullanıcıların çok çeşitli uygulama gereksinimlerine yanıt olarak Aelf Enterprise(Kurumsal), farklı endüstrilerdeki belirli uygulama senaryoları için özelleştirilmiş çözümler sunabilecektir.

Bu, 2019'un “En Teknolojik İnovasyon Sistemi’dir” ve endüstrinin profesyonel kurumları ve yetkili uzmanları tarafından Aelf mükemmelliğinin büyük bir onayı olarak işlev görür. Aelf; daha gelişmiş Blockchain teknolojilerini araştırmaya ve geliştirmeye, Blockchain uygulamalarının gerçekleştirilmesini teşvik etmeye ve geleneksel endüstrilerin teknolojik yeniliklerle dönüşümünü ve geliştirilmesini sağlamak için çalışmaya devam edecektir.

KAYNAK: https://medium.com/aelfblockchain/a...on-system-as-first-award-in-2020-18bcffae0d86
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf Teknik Konuşmalar - AElf Akıllı Sözleşme Geliştirme - İlk AElf Akıllı Sözleşmesi - Bölüm 1

Bu makale Aelf Kıdemli Geliştiricisi Yiqi Zhao tarafından yazılmıştır.



İlk Aelf akıllı sözleşmesi

Bu 4 bölümlük seride bir Aelf akıllı sözleşmesinin geliştirilmesinden bahsedeceğiz.

AELf staging projesi normal olarak başlatılabilir ve bloklar oluşturmak için tek bir düğüm kullanırsa, ilk akıllı sözleşme olan Merhaba Dünya (Hello World) üzerinde çalışmaya başlayabilirsiniz.

AELf akıllı sözleşmelerinin geliştirilmesi için yalnızca C# sözdizimi (Sentaks) gerektirir ve bu sözdizimleri, aşağıdaki öğreticide demo aracılığıyla açıkça gösterilecektir. Minimum programlama deneyimine sahip okuyucular, temel geliştirme sürecini anladıktan sonra akıllı sözleşmeler geliştirmeye başlayabilmelidir.

Şimdi bir akıllı sözleşme projesi oluşturmaya başlayalım.

Henüz akıllı sözleşme projeleri oluşturmayan bir AElf.Boilerplate çözümümüz olduğunu varsayın. AElf.Boilerplate.sln dosyasını VS veya Rider gibi IDE ile açtıktan sonra, dizin yapısı aşağıdaki gibi olmalıdır:



Sözleşme klasöründeki Directory.Build.props dosyası, sözleşme dizinindeki tüm projelerin AELf.Sdk.CSharp'ın aynı sürümüne referansına yardımcı olmak amacıyla oradadır; böylece bir akıllı sözleşme projesi oluşturduktan sonra bir sonraki sürüme el ile bir referans eklemeniz gerekmeyecektir. Ayrıca props dosyası, Protobuf'ta tanımlanan bazı yöntemleri ve yapı kodu oluşturma komut dosyalarını tanımlamak için MSBUILD kullanan AELf.Contract.Tools.targets dosyasını içe aktarır.

Src klasörü; başka bir bölümde açıklanacak olan staging başlatma, sistem sözleşmesi dağıtımı ve simüle edilmiş işlem testi gibi öğeleri içerir.

1. Akıllı sözleşmenin hizmetlerinin ve yapısının tanımlanması (Proto dosyası)

Akıllı sözleşme geliştirmenin ilk adımı, akıllı sözleşmenin harici olarak sağlayabileceği bazı arayüzleri (GRpc'deki hizmetlere karşılık gelen) ve veri yapılarını (GRpc'deki mesajlara karşılık gelen) tanımlamaktır.

AElf akıllı sözleşmelerini geliştirmek için AElf’in Staging’ini kullanırken, sözleşme hizmetlerini ve veri yapılarını tanımlayan proto dosyalarını AElf.Boilerplate projesinin protobuf klasörü altına yerleştirmenizi öneririz:



Protobuf klasöründe, AELf sistem sözleşmesinin proto dosyaları ve bir dizi AELf sözleşme standardı (acs * .proto) dahil olmak üzere önemli sayıda proto dosya bulunduğunu görebiliriz. AELF klasöründe core.proto ve options.proto'yu bulabiliriz, bunlar geliştirme sürecini daha kolay hale getirmek için AELF tarafından tanımlanan genel türler ve uzantılardır. AELF akıllı sözleşme geliştirmesi, kaçınılmaz olarak bu iki dosyanın (ve Google tarafından tanımlanan diğer bazı proto dosyaları) içe aktarılmasını gerektirir.

Yöntemden bağımsız olarak geliştiricilerin protobuf klasöründe hello_world_contract.proto adlı bir dosya oluşturmaları gerekir (bu gerekli olmasa da “sözleşme adı_contract.proto” adlı sözleşmeyle ilgili proto dosyalarını öneririz) ve daha sonra sözleşme hizmetleri ve veri yapıları tanımlamaya başlayabiliriz:



csharp_namespace = “AElf.Contracts.HelloWorld”, karşılık gelen C# kodunun AElf.Contracts.HelloWorld ad alanı (namespace) altında olması gerektiği anlamına gelir.

option (aelf.csharp_state) = “AElf.Contracts.HelloWorld.HelloWorldContractState”, sözleşmenin durumunun HelloWorldContractState sınıfında AElf.Contracts.HelloWorld ad alanı altında tanımlanması gerektiği anlamına gelir.

Hello_world_contract.proto'da iki eylem hizmeti tanımlanır (hizmet çağrıldıktan sonra blok zincirinin durumu değiştirilebilir; bu, çağrıdan sonra küresel defterin (ledger) değişeceği olarak anlaşılabilir): Greet ve GreetTo. Greet, girdinin google.protobuf.Empty türü (boş giriş için yer tutucu olarak anlaşılabilir) olmasını ve çıktının google.protobuf.StringValue (geleneksel string) olmasını gerektirir; GreetTo, girdinin bu proto dosyası için özelleştirilmiş GreetToOutput türünü veren google.protobuf.StringValue olmasını gerektirir.

Ek olarak bir Görünüm (View) hizmeti tanımlanır (yalnızca Blockchain'in geçerli durumunu sorgulamak için bir yöntem olarak kullanılır): Girdinin google.protobuf.Empty türü ve çıktının özelleştirilmiş bir GreetingsList türü olmasını gerektiren GetGreetedList. GreetingsList’in aslında bir string Listeleri olduğunu görebilirsiniz.

İPUÇLARI:

• Google.protobuf.Empty kullanmanın öncülü, google/protobuf/empty.proto’yu içe aktarmaktır.
• Google.protobuf.Timestamp kullanmanın öncülü, google/protobuf/timestamp.proto’yu içe aktarmaktır.
• Google.protobuf.StringValue kullanmanın öncülü, google/protobuf/wrappers.proto’yu içe aktarmaktır.
• (Aelf.is_view) = true seçeneği kullanıldığında hizmetin blok zincirinin durumunu değiştirmeyeceği bildirilir. Bu işlemin Aelf/options.proto’ya aktarılması gerekmektedir (Ayrıca aelf.csharp_state'i kullanmadan önce aelf/options.proto’yu içe aktarmanız gerekir).

Proto dosyası oluşturulduktan sonra, içinde tanımlanan üç hizmeti uygulamaya başlayabiliriz. Bölüm 2’de akıllı sözleşme geliştirilmesi için bu sürece devam edilecektir.

KAYNAK: https://medium.com/aelfblockchain/a...first-aelf-smart-contract-part-1-4b51f5756b24
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf Teknik Konuşmalar - AElf Akıllı Sözleşme Geliştirme - İlk AElf Akıllı Sözleşme - Bölüm 2



2. Bir akıllı sözleşme projesi oluşturulması

Sözleşme klasöründe “AElf.Contracts.HelloWorld” adlı bir dosya oluşturun ve csproj dosyasını aşağıdaki gibi değiştirin:



Geçerli proje bir proto dosyasında tanımlanan bir hizmeti uygulamak istiyorsa, proto dosyasına başvurmak için ContractCode etiketini kullanır.

AELf.Contracts.HelloWorld projesini derlemeden önce, projede HelloWorldContractState adlı bir C# kod dosyası oluşturun (veya Class1'i HelloWorldContractState olarak yeniden adlandırın) ve HelloWorldContractState'in ContractState'ten devralmasına izin verin, aksi halde derleme bir hata ile başarısız olur:

… "HelloWorldContractState" türü veya ad alanı adı, "AElf.Contracts.HelloWorld" ad alanında mevcut değildir (bir başvuru derlemesi mi eksik?)

Başarılı bir şekilde derledikten sonra, projenin dizin yapısı şöyle olmalıdır:



Sözleşme durumunu tanımlamak için HelloWorldContractState.cs kullanılır. Mevcut kod:



Son olarak bu projede hizmet uygulaması sağlamak için bir C# kod dosyası HelloWorldContract.cs verilir ve içindeki sınıflar HelloWorldContractContainer.HelloWorldContractBase ve C #'ın geçersiz kılma mekanizması hizmetlerini uygulamak için kullanılabilir.

HelloWorldContract kodunu uygulamadan önce, bu üç hizmetin işlevlerini analiz ediyoruz.

Greet hizmeti göreceli olarak basittir, yani “Merhaba Dünya!” Çağrıdan sonra işlem yürütme sonucu olarak döndürülür.

GreetTo, Greet'e benzerdir. Ancak döndürülen yürütme sonucu, işlem gönderen tarafından belirtilen diziyi içerir. GetGreetedList, önceki GreetTo işlemlerinin işlem parametrelerinin kaydını sorgulamak için kullanılır. Şimdilik veri temizleme sorunlarını görmezden gelebilirsiniz. Kayıtlar, durum olarak kaydedilmelidir. Bu nedenle, HelloWorldContractState'teki öznitelikler aracılığıyla bir GreetedList öğesinin SingletonState türünü tanımlamanız gerekir:



Yukarıdaki GreetedList için State.GreetedList'i doğrudan HelloWorldContract'ta kullanabilirsiniz. State.GreetedList'i veritabanının girişi olarak düşünebilirsiniz. Bu SingletonState <GreetedList> veritabanı türünün geçerli değerini almak için State.GreetedList.Value kullanınız (SingletonState'in değer özelliğine erişerek AELf sözleşme geliştirme SDK'sı derleme anahtarını tamamlayacak ve önbellek ve veritabanı işlemlerini sırayla okuyacaktır) .

Daha sonra bu üç hizmetin nasıl uygulanacağına bakacağız.



3. Akıllı Sözleşme Test Projesi oluşturulması

TestKit kullanılması


AElf Sözleşmesi TestKit, AElf akıllı sözleşmelerini test etmek için özel olarak kullanılan bir test yapısıdır. Bu çerçevede, bir Saplama (stub) oluşturur ve işlem yürütmelerini simüle etmek için Saplama örneği tarafından sağlanan yöntemleri kullanır (genellikle sözleşmenin Eylem yöntemine karşılık gelir). Ayrıca test senaryosunda işlem yürütme sonuçlarını sorgulamanın yanı sıra (genellikle sözleşmenin Görünüm yöntemine karşılık gelir) sorgular. Bunu takiben, sözleşme yönteminin test görevini tamamlarsınız.

Test klasöründe AELf akıllı sözleşme test projesi olarak bir xUnit projesi oluşturun veya csproj dosyasını şu şekilde değiştirin:



Mevcut projenin gönderme veya sorgulama işlemlerini simüle etmek için bir sözleşme Saplaması kullanması gerekiyorsa, proto dosyasına başvurmak için ContractStub etiketini kullanın.

İpuçları:

• RootNamespace, bu proje altında açıkça bir varsayılan ad alanı belirtir. Varsayılan ad alanı, sözleşme koduyla tutarlı olacak şekilde değiştirilir. Bu gerekli değildir.
• Üçüncü taraf sınıf kitaplığına başvuru eklenip eklenmeyeceğine karar verebilirsiniz.
• Ana zincirin AELf.Contracts.TestKit referansı eklenmelidir. Bu belge yazılırken, AELf'in en son yayınlanan sürümü 0.9.0'dır.
• Bu projenin amacı HelloWorld sözleşmesini test etmek olduğundan, sözleşme projesine bir referans eklememiz gerekiyor.
• Test ortamı başlatıldığında, HelloWorld sözleşmesinin sıfır sözleşmeyle dağıtılması gerekir; bu, sıfır sözleşmenin saplamasını referans almak için ContractStub etiketinin de kullanılması gerektiği anlamına gelir.

Test Modülü

XXModule, kodun ABP yapısı tarafından modüler yönetimi için bir birimdir. Sözleşme testi durum projeleri için AELf varsayılan olarak sözleşmeyi isteğe bağlı dağıtma iznini kapattığından yalnızca ContractTestModule'e güvenmesi gerekir. Test ortamını hazırlarken, sözleşmeyi dağıtmak için izni el ile açmanız gerekir.



Test Base

Test Base, test durumunda kullanılan değişkenleri (sözleşme saplama ve sözleşme adresi vb.) başlatmak ve sözleşmeyi test için dağıtmak için kullanılır.

HelloWorldContractTestBase'de, sıfır sözleşme DeploySystemSmartContract yöntemini çağırarak HelloWorld sözleşmesini dağıttık ve sözleşme testi durumunda HelloWorldContractStub ve HelloWorldContractAddress adlı iki önemli değişkeni başlattık.





Test Durumları

Test Base tamamen hazırlandığında yazı kısmı kolay olacaktır.

Örneğin, test durumunda işlem gönderme işlemini simüle etmek istiyorsanız, HelloWorld sözleşmesinde bir Greet işlemi göndermek istiyorsanız, Test Base'de doğrudan başlatılan HelloWorldContractStub'ı kullanabilir ve await HelloWorldContractStub.Greet.SendAsync (yeni Empty ())'yı çağırabilirsiniz. Çağrı bittikten sonra, dönüş değerini almak için TransactionResult türünde bir değişken kullanılır ve bu işlemin yürütme sonucu denetlenir.

Greet, GreetTo ve GetGreetedList yöntemlerinin üç yöntemi için en temel test örnekleri aşağıdadır:





SendAsync kullanmanın öncülünün test durumu yazılırken ilgili işlemin başarıyla yürütülmesi gerektiğini varsaymak olduğunu lütfen unutmayın. İşlem yürütme hatası istisnasını test etmek istiyorsanız, başka bir yöntem kullanmanız gerekir: SendWithExceptionAsync.



Bu serinin 3. bölümünde, geliştirdiğimiz akıllı sözleşmelerin dağıtımını tartışacağız.

KAYNAK: https://medium.com/aelfblockchain/a...first-aelf-smart-contract-part-2-c05e5c6f64c6
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Staking - Ücretsiz Kripto Kazanmanın Yeni Yolu



Staking, blockchain projelerine hızla bir endüstri standardı haline gelen Hisse İspatı (POS) konsensüs protokolünün arkasındaki temel kavramdır. PoS, blok zincirlerinin güvenlik ve kaynak verimliliğinden ödün vermeden etkili bir şekilde ölçeklenmesine izin verir. Staking’i dâhil eden projeler Aelf, Dash, EOS, Cosmos, Cardano, Definity ve diğer birçoğudur.

PoW - Neden değişir


İlk olarak PoS'un geliştirilmesine yol açan İş/Emek Kanıtı (PoW) konsensüsünün karşılaştığı bazı konulara bakalım.

1. Aşırı enerji tüketimi - 2017 yılında bitcoin ağı (En Büyük PoW blok zinciri) tarafından kullanılan elektrik miktarı konusunda birçok endişe dile getirildi. O zamandan beri enerji tüketimi %400'ün üzerinde arttı. Bu ağdaki 1 tek işlemin 736.722 Visa işlemiyle aynı karbon ayak izine sahip olduğu ya da 20 ABD hane halkıyla aynı miktarda elektrik tükettiği anlamına gelir.
2. Değişen Elektrik Maliyetleri - Ağdaki herhangi bir madencinin kârı, iki maliyete bağlıdır: donanım ve altyapıyı elde etmek için ilk startup maliyetine ve daha önemlisi söz konusu ekipmanın elektrik kullanımına ilişkin çalışma maliyetine. Elektrik maliyetleri, kWh başına yüzde fraksiyondan 50 sentin (USD) üzerine kadar değişebilir ve bazı durumlarda ücretsizdir. Bir kullanıcı saatte sadece 0.40 USD kazandığında tamamen elektrik maliyetlerine dayanan belirli demografileri açıkça ortadan kaldıracak ve tam merkezsizleşme potansiyelini azaltacaktır.
3. Azalan merkezsizleşme - madencilik ekipmanlarının yüksek maliyeti nedeniyle büyük finansal tabanları olan firmalar, bireysel madencilere kiralamak ya da tamamen kişisel kazançlar için madencilik çiftlikleri kurdular. Bu, ağdaki büyük demografik sıcak noktalarla sonuçlanır ve merkezsizleşme yönünü artık bu yönün gerçekleştirilemeyeceği bir noktaya indirir.
4. Çatışan çıkarlar - Ağda çalışan madencilerin gereksinimleri tamamen donanım, elektrik ve internet bağlantısına sahip olmaktır. Bir madencinin kazanabileceği miktar için herhangi bir sınırlama yoktur ve ağda herhangi bir hisse sahibi olmaları gerekmez ve bu nedenle ağa fayda sağlayabilecek ancak ödüllerini azaltacak yükseltmelere oy vermeleri için çok az teşvik vardır.

Tutarlı Fiat Enjeksiyonu - Madencilerin çoğunluğu fiat para birimi cinsinden elektriğini ödemektedir. KWh başına 0,1 USD tutarında koruyucu bir oranda ağ şu anda yılda 73,12 TWh kullanıyor. Günlük ortalama maliyeti 20 milyon doların üzerindedir. Bu, her gün yaklaşık 20 milyon dolarlık fiat para biriminin bitcoin ağına etkili bir şekilde enjekte edildiği anlamına gelir. Her ne kadar bu konsept elektriğe ne kadar harcandığına bakılmaksızın her gün aynı miktarda bitcoin serbest bırakılacağı anlamında bir miktar kusurlu olsa da, madencilerin gözünden bakarsak, fiat torbalarını düşürüyor ve bitcoin torbalarını artırıyorlar. Bu torba değişikliği, kripto harcamalarını kaçınılmaz olarak teşvik edecek olan bu noktanın özüdür. Bitcoin torbaları arttırılmış ancak fiat torbaları azalmamış olsaydı, bir staking ekosistemde görüldüğü gibi bitcoin harcamak için daha az teşvik edici olurdu.

PoS Değişimleri

PoS protokolünün karşılaştığı farklı sorunlarla başa çıkmak için farklı yaklaşımlar benimsenmiştir. Will Little'un PoS'ta bunu ve daha fazlasını açıklayan mükemmel bir makalesi vardır, onları incelemek için eserinden bir alıntı yapalım:

• Para yaşına dayalı seçim - Peercoin (ilk PoS zinciri) gibi blok zincirleri, madeni paraları dağıtmak için PoW ile işe koyulurlar. Tekelleşmeyi ve %51 saldırılarını önlemeye yardımcı olmak için para yaşını kullanırlar (bir düğüm olarak seçilme olasılığının en yüksek olduğu bir zaman aralığı ayarlayarak) ve NoS problemlerini önlemek için başlangıçta kontrol noktaları uygularlar.

• Rastgele blok seçimi - NXT ve Blackcoin gibi zincirler de kontrol noktaları kullanır, ancak para yaşının stakingi olumsuz etkilediğine inanırlar. İlk dağıtım döneminden sonra (PoW veya başka bir yöntemle) bu zincirler, blok oluşturabilen düğümleri rastgele seçmek için algoritmalar kullanır.

• Ethereum’un Casper protokolü (protokolleri) - Ethereum, PoS'a geçildiğinde/geçtiği zaman ilk dağıtım sorunu hakkında endişelenmek zorunda değildir. Casper daha Bizans Arıza Toleransı (BFT) yaklaşımını benimser ve eğer aldatıcı şeyler yaparlarsa paylarını alarak (“keserek”) düğümleri cezalandırır. Ek olarak, fikir birliği, rastgele atanan her düğümün bir tur sırasında belirli bir blok için oy verdiği çok turlu bir süreçle oluşturulur. Casper, Bizans Arıza Toleransı (BFT) yaklaşımını alır ve eğer aldatıcı şeyler yaparlarsa paylarını alarak (“keserek”) düğümleri cezalandırır. Ek olarak konsensüs, rastgele atanan her düğümün bir tur sırasında belirli bir blok için oy verdiği çok turlu bir süreçle oluşturulur.

• Delegated Proof-of-Stake (DPoS)
- Dan Larimer tarafından icat edildi ve ilk önce Bitshares'de (ve sonra Aelf, Steem, EOS ve diğerlerinde) kullanıldı. DPoS, topluluğun bloklar oluşturmak ve doğrulamak için düğümleri çalıştıracak delegeler seçmesini sağlayarak potansiyel PoS sorunlarını ele alır. Daha sonra kötü davranış, topluluk tarafından cezalandırılır.

• Delegated Byzantine Fault Tolerance (DBFT) - DPOS'a benzer şekilde NEO topluluğu (delegeler) düğümleri için oy kullanır, ancak blok üreten ve konsensüs üzerinde anlaşmaya varılan her düğüm yerine her düğümde neler olduğu konusunda 3 düğümden sadece 2 tanesinin anlaşması gerekir ( doğrulayıcılardan ziyade sayman gibi davranır).

• Tendermint - DBFT'nin daha sofistike bir şekli ve Casper'ın öncüsü olan Jae Kwon; 2014 yılında kendi kendini finanse etme ve bir düğüme tokenin topluluk tahsisi (yani bir “doğrulayıcı”) ile orantılı olan dinamik validator setleri, dönen lider seçimleri ve oylama gücünden (yani ağırlık) yararlanan Tendermint’ı tanıttı.

• Masternodes - İlk olarak DASH tarafından tanıtılan masternode PoS sistemi, düğüm olarak nitelendirilebilmek için düğümlerin minimum para eşiğini belirlemesini gerektirir. Genellikle bu; bir ağa yönetişim, özel ödeme protokolleri vb. şeklinde “hizmet” sağlama gereksinimleriyle birlikte gelir.

• Proof of Importance (POI) - NEM, en az 10.000 XEM değerine sahip masternodes stakinglere “önem hesaplama” vererek biraz farklı bir yaklaşım benimser. Bu POI sistemi, daha sonra toplumu etkilemek için zaman içinde olumlu bir şekilde hareket eden aktif düğümleri ödüllendirir.

• “Proof-of-X” - Ve son olarak, PoS dünyasında zekice yaklaşımlar ve staking varyantları bulmak için herhangi bir faaliyet eksikliği yoktur (bazıları diğerlerinden daha ayrıntılıdır).

Stake Yaparak Kazanma

Bu ağlardan nasıl para kazanabileceğini anlamak için bunları 3 kategoriye ayıracağız: Basit staking, Çalışan düğümler ve Oylama.

Basit Staking
Bu, 3 yöntemin en basitidir ve kullanıcı tarafından neredeyse hiçbir işlem yapılmasını gerektirmez. Bazı ağlar, belirli bir cüzdanda token tutarak kullanıcıları ödüllendirecektir. Bu ödüller genellikle minimaldir ancak kazanmanın en kolay yoludur.

Bir düğümü çalıştırma

Bu yöntem en büyük ödülleri sağlar, ancak kullanıcı tarafından en büyük eylemi gerektirir ve büyük olasılıkla sürekli bakım gerektirir. Genel olarak konuşursak, ağlar düğümlerin genellikle binlerce dolarlık belirli bir miktarda token stake yapmasını gerektirir. PoS sistemlerinde bu düğümlerin ağdaki diğer kullanıcılar tarafından oylanması ve destekçilerine güven sağlamaya devam etmesi gerekir. Bazı şirketler, PoW madencilik havuzlarına benzer bir konseptle düğümler kuracak ve kullanıcıların minimum stake miktarına katkıda bulunarak katılmasına izin verecektir.

Oylama
Bu mekanizma, DPoS ağları ile ilişkili olarak çalışan düğümlerle el ele çalışır. Kullanıcıların staking tokenleri oy olarak tercih ettikleri düğümler için kullanmaları önerilir. Her oylama, her bir seçmen için küçük bir miktar ödülün kilidini açacaktır. Düğümler, normalde bu ödülleri bir düğüm çalıştırmak için kendi ödüllerinin bir parçası olarak sağlayanlardır.
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
(👆 DEVAMI 👆 )

Aelf’in DPoS sistemi

Aelf konsensüs protokolü, bir çeşit DPoS kullanır. Ağda düğümlerin iki sürümü vardır, etkin düğümler ve yedek düğümler (henüz resmi adlar açıklanmamıştır). Etkin düğümler ağı çalıştırır ve blokları üretir; yedekleme düğümleri küçük görevleri tamamlar ve etkin düğümlerin çevrimdışı olması veya kötü amaçlı davranması durumunda bekleme durumundadır. Bu düğümler, alınan oy sayısına göre seçilir. Başlangıçta en üstteki 17 düğüm aktif düğüm olarak seçilecek, sonraki 100 ise yedek olarak duracaktır. Her oylama dönemi her düğüm bir önceki dönemden daha fazla veya daha az oy alırsa pozisyon değiştirebilir. Düğüm olarak kabul edilmek için, asgari miktarda (henüz ilan edilmemiş) ELF token miktarı stake yapılmalıdır.



Seçmen olarak katılabilmek için stake miktarının asgari miktarı yoktur. Bir stake yapıldığında tokenler, seçmen tarafından önceden belirlenmiş dönemler için seçilen belirli bir süre boyunca kilitlenir. Kullanıcılar bu kilitli süre dolmadan tokenleri çıkarırlarsa hiçbir ödül alınmaz, ancak tüm zaman dilimi boyunca tokenleri kilitli bırakırlarsa belirlenen ödülü alırlar ve tokenler otomatik olarak bir sonraki kilitli periyoda aktarılır. Sonuç olarak bir seçmen, oy verdikten sonra başka bir işlem yapmadan ödülleri almaya devam edebilir.

Birçok proje; ödülleri adil, iyi teşvik edilmiş ancak dahil olan herkes için sürdürülebilir hale getirmek için düğüm ödülleriyle mücadele etti. Aelf, her bir düğüm için garanti edilen temel gelir ile birden fazla değişkene dayanan bir ödül yapısı ortaya koymuştur. Değişkenler; yeniden seçim sayısını, alınan oy sayısını veya diğer unsurları içerebilir.

Sistem olgunlaştıkça, aktif düğümlerin sayısı artırılacak ve böylece daha çeşitli ve güvenli bir ağ ortaya çıkacaktır.

Çözüm olarak staking; ağ yaratıcıları, kullanıcılar ve yatırımcılar için bir kazan-kazan-kazandır. Kullanıcıların sistemden kazanmaları için giriş noktasını azaltırken, Blockchain ağlarını korumak için çok daha kaynak verimli ve ölçeklenebilir bir protokoldür.

KAYNAK: https://medium.com/aelfblockchain/staking-the-new-way-to-earn-crypto-for-free-7989cc76c16f
 

KursatAelf

Uzm. Borsacı
Katılım
21 Mar 2019
Mesajlar
250
Beğeniler
4
Puanları
18
Konum
Türkiye
Aelf Teknik Konuşmalar  -  AElf Akıllı Sözleşme Geliştirme  -  İlk AElf Akıllı Sözleşmesi  -  Bölüm 3



4. Akıllı sözleşmelerin dağıtılması

Referans/Başvuru ekleme


AElf.Boilerplate.Mainchain, csproj dosyasına ekleyerek akıllı sözleşme projesine ve ilgili Proto dosyasına başvursun:



Dto Oluşturulması

İlk olarak, AELF blockchain genesis bloğunun oluşum sürecini kısaca tanıtalım.

Diğer blok zinciri sistemleri gibi AELF'in ilk aşamasında her bir düğüm, bağımsız olarak aynı blok karma ile bir genesis bloğu oluşturacaktır (eğer bir düğüm tarafından üretilen genesis blok karma AELF ana zincirindeki diğer tüm düğümlerinkinden farklıysa, belirli düğüm Aelf ana zincirine farklı bir ana zincir başlattığını gösterir).

Genesis bloğunda bir dizi sistem sözleşmesi, başlatılan sözleşmelere sabit kod ve yapılandırma öğeleri aracılığıyla dağıtılır.

Staging testi sözleşmelerini kullanırken kendi sözleşmenizi genesis bloğunda bir sistem sözleşmesi olarak dağıtabilirsiniz ve yalnızca ilgili Dto'yu sağlamanız gerekir.

Dtos sağlama konumu src / AElf.Boilerplate.Mainchain / GenesisSmartContractDtoProvider.cs dosyasının GetGenesisSmartContractDtos yöntemindedir. Bu yöntem halihazırda diğer sistem sözleşmeler Dto’sunu dağıtmak ve başlatmak için Staging’i içerir. HelloWorld sözleşmesi için yalnızca Dto eklemeniz gerekir.

GenesisSmartContractDtoProvider_HelloWorld.cs adlı bir C# kodu dosyası oluşturmak, bir GenesisSmartContractDto listesini başlatmak ve ilgili bilgileri girmek yeterlidir.



AELf sisteminde her sözleşmede Sistem Sözleşme Adı denilen bir Karma türü benzersiz tanımlayıcı bulunur. Yukarıdaki koddaki Hash.FromString (“AElf.ContractNames.HelloWorld”), HelloWorld sözleşmesinin adıdır. HelloWorld sözleşmesinin tek tanımlayıcısıdır.

Son olarak GenesisSmartContractDtoProvider'ın GetGenesisSmartContractDtos yöntemine GetGenesisSmartContractDtosForHelloWorld'ü ekleyin:



5. Akıllı Sözleşmeleri Test Etmek İçin İşlemleri Otomatik Olarak Göndermek

İlk olarak, AELf ana zincir kodunda bir arayüz tanıtalım: ISystemTransactionGenerator.

Bu arayüz blok paketleme sürecinde etkili olur. Bu arayüzün tüm uygulamalarını inceleyerek bir sistem işlemleri serisi üretilir. Bu sistem işlemleri, ağdan alınan normal işlemler işlem havuzundan alınmadan önce gerçekleştirilecektir. Başka bir deyişle, sıradan işlemler yapılmadan önce Blockchain durumunu değiştireceklerdir. Sıradan işlemler gibi sistem işlemleri de bloklara paketlenir. Fark, sistem işlemlerinin ana zincir kodu tarafından üretilmesi ve gönderenin kendisinin paketlenmiş bloğun düğümü olmasıdır.

Bu nedenle staging işleminde yeni sözleşmeleri test etmek ve “sistem işlemini” özelleştirmek için ISystemTransactionGenerator arayüzünü kullanmak iyi bir yöntemdir. Uygulamada yalnızca işlem yayınlamaya ilişkin kuralları formüle etmeniz gerekir.

ISystemTransactionGenerator arabirimi yalnızca bir yöntem içerir: GenerateTransactions. İmzası:



Bir örneğe bakalım. AELf blok zincirinde konsensüs alışverişi, sistem işlemlerinden biridir ve ilgili uygulama:



Temel olarak ConsensusService'in GenerateConsensusTransactionsAsync yöntemi, işlemler oluşturmak için çağrılır. Oluşturulan işlemler, ref anahtar sözcüğü ile işaretlenmiş olan oluşturulmuş Transactions değişkenine eklenir. Son olarak, bu uygulama sınıfını bileşik köke (XXModule’un ConfigureServices yöntemi) ekleyin ve bir bağımlılık ekleyin.



Buna dayanarak Greet, GreetTo ve GetGreetedList’in üç işlemini otomatik olarak gönderen bir ISystemTransactionGenerator uygulayabiliriz.

Src/AElf.Boilerplate.Tester/TestTransactionGenerator klasöründe, HelloWorldTransactionGenerator adlı bir C# kod dosyası oluşturun ve ISystemTransactionGenerator uygulamasını yapın.

Uygulamadan önce, AELf ana zincir kodunda sağlanan bir hizmeti tanıtmamız gerekir: TransactionResultService. Bir işlem kimliği sağlayarak bir işlemin yürütme sonucunu sorgulayabilir. Bir ITransactionResultService örneği doğrudan yapıcıya enjekte edilebilir.

Staging’de işlemlerin oluşturulması için bir hizmet de sunulmaktadır: TransactionGeneratingService. Uygulanması karmaşık değildir. Sadece AELf.Boilerplate.Tester projesinin kök dizininde GenerateTransactionAsync yöntemi, ana zincir tarafından sağlanan diğer bazı hizmetler aracılığıyla bir işlemi birleştirir ve işlemi döndürür.

Yani, HelloWorldTransactionGenerator şu şekilde uygulanabilir:







Her blok için HelloWorldTransactionGenerator, Greet, GreetTo ve GetGreetedList’in bir YöntemAdı ile üç işlem oluşturacaktır. Hedef sözleşme sistemi adı Hash.FromString'dir (“AElf.ContractNames.HelloWorld”). Önceki blok bir GreetTo işlemi içeriyorsa (eğer (_lastGetGreetedListTxId! = Hash.Empty)), "greeted" kişilerin listesini sorgulamak ve kayda yazdırmak için TransactionResultService kullanın.

HelloWorldTransactionGenerator uyguladıktan sonra src/AElf.Boilerplate.Tester/TesterModule.cs’nin ConfigureServices yöntemine aşağıdaki bağımlılığı eklemeyi unutmayın:



Bunu yaparak, staging düğümünü yeniden başlatarak, konsolda yazdırılan işlem yürütme bilgilerini görebilirsiniz (çünkü sözleşme uygulandığında, bazı kayıtlar Context.LogDebug yöntemi aracılığıyla yazdırılır).

(Bu makaledeki kod, https://github.com/AElfProject/aelf-boilerplate adresinden bulunabilir.)

KAYNAK: https://medium.com/aelfblockchain/a...first-aelf-smart-contract-part-3-ca4fb4eb784f
 

En beğenilen konular

Forum istatistikleri

Konular
975
Mesajlar
2,618
Kullanıcılar
508
Son üye
xmdcoin