Şimdi Ara

AELF ($ELF) Blockchain (RESMİ ANA KONU) (11. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
533
Cevap
3
Favori
10.262
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 910111213
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merkle Ağacı (Merkle Tree) - Bu nedir ve neden kullanılır?

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Kripto para ve Blockchain teknolojisine yatırım yapmak bir şeydir, ancak Blockchain'in nasıl çalıştığını tam olarak anlamak bir başka şeydir. Aelf ekosistemi de dahil olmak üzere birçok Blockchain’de ağa dahil edilen teknolojinin bir eseri Merkle Ağacı'dır. Bu ağın birçok parçası olmasına rağmen Merkle Ağacı, doğrulama sürecinde verimliliği ve güvenilirliği nasıl sağlamayı planladığımızı belirlerken anlaşılması gereken önemli bir unsurdur.

    Merkle Ağacı yeni bir şaşırtıcı keşif değildir, sadece Blockchain içinde değil güvencesiz veya P2P ortamında kullanılan oldukça yaygın bir şekilde kullanılan test edilmiş ve gerçek bir sistemdir. Aslında bu konsept, 1979'a ve Blockchain’in bir fikir olmasından önceye dayanıyor. Bilgisayar bilimcisi Ralph Merkle'den sonra adlandırılmıştır.

    Basit bir ifadeyle bir Merkle Ağacı; çok fazla veri alır, bu verilerin ne olduğunu açığa çıkarmadan içinde tutulan verinin gerçekliğini/doğruluğunu kanıtlayabilen basit bir karakter dizisine sıkıştırır. Sıkıştırılmış bir dosyaya (.ZIP veya .RAR) benzer şekilde eğer belirli bir standarda göre doğru bir şekilde adlandırılırsa, kullanıcı sıkıştırmayı çıkartmadan ve açmadan içerdiği dosyaları tanıyabilir. Bu karakter dizisine (başlık) bir karma (hash) adı verilir. Karma; tek yönlü bir işlevdir, yani aynı verileri koyarsanız her zaman aynı karmayı alırsınız, ancak bu karmayı alamazsınız ve orijinal verileri çıkaramazsınız.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    “Ağaç” kavramı, bilim genelinde yaygın bir fikirdir ve birbirinden dallanan ebeveynleri (parent) ve çocukları (children) içeren bir yapıya atıfta bulunur. Bu durumda, tüm yapraklar (İşlemler / bloklar) ile başlamanız ve bir ebeveyn karma (Merkle Root) için geri dönmeniz anlamında baş aşağı bir ağaçtır. Şekil 1.1'de görüldüğü gibi, Merkle Ağacına dahil edilmeden önce iki kez karmalanan işlemlerle başlıyoruz. 1-100 blok L1’e, 101–200 blok L2’ye, 201–300 blok L3’e, 301-400 blok L4’e karmalar gibi işlemlere sahip olabiliriz. Bunlar daha sonra ağacın alt dalına karmalanır. Örneğin, L1 bloğu karma 0-0’a karmalanmıştır.

    Bu şema, ikili ağaç dediğimiz şeyi göstermektedir. Bu, her bir ebeveynin maksimum iki çocuk dalına sahip olabileceği anlamına gelir. Teknik olarak bunu artırabilirsiniz ama ikili ağaçlar en yaygın olanıdır. Karma 0-0 ve 0–1’e sahip olduktan sonra bu, ‘ebeveyn’ karmasına karmalanır (Hash 0). Buna Merkle Root (Kök) denilen en üst karmaya gelinceye kadar devam edilir.

    Bu sürecin güvenlik, hız ve verimlilik dahil olmak üzere birçok avantajı vardır. Verileri yoğunlaştırmak için bu işlemi kullanarak, her karmayı Merkle Ağaç Kökü ile eşleştirerek herhangi bir gerçek veriyi açığa çıkarmadan çok hızlı bir şekilde doğrulanabilir. Blockchain’in merkezsizleşmiş yönü ile bağlantılı olarak oluşturulan Merkle ağacının karmaşıklığından dolayı bu karmalar içinde bulunan verilerin değiştirilmesini çok zorlaştırır.

    Bir ağın hızı bu teknoloji kullanılarak kolayca artırılabilir. Doğrulanacak ve daha sonra geri gönderilecek dosyaları ağ üzerinden göndermek yerine bir bilgisayarın yalnızca çok hızlı bir şekilde doğrulanabilecek karmayı (bunun yalnızca bir karakter dizisi olduğunu unutmayın) göndermesi gerekir. Bir tutarsızlık varsa o zaman alt ağaçların karmaları, kusurlu blok bulunana ve gerektiği gibi değiştirilinceye kadar talep edilir. Bu, bir hata için bütün dosyayı aramaktan çok daha hızlıdır. Tabii ki, bu aynı zamanda kaynakların daha verimli kullanımıdır.

    Aelf Merkle Ağacını nasıl kullanır?

    Geleneksel anlamda değildir. Normalde Merkle Ağacı bir Blockchain içerisinde kullanılacaktır. Aelf, tüm yan zincirler arasındaki birlikte çalışabilirliği kontrol etmek için Merkle Ağacı'nı kullanıyor olacaktır. Her bir yan zincir, kendi Ağacını yaratacak ve Ana Zincir içinde yer alması için Merkle Köküne sunacaktır. Yan Zincir A Yan Zincir B'den gelen bazı verileri doğrulamak isterse, Yan Zincir A Ana Zincire yaklaşacak ve verileri doğrulamak için orada saklanan Merkle Kökü ile karşılaştırmasını isteyecektir. Ana Zinciri neredeyse her bir Yan Zincirin veri doğrulama için kullanacağı bir arşive ilişkilendirebilirsiniz. Bu konsept, oldukça eşsizdir ve doğrulama sürecini büyük ölçüde geliştirecektir. Çapraz zincir birlikte çalışabilirlik için bir ortam yaratmada etkili bir süreçtir. Özel ve halka açık zincirlerin birbirleriyle konuşmasını ve herhangi bir gizlilik sorunu olmadan verileri doğrulamasını sağlar.

    Bu Merkle Ağacı, Aelf tarafından Yan Zincirleri ayırmak için kullanılan Yan Zincir “Ağacı (Tree)” ile aynı değildir. Merkle Ağacı, ana zincir ve diğer yan zincirler ile verileri depolamak ve doğrulamak için kullanılır. Bir Yan Zincir Ağacı, her bir zincirin (dalın) belirli bir kullanım durumu gerçekleştirdiği kendi ağaç benzeri yapısını oluşturan birçok alt zincirlerden oluşabilir. Bu zincirlerden biri yönetmek için aşırı büyük olduğunda, birden fazla zincire bölünebilir.

    Merkle ağacı, Aelf ekosisteminin sadece benzersiz değil aynı zamanda bir Blockchain ağının fonksiyon biçiminde devrim yaratan bir başka özelliğidir.

    KAYNAK:https://medium.com/aelfblockchain/merkle-tree-what-is-it-and-why-use-it-f823f5b57179








  • Aelf Chainlink Oracle ile Entegre Olacak

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    10 Eylül 2019'da Aelf, karmaşık akıllı sözleşmeler için kurcalamaya karşı korumalı veriler sağlayan merkezi olmayan bir oracle ağı olan Chainlink’i entegre ediyor olacaktır. Entegrasyon, Aelf Blockchain için bir oracle oluşturmak için Chainlink teknolojisini kullanır (Bir oracle, zincir içi akıllı sözleşmeleri kendi yerel Blockchain’inin dışındaki "zincir dışı" verilerle besleyen bir araçtır). Chainlink Oracle, Aelf Blockchain'e giren ve çıkan herhangi bir verinin güvenliğini ve güvenilirliğini sağlayacaktır – Blockchain’i mevcut bir ağa uyarlanırken genellikle 'en zayıf' bağlantı olarak kabul edilen şeyi güçlendirir. Bu, yalnızca Aelf’deki akıllı sözleşmelerin dünyadaki veri kaynaklarına ve API'lere güvenli bir şekilde bağlanmasına izin vermekle kalmayacak; aynı zamanda Ethereum, Google Cloud, Zilliqa ve diğerleri gibi Chainlink ekosistemindeki diğer ağlara bağlantı da sağlayacaktır.

    Chainlink, akıllı sözleşmelere dış veri sağlayabilen ilk merkezi olmayan oracle çözümüdür. Sonuç olarak akıllı sözleşmelerin güvenliği ve determinizmi, gerçek dünyadaki dış olayların bilgisi ve genişliği ile birleştirilebilir. Chainlink; marketteki, sıcaklıktaki, planlardaki/programlardaki veya diğer halka açık verilerdeki değişikliklere otomatik olarak yanıt verilmesini gerektiren gerçek hayattaki birçok uygulamalarda kritik olan herhangi bir harici API'ye erişim ile akıllı sözleşmeler sağlar.

    Zincir dışı veriler, Blockchain’e yazılmadan önce manipülasyona veya hataya açık olabilir. Aelf’in işletmelere ve uygulamalarına hizmet etmeye odaklandığı göz önüne alındığında dış dünyayı Aelf Blockchain eko sistemi ile güvenli bir şekilde köprülemek ve girdi verilerinin kurcalamaya karşı korunmasını garanti etmek son derece önemlidir. Aelf için oracle inşa etmede iş birlikçi çaba, işletmelere ağımızın güvenirliği konusunda daha fazla güven aşılayacaktır.

    Harici veri almaya ek olarak Chainlink oracle düğümü, Aelf verilerini diğer ekosistemler ve ağlar boyunca hem zincir içinde hem de zincir dışında diğer taraflara güvenilir bir şekilde sağlayacaktır. Aelf Kurucu Ortağı ve COO’su Zhuling Chen, yeni entegrasyonu şöyle açıkladı:

    “Aelf, işletmelere kapsamlı ve gerçek dünyadan bir çözüm sunmaya devam etmekten heyecan duyuyor. Bu entegrasyon, Aelf Enterprise (Kurumsal) platformunu kullanan tüm müşterilerimize en yüksek kaliteyi, güvenliği ve güvenilirliği sağlamadaki bir sonraki adımdır.”

    Chainlink Global İş Geliştirme Başkanı Daniel Kochis, “Aelf ile iş birliği yaparak Chainlink, topluluklarının akıllı sözleşmelerine ve kurumsal kullanım durumlarına zincir dışı uç noktalardan kanıtlanabilir şekilde doğru verileri sağlamak için heyecan duyuyor.” ifadelerini kullandı.

    Aelf hakkında:

    Aelf, iş dünyasında Blockchain öncülüğünü yapan çok zincirli bir ağ ve akıllı sözleşme platformudur. Aelf’in blok zinciri; kendi uygulamalarını oluşturma zorunluluğu olmadan işletmelere uygulamalarını halka açık zincir alanında veya kendi özel zincirlerinde çalıştırmalarını sağlayacaktır. Aelf ekosisteminde her bir uygulamanın yüksek performansı güvence altına almak için kendi kaynakları olacaktır. Aelf’in tokeni (ELF), yakın zamanda Huobi’nin HB10 fonu tarafından köklü platformuna dayanarak en güvenilir 10 yatırımdan biri olarak seçildi. Aelf, ilk test ağı sonuçlarını yaklaşık 15000 saniye başına işlem (TPS) olarak duyurmuştu.

    Chainlink hakkında:

    Chainlink; akıllı sözleşmelerin zincir dışı veri yayınlarına, web API'lerine ve geleneksel banka ödemelerine güvenli bir şekilde erişmesini sağlayan merkezi olmayan bir oracle ağıdır. Chainlink, Gartner gibi önde gelen bağımsız araştırma firmaları tarafından sürekli olarak en iyi Blockchain teknolojilerinden biri olarak seçilmektedir. Büyük işletmelere (Google, Oracle ve SWIFT) ve önde gelen akıllı sözleşme geliştirme ekiplerine yüksek güvenlikli ve güvenilir Oracle’lar sağladığı çok iyi bir şekilde bilinmektedir.

    KAYNAK: https://medium.com/aelfblockchain/chainlink-network-to-connect-with-aelf-in-new-partnership-77533e18206c




  • 🔊 ELF, Crypto.com uygulamasında listelenmiştir.
    https://twitter.com/cryptocom/status/1171320189075378178

    AELF ($ELF) Blockchain (RESMİ ANA KONU)
  • Aelf'in resmi Türkiye Telegram grubu olanhttps://t.me/aelf_turkish adresinde "Aelf Puan Yarışması" olarak adlandırılan yeni ve ödüllü bir topluluk etkinliği bugün itibariyle başlayacaktır. Tüm detaylar içinhttps://t.me/aelf_turkish adresini ziyaret edebilirsiniz.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)




  • Merkezi Olmayan Uygulamalar (Dapps) Blockchain Benimsenmesini Olumlu mu Yoksa Olumsuz mu Etkiliyor?

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    DApp'ler potansiyel olarak Blockchain’in benimsenmesinde en önemli bileşenlerden biridir. Onlar bir anlamda benimsenmenin gerçek dünyasıdır, bir yazılım parçasından bir çözüme geçişi temsil ediyorlar.

    DApp’ler nedir?

    DApp, merkezi olmayan uygulamanın kısaltmasıdır. Merkezi olmayan bir Blockchain üzerinde çalışan herhangi bir uygulamaya teorik olarak dApp denebilir. DApp'lerin çoğunluğu, temel Blockchain’i oluşturanlarla ilişkili olmayan 3. taraflar veya ekipler tarafından geliştirilmiştir. Farklı Blockchainler için tasarlanmış birden fazla varyasyon mevcut olmasına rağmen bir dApp, bir bireysel Blockchain’e özgüdür.

    Windows ve Apple’da mevcut olabilen bir uygulamaya benzer şekilde, üzerinde çalışması gereken işletim sistemine bağlı olarak ayrı bir yükleyiciye sahip olacaktır. Temel olarak bir dApp’ın eşdeğeri, bir yükleme dosyası aracılığıyla PC'nize veya telefonunuza yüklediğiniz herhangi bir uygulamadır (bazıları etkileşimli bir web sitesi olmasına rağmen) ve temel Blockchain kendi cihazınızın işletim sistemidir.

    Her şey bir dApp değildir

    Blockchain üzerinde çalışan bazı uygulamalar, teknik olarak bir dApp olarak sınıflandırılmayabilir çünkü IBM'in izin verilen bir özel Blockchain üzerinde çalışan bir uygulama olan FoodTrust uygulaması gibi tamamen merkezsizleştirilmemiş olabilirler. Genel olarak konuşursak, izin verilen özel bir Blockchain sınırlı ya da merkezsizleşmemiş anlamına gelir ve bazı örnekler basitçe bir veri tabanı olarak sınıflandırılabilir.

    Aslında, Blockchain teknolojisinin kurumsal düzeyde benimsenmesi için sınırlayıcı faktörlerden biri, Blockchain kullanan herhangi bir uygulamanın tamamen merkezsizleştirilmesi ve dolayısıyla kamuya açık hale getirilmesi gerektiği konusundaki yanlış anlama ile doğrudan ilgilidir. Bu açıkça yanlıştır. Gerçekte Blockchain’de çalışan bir uygulama, tamamen merkezi bir veri tabanı veya tamamen merkezi olmayan bir halka açık ledger ve bunların arasındaki her şey olabilir.

    DApp'ın Yükselişi

    Ethereum'un 2015 yılı ortalarında akıllı sözleşmelerin dahil edilmesi ile piyasaya sürülmesi, geliştiricilerin Blockchain özelliklerini kullanan uygulamaları uygun şekilde tasarlayabilecekleri ortamı yarattı. Bundan önce Blockchain kullanımı, tek tek izole edilmiş ve basit bir işlev olarak finansal işlemlerle sınırlıydı. Akıllı sözleşmelerin dahil edilmesi, sadece işlemlerin bir “if then” tasarımda birbirine bağlanmasına izin vermekle kalmadı, aynı zamanda uygulama potansiyelini diğer birçok sektöre ve endüstriye yaydı. dApp gelişiminin 2017'nin etkisi ile hareket etmesi 2 yıl sonrasına kadar değildi. Başka bir 2 yıl ve dApp gelişmesi, artık her gün onlarca dapp çalıştıran çoğu Blockchain platformu ile normdur.

    State of the Dapps (https://www.stateofthedapps.com/ ) ve Dapp Review (https://dapp.review/ ) tarafından sunulan gibi DApp gelişimini destekleyen Blockchain platformları; Ethereum, Tron, EOS, IOST, WICC, STEEM, Ont, Neo, Loom, Tomo, Nas, Bos, POA, xDai, Klaytn, GoChain'den oluşur. Her bir web sitesi, bu platformlarda mevcut dApp'lerin çoğunluğunu sırasıyla 3.021 ve 3.113 dApp'ler ile listelemektedir.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Ethereum en fazla dApp sayısına sahip olmasına rağmen aktif kullanıcıların sayısı, EOS ile karşılaştırıldığında günde 4-8 kat daha düşüktür.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    dApp Benimsenmesi

    Daha da şaşırtıcı olan şey hem State of the Dapps hem de DappReview’in istatistiklerine göre, dApp başına ortalama 35-45 kullanıcı ve EOS’un dApp başına yaklaşık 150 kullanıcı ile en başarılı platform olmasıydı.

    Bu, bu dApp'lerin çoğunun başarısının ciddi şekilde sınırlı olduğunu veya hiç etkili olmadığını gösterir. Aslında DappReview'a göre ilk 5 EOS dApp, aktif EOS kullanıcılarının %70'inden fazlasını oluşturuyor. Bir de bunun üstüne dApp’ların yarısından fazlası kumarhane ve yüksek risk kategorisine giriyor. Marka imajı ve ahlaki duruşlar üzerindeki endişeler nedeniyle bir bütün olarak, birçok kişi ve kuruluşlar bu dApp’ler ve potansiyel Blockchain ile bağlantılarını sınırladığından bu, büyük ölçüde benimsenmeyi sınırlayabilir.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Mevcut dApp durumuyla ilgili bir endişe, bunun daha geniş kamuoyuna verdiği zihniyet veya imajdır. Çok sayıda yüksek riskli ve kumarhane / gazino dApp'ler, halkın aklındaki olası Blockchain kullanım durumunu sadece riskli finansal teşvik programlarına daraltabilir. Gerçekte bu, bu teknolojinin uygulanabileceği birçok uygulamadan sadece biridir. En büyük ilerlemelerin bir kısmı, uygulamalarını tamamen merkezi olmayan bir şekilde geliştirmek istemeyen işletmeler tarafından gerçekleştirilmiştir.

    Avustralya Menkul Kıymetler Borsası (ASX), ana platform olan CHESS'e (https://www.asx.com.au/services/chess-replacement.htm) Blockchain odaklı bir geliştirme şirketi olan Digital Assets aracılığıyla yeni bir yükseltme geliştiriyor. Bu projenin, 2016’dan beri prototip gelişimine rağmen, 2021'den önce tam olarak başlatılması beklenmemektedir. Bu uygulama, platformda kayıtlı kullanıcı olan binlerce kurum ve aracının kullanımına açık olacak ancak uygulama ASX tarafından yönetilecek ve çalıştırılacaktır.

    IBM, Walmart ile FoodTrust (https://cointelegraph.com/news/national-fisheries-institute-and-ibms-food-trust-work-on-seafood-blockchain-traceability) adlı tedarik zinciri uygulamasını hayata geçirdi ve ABD, Avrupa ve Avustralya da dahil olmak üzere tüm dünyada endüstri genelinde sayısız müşteriye yer verdi. Bu uygulama, aynı zamanda izin verilen bir özel blockchain olarak da çalışmakta ve merkezsizleşmiş değildir.

    Visa, sınır ötesi ödemeleri kolaylaştıran bir Blockchain esin kaynağı olan Visa B2B Connect'i (https://cointelegraph.com/news/visa-launches-global-cross-border-network-based-on-certain-aspects-of-blockchain) başlattı. Ağ, Hyperledger'ın (https://cointelegraph.com/tags/hyperledger) öğelerini birleştirmiştir ve IBM ile iş birliği içinde geliştirilmiştir.

    Yukarıdakiler gibi işletmeler tarafından geliştirilen kullanım durumlarının çoğu, Blockchain’in belirli bir sorunu çözmek için geliştirilen daha büyük bir çözümün parçası olması gerçeğinden dolayı kullanıcılar tarafından küresel olarak daha geniş bir benimsenmeyi görecektir. Bu, çözdükleri belirli bir sorun olmadan Blockchain için bir uygulama sağlamak amacıyla geliştirilen dApp'lerin çoğuna zıttır.

    Benimsenme açısından Blockchain teknolojisini sergilemek için bir dApp geliştirmenin faydalı olduğu zaman geçmiştir. Odak, kendilerini belirli bir endüstri veya bir Blockchain odaklı uygulama için bir yazılım çözümü olarak konumlandıran bir şirketle daha bütünsel olmalıdır. Ek olarak, yazılım çözümlerinin tam olarak ihtiyaçlar doğrultusunda geliştirilmesine olanak tanıyan temel halka açık ve özel Blockchain platform teknolojisinde iyileştirmeler yapılması gerekmektedir. Burası Aelf'in devreye girdiği yerdir. Mevcut işletmeler ve yazılım çözüm sağlayıcıları için doğru Blockchain uygulaması ile çözümlerini geliştirmek için ihtiyaçlarına uygun şekilde tasarlanmış bir tramplen etkisi sağlayacak bir platform geliştiriyoruz.

    KAYNAK:https://medium.com/aelfblockchain/are-dapps-driving-or-derailing-blockchain-adoption-a2d66cb622a6




  • Aelf Blockchain NASDAQ, Google Cloud, Oracle, SAP, Ethereum ve Bitcoin ile iletişim kuracak

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Aelf; yalnızca iletişim kurma yeteneğine sahip olmayan, aynı zamanda güvenilir ve değişmez veri Oracles’ı aracılığıyla diğer Blockchainler’den ve veri kaynaklarından doğrulanabilir verilere dayanan birkaç Blockchain’den biri olacaktır.

    Chainlink Oracles ile bağlanarak Aelf Blockchain; NASDAQ, Google Cloud, Oracle ve SAP gibi veri kaynaklarına ve Bitcoin ve Ethereum gibi Blockhainler’e erişime sahip olacaktır. Oracles, veriyi doğrulayarak verinin Aelf Blockchain’e gönderilmeden önce hem güvenilir hem de doğru olmasını sağlar. Bu, ekosistemde çalışan akıllı sözleşmelerin doğruluğunu ve güvenliğini büyük ölçüde artırır.

    Ek olarak Aelf ekosistemi dışında bu tür güvenilir veriler sağlayarak Blockchain uygulamasının bir çözüm olarak uygulanması, daha önce benzer çözümlerin uygulanması konusunda endişeli olan birçok işletme için gerçekçi bir seçenek haline gelmiştir.

    Bu neden benzersizdir?

    Blockchainler doğal olarak diğer veri kaynaklarına veya Blockchainler’e kendi başlarına bağlanma yeteneğinden yoksundur. Bu, belirli sonuçlara veya durumlara dayanarak yürütmeye çalışan akıllı sözleşmeler için çok sınırlı bir mevcut veri setiyle sonuçlanır.

    Bu temel konuyu hafifletmek için diğer kaynaklardan veri girişine izin vermek için Blockchainler’e bağlı bağlayıcıların geliştirilmesi, bir Oracle şeklinde mevcut olan birçok seçenekle sonuçlanmıştır. Bu Oracles; akıllı sözleşmeden veri talebini alan, arama yapan ve ilgili sonuçları derleyen merkezi bir 3. taraftır. Bu, bir anlamda halka açık bir merkezsizleşmiş Blockchain’in amacını yitirerek bu Oracles’lara büyük ölçüde güven duyulmasını gerektirir. Oracles, Blockchain’deki en zayıf halka haline gelir ve akıllı sözleşmelerin hatalı verilere bir cevap olarak yanlış bir işlem yürütmesine neden olabilecek manipülasyon veya kurcalamaya açıktır.

    Blockchainler’e gerçek zamanlı veriyi güvenilir ve doğrulanabilir bir şekilde sunan çok az seçenek vardır.

    Akıllı Sözleşmeler nedir?

    Bir akıllı sözleşme; merkezsizleşmiş bir Blockchain altyapısında yürütülen belirleyici, kurcalamaya karşı korumalı ve güvenilir bir dijital anlaşmadır.
    Akıllı sözleşmelerin iki nedenden dolayı standart, günlük sözleşmeler üzerinde üstünlüğü vardır.

    İlk olarak akıllı sözleşmeler; güvenilir, paylaşılan kayıtlardır. Bireysel tarafların tek bir doğruluk kaydının olmamasından dolayı birden fazla departmanın birbiriyle çelişen iş akışlarına sahip olduğu modern şirketler için bir nimet olan kendi yedek kopyalarını tutmalarına gerek olmadığından çok güvenlidirler.

    İkinci olarak akıllı sözleşmeler, oldukça belirleyicidir. Geleneksel senaryolarda sözleşmeler, hata veya isteksizlik dışında kararlaştırıldığı gibi yürütülmeyebilir. Akıllı sözleşmeler, tam olarak yazıldığı gibi yürütüldüğü ortamlarda çalıştırılır ve her adımda onay gerektirmez. Önceden belirlenmiş koşullar yerine getirilmişse, anahtar parametreler otomatik olarak yürütülür.

    Oracles nedir?

    Yukarıda bahsedildiği gibi Oracles, temel olarak bir Blockchain’i dış veri kaynaklarına, pazar yayınlarına veya web API'lerine bağlayan bir portaldır. Gerçek dünya pazarlarındaki ve web API'lerindeki veri yayınları, genellikle Blockchainler ve akıllı sözleşmeler gibi belirleyici değildir. Oracles, dış ve deterministik olmayan bilgileri bir Blockchain’in belirli koşulları anlayabileceği ve yürütebileceği bir formatta özümseyebilecek bir köprü görevi görür.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Aşağıdakiler dahil olmak üzere çeşitli Oracles biçimleri vardır:

    - Donanım Oracles
    - Yazılım Oracles
    - Konsensüs Oracles
    - Gelen Oracles
    - Giden Oracles

    Donanım Oracles, somut fiziksel nesnelerle entegre sensörlerdir. Birincil örnekler, ürünlerin çevresel koşulları gibi verileri Blockchain’e beslemek için RFID etiketlerinin kullanılmasıyla tedarik zinciri takibinde olacaktır.

    Yazılım Oracles, web API'leri gibi üçüncü taraf kaynaklardan veri çeken ve uçuş durumları ve hava durumu verileri gibi gerçek dünya bilgilerini içerebilen en yaygın formdur.

    Konsensüs Oracles, merkezsizleşmiş Oracles'e doğru bir adımı temsil eder ve özgünlüklerini ve doğruluğunu belirlemek için çeşitli Oracles'dan gelen verileri özel yöntemlerle toplamaya dayanır.

    Gelen Oracles, “bu fiyat bir varlık tarafından karşılanıyorsa, bir satış tetikle” gibi yazılım Oracles’ları ile ilgili “eğer bu gerçekleşirse bunu yap” senaryolarını yansıtır.

    Giden Oracles, akıllı sözleşmelerin üzerinde bulundukları Blockchain ağının dışındaki kaynaklara veri göndermesine olanak tanır ve aynı zamanda Yazılım Oracles’larıdır.

    Chainlink Çözümü

    Chainlink, akıllı bir sözleşmeyi tetikleyen bir Blockchain’e dahil edilmeden önce veri doğruluğunu tanımlayan ve doğrulayan merkezi olmayan bir Oracle ağı geliştirmiştir. Chainlink Blockchain, akıllı sözleşmeler tarafından yapılan bireysel veri taleplerine cevap veren oracle düğümlerinden oluşur. Blockchain sistemine 3 bileşen vardır:

    • İtibar Sözleşmesi
    • Emir Eşleştirme Sözleşmesi
    • Toplama Sözleşmesi

    İtibar Sözleşmesi, oracle servis sağlayıcı metriklerini depolamak ve izlemek için özel bir yöntem kullanır.

    Emir Eşleştirme Sözleşmesi, bir servis seviyesi anlaşması (Service Level Agreement - SLA) alır ve eş zamanlı olarak oracle sağlayıcılarından teklif alırken SLA'nın veri parametrelerini kaydeder.

    Toplama Sözleşmesi, oracle sağlayıcısının cevaplarını toplar ve ilk ChainLink sorgusunun son toplu sonucunu hesaplar.

    Temel olarak bir akıllı sözleşme, Chainlink aracılığıyla SLA şeklinde bir veri talebi yapacaktır ve bu, oracle düğümlerinin her birine yayınlanacaktır. Oracle düğümleri, verileri sağlayacak ve veri talebini tamamlamak için bir teklif sunacaktır. Tüm bunlar Emir Eşleştirme Sözleşmesi tarafından yönetilir, gönderilen veriler daha sonra farklı düğümlerden gelen birden fazla yanıtı karşılaştırarak Toplama Sözleşmesi aracılığıyla doğruluk için karşılaştırılır.

    Tamamlanan her bir SLA'dan kaynaklanan ilgili bilgiler, İtibar Sözleşmesine geri gönderilecektir ve sonuç olarak alınan teşviki etkileyen her bir düğümün itibarını değiştirir.

    SLA, kullanıcıların Oracles'ın itibarı veya kaç Oracle’ın dahil edilmesi de dahil olmak üzere istenen veri kümeleri için açık parametreler ve girdiler belirlemesine izin verdiği için bu sistemin temel bir bileşenidir.

    Zincir dışı verilerden zincir içi verilere geçiş, her bir oracle tarafından bilginin zincir dışından alınması ve doğrulama için zincir içine gönderilmesi ile tamamlanır. Bir veri talebini tamamlamak için kullanılan verilerine sahip olan Oracles, itibarlarına göre ağırlaştırılan LINK adı verilen Chainlink tokenleri ile sağlanır.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Hali hazırda Chainlink; Bitcoin, Ethereum ve Hyperledger gibi Blockchainler’in yanı sıra NASDAQ, Google Cloud, Oracle, SAP ve çoklu bankalar gibi diğer veri kaynaklarından da veri çekmektedir. Ek olarak Aelf ile bağlanarak sadece bu kaynakların herhangi birinden gelen veriler, Aelf Blockchain'deki akıllı sözleşmeleri tetiklemekle kalmaz; aynı zamanda Aelf Blockchain'deki veriler artık Ethereum veya Hyperledger gibi Blockchainler de dahil olmak üzere diğer platformlardaki olayları tetiklemek için kullanılabilir.

    İletişim birlikte çalışabilirlik anlamına mı geliyor?

    Birçok Blockchain’in geliştirmek istediği özelliklerden biri, çapraz zincir birlikte çalışabilirliğidir. İletişimi tartışırken bu kolayca Blockchain birlikte çalışabilirliği olarak yanlış yorumlanabilir ancak gerçekte onlar aynı şey değildir. Evet, birlikte çalışabilirlik Blockchainler arasında iletişim gerektirir ancak ayrıca bundan da fazlasını gerektirir. Aelf Blockchain, uygun Blockchain birlikte çalışabilirliği özelliğine sahip tam bir çözüm geliştiriyor ve bu, Chainlink’in oracle ağı ile çalışacaktır.

    KAYNAK:https://medium.com/aelfblockchain/aelf-blockchain-will-communicate-with-nasdaq-google-cloud-oracle-sap-ethereum-and-bitcoin-e6863f3b27a9




  • 🔊 Aelf COO'su ve Kurucu Ortağı Zhuling Chen, Şanghay'da düzenlenen Staking Sonbahar Forum'una katıldı. Farklı paydaşların staking ekonomideki rolleri ve Pos'taki tipik zorluklar hakkında konuşuldu.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)



    < Bu mesaj bu kişi tarafından değiştirildi Kursa1903 -- 17 Eylül 2019; 10:54:32 >
  • AELF ($ELF) Blockchain (RESMİ ANA KONU)
  • Aelf Teknik Konuşmalar: Bağımlılık Enjeksiyonu Bölüm 1

    Yiqi Zhao tarafından yazılmıştır

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Bağımlılık enjeksiyonu (dependency injection) nedir?

    Geliştirici topluluğu içerisinde, “bağımlılık” olarak adlandırılan bir konsepte sahibiz. Bir programın bir üçüncü parti kütüphanesini kullanması gerektiğinde, bu kütüphaneyi bağımlılık olarak adlandırılabilir. Fakat “enjeksiyon” nereden geliyor?

    Bir insana değer bulmak için karşıtına bakmanız gerektiği söylenir. Bağımlılık enjeksiyonunun karşıtı bağımlılık aramasıdır (dependency lookup). Bağımlılık enjeksiyonu ve bağımlılık araması, Kontrolün İnversiyonu (Inversion of Control - IoC) uygulamasının iki yoludur.

    IoC ve Bağımlılık Enjeksiyonunun temel amacı bir uygulamanın bağımlılıklarını ortadan kaldırmaktır. Bu, sistemi daha ayrışmış ve bakımlanabilir kılar.

    IoC

    İlk önce IoC'yi anlamaya çalışalım. Eski bilgisayar programlama günlerine geri dönerseniz program akışı, kendi kontrolünde çalıştırırdı. Örneğin, aşağıdaki akış şemasında gösterildiği gibi basit bir sohbet uygulaması akışını düşünelim.

    1- Kullanıcı sohbet mesajı gönderir.

    2- Uygulama, diğer taraftan gelen mesajı bekler.

    3- Hiçbir mesaj bulunamazsa, 2. adıma gider ya da 4. adıma geçer.

    4- Mesajı görüntüler.

    5- Kullanıcı çalışmalarına devam eder.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Şimdi program akışını yakından analiz ederseniz, bu sıralıdır. Program kendi kendini kontrol ediyor. IoC, programın kontrol akışını yönetecek başka birine devrettiği anlamına gelir. Örneğin, sohbet uygulaması olayını temel alarak yaparsak programın akışı aşağıdaki gibi olacaktır:

    1- Kullanıcı sohbet mesajı gönderir.

    2- Kullanıcı çalışmalarına devam ediyor.

    3- Uygulama olayları dinler. Bir mesaj gelirse, olay etkinleşir ve mesaj alınır ve görüntülenir.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Programın akışını görürseniz, sıralı değildir, olayı temel alır. Yani şimdi kontrol tersine çevrildi. Akışı kontrol eden dahili program yerine, olaylar program akışını yönlendirir. Olay akışı yaklaşımı, daha fazla esnekliğe yol açan dolaysız bir başvuru olmadığından daha esnektir.

    IOC'nin sadece olaylar tarafından uygulandığı sonucuna varmayın. Kontrol akışını geri arama delegeleri, gözlemci modeli, olaylar, DI (Bağımlılık enjeksiyonu) ve başka birçok yolla delege edebilirsiniz.

    DI (Bağımlılık enjeksiyonu) IOC'nin bir alt kümesi iken IOC genel bir ana terimdir. IOC, uygulama akışının ters çevrildiği bir konseptir.

    Daha önce bahsedilen iki yöntem, bağımlılık enjeksiyonu ve bağımlılık araması, her yerde kullanabileceğiniz yöntemlerdir.

    Servis konumlandırıcısını (service locator) Spring Framework’de duymuş olabilirsiniz. Şimdi Servis konumlandırıcısının bir model karşıtı olduğunu düşünen birçok öncüller vardır. Aslında Servis konumlandırıcısı, bağımlılık aramanın somut bir uygulamasıdır. Servis konumlandırıcısı ve bağımlılık enjeksiyonu fikri esasen zıt olmasına rağmen, MS.DI bağımlılık enjeksiyon yapısını uygularken Servis konumlandırıcısını kullanır.

    Eğer Spring’i kullanmadıysanız, sorun değildir.

    İkisi arasındaki ilişkiyi açıklamaya çalışalım. Açıkçası, Bağımlılık Enjeksiyonu temel olarak enjekte etme ile ilgilidir. Yığın Taşması (stack overflow) üzerine Bağımlılık Enjeksiyonu konusunda çok ilginç bir cevap vardır. Soru, beş yaşındaki bir çocuğa bağımlılık enjeksiyonunun nasıl açıklanacağıdır:

    Bir çocuk kendi başına buzdolabından bir şeyler çıkardığında, sorun çıkartabilir. Kapıyı açık bırakabilirler veya anne ya da babanın sahip olmasını istemediği bir şey alabilirler. Hatta sahip olmadıkları veya süresi dolmuş bir şeyi bile arıyor olabilirler.

    Yapmaları gereken şey “öğle yemeği ile içmek için bir şeye ihtiyacım var” gibi ihtiyacı belirtmek ve sonra ebeveyn, yemek için otururken bir şeylerinin olduğundan emin olacaktır.

    Bu yüzden doğru yaklaşım, çocuklara neye ihtiyaçları olduğunu sormaktır; o zaman buzdolabından bir şey bulur ve onlara veririz.

    Bir benzetme yapacak olursak buzdolabından bir şeyler alan çocuklar bağımlılık aramaya benzer; çocuklara yetişkinler olarak bir şeyler sunduğumuzda, bu bağımlılık enjeksiyonudur.

    Bağımlılık enjeksiyonunu ayrıntılı olarak tartışmadan önce, tasarım modellerinin beş prensibini gözden geçirmemiz gerekir (bazı yerler altı hatta yediden bahseder, ancak bunlar temel olarak beştir). Bu serideki 2. bölümde bu ilkelerin ilk çifti incelenecektir.

    KAYNAK:https://medium.com/aelfblockchain/aelf-tech-talks-dependency-injection-part-1-a95714f41042



    < Bu mesaj bu kişi tarafından değiştirildi Kursa1903 -- 20 Eylül 2019; 10:45:59 >




  • Aelf, Huawei Cloud'a Teknoloji Partneri Olarak Katıldı ve Dijital Dönüşüme Yardımcı Olmak için 2019 Huawei Connected Konferansına Davet Edildi!

    Telekom endüstrisinde bir Blockchain sağlayıcısı olarak Aelf iş birlikleri konusunda Huawei ile görüşmelerde

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    18 Eylül 2019'da üç günlük Huawei Connect 2019 Konferansı (HC2019), Şangay Dünya Fuar Kongre ve Gösteri Merkezi'nde ve Şangay Dünya Fuar Gösteri Salonu'nda başladı. Bu konferansın konusu “Gelişmiş Akıl, Aklın Yeni İrtifalarını Sağlar” idi. Açılış konuşmaları, yuvarlak masa toplantıları ve alt forum tartışmaları; Huawei Cloud, Akıllı Bilişim, Bağlantı, Ağ Güvenliği, Akıllı Şehirler, Akıllı Ulaşım, Akıllı Finans, Geliştirici ve Kurumsal Hizmetler ve Devlet İşleri ve Eğitim konusundaki konuşmalar için bir platform sağladı. Bir Huawei Cloud teknoloji ortağı olarak Aelf, Huawei Connect 2019 Konferansı’na ve Akşam Yemeği'ne katılmak üzere davet edildi.

    Liang Chen (Huawei Cloud Global Partner İş Birimi Başkanı), Lim Chee Siong (Huawei Cloud Güney Pasifik bölgesinin Baş Pazarlama Yöneticisi), Kevin Teoh (Huawei Cloud Asya Pasifik İş Geliştirme Direktörü) ve Justin Ching Lee (Huawei Cloud Global Partner İş Birimi Menajeri) yemeğe katıldı. Nancy Yan (Huawei Cloud Asya Pasifik Partner İş Birimi Başkan Yardımcısı), Aelf’i bizzat memnuniyetle karşıladı ve katıldıkları için Aelf ekibine teşekkür etti. Aelf Kurucu Ortağı & COO’su Zhuling Chen, akşam yemeğinde Huawei Cloud Teknoloji Partnerlerinin bir temsilcisi olarak kısa bir konuşma yaptı.

    “Aelf'in HC2019 endüstri festivaline Huawei Cloud teknoloji ortağı olarak katılması için davet edildiğinden dolayı çok mutluyum. Akıllı dünyanın hızlanmasıyla birlikte, gittikçe daha fazla işletme ve devlet kurumu aklın değerini ve önemini fark etmektedir. Endüstrinin önde gelen merkezi olmayan bulut bilişim platformu olarak Blockchain bulut hizmetlerinin iş birliğini keşfetmek ve optimize etmek, güvenilir bir dijital ekonominin temel taşını oluşturmak ve işletmeler için daha güvenli hizmetler sunmak için Huawei Cloud ile çalışmayı umuyoruz. Güvenilir, verimli ve yüksek kaliteli Blockchain bulut hizmetleri; işletmelerin katlanarak büyümesini mümkün kılıyor.”

    Zhuling, Blockchain’in Telekomünikasyon Operatörlerine hizmet etme potansiyeli hakkında Liang Chen (Huawei Cloud Global Partner İş Birimi Başkanı) ile uzun bir görüşme yaptı. Aelf, dünya çapında birkaç önde gelen Telekomünikasyon Operatörü ile görüşmelerde bulundu ve Huawei, global olarak Telekomünikasyon Operatörleri için en büyük global yazılım ve donanım sağlayıcısıdır. Bu partnerlik, iki tarafın da uzmanlıklarını geliştirmeleri için karşılıklı olarak yararlı olacaktır.

    Huawei Cloud’un çapraz zincir projesine dahil edilen aelf Enterprise 0.7.0 Beta; tam bir Blockchain sistemi, geliştirme kitleri için destek, web araçları ve programları için destek gibi özelliklere sahiptir. Geliştiriciler; sağlanan geliştirme kitleri ve araçlarına dayalı olarak uygulamaları hızlıca dağıtabilir. Ek olarak Aelf, kullanıcıların işletmelere ve geliştiricilere kolayca güçlü uygulamalar geliştirmelerine yardımcı olmak için iş mantığını ve uygulama geliştirmeye odaklanmalarını sağlayan bir rehber öğretici sunar.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Aelf, iş dünyasının kendi kendini geliştirmesi ve refahını ilerletmek için teknoloji ve ileriye dönük bir endüstri perspektifinden yararlanır. Huawei ve Aelf, kurumsal müşterilerine hizmet etmede iş birliği için daha fazla fırsat keşfetmeye devam edecektir. Sektördeki konumumuzu derinleştirip teknolojik avantajları sağlayarak Aelf, Huawei Cloud ile olan geniş kapsamlı iş birliğimizi daha da güçlendirecektir.

    Aelf Enterprise Huawei Cloud Adresi -->https://marketplace-intl.huaweicloud.com/product/00301-129125-0--0

    KAYNAK:https://medium.com/aelfblockchain/aelf-joins-huawei-cloud-as-technology-partner-invited-to-2019-huawei-connected-conference-to-aid-ac97b095886b




  • AELF ($ELF) Blockchain (RESMİ ANA KONU)

    AELF ($ELF) Blockchain (RESMİ ANA KONU)

    AELF ($ELF) Blockchain (RESMİ ANA KONU)

    AELF ($ELF) Blockchain (RESMİ ANA KONU)




  • Aelf Çin'de Blockchain’e ve DLT Ulusal Standardı'na Rehberlik Etmeye Yardımcı Oluyor

    Aelf, “Bilgi Teknolojileri Blok Zinciri ve Dağıtılmış Defter Teknolojisi (Distributed Ledger Technology – DLT) Referans Mimarisi” Ulusal Standartlar Derleme Toplantısına katıldı.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    20 Eylül 2019'da Sanayi ve Bilgi Teknolojileri Bakanlığı CESI (Çin Elektronik Teknolojisi Standardizasyon Araştırma Enstitüsü) tarafından düzenlenen “Bilgi Teknolojileri Blok Zinciri ve Dağıtılmış Defter Teknolojisi Referans Mimarisi” Ulusal Standartlar Derleme Toplantısı Şanghay’da yapıldı. Toplantıya katılmak için Aelf Teknik Ekosistem Direktörü Zongzhe Huang; Çin Halk Bankası’ndan, Çin Menkul Kıymetler Düzenleme Komisyonu’ndan, Nankin ve Fudan Üniversiteleri’nden ve diğer kurum ve kuruluşlardan kıdemli uzmanlarla birlikte toplantıya davet edildi.

    Ulusal Standartlar Derleme Toplantısı; Bilgi Teknolojileri Blok Zinciri ve Dağıtılmış Defter Teknolojisi Referans Mimarisinin ulusal standardına odaklandı. Toplantıda, aşağıdaki hususlara ilişkin tartışmalar yer aldı:

    • Blockchain referans mimarisinin kullanıcı ve fonksiyonel görünümü

    • Kullanıcı görünümü roller, alt roller ve etkinlikleri ve roller arasındaki ilişkileri içerir

    • Fonksiyonel görünüm, fonksiyonel bileşenleri ve bunların belirli fonksiyonlarını içerir

    • Fonksiyonel bileşenler arasındaki ilişkiler

    Uzmanlar ve bilim adamları, “Bilgi Teknolojileri Blok Zinciri ve Dağıtılmış Defter Teknolojisi Referans Mimarisi” konulu titiz bir analiz ve derinlemesine gösteri yönettiler. Huang, nihai karar için oy kullanmadan önce tartışmaya aktif olarak katıldı. Uzmanlar ve bilim adamları; kendi görüşlerini paylaştı, farklı endüstri perspektiflerinden revizyon görüşlerini sağladı ve fikir alışverişi yaptı ve bir sonraki adım için hazırlık planını açıkladılar.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Gelişen bir teknoloji olarak Blockchain; finansal hizmetler, tedarik zinciri yönetimi, eğlence, akıllı üretim, sosyal refah ve eğitim istihdamı alanlarında geniş bir uygulama alanına sahiptir. Blockchain standardizasyonu; Blockchain anlayışını birleştirmeye, çeşitli endüstrilerdeki Blockchain uygulamalarını yönlendirmeye ve Blockchain'in temel teknik konularını desteklemeye yardımcı olur.

    Aelf, Blockchain endüstrisinin standardizasyonuna katkıda bulunmak için hem teknik hem de pratik açıdan endüstri standartları tartışmalarına aktif olarak katılmaya ve endüstri standartlarının iyileştirilmesine katkıda bulunmaya devam edecektir.

    KAYNAK: https://medium.com/aelfblockchain/aelf-helps-guide-blockchain-and-dlt-national-standard-in-china-4805b538e16a




  • Aelf Teknik Konuşmalar: Bağımlılık Enjeksiyonu Bölüm 2

    SOLID Tasarım İlkeleri

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Bu serinin 1. bölümünde Bağımlılık Enjeksiyonu ve IoC tartışıldı. Bağımlılık Enjeksiyonu derinlemesine girmeden önce, nesne yönelimli tasarım modelinin beş SOLID ilkesini anlamak önemlidir. Bu bölümde ilk üç ilke incelenecektir.

    1) Tek Sorumluluk İlkesi (SRP, Single Responsibility Principle)

    > Bir sınıfın değişmesi için hiçbir zaman birden fazla sebep olmamalıdır.

    Bir şaka duymuş olabilirsin:

    - Hata olmadan kod yazdın mı?

    - Evet, daha önce yaptım: Merhaba Dünya.

    Bu paragraf bize doğruyu söyler: kod ne kadar basitse, bir hata olması o kadar az olasıdır.

    Peki kodu nasıl basitleştiririz? Her kod satırını yazarak tek bir şey yapmak için. Uygulamada, bir sınıfın sadece bir şey yapmasına izin verdik. Ve eğer bu sınıfa basit ve sezgisel bir isim verebilirsek, kodun kendisinin bildirilmesi çok iyi olacaktır. Alibaba’nun Java spesifikasyonunun, bir sınıfın bir tasarım deseni kullanıyormuş gibi adlandırma için gereksinimleri olduğunu hatırlıyorum. Tasarım deseninin adını ismin içinde yerleştirmek gerekir. Şu anda, yorumlar gereksizdir ve kod insanların okuması ve bakımı için kolaydır.

    Tek sorumluluk ilkesinin tanımına geri dönelim. Martin, bir sorumluluğu değişimin nedeni olarak tanımlar ve bir sınıf veya modülün değiştirilmek üzere bir ve yalnızca bir nedeni olması gerektiği sonucuna varır (yani yeniden yazılması). Örnek olarak, bir rapor derleyen ve yazdıran bir modül düşünün. Böyle bir modülün iki nedenden dolayı değiştirilebileceğini hayal edin. İlk olarak, raporun içeriği değişebilir. İkincisi, raporun formatı değişebilir. Bu iki şey çok farklı nedenlerle değişir. Tek sorumluluk ilkesi, sorunun bu iki yönünün gerçekten iki ayrı sorumluluk olduğunu ve bu nedenle ayrı sınıf veya modüllerde olması gerektiğini söylüyor. Farklı zamanlarda farklı nedenlerle değişen iki şeyi birleştirmek/eşleştirmek, kötü bir tasarım olacaktır.

    Bir sınıfı tek bir endişeye odaklamanın önemli olmasının nedeni, sınıfı daha sağlam ve güçlü kılmasıdır. Yukarıdaki örnekten devam edersek rapor derleme işleminde bir değişiklik olursa, aynı sınıfın bir parçasıysa yazdırma kodunun kırılması daha büyük bir tehlikedir.

    Ayrıca bir sınıfın tek sorumluluk ilkesine uygun olup olmadığına karar vermek için bir standart vardır. Bu, sınıftaki öğelerin uygunluğuna bağlıdır. Bir yineleyici uygulayan bir sınıfta yazma fonksiyonuna sahip olamazsınız. Bunun hakkında düşünmeyin. En önemseyeceği panonun boyutunu kontrol etmesidir. Başka bir deyişle, panonun kendisi yineleyicilerin sınıfına dahil edilmemeli, yalnızca bir hizmet olarak var olmalı ve Depo modunu kullanmayı düşünebilirsiniz.

    Yüksek korelasyon, yüksek uyum ve işlevde daha küçük bir granülite anlamına gelir.

    Burada belirtilen sınıf, bir varlığa veya bir servise başvurabilir. Domain-driven Design kitabında Eric, uygulamadaki nesneleri üç türe ayırır: değerler, varlıklar ve hizmetler. Bir varlık, değerlerin bir kombinasyonu olarak düşünülebilir ve bir hizmet, iş mantığını içeren koddur.

    2) Açık Kapalı Prensibi (Open Closed Principle - OCP)

    > Sınıflar, modüller ve fonksiyonlar gibi yazılım varlıkları; uzantı için açık olmalı ancak varlığın kaynak kodunu değiştirmeden davranışının genişletilmesine izin verebilecek şekilde değişikliklere kapalı olmalıdır.

    Açık Kapalı Prensipten bahsedersek bu, dekoratör modeli aracılığıyla anlaşılması özellikle kolay olan bir tasarım desenidir. Bir senaryo hayal edebiliriz. Bir süpermarkette yazarkasa sistemi veya bir e-ticaret web sitesi yapıyoruz. Her halükârda emtia varlığı vardır. Emtia varlığı, bir GetPrice (FiyatAl) yöntemine sahiptir ve şimdi ürüne bir indirim işlevi eklemelisiniz. Malın sınıf kategorisinin tek sorumluluk prensibine uygun olduğunu varsayarsak, şu anda üç seçenek vardır:

    1. Şimdi ihtiyacınız olan işlevselliği sağlamak için arayüze bir yöntem ekleyin.
    2. Sınıfın uygulamasını modifiye edin ve yeni özellikler imzalamak ve sağlamak için önceki yöntemi kullanın.
    3. Bir sınıfı tekrar oluşturun, önceki uygulama sınıfını kalıt alın (inherit), önceki yönteme bir katman yerleştirin ve yeni bir uygulama sağlayın.

    Açık Kapalı Prensibi, üçüncü çözümü seçmemizi önerir. Bunun nedeni arayüzü modifiye ederek, bu arayüzü uygulamak isteyen diğer sınıfların uygulamayı eklemesi gerekir. Bu yeni uygulamanın gereksiz olması muhtemeldir, çünkü tüm ürünler için aynı gün içerisinde indirim yapılması muhtemel değildir. İkinci çözüm, sadece tehlikeli bir operasyondur. Kesinlikle birim testini etkileyecektir (eğer varsa) ve hataların ortaya çıkması gibi büyük bir olasılık vardır. Üçüncü seçenek en güvenli olanıdır. Önceki uygulama için bir dekoratör sağlayabiliriz ve ardından yeni işlevsellik sağlamak için dekoratör çağırabiliriz. Önceki örnekte önceki uygulama, ürünün orijinal fiyatını dekoratörün “indirim dekoratörü” olarak adlandırdığı şeyi döndürmektir ve daha sonra indirimli fiyatı döndürmek için aynı yöntemi çağırır. Önceki uygulama, yapıcı parametreleri vasıtasıyla dekoratöre enjekte edilir. Gerçek kullanım o kadar basit olmayabilir ancak bu, prensibin basit bir açıklamasıdır.

    Daha sonra enjeksiyonun birleşik kökü hakkında konuştuğunuzda, tekrar Açık Kapalı Prensipten bahsedeceksiniz.

    3) Liskov'un Yerine Geçme Prensibi (Liskov Substitution Principle - LSP)

    > Temel sınıflara işaretçiler veya referanslar kullanan fonksiyonlar, türetilmiş sınıfların nesnelerini bilmeden kullanabilmelidir.

    Bu en gözden kaçan prensiplerden biri gibi görünüyor.

    Sorunlara neden olan “is a” tekniğinin klasik örneği daire-elips problemidir (ya da dikdörtgen kare problemdir). Ancak, ben penguen kullanacağım.

    İlk önce, gökyüzünde uçan kuşları gösteren bir uygulama düşünün. Birden fazla kuş türü olacaktır ve bu nedenle geliştirici, yeni kuş türlerinin eklenmesiyle ilgili kodu “kapatmak” için Açık Kapalı Prensibini kullanmaya karar verir. Bunu yapmak için, aşağıdaki soyut Kuş temel sınıfı oluşturulur:

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    BirdsFlyingAroundApp sürümünün büyük bir başarıdır. İkinci versiyon, kolaylıkla başka 12 farklı kuş türünü ekler ve ayrıca bir başarıdır. Yaşasın Açık Kapalı Prensibi! Ancak, uygulamanın üçüncü sürümü penguenleri desteklemek için gereklidir. Geliştirici, Kuş sınıfından kalıt alan yeni bir Penguen sınıfı yapar, ancak bir sorun vardır:

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Bir geçersiz kılma yöntemi hiçbir şey yapmazsa veya yalnızca bir istisna atarsa, muhtemelen LSP'yi ihlal ediyorsunuzdur.

    Uygulama çalıştırıldığında tüm uçan modeller yanlış görünür, çünkü Penguen nesneleri setAltitude yöntemini önemsemez. Penguenler sadece yerde dolaşıyorlar. Geliştirici OCP'yi izlemeye çalışsa da başarısız oldu. Penguen sınıfına uyması için mevcut kodun modifiye edilmesi gerekir.

    Bir penguen teknik olarak “kuş” iken, Kuş sınıfı tüm kuşların uçabileceğini varsaymaktadır. Penguen alt sınıfı uçuş varsayımını ihlal ettiğinden, Kuş sınıfı için Liskov'un Yerine Geçme Prensibi’ni karşılamıyor.

    LSP'yi İhlal Etmek Neden Kötüdür?

    Soyut bir temel sınıf kullanmanın amacı; gelecekte yeni bir alt sınıf yazıp mevcut, çalışan ve test edilmiş bir koda ekleyebilmenizdir. Açık Kapalı Prensibinin özü budur. Ancak, alt sınıflar soyut temel sınıfın arayüzüne uygun bir şekilde bağlanmadığında, mevcut alt kodu gözden geçirmeniz ve hatalı alt sınıfları içeren özel durumları hesaba katmanız gerekir. Bu, Açık Kapalı Prensibinin açıkça ihlalidir.

    Örneğin, bu kod parçasına bir bakınız:

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    LSP, kodun Kuş nesnesinin gerçek sınıfını bilmeden çalışması gerektiğini söylüyor. Ya devekuşu gibi bir başka uçamayan kuş türü eklemek isterseniz? O zaman mevcut tüm kodunuzu gözden geçirmeli ve Kuş işaretçilerinin gerçekten Devekuşu işaretçisi olup olmadığını kontrol etmelisiniz.

    İki Olası Çözüm

    Mevcut kodu modifiye etmeden Penguen sınıfını ekleyebilmek isteyebiliriz. Bu, kötü kalıtım hiyerarşisini LSP'yi karşılayacak şekilde düzelterek sağlanabilir.

    Sorunu çözmenin çok iyi olmayan bir yolu, isFlightless adlı Kuş sınıfına bir yöntem eklemektir. Bu şekilde, en azından OCP'yi ihlal etmeden uçamayan kuş sınıfları eklenebilir. Bu, şöyle bir kodla sonuçlanacaktır:

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Bu gerçekten geçici bir çözümdür. Temel sorunu çözmedi. Sadece sorunun belirli bir nesne için var olup olmadığını kontrol etmenin bir yolunu sağlar.

    Uçamayan kuş sınıflarının uçan sınıfları üst sınıflarından kalıt almadığından emin olmak daha iyi bir çözüm olacaktır. Bu böyle yapılabilir:

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Kuş temel sınıfı, herhangi bir uçan işlevsellik içermez ve FlightfulBird alt sınıfı, bu işlevselliği ekler. Bu, bazı işlevlerin hem Kuş hem de UçanKuş nesnelerine uygulanmasına izin verir. Ancak, uçamayan olabilecek Kuş nesneleri, FlightfulBird nesnelerini alan işlevlere dönüştürülemez.

    Bu serideki bir sonraki bölümde, Bağımlılık Enjeksiyonunun son bölümü daha ayrıntılı olarak tartışmadan önce kalan 2 prensip incelenecektir.

    KAYNAK:https://medium.com/aelfblockchain/aelf-tech-talks-dependency-injection-part-2-c2525376e8e8




  • Aelf, BTCManager ile partnerlik kurdu. Yeni partnerlik ile birlikte artık Aelf ile ilgili tüm haberlerihttps://btcmanager.com/ adresinde bulabilirsiniz.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)
  • aelf Enterprise (Kurumsal) 0.8.0 Beta Resmi Olarak Yayınlandı

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    aelf Enterprise 0.8.0 beta; bütün bir blockchain sistemi, geliştirme kitleri, geliştirme belgeleri ve destekleyici altyapı ve altyapı hizmetlerini içeren eksiksiz ve tam bir blockchain ticarileştirme çözümü setidir.

    aelf Enterprise 0.8.0 beta sürümü sistem entegrasyonu

    1. aelf Enterprise

    • aelf Enterprise v0.8.0 beta
    • DevKit v0.8.0 beta

    2. aelf Harici Uygulamalar
    • aelf blockchain tarayıcı v0.1.6
    • aelf tarayıcı MySQL plugin v0.8.0 beta
    • aelf kaşifi v0.8.0 beta
    • aelf cüzdan v0.8.0 beta
    • aelf JS SDK v3.2.17
    • aelf JS SDK Çapraz Zincir v1.0.1
    • Nodejs v0.1.15’te aelf CLI

    3. aelf Tarayıcı Uzantısı V0.8.0 beta

    Aelf Enterprise 0.8.0 beta sürümünün Aelf Enterprise 0.8.0 alfa sürümüne kıyasla önemli özellikleri şunlardır:
    • Geliştirilmiş stabilite
    • Daha eksiksiz ekonomik sistem
    • Çapraz zincir kabiliyetinin tam seti
    • Daha eksiksiz çapraz zincir destek araçları

    Bu güncelleme ve önemli özellikleri

    aelf Enterprise v0.8.0 beta:


    AEDPOS Konsensüs Mekanizması:
    • Rastgele blok sırası
    • Üretim bloğu mantığı
    • Konsensüs doğrulama ve hile cezası

    Ekonomik sistem:
    • Teklif ve çoklu imzalama mekanizması
    • Üç oylama modeli (parlamento oyu / birlik oyu / referandum)
    • Bancor tabanlı TOKEN (çoklu varlık) ticareti
    • Düğüm seçimi oylama / değiştirme
    • Temettü / ödeme mekanizması

    Ana zincir:
    • P2P ağı ve düğüm yönetimi
    • Ticaret havuzu
    • Zincir yönetimi
    • Blok / işlem doğrulama ve yönetimi
    • Veri depolama
    • WebAPI arayüzü
    • Komut satırı arayüzü
    • SDK geliştirme (Javascript)

    Çapraz zinciri:
    • Alt zincir ve ebeveyn zincir indeksleme mekanizması
    • Çapraz zincir doğrulama ve çapraz zincir transfer

    Sözleşme sistemi:
    • Çalışma süresi (Runtime)
    • Sözleşme Geliştirme SDK
    • Sözleşme güvenlik kontrolü
    • Sözleşme geliştirme standardı (acs)

    Paralel yürütme:
    • Kaynak algılama ve gruplama
    • Gruplar arasında paralel yürütme
    • Çatışma yönetimi

    DevKit:
    Geliştirici Belgeleri

    • Yeni düğüm yapısı
    • Yeni çapraz sözleşme çağrıları
    • CLI kullanım belgeleri güncellendi
    • WebAPI kullanım belgeleri güncellendi, RPC ile ilgili belgeler kaldırıldı


    aelf Harici Uygulamalar güncellemesi:

    aelf Cüzdanı:

    • Çoklu token durumunda işlem kaydı sorgusunun hatası düzeltildi

    aelf Kaşif:
    • Arayüz yeniden yapılandırma, yüzlerce milisaniyede arayüz yanıtı
    • Mantığın kısmı websocket kullanılarak optimize edilmiştir
    • İşlem kaydı sorgu optimizasyonu

    aelf JS SDK Çapraz Zincir:
    • Çapraz zincir JS SDK eklendi

    Nodejs’de aelf CLI
    • Yeni teklifle ilgili yöntemler eklendi

    Entegrasyon özelliklerine giriş:

    1. aelf Enterprise
    • aelf Enterprise v0.8.0 beta
    https://github.com/AElfProject/AElf
    — Yüksek Performanslı Akıllı Sözleşme Çalışma Zamanı
    — Konsensüs Sistemi
    — Çoklu Token Sistemi
    — Oylama sistemi
    — Çapraz Zincir Sistemi
    — Web API

    • DevKit
    — Boilerplatehttps://github.com/AElfProject/aelf-boilerplate
    — TestKit
    — BenchmarkKit
    — IDE entegrasyonu
    — Belgelerhttps://docs.aelf.io/
    — Öğreticilerhttps://docs.aelf.io/main/main

    1.1 aelf Enterprise v0.8.0 beta

    Minimize edilmiş blok zinciri kerneli, DPoS konsensüs mekanizması, akıllı sözleşme sistemi, oylama sistemi, token sistemi ve temel çapraz zincir sistemi dahil olmak üzere tam bir blok zincir sistemidir.

    Yüksek Performanslı Akıllı Sözleşme Çalışma Zamanı
    • Sözleşme yürütme seviyesi: Protobuf’a dayanarak grpc gibi bir akıllı sözleşme yürütme ortamı uygulandı. Tüm nesnelerin girdi ve çıktıları ve depolanması Protobuf yüksek performanslı serileştirme işlemine dayanır. Durum depolaması, redis gibi yüksek performanslı bir dağıtılmış veri tabanı kullanır.
    • Genel sözleşme yapısı: grpc eklentisi ile oluşturulan kodlar, bir grpc sunucusuna eşdeğer performansları gösterir.
    • Sözleşme Kontrolü: Bloklar içinde paralel yürütme, AKKA kümeleri üzerinden gerçekleştirilebilir.

    Konsensüs Sistemi
    • Güvenlik: Gizli Paylaşım algoritması, seçilen tüm düğümlerde dağıtılmış rasgele sayıların üretilmesini sağlayabilir. Her turdaki blok üretim sırası; üretilen rasgele sayılarla belirlenir, böylece düğüm gizli anlaşması ve kötü niyetli davranış olasılığını azaltır.
    • Verimli: Düğümlerin ⅔'ü bir bloğu doğruladıktan sonra blok, geri ters çevrilemez blok olur ve veriler çatal tarafından ters çevrilmeden zincire kalıcı olarak sabitlenir.

    Çoklu Token Sistemi
    Sözleşme sistemine dayanarak Blockchain çapraz zincir sağlayabilen dâhili bir Token Sistemi uygulanır. Tüm varlıklar; zincirler arasında ihraç edilebilir, transfer edilebilir ve kilitlenebilir.

    Oylama sistemi
    Sözleşme sistemine dayanarak bir evrensel oylama sistemi, işlevseldir ve çevrimiçi yönetişimi ve ikincil gelişmeyi kolaylaştırır.

    Çapraz Zincir Sistemi
    Zincirdeki herhangi bir verinin zincir boyunca iletecek bir mekanizma sağlar. Sistem, Merkle Ağaç Kökü endeksine dayanarak uygulanır ve tüm sistem çok seviyeli ana yan zincir endeksini gerçekleştirebilir, böylece ölçeklendirme ve dağıtıklaştırma gerçekleştirilebilir.

    Web API
    ASP.Net Çekirdek sunucusu, yüksek performanslı etkileşimli bir yapı gerçekleştirmek için uygulanmaktadır.

    1.2 DevKithttps://github.com/AElfProject/aelf-boilerplate
    Geliştirme Şablonları ve Öğreticileri, Geliştirici Kılavuzu, TestKit, BenchmarkKit ve IDE Entegrasyonunu içerir
    • Geliştirici Kılavuzları: Aelf sisteminin ve API dokümantasyonunun ayrıntılı bir tanıtımını sağlar
    • TestKit: Geliştiricilerin sözleşmeleri hakkında kısa bir test yapmasına izin verir
    • BenchmarkKit: Dahili performans testi durumları sağlar
    • IDE Entegrasyonu: Geliştiricilerin, geliştirme sırasında akıllı sözleşmelerin hatalarını ayıklamalarına izin verir ve birim test kodu kapsamı istemi sağlar

    Geliştiriciler, hızlı bir şekilde Aelf temelli Blockchain sistemleri kurabilir ve Aelf tarafından sağlanan geliştirme kitlerine ve araçlarına dayalı olarak Dapp‘ler oluşturabilirler. ve Aelf’i geliştirici dokümantasyonu aracılığıyla hızlıca tanımaya başlayabilirler.

    2. Aelf Harici Uygulamalar
    Aelf Blockchain tarayıcı
    https://github.com/AElfProject/aelf-block-scan
    • Zincir tarama programı, geliştiricilerin zincirdeki verileri zincir dışında kolayca depolamasını ve böylece geliştirici geliştirme maliyetlerini düşürmesini sağlar.
    • Uygulamayı ilgili veri tabanı ile eklemek gerekir, topluluk varsayılan MySQL ekleme sürümü olarak aelf-scan-MySQL sağlar.

    Aelf Tarayıcı MySQL eklentisihttps://github.com/AElfProject/aelf-scan-mysql
    • Geliştiriciler, MySQL veri tabanına veri eklemek için zincir tarama programını kolayca kullanabilir
    • İşlem, blok, TPS, kaynak veri depolaması varsayılan olarak desteklenir

    Aelf Kâşifihttps://github.com/AElfProject/aelf-block-explorer
    • Blok ve işlem sorguları uygulandı

    Aelf Cüzdan https://github.com/AElfProject/aelf-web-wallet
    • Yerel olarak depolanan özel anahtar
    • Temel token transferi ve işlem kayıtlarını görüntüleme uygulandı
    • Aelf sözleşme tokenlerini arayabilir ve ekleyebilir

    Aelf JS SDKhttps://github.com/AElfProject/aelf-sdk.js
    • Aelf'in çapraz link/bağlantı transfer arayüzü, geliştiricilerin hızlı bir şekilde başlamasını kolaylaştırmak için kısa ve öz biçimde açıklanmıştır.

    Nodejs’de Aelf CLIhttps://github.com/AElfProject/aelf-command
    • Çok fazla sayıda komut istemi sağlanır.
    • Hesap oluşturma, blok bilgisi alma, işlem (trading) bilgisi alma ve sözleşmeleri yayınlama gibi işlevler sağlar.

    3. Aelf Tarayıcı Uzantısıhttps://github.com/AElfProject/aelf-web-extension
    • Özel anahtarları yerel olarak depolar ve bir anahtar yönetim kullanıcı arayüzü sağlar
    • Eklenti ve uygulama arasında şifreli iletişim sağlar
    • AElf ekosistemindeki DAPP işlem imzalarını destekler
    • Kullanıcıların uygulama izinlerini görsel olarak yönetmesini destekler

    KAYNAK: https://medium.com/aelfblockchain/aelf-enterprise-0-8-0-beta-officially-released-38b41622893e




  • Aelf Teknik Konuşmalar: Bağımlılık Enjeksiyonu Bölüm 3

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    ## Arayüz Ayrıştırma Prensibi (Interface Segregation Principle - ISP)

    > İstemciler, kullanmadıkları arabirimlere bağımlı olmaya zorlanmamalıdır.

    Bir sınıfın diğerine bağımlılığı asgari düzeyde olmalıdır.

    Bu prensibi izleyerek, birden fazla sorumluluk için yöntemleri tanımlayan şişirilmiş arayüzleri önlersiniz. Tek Sorumluluk Prensibinde açıklandığı gibi, sık sık değiştikleri ve yazılımınızın bakımını zorlaştırdığı için çoklu sorumluluk içeren sınıflardan ve arayüzlerden kaçınmalısınız.

    Bir çapraz sözleşme çağrısı için Aelf ekibi, AElf Sözleşme Standardı (ACS) adlı bir sözleşme standardı sağladı ve her bir ACS bazı Arayüz tanımlar. Çapraz sözleşme çağrısı yaparken, belirli bir ACS'de hangi arabirimin tanımlandığı konusunda endişelenmenize gerek yoktur. Yalnızca istenen ACS'yi uygulayan bir sözleşme sağlamanız gerekir. Öte yandan her bir sözleşme, birden fazla ACS uygulayabilir. Diğer sözleşmeler tarafından çağrıldığında, yalnızca uyguladığı ACS'lerden biriyle ilgilenebilir. Böylece yalnızca bu ACS'ye dayanırsınız ve bu sözleşmeyi almazsınız. Diğer yöntemler, çapraz sözleşme çağrılarına maruz kalmaktadır. Bu sadece arayüz izolasyonu prensibinin bir açıklamasıdır.

    Bağımlılık İnversiyon Prensibi (Dependency Inversion Principle - DIP)

    > Yüksek seviyeli modüller düşük seviyeli modüllere bağlı olmamalıdır. Her ikisi de soyutlamalara bağlı olmalıdır. Soyutlamalar, detaylara bağlı olmamalıdır. Detaylar, soyutlamaya bağlı olmalıdır.

    Bu tanımın önemli bir detayı, yüksek seviye ve düşük seviye modüllerinin soyutlamaya bağlı olmasıdır. Tasarım ilkesi, adını ilk defa okurken beklediğiniz gibi sadece bağımlılığın yönünü değiştirmez. Aralarında bir soyutlama tanıtarak yüksek ve düşük seviye modülleri arasındaki bağımlılığı böler. Sonuçta iki bağımlılık elde edersiniz:

    1.Yüksek seviye modülü, soyutlamaya bağlıdır
    2.Düşük seviye, aynı soyutlamaya bağlıdır

    Bu, olduğundan daha karmaşık gelebilir. Sonuç olarak Açık/Kapalı Prensibini ve Liskov'un Yerine Geçme Prensibini kodunuza uygularsanız, Bağımlılık İnversiyon Prensibi'ni de takip eder.

    Bir kelimeyle: arayüz odaklı programlama. Arayüzü daha düşük-seviye modülüne koyabilir ve daha sonra bu arayüzün üst-seviye modülde uygulanmasını sağlayabiliriz. Farklı üst seviye modüller arasındaki iletişim, temel modüllerdeki arayüzlerle de yapılır. Örneğin, Log’u yüksek seviye bir modül olarak ele alıyoruz. Temel modülde farklı log seviyelerinin yazdırılması için bazı yöntemler sağlayan tek bir ILogger arayüzü vardır. Özel yazdırma uygulaması log modülüne yerleştirilir. Diğer modüller kayıt yapmak için log modülüne dayanabilir, NLog kullanabilirsiniz, ayrıca log4net kullanabilirsiniz, log modülü bir bağımlılık haline gelir ve hangisini kullanacağımız bu bağımlılığı manuel olarak nasıl enjekte ettiğimize bağlıdır. Peki nasıl enjekte ediyorsunuz? Daha sonra Bileşim Kökünü (Composition Root) tartışacağız.

    Örnek projede gördüğünüz gibi, yalnızca Açık/Kapalı ve Liskov'un Yerine Geçme Prensiplerini kod tabanınıza uygulamanız gerekir. Bunu yaptıktan sonra sınıflarınız, Bağımlılık İnversiyon Prensibi'ne de uyar. Herhangi bir arayüz soyutlamasını değiştirmediğiniz sürece bu, diğer sınıfları etkilemeden daha yüksek ve daha düşük bileşenleri değiştirmenizi sağlar.

    # DI, IoC ve DIP arasındaki fark

    Buradaki DI, DI kapsayıcı değil DI teknolojisidir. Autofac, Ninject, vb. geliştirilmesinde kullandığımız bağımlılık enjeksiyon yapısı, DI kapsayıcına aittir.

    Bileşim Kökü, bir tasarım desenidir. Bu tasarım desenini kullanmanın anahtarı, Bileşim Kökünün bulunduğu yeri bulmak zorunda olduğumuzdur. Neyse ki, öncekiler bize bir çözüm verdi: uygulama giriş noktasına mümkün olduğu kadar yakın… Peki Bileşim Kökü ne içindir? Kısacası, yapılandırma, bu yanıltıcı olabilir, ancak birleşik kök bir DI kapsayıcısıdır- başka bir deyişle, bağımlı bir ilişki kurar. Yani, bu uygulamada hangi soyut tipin hangi özel tipe tekabül ettiği, bileşim kökünde bir şekilde ayarlanması gerektiğidir. Burada belirtilen soyut tip, C#'da bir arayüz veya soyut bir sınıf olabilir. Aslında, DI uygulama pratiğinde bu şekilde soyutlama yapmak önemli değildir. Soyut türünü yalnızca belirli Tür bağımlılıklarına karşılık gelecek şekilde birleşik kökte ayarlamamız gerekir. Bu ayar doğrudan DI kapsayıcısındaki Register veya AddSingleton gibi yöntemleri çağırabilir. Ancak DI teknolojisinin uygulanması, mutlaka bir DI kapsayıcısının kullanılmasını gerektirmez.

    Kombinasyon kökleri kavramını "sondan başlayarak" bakış açısıyla yeniden düşünüyoruz: Üretim için kullanılabilecek eksiksiz bir uygulamanın çok sayıda hizmet içermesi gerektiği düşünülebilir ve bu uygulamanın uygulanmasının gevşek bir şekilde birleştirilmesini istiyorsak, arayüz izolasyon prensibi kullanılacaktır. Bir servisteki diğer servisleri kullanmamız gerektiğinde, kodu yazarken hangi servislerin uygulanacağını bilemeyiz, bu nedenle kodda doğrudan bir soyutlama çağırırız. Uygulama çalıştıktan sonra, soyuta yapılan asıl çağrıdan önce bir montaj süreci olmalıdır. Sözde derleme, koddaki soyut türe dayanır ve çalışma zamanında somut bir uygulama sağlar; bu da soyut türler ve belirli türler arasında manuel olarak bir haritalama ilişkisi kurmamızı gerektirir. Birleştirilen kök, ilişkinin manuel olarak sağlandığı yerdir. En kolay konsol uygulaması, çalıştırmak için her bir bileşen arasında iş birliği gerektirecektir. Temel bileşenlere dayanan birçok türde üst düzey bileşen vardır. Şu anda en yaygın kullanılan, yapıcı enjeksiyonudur. Uygulanabilir yapıcı enjeksiyonuna bir arayüz atamazsınız, manuel olarak yeni bir uygulama oluşturmanız gerekir. Bu işlem, soyut türü ve belirli bağımlılık türlerini ayarlamaktır.

    Açık Kapalı Prensibe tekrar bakıyoruz, belirli bir fonksiyonun modifiye edilmesi gerektiğinde, orijinal uygulamayı değiştiremeyiz, ancak dekorasyon modu ile bir realizasyon sağlayabiliriz ve daha sonra kombinasyon kökünde yeni bir uygulamaya ilgili bağımlılığı ayarlayabiliriz. Sadece kodu eklemeniz ve kombinasyon kökünü değiştirmeniz yeterlidir. Yeni uygulamanın sorunları varsa, eski uygulamanın gerekli olmadığını öğrenene kadar istediğiniz zaman geri çekebilirsiniz. Bu gereksiz ilişkiyi ortadan kaldırmak için bir yeniden düzenleme adımı uygulanmaktadır. İnsanlar, özellikle çalışmalarını başkalarıyla uzlaştırdıklarında, güvenilmez olabilirler. Bu nedenle, yeniden yapılanmadan önce yeterli birim testi eklememiz ve hatta uygulama öncesi birim testleri yazmamız gerekiyor. Test Odaklı Tasarım, birim testinin önce yazılmasını gerektirir, ünite testi başarısız olursa, test başarılı olana kadar uygulama güncellenir. Ancak yazılım geliştirme burada sona eriyorsa, Test Odaklı değil, yalnızca İlk Test Tasarımı olarak adlandırılabilir. Tasarımın özü yeniden yapılanmadır ve tatmin edici bir düzeye dek ayrıklaştırmadır ve test durumu, yeniden yapılanmanın fonksiyonu bozmayacağının önemli bir garantisidir.

    Bu serinin başında da belirtildiği gibi DI, aslında bir IoC uygulamasıdır, ancak IoC kavramı önerdiği bakış açısına göre daha da yönlendirilmiştir. Birçoğu Hollywood ilkesini duydu: beni arama, ben seni çağıracağım. Bu bir bağımlılık modülü olarak somut bir türdür. Ne zaman ve nasıl çağrılacaklarını önemsemelerine gerek yoktur sadece kendilerinin çağrılması için beklemeleri gerekecektir.

    Son olarak SOLID'deki DIP, üst seviye modüllerin temel modüllere dayanmaması, hepsinin soyutlamaya dayanması gerektiğini gösterir. Bu açıdan DIP, soyutlamanın derecesine fazla dikkat eder. Yani, özel uygulama ve kodun şekli budur.

    Ancak aşağı yukarı bu üç kavramın bir fikri ifade ettiğini, rafine edilmesi gereken bir şey varsa arayüz odaklı programlama olduğunu düşünebiliriz. Arayüzü en alta koymak için uygulama en üste yerleştirilir.

    KAYNAK:https://medium.com/aelfblockchain/aelf-tech-talks-dependency-injection-part-3-2c89a6159056




  • 💰Yorum Yap & Kazan!💰

    📢 Haftalık Dapper (The Dapper Weekly) Twitter Giveaway burada!

    1️⃣ Takip et
    2️⃣ Retweetle & Beğen
    3️⃣ Favori bölümünü yorum olarak belirt (Tüm bölümler tweet altındadır)

    ⭐️ Bu Giveaway'e sponsor oldukları için Aelf Blockchain'e, State Of The DApps'e ve Dapp Review'a çok teşekkür ediyoruz!

    Tweet:https://twitter.com/mappopk_crypto/status/1181444710943969281

    AELF ($ELF) Blockchain (RESMİ ANA KONU)




  • Aelf Teknik Konuşmalar: Bağımlılık Enjeksiyonu Bölüm 4

    Bağımlılık Enjeksiyonunun (Dependency Injection - DI) Üç Boyutu

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    Bu son bölümde, her biri tamamlayıcı olan bağımlılık enjeksiyon teknolojisinin üç boyutu hakkında kısaca konuşacağız.

    1) Nesne kombinasyonu

    Birleştirilmiş kök, bağımlılıkları yapılandırır.

    2) Yaşam Döngüsü Yönetimi

    Yalnızca kombinasyon kökünün bağımlılığı belirleyen yerleşim olduğunu söyledik. Aslında bağımlılığı ayarlarken bağımlılık enjeksiyonu, ayrıca her nesnenin yaşam döngüsünün yönetilmesini gerektirir.

    DI uygulanırken, bağımlılıkların birleştirilmiş kök içerisinde ayarlandığını zaten biliyoruz. Ayrıca birleşik nesnenin nesnesine veya yöntemine kompozitör olarak başvurabiliriz. Birleştirici, düzeneğin dayandığı nesneyi ifade eden birleşik bir terimdir. Veya yöntem. Genel olarak bir DI kapsayıcısı, bir birleştiricidir.

    Birleştiricinin varlığından dolayı nesne, bağımlılıklarının oluşturulmasını yönetmemeye mahkumdur. Bağımlılığın tahribi nedir? Bağımlılıklar zamanında tahrip edilmezse, bellek sızıntısı riski vardır.

    .NET kullanan herkes GC'nin otomatik olarak kullanılmayacak nesneleri geri kazanacağını bilir ve IDisposable arayüzünü uygularsak, nesneleri kendimiz imha edebiliriz.

    DI'de, bir nesnenin yaşam döngüsü bir birleştirici tarafından yönetilir. Birleştirici, bağımlı bir nesnenin diğer farklı nesnelerle paylaşılıp paylaşılmayacağına veya nesneyi ne zaman serbest bırakacağına karar verebilir: belirli bir tüketicinin kapsamı dışında mı yoksa tüm tüketicilerin rolü ötesinde mi bırakılacağına karar verebilir.

    Nesne yaşam döngüsünün yönetimi, bağımlılık enjeksiyonunda en karmaşık problemlerden biri olmalıdır. Bağımlılık enjeksiyonunun uygulanmasını desteklemek için Uzantılar adlı Microsoft’un Repo’suna göz atalım. Bu proje, tüm nesnelerin “ServiceLifetime” da tanımlanan üç yaşam tarzına sahip olduğunu belirtir. Kelimenin kendisi yaşam tarzı ya da iş tarzı anlamına gelir ve bir yaşam döngüsü türüne çevrilmiş gibi görünmektedir. Bu üç yaşam döngüsü tipi, DI kapsayıcısı perspektifinde daha iyi anlaşılabilir, ancak DI kapsayıcısı kullanılmadığında nesne yaşam döngülerini yönetme önerisi de mevcuttur. Bu üç kategori hâlâ geçerlidir:

    - Singleton. Aynı soyutlama örneği, başvuru boyunca her zaman paylaşılır.

    - Kapsamlı. Belirli bir rol için bir singleton kullanmak, ancak farklı kapsamlar için farklı örnekler sağlar.

    - Geçici. Her istek yeni bir örnek döndürür.

    3) Intercept

    Teoride, kod uygulaması SOLID ilkesine uygunsa, dekoratör modunda Cephe yönelimli programlama (Aspect-oriented programming  - AOP) uygulanabilir. Genel yaklaşım, önceki XXService için XXServiceDecorator adlı bir alt sınıf oluşturmak, XXService'e XXServiceDecorator'a bir yapıcı parametresi olarak enjekte etmek ve XXServiceDecorator'da genelde, doğrudan çağrı, koşullardan önce ve sonra intercept için XXService yöntemini yeniden uygulamaktır. Son olarak, birleştirilmiş kökte XXService yerine XXServiceDecorator değerini ayarlayın.

    Not: AOP uygulamanın, Dinamik Interception (dinamik proxy de denir) ve Derleme Süresi Weaving (ayrıca IL Weaving olarak da bilinir) olmak üzere iki yolu vardır. Bu iki konu hakkında inceleme yapmayacağız.

    # Demo
    https://github.com/EanCuznaivy/DIDemo?source=post_page-----3015d4a5f7a1----------------------

    KAYNAK:https://medium.com/aelfblockchain/aelf-tech-talks-dependency-injection-part-4-3015d4a5f7a1




  • ✅ Zhuling Chen ve Aelf Singapur ekibi, Huawei Konferansına katılmak üzere davet edildi. Zhuling; Aelf Blockchain'in avantajları ve sürekli büyüyen, olası kullanım durumları ve Huawei ile olan partnerlik ile ilgili bir sunum yaptı.

    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    AELF ($ELF) Blockchain (RESMİ ANA KONU)


    AELF ($ELF) Blockchain (RESMİ ANA KONU)




  • 
Sayfa: önceki 910111213
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.