Wasmd 0.30 Dirilis

Dec 20 2022
Rilis akhir tahun! Ini merupakan tahun 2022 yang penting dalam banyak hal, baik dan buruk, jadi mengapa tidak mengakhirinya dengan rilis Wasmd yang hebat? Kami memiliki sejumlah besar permintaan fitur komunitas untuk ditinjau dan diprioritaskan, dan dengan senang hati kami umumkan bahwa dengan Wasmd v0.30, kami berhasil mendapatkan banyak permintaan di rilis akhir tahun ini.

Rilis akhir tahun!

Foto oleh Aaron Burden di Unsplash

Ini merupakan tahun 2022 yang penting dalam banyak hal, baik dan buruk, jadi mengapa tidak mengakhirinya dengan rilis Wasmd yang hebat?

Kami memiliki sejumlah besar permintaan fitur komunitas untuk ditinjau dan diprioritaskan, dan dengan senang hati kami umumkan bahwa dengan Wasmd v0.30, kami berhasil mendapatkan banyak permintaan di rilis akhir tahun ini.

Seperti biasa, terima kasih banyak kepada semua kontributor yang memungkinkan rilis ini!

Ikhtisar (TLDR)

Wasmd v0.30 berisi beberapa perubahan yang sangat diminta oleh komunitas, selain perbaikan dan peningkatan bug biasa, kami juga mengirimkan yang berikut ini:

  • Integrasi modul Autz
  • Upgrade IBC ke v4.2.0 dengan akun interchain v0.2.4
  • Tambahkan panduan Pengembang dan praktik terbaik
  • Bump Go minimum ke 1.19
  • Menyimpan dan membuat instance proposal gov
  • Izinkan suara pemerintah untuk mengunggah bytecode wasm yang lebih besar
  • Perkenalkan AcceptListStargateQuerier
  • Dapatkan Kontrak berdasarkan Alamat Pembuat
  • Mendukung izin instantiasi > izin berantai untuk toko gov

Integrasi modul Autz

Modul authz adalah modul Cosmos-SDK untuk memberikan otorisasi ke akun lain (penerima) dan untuk menjalankan tindakan berantai atas nama akun asli (pemberi).

Ini sangat berguna untuk melindungi kunci akun pribadi karena hanya diperlukan untuk operasi hibah, tetapi kemudian kunci penerima dapat digunakan. Ini juga dapat membantu untuk mencocokkan struktur organisasi atau proses di mana akses ke kunci pribadi pemberi dibatasi.

Otorisasi yang diberikan datang dengan banyak kekuatan karena dijalankan dengan akun pemberi. Oleh karena itu, ekstensi authz tertentu ada di modul lain yang membatasi ruang lingkup tindakan. Misalnya di bank. Otorisasi, jumlah total token, ditentukan yang dapat ditransfer.

Modul authz dilengkapi dengan otorisasi umum yang menerima jenis pesan. Ini berfungsi dengan modul Cosmos apa pun, termasuk wasmd. Masalahnya adalah bahwa kontrak wasm biasanya mendukung sejumlah operasi, dan kontrol akses yang halus tidak akan mungkin dilakukan.

Ekstensi Otorisasi wasmd dibangun untuk mendukung tingkat kontrol akses yang lebih baik. Filter dapat ditentukan untuk mencocokkan pesan kontrak pada eksekusi dan migrasi. Wasmd hadir dalam iterasi pertama dengan filter berikut:

AllowAllMessagesFilter — wildcard untuk mencocokkan pesan kontrak apa pun

AcceptedMessageKeysFilter — pesan kontrak ditafsirkan sebagai objek json dengan tepat satu kunci. Kunci ini dapat diatur dalam daftar penerimaan untuk diterima. Misalnya, dengan set `withdraw, delegate`, pesan `{“withdraw”: {}}` dan `{“delegate”:{}}` diizinkan tetapi `{“sent”:{}}` tidak seperti kuncinya tidak ada dalam daftar.

AcceptedMessagesFilter — filter ini tidak membuat asumsi tentang pesan kontrak. Mereka ditafsirkan sebagai data biner murni dan dibandingkan. Perubahan kecil dalam pemformatan memang penting. Misalnya, dengan {"withdraw":{}}pesan kontrak yang ditetapkan harus {"withdraw":{}}while {"withdraw":{} }akan ditolak (perhatikan spasi).

Namun, manfaat dari filter ini adalah ia juga berisi data setelah kunci objek. Misalnya, {"vote":"yes"}tidak dapat diubah menjadi{"vote":"no"}

Elemen lain dari perpanjangan Otorisasi wasmd adalah batasannya. Karena operasi dijalankan dalam lingkup rekening pemberi, ia memiliki akses penuh ke saldo bank mereka. Pemberi hibah memiliki kepentingan untuk membatasi ini dan tetap memegang kendali. Misalnya, operasi {“withdraw”:{}} mungkin tidak memerlukan akses ke saldo sementara {“delegate”:{}} memerlukannya. Untuk mendukung kasus penggunaan yang berbeda, kami memiliki batasan berikut yang dapat diatur dengan filter:

MaxCallsLimit — tentukan berapa kali hibah kontrak dapat digunakan, tidak ada transfer token dari akun pemberi yang diizinkan.

MaxFundsLimit — menetapkan anggaran token yang akan dibelanjakan, tidak ada batasan jumlah panggilan.

CombinedLimit — menetapkan anggaran token dan berapa banyak eksekusi yang dapat dilakukan

Batasannya adalah pembaruan setelah setiap eksekusi hibah. Ketika batasnya lewat, maka otorisasi berakhir dan dihapus.

Bacaan lebih lanjut:

https://github.com/cosmos/cosmos-sdk/tree/main/x/authz

Upgrade IBC ke v4.2.0 dengan akun interchain v0.2.4

Peningkatan ini mencakup jabat tangan protokol IBC dan modul biaya middleware, akun antar rantai v0.2.4, serta memperbarui paket ibctesting.

Bacaan lebih lanjut:

https://github.com/CosmWasm/wasmd/issues/960

https://github.com/cosmos/ibc-go/blob/v4.2.0/CHANGELOG.md

https:///the-interchain-foundation/moving-relayer-incentives-on-chain-fee-middleware-fee-grant-and-budget-modules-b6a13eced375

Tambahkan panduan Pengembang dan praktik terbaik.

Pedoman pengkodean telah diperbarui untuk memudahkan pendatang baru serta pengembang yang lebih berpengalaman untuk menemukan dan menyesuaikan diri. Praktik terbaik juga ditambahkan, dan panduan baru serta yang diperbarui dapat ditemukan di sini:

Bump Go minimum ke 1.19

Untuk mengikuti cosmos-SDK, versi Go minimum dinaikkan ke 1.19, yang juga mencegah masalah konsensus pada rangkaian campuran Go 1.18/19.

Bacaan lebih lanjut:

https://github.com/CosmWasm/wasmd/issues/1041

Menyimpan dan membuat instance proposal gov

Di versi sebelumnya, upload wasm (store) dan kontrak instantiate membutuhkan 2 proposal gov yang terpisah.

Sekarang ada jenis proposal gov baru yang memungkinkan kedua langkah dijalankan sebagai satu.

Jadi sekarang kami memiliki lebih sedikit overhead organisasi dan ketergantungan pada pembuatan proposal. (Karena toko harus dijadwalkan dan dieksekusi sebelum dibuat)

Bacaan lebih lanjut:

https://github.com/CosmWasm/wasmd/issues/785

Izinkan suara pemerintah untuk mengunggah bytecode wasm yang lebih besar.

Kami biasa membatasi ukuran wasm hingga 800 KB, yang wajar untuk sebagian besar kontrak, karena tidak diinginkan untuk menaikkan batas global rantai; diusulkan agar kontrak gov dapat menjalankan fungsi ini dan mengizinkan ukuran wasm hingga 4 MB pada saat yang sama dengan Tx normal tetap pada 800 KB.

Bacaan lebih lanjut:

Perkenalkan Accept List Stargate Querier

Kueri Stargate adalah titik ekstensi generik yang ampuh untuk menanyakan status sistem melalui format protobuf generik "Stargate". Dengan rantai ini, data agnostik dapat ditanyakan melalui kontrak, seperti kumpulan likuiditas.

Fitur ini menyebabkan banyak masalah di masa lalu ketika status yang dikembalikan tidak deterministik dan, karenanya, melanggar konsensus. Kami menambahkan daftar terima ini untuk memungkinkan setiap rantai dengan mudah mengonfigurasi daftar putihnya sendiri tanpa mempertahankan banyak fork dan berpotensi menimbulkan bug. Osmosis bercabang untuk mengaktifkan ini untuk modul khusus mereka, dan rantai lain menginginkan fungsionalitas serupa.

Daftar terima, bagaimanapun, adalah cara bagi arsitek rantai untuk menambahkan kembali dukungan untuk kueri Stargate individu yang ingin mereka pertahankan dan dukung (dengan risiko mereka sendiri). Sekarang daftar terima default kosong, dan Anda perlu menyetel variabel dalam kode Go rantai untuk menambahkan jenis kueri apa pun yang ingin Anda aktifkan.

Bacaan lebih lanjut:

https://github.com/CosmWasm/wasmd/issues/904

Dapatkan Kontrak berdasarkan Alamat Pembuat

Di versi sebelumnya, kami memiliki kueri untuk mendapatkan semua instance kontrak untuk kode-id. Kasus penggunaan yang populer adalah memberi saya semua contoh kontrak yang dibuat oleh alamat x.

Pada rilis ini, ini sekarang didukung dan memungkinkan UX yang lebih baik

Bacaan lebih lanjut:

https://github.com/CosmWasm/wasmd/issues/998

Mendukung izin instantiasi > izin berantai untuk toko gov

Ini juga tentang membuat instance pada rantai yang diizinkan.

Di versi sebelumnya, kode store wasm dan pembaruan konfigurasi pada pengaturan contoh kode diperlukan; sekarang, dengan rilis ini, proposal store gov sudah dapat mengatur izin instantiasi yang tepat.

Ini meningkatkan alur kerja pemerintah dan menyimpan satu proposal

Bacaan lebih lanjut:

https://github.com/CosmWasm/wasmd/issues/1020

Terlibat

Seperti yang kau lihat? Beri tahu dunia di Twitter atau bergabunglah dalam diskusi di Discord. Dan ingatlah untuk mengikuti kami di media untuk mendapatkan informasi tentang kelompok Akademi CosmWasm yang akan datang, atau kunjungihttp://academy.cosmwasm.com, di mana Anda dapat meningkatkan keterampilan Anda.

Dan silakan periksa panggilan Komunitas terakhir kami tahun ini, di mana banyak pengumuman menarik akan dibuat pada Selasa, 20 Desember pukul 6 sore CET untuk wawasan lebih awal dan ruang untuk mengajukan pertanyaan.

Agenda: https://github.com/CosmWasm/cosmwasm/issues/1548