Ana içeriğe geç

Akıllı sözleşme güvenlik yönergeleri

solidityakıllı sözleşmelergüvenlik
Orta düzey
Trailofbits
Güvenli sözleşmeler oluşturmak(opens in a new tab)
6 Eylül 2020
4 dakikalık okuma minute read

Daha güvenli akıllı sözleşmeler oluşturmak için bu üst düzey önerileri izleyin.

Tasarım rehberi

Herhangi bir kod satırı yazmadan önce sözleşmenin tasarımı önceden tartışılmalıdır.

Belgeler ve özellikler

Belgeler farklı seviyelerde yazılabilir ve sözleşmeler uygulanırken güncellenmelidir:

Zincir üstü ve zincir dışı hesaplama

  • Zincir dışı bırakabileceğiniz kadar kod saklayın. Zincir üstü katmanı küçük tutun. Verileri zincir dışı kodla, zincir üstünde doğrulamanın basit olacağı şekilde ön işleme tabi tutun. Sıralı bir listeye mi ihtiyacınız var? Listeyi zincir dışı sıralayın, ardından yalnızca zincirdeki sırasını kontrol edin.

Yükseltilebilirlik

Blog gönderimizde(opens in a new tab) farklı yükseltilebilirlik çözümlerini tartıştık. Herhangi bir kod yazmadan önce yükseltilebilirliği desteklemek için bilinçli bir seçim yapın. Karar, kodumuzu nasıl yapılandırdığınızı etkileyecektir. Genel olarak, şunları öneririz:

Uygulama yönergeleri

Sadelik sağlamaya çalışın. Daima amacınıza uyan en basit çözümü kullanın. Ekibinizin herhangi bir üyesi çözümünüzü anlayabilmelidir.

Fonksiyon kompozisyonu

Kod tabanınızın mimarisi, kodunuzun gözden geçirilmesini kolaylaştırmalıdır. Doğruluğu hakkında mantık kurma yeteneğini azaltan mimari seçimlerden kaçının.

  • Ya birden çok sözleşme aracılığıyla ya da benzer fonksiyonları aynı grupta toplayarak (örneğin kimlik doğrulama, aritmetik vb.) sisteminizin mantığını bölün.
  • Açık bir amaç ile küçük işlevler yazın. Bu, incelemeyi kolaylaştıracak ve ayrı bileşenlerin test edilmesini sağlayacaktır.

Kalıtım

Olaylar

  • Tüm önemli işlemleri kaydedin. Olaylar, geliştirme sırasında sözleşmede hata ayıklamaya ve dağıtımdan sonra sözleşmeyi izlemeye yardımcı olur.

Bilinen hatalardan kaçının

Bağımlılıklar

Test ve doğrulama

Solidity

Dağıtım yönergeleri

Sözleşme geliştirilip dağıtıldıktan sonra:

Son düzenleme: @pettinarip(opens in a new tab), 8 Aralık 2023

Bu rehber yararlı oldu mu?