Alıcı İşlevi için En İyi Uygulamalar

Aug 16 2020

Bir web sitesinde görüntülemek istediğim bir dizim var unit public x[31]. Web3.js aracılığıyla, x [0] ile x [31] arasında 32 farklı çağrı oluşturabilirim. Alternatif olarak, sağlamlık sözleşmeme yalnızca diziyi sunan bir alıcı görünümü işlevi ekleyebilirim.

function showX()
        public
        view
        returns (uint[32] memory Xout)
    {
        Xout= x;
    }

Katılık sözleşmemde yerleşik olan bu işlevle, bunu javascript dosyamda bir kez çağırmam ve ardından diziye sahip olmam gerekir. Böylece, ya javascript'e ya da sağlamlığa daha fazla iş yükleyebilirim. Her iki yöntem de daha verimli / zarif mi?

Yanıtlar

1 LauriPeltonen Aug 16 2020 at 02:28

viewFonksiyonlarla uğraştığınız için her halükarda pek bir fark yok. Veriler doğrudan kullandığınız düğümden alınır ve blok zincirine gerçek bir işlem yoktur. Bu nedenle, ya tarayıcınızın bilgisayarını (JavaScript) ya da düğümünüzün bilgisayarını daha fazla kullanıyorsunuz. Ayrıca bu görüşmelerin maliyeti yoktur.

Mimari bir bakış açısıyla, ihtiyaçlarınızı düşünürdüm: muhtemelen çok sayıda girişi geri almanız gerekmiyorsa, bunları tek tek geri almak daha kolay olabilir. Öte yandan, muhtemelen ne şekilde yaparsanız yapın, çok önemsiz miktarlarda veriden bahsediyoruz, bu nedenle hız veya bellek gereksinimleri açısından gerçek bir fark yaratmıyor. Ayrıca her iki yolun da diğerinden daha zarif olduğunu düşünmüyorum - sadece ihtiyaçlarınızı düşünün.