Cara Membuat Smart Contract Polkadot Dengan Mudah

Evolusi di ruang blockchain sangat penting untuk menyediakan pengguna dengan jaringan blockchain khusus kasus penggunaan yang lebih baik. Sementara sebagian besar blockchain generasi kedua seperti Ethereum dapat mengatasi tantangan blockchain generasi pertama, interoperabilitas tetap menjadi tantangan yang signifikan.

Polkadot memberikan solusi untuk masalah interoperabilitas dengan kemampuannya untuk menghubungkan berbagai blockchain heterogen yang dikembangkan sebagai Parachains. Polkadot selanjutnya memungkinkan interoperabilitas antara Parachains dan rantai eksternal seperti Ethereum melalui jembatan.

Selain memungkinkan interoperabilitas antara Parachains dan blockchain eksternal, jembatan Polkadot bertindak sebagai lapisan penghubung yang memungkinkan perusahaan untuk berinteraksi dengan dan mengakses database dunia nyata atau non-blockchain.

Polkadot memfasilitasi beragam pengembangan dApp dan pengembangan ekosistem blockchain dengan manfaat tersebut. Smart contract merupakan bagian integral dari pengaturan blockchain atau dApp. Mari kita pahami pengembangan smart contract dan penerapannya di Jaringan Polkadot.

Mengapa Kamu harus memilih Polkadot untuk pengembangan Smart Contract?

Polkadot adalah protokol blockchain generasi terbaru yang memungkinkan interoperabilitas di berbagai blockchain. DApp yang dibangun di ekosistem Polkadot sebagai Parachain secara inheren dapat dioperasikan dengan Parachains lain di jaringan. Parachains adalah blockchain layer-1 canggih yang membangun ekosistem beragam dari blockchains independen dan memungkinkan komunikasi, meningkatkan pendekatan warisan dari blok blok tertutup.

Smart Contract Polkadot

Berikut ini adalah manfaat lain yang ada pada Polkadot:

  • Polkadot memungkinkan pengembang smart contract untuk memanfaatkan manfaat mendasar dari rantai relai Polkadot, keamanan bersama, tata kelola, konsensus, dan skalabilitasnya.
  • Dengan fleksibilitas tinggi dan fasilitas untuk mengembangkan Parachain itu sendiri, Polkadot menghilangkan kesulitan dalam mengoptimalkan kasus penggunaan apa pun, memastikan layanan yang dioptimalkan sepenuhnya dan lebih aman tanpa waktu henti.
  • Serupa dengan komponen dan kasus penggunaan lainnya, pengembang di Polkadot dapat melakukan pemutakhiran berkala pada smart contract, menjaganya agar tetap berfungsi dengan baik dan dimutakhirkan sesuai dengan teknologi terbaru.
  • Smart contract yang dibuat untuk Parachains mendapatkan keamanan yang kuat dari blockchain yang mendasarinya- tidak perlu menyiapkan jaringan penambang dari awal atau mengumpulkan validator.

Apa tools dan stack teknologi yang diperlukan untuk membangun Smart Contract Polkadot

Polkadot menawarkan berbagai alat, SDK (Software Development Kits), PDK (Parachain Development Kits), testnet, dan kerangka kerja blockchain untuk mendukung pengembangan solusi web 3 generasi berikutnya dan dApps. Jaringan memperbarui alat dan sumber daya untuk membuat ekosistem Polkadot lebih relevan dan kuat. Kami telah mengurutkan beberapa daftar singkat alat dan sumber daya penting yang sering digunakan untuk pengembangan.

Peralatan Yang Diperlukan

  • Substrate
  • Substate developers docs
  • Substrate VSCode plugin
  • Substrate debug kit
  • Diener
  • Polkadot Launch
  • Halva
  • Fork-off Substrate
  • SRtool
  • sub-bench
  • substrate-devhub-utils
  • sub-flood

Bahasa Pemrograman Yang Diperlukan

  • Rust
  • Ruby
  • Go
  • C++
  • Typescript
  • AssemblyScript
  • Haskell
  • Java
  • Python

Testnet & SDK Yang Diperlukan

  • Kusama: Testnet untuk memastikan optimalisasi smart contract sebelum penyebaran mainnet.
  • Testnet Rococo: Polkadot untuk Parachian.

Cara Membuat, Mengembangkan Dan Menyebarkan Smart Contract Polkadot?

  1. Kontrak Frontier EVM
  2. Kontrak substrat
  3. Install Ink! CLI
  4. Buat Ink! Proyek

Rantai relai mengoordinasikan Parachains di jaringan Polkadot dengan mulus, tetapi rantai itu sendiri tidak mendukung smart contract. Namun, Kamu dapat menggunakan Parachain sebagai ekosistem blockchain untuk mengembangkan blockchain atau dApp dan kemudian menggunakan rantai Relay untuk terhubung dengan Jaringan Polkadot utama.

Polkadot menggunakan Substrat sebagai SDK blockchain yang mencakup logika jaringan, antrian transaksi, penerjemah perakitan web, dan implementasi elemen seperti saldo token. Substrat saat ini mendukung pengembangan smart contract dengan dua cara berikut.

Kontrak Frontier EVM

Frontier menawarkan seperangkat alat yang memungkinkan rantai berbasis Substrat untuk menjalankan kontrak EVM secara asli menggunakan antarmuka RPC/API yang umum.

Kontrak substrat

Substrat adalah kerangka kerja blockchain yang mendukung masa depan multichain. Pengembang Polkadot menggunakan Substrat untuk mengembangkan kasus penggunaan blockchain dengan cepat dan mengoptimalkannya untuk kegunaan yang lebih baik.

Kami akan menggunakan kerangka kerja blockchain Substrat dalam panduan dari dua metode di atas untuk mengembangkan smart contract Polkadot.

1. Instal Prasyarat di Komputer Kamu

Menginstal prasyarat adalah mempersiapkan komputer Kamu untuk pengembangan Substrat. Ikuti dua langkah yang diberikan untuk memulai dengan bahasa pemrograman Rust:

Debian/Ubuntu

Jalankan perintah berikut menggunakan shell terminal:

sudo apt update
#May prompt for location information
sudo apt install -y git clang curl libssl-dev llvm libudev-dev

Arch Linux

Jalankan perintah berikut dari terminal:

pacman -Syu --needed --noconfirm curl git clang

Fedora

Jalankan perintah berikut dari terminal:

sudo dnf update
sudo dnf install clang curl git openssl-devel

OpenSUSE

Jalankan perintah berikut dari terminal:

sudo zypper install clang curl git openssl-devel llvm-devel libudev-devel

Untuk macOS

Jalankan perintah berikut di terminal:

#Install Homebrew if necessary https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Make sure Homebrew is up-to-date, install openssl
brew update
brew install openssl

Untuk Windows

Jalankan perintah berikut:

#Install Homebrew if necessary https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
#Make sure Homebrew is up-to-date, install openssl
brew update
brew install openssl

Rust developer environment

Use http://rustup.rs installer and the rustup tool for managing the Rust toolchain. Install and configure rustup:
# Install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Configure
source ~/.cargo/env
Configure the Rust toolchain to the newest stable version, add nightly wasm target and nightly:
rustup default stable
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

Uji Pengaturan Kamu

Uji seluruh pengaturan Kamu untuk memastikan bahwa komputer Kamu sepenuhnya siap untuk pengembangan Substrat.

Instal Node Kontrak Substate

Untuk mendukung pengembangan substrat, kami memerlukan palet kontrak bawaan. Untuk panduan ini, kami menggunakan node Substrat yang telah dikonfigurasi sebelumnya. Untuk menggunakannya, jalankan perintah berikut:

cargo install contracts-node --git https://github.com/paritytech/substrate-contracts-node.git --tag v0.10.0 --force --locked

2. Ink! CLI

Alat berikutnya dan terakhir yang perlu kita gunakan untuk pengembangan Substrat adalah Ink!

Pasang Ink! Utilitas baris perintah untuk membuat pengaturan smart contract Substrat sederhana dan lebih mudah. Sebagai prasyarat alat ini. Kamu juga perlu mengoptimalkan bytecode WebAssembly kontrak.

Kamu dapat langsung menginstal Ink! dengan menjalankan kode berikut:

#For Ubuntu or Debian users
sudo apt install binaryen

#For MacOS users
brew install binaryen

Setelah Kamu menyelesaikan Ink! instalasi paket, jalankan perintah berikut:

cargo install cargo-contract --vers ^1.0 --force --locked

Kamu sekarang dapat menggunakan kontrak kargo –help dan menggunakan perintah yang tersedia.

3. Buat Ink! Proyek

Langkah selanjutnya adalah menggunakan Ink! untuk menghasilkan file yang diperlukan untuk pengembangan smart contract Substrat.

Jalankan perintah berikut dari direktori kerja Kamu:

cargo contract new flipper

Dengan menjalankan perintah ini, Kamu akan membuat folder baru bernama flipper yang perlu kita jelajahi nanti dalam proses pengembangan:

cd flipper/
For ink! contract project
flipper
└─ http://lib.rs <-- Contract Source Code
└─ Cargo.toml <-- Rust Dependencies and ink! Configuration
└─ .gitignore

1. Buat Kode Sumbernya

Sejak ink! CL secara otomatis membuat kode sumber pada kontrak “Flipper”; ini dianggap sebagai prosedur pengembangan smart contract polkadot yang paling sederhana.

Di sini, kontrak Flipper adalah bool yang dibalik dari benar ke salah menggunakan fungsi flip(). Dalam panduan ini, kami menjaga detailnya tetap lurus tanpa detail yang lebih dalam saat kami menjalani proses pengembangan smart contract yang lebih canggih.

2. Menguji Kode Kontrak Kamu

Di bagian bawah kode sumber, kami menemukan kasus uji paling sederhana yang menunjukkan dan memverifikasi fungsi smart contract. Kamu juga dapat dengan cepat menguji kode menggunakan lingkungan pengujian off-chain yang disediakan oleh Ink! Menguji kode memastikan bahwa kode berjalan seperti yang diharapkan.

Jalankan perintah berikut di folder proyek:

cargo +nightly test

Setelah itu, Kamu akan mendapatkan kompilasi tes yang berhasil seperti ini:

$ cargo +nightly test
running 2 tests
test flipper::tests::it_works ... ok
test flipper::tests::default_works ... ok
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Sekarang kami yakin tentang kontrak yang dibangun dengan baik, Kamu dapat melanjutkan untuk mengkompilasi kontrak ini ke Wasm.

3. Membangun Kontrak Kamu

Kompilasi smart contract pada direktori proyek Flipper adalah dengan menjalankan perintah berikut:

cargo +nightly contract build

Melalui perintah ini, Kamu dapat membuat biner Wasm untuk ink! Kamu. Proyek dan file metadata dan file .contract yang menggabungkan keduanya. Perhatikan bahwa file .contract Kamu digunakan untuk men-deploy kontrak secara on-chain. Jika semuanya dilakukan dengan benar, Kamu akan melihat folder target yang berisi file-file berikut:

target
└─ ink
└─ release
└─ ...
└─ .rustc_info.json
└─ CACHEDIR.TAG
└─ flipper.contract
└─ flipper.wasm
└─ metadata.json

Juga, mari kita lihat struktur metadata.json:

{
"metadataVersion": "0.1.0",
"source": {...},
"contract": {...},
"spec": {
"constructors": [...],
"docs": [],
"events": [],
"messages": [...],
},
"storage": {...},
"types": [...]
}

File di atas menjelaskan setiap antarmuka yang digunakan untuk membantu Kamu berinteraksi dengan kontrak Kamu:

  • types memberi Kamu data khusus yang digunakan untuk sisa JSON.
  • storage menunjukkan item penyimpanan yang dikelola kontrak Kamu dan pada akhirnya memungkinkan Kamu untuk mengaksesnya.
  • file spec berisi informasi mengenai fungsi yang dapat dipanggil yang dapat digunakan pengguna untuk berinteraksi dengan kontrak, seperti konstruktor dan pesan. Ini juga berisi informasi yang berguna seperti peristiwa atau dokumen kontrak.
4. Menjalankan Smart Contract Node untuk Substrat

Setelah Kamu berhasil menginstal substrate-contracts-node, jalankan node berikut untuk memulai pengembangan lokal:

substrate-contracts-node --dev

Setelah menjalankan kode, Kamu akan melihat node yang memproduksi blok di terminal.

5. Menyebarkan Kontrak Kamu

Proses penyebaran kontrak untuk Substrat terdiri dari dua langkah:

  1. Menempatkan kontrak Kamu di blockchain
  2. Membuat contoh kontrak
1. Unggah Kontrak Kamu di Blockchain

Dengan pola penerapan kontrak ini, Kamu dapat menempatkan kode kontrak seperti standar ERC20 di blockchain untuk satu kali, tetapi Kamu dapat membuat instance berkali-kali. Jadi Kamu tidak perlu mengunggah kode kontrak yang sama beberapa kali karena kode tersebut menempati ruang yang tidak perlu di blockchain.

Ikuti langkah-langkah yang diberikan untuk mengunggah kode kontrak dan membuat satu salinan kontrak di bagian atas blockchain:

  • Klik tombol “Add New Contract” yang diberikan di bilah sisi.
  • Klik tombol “Upload New Contract” yang diberikan di atas “Add New Contract Page”.
  • Sekarang, pilih akun Instansiasi. Misal seperti ALICE.
  • Berikan nama deskriptif untuk kontrak. Misalnya, Kontrak Flipper.
  • Tarik flipper. Kontrak file ke dalam area drag & drop, yang berisi gumpalan Wasm dan metadata yang dibundel.
  • UI akan mengurai metadata dan mengaktifkan tombol untuk memindahkan Kamu ke fase berikutnya.
  • Lanjutkan lebih lanjut dengan mengklik tombol “Next”.
2. Instansiasikan Kontrak Kamu di Blockchain

Smart Contract Polkadot Kamu ada di blockchain sebagai perpanjangan akun. Oleh karena itu, membuat instance kontrak ini akan menghasilkan AccountId yang menyimpan saldo yang dikelola oleh smart contract, yang memungkinkan pengguna berinteraksi dengan smart contract.

Informasi yang mencerminkan smart contract kita sekarang ditampilkan di layar. Kita akan membuat replika smart contract sebagai berikut:

  • Terima parameter default Deployment Constructor’s kontrak.
  • Terima pengaturan default. Jumlah maksimum gas yang diperbolehkan adalah 200000.
  • Pilih Next.

Setelah Kamu menyelesaikan langkah-langkah ini, semua transaksi akan diantrekan. Sekarang, tinjau data dan kemudian klik “Upload and Instantiate”. Atau, Kamu juga dapat kembali dan mengubah input.

Saat Kamu mengklik “Upload and Instantiate”, Kamu akan melihat pemrosesan ekstrinsik instantiateWithCode, dan sebuah tampilan akan muncul, termasuk pembuatan akun baru (system. new account) dan pembuatan kontrak (contracts. Instantiated). Kamu akan diarahkan ke halaman baru yang memungkinkan Kamu berinteraksi dengan kontrak baru secara instan.

Kesimpulan

Sementara interoperabilitas saat ini merupakan elemen paling penting di seluruh ruang blockchain, Polkadot memungkinkan Parachains yang terhubung untuk beroperasi dan berbagi data dan token secara bersamaan. Untuk non-Parachains, jaringan blockchain ini menawarkan interoperabilitas melalui cross-chain Polkadot bridges.

Polkadot memiliki dua tujuan utama yaitu memberikan keamanan bersama ke Parachains dan memungkinkan semua rantai yang terhubung untuk beroperasi. Jaringan semakin mengurangi waktu pengembang untuk mengembangkan dan meluncurkan rantai baru. Menggunakan Parachain develop kits (PDK), Parachain dapat dikembangkan dan diluncurkan hanya dalam beberapa minggu atau bahkan beberapa hari.

5/5 - (255 votes)
Share Jika Bermanfaat Ya 🙂

Leave a Comment