MultiChain 2.1: Değişkenler ve Kitaplıklar

Kaynak Düğüm: 1587135

Akıllı Filtreleri çok daha akıllı hale getirmek

Bugün, MultiChain geliştiricileri için iki önemli yeni özellikle birlikte MultiChain 2.1'i piyasaya sürmekten mutluluk duyuyoruz.

Bir buçuk yıl önce MultiChain 2.0 tanıtıldı Akıllı Filtrelerİşlemleri ve verileri doğrulamak için özel mantığın bir blok zincirine gömülmesini sağlayan . Akıllı Filtreler, kavramsal olarak diğer blok zinciri platformları tarafından sağlanan “akıllı sözleşmelere” benzer, ancak MultiChain'in daha hızlı işlem modeline uyacak farklı bir tasarıma sahiptir.

Akıllı Filtreler iki çeşittir – işlem filtreleri ve akış filtreleri. Bir işlem filtresi, girdilerini, çıktılarını ve meta verilerini inceleyerek zincir üzerindeki işlemleri bütünüyle doğrular. Bir işlem filtreyi geçemezse, ağdaki her düğüm tarafından reddedilir. Bir akış filtresi, bir Çoklu Zincir akışı, anahtarlarına, yayıncılarına ve zincir içi veya zincir dışı verilerine JSON, metin veya ikili biçimde bakarak. Bir öğe filtreyi geçemezse, geçersiz olarak işaretlenir ve verileri akışa abone olan her düğüm tarafından gizlenir.

Her iki Akıllı Filtre türü de JavaScript'te yazılmıştır ve Google'ın deterministik bir sürümünde çalıştırılır. V8, Chrome, Node.js ve diğer birçok platforma güç sağlayan süper hızlı JavaScript motoru. Basit filtrelerin kodlanması ve anlaşılması kolaydır - örneğin, öğelerin en az iki anahtarı olduğunu doğrulayan bir akış filtresi:

function filterstreamitem() { var item=getfilterstreamitem(); // (item.keys.length2) "En az iki anahtar gerekli" döndürürse geri çağırma işlevi; }

Genel olarak, Akıllı Filtreler hakkında harika geri bildirimler aldık, ancak onları daha da iyi hale getirmenin iki yolunu da defalarca duyduk. İlk olarak, birçok kullanıcı, blok zincirinde bulunan ancak doğrulanan işlem veya akış öğesinde olmayan bilgileri okuyabilen filtreler ister. Kullanım örnekleri, izin verilen ülkelerin değişen bir listesini, harici bir "kahin" tarafından sağlanan döviz kurlarını veya belirli kuralları değiştirmek için bir anahtarı içerir.

İkincisi, bazı geliştiriciler, kodu çoğaltmadan birden çok filtrede bir dizi JavaScript işlevi kullanmak ister. Ayrıca, mevcut filtrelerini devre dışı bırakmadan ve yerlerine yenilerini oluşturmadan, bir hatayı düzeltmek veya bazı yeni durumları kapsamak için bu işlevleri güncelleyebilmek isterler. Örneğin, paylaşılan kod, uygulamaya özel mantık, JSON'ları doğrulamak veya bir PDF içeriğini ayrıştırmak için bir üçüncü taraf kitaplığı içerebilir.

Çoklu Zincir 2.1 iki yeni zincir üstü varlık türü sunar, değişkenler ve kütüphaneler, bu ihtiyaçlara cevap vermek için.

Değişkenler

MultiChain değişkenleriyle başlayalım. Bunlar, normal programlama dillerindekilere oldukça benzer, ancak bir blok zinciri bükülmesiyle çalışır. Blok zincirinde herhangi bir sayıda adlandırılmış değişken oluşturulabilir. Her değişkenin, değerini güncellemesine izin verilen dinamik bir adres kümesi vardır ve bu küme, bir veya daha fazla değişken yöneticisi tarafından yönetilir (varsayılan olarak, yalnızca değişkenin yaratıcısı). Değişkenler, basit bir üst düzey API komutu kullanılarak gönderilebilen bir blok zinciri işleminde oluşturulur veya güncellenir. Alternatif olarak, bir veya daha fazla değişkeni atomik olarak ayarlayan, akış öğeleri yazan, varlıkları aktaran, izinleri değiştiren vb. karmaşık işlemler oluşturmak için daha düşük seviyeli API'ler kullanılabilir.

Değişken değerinin kendisi, sayılar, dizeler, boole'ler, iç içe nesneler ve diziler dahil olmak üzere herhangi bir JSON yapısını içerebilir ve zincir üzerinde verimli bir şekilde depolanır. UBJSON serileştirme biçimi. Elbette Akıllı Filtreler, basit bir geri arama işlevi kullanarak bir değişkenin geçerli değerini sorgulayabilir. Ancak bu bir blok zinciri olduğu için, değişken değerlerinin ve yazarlarının tam geçmişi de mevcuttur ve başka bir geri arama işlevi kullanılarak kısmen veya tamamen alınabilir. Geliştirmeyi kolaylaştırmak için bu geri aramalar, uygulamaya yönelik API aracılığıyla da kullanılabilir.

Kütüphaneler

Değişkenlerin büyük kardeşi olan kütüphanelere geçelim. Değişkenlerde olduğu gibi, blok zincirinde herhangi bir sayıda adlandırılmış kitaplık oluşturulabilir. Ancak kütüphaneler, mevcut üç mod ile güncelleme için daha zengin bir modele sahiptir – değişmez, anlık, ve onaya tabi.

Bir kez değişmez kütüphane oluşturulur, kodu asla değiştirilemez. ile bir kütüphane anlık güncellemeler, kodunu tek tek değiştirebilen bir dizi adresle bir değişken gibi değiştirilebilir. Ama bir kütüphanede onaya tabi güncellemeler, bir güncelleme ancak blok zincirinin küresel yöneticilerinin belirli bir oranı tarafından onaylandıktan sonra uygulanır. Bu son mod, güvenlik ve esneklik arasında büyük bir denge sağlar.

Bir kitaplığın kodu normal JavaScript ile yazılır ve Akıllı Filtrelerin kullanması için bir veya daha fazla işlevi tanımlar. Değişkenlerde olduğu gibi, kütüphaneler özel bir işlemde oluşturulur veya güncellenir, API kullanılarak kolayca gönderilir. Bir Akıllı Filtre oluşturulduğunda, bunun gerekli kitaplıkları isteğe bağlı bir parametrede sağlanır. Bir kitaplık her zaman onu gerektiren filtre bağlamında çalışır, böylece uygun olduğunda Akıllı Filtre geri aramalarını kullanabilir. MultiChain, blok zincirinde bir değişiklik yapmadan önce kitaplıkları ve güncellemelerini yerel olarak test etmek (ve geri almak) için kapsamlı işlevsellik sağlar.

Sonuç olarak

Blok zincirinin kurallarıyla ilgili tüm özelliklerde olduğu gibi, değişkenler ve kitaplıklar MultiChain 2.1'in hem Community hem de Enterprise sürümlerinde mevcuttur. Geliştirici belgelerimiz, yeni sürümün ayrıntılı bir açıklamasını sağlar. JSON-RPC API'leri ve Akıllı Filtre geri aramaları mevcut. Halihazırda çalışan bir blok zincirinde yeni özellikleri kullanmak için önce düğümleri MultiChain 2.1'e geçirin, ardından yükseltmek zincirin protokolü 20012 sürümüne.

Sırada ne var? Önümüzdeki aylarda, önemli bir yük altındayken MultiChain'in performansını ve eşzamanlılığını iyileştirmek için bazı ayrıntılı ve yoğun kaporta altı çalışmalara odaklanacağız. Bu, saniyede yüzlerce veya binlerce yeni işlemi işlemeye devam ederken bir düğümü sorgulaması gereken uygulamaların yanıt verme hızını artıracaktır.

Bu arada, MultiChain ekibindeki hepimiz, kullanıcılarımıza ve müşterilerimize önümüzdeki yıl için sağlık ve akıl sağlığı diliyoruz. Bunların herkes için zor zamanlar olduğunu biliyoruz ve güvenli olur olmaz toplantı ve konferansların normal ritmine dönmeyi dört gözle bekliyoruz.

Lütfen herhangi bir yorum gönderin LinkedIn'de.

Zaman Damgası:

Den fazla Çoklu zincir