Cara Membuat Smart Contract Solana Dengan Mudah

Bagaimanakah cara membuat smart contract solana? Sebelum kami memberikan tutorialnya, kita intro sejenak mengenai solana ya! Apa itu solana? Siapa pendirinya? dan lain sebagainya. Oke lanjut simak ulasannya di bawah ini:

Anatoly Yakovenko memperkenalkan Solana pada tahun 2017 dengan visi untuk menghilangkan masalah skalabilitas di blockchain yang ada. Pada jaringan gigabit standar, Solana dapat memproses hingga 71.0000 transaksi per detik jika transaksi rata-rata tidak melebihi 176 byte. Platform ini muncul sebagai ekosistem yang tumbuh paling cepat yang kompatibel dengan adopsi global dengan kemampuan hebat dan banyak fitur inovatif.

Platform ini telah dirancang untuk memberdayakan pertumbuhan dan aplikasi terdesentralisasi yang berorientasi pada frekuensi, penting untuk menyiapkan sistem keuangan tanpa izin. Dengan lebih dari 400 proyek yang mencakup Web3, DeFi, NFT, dan sebagainya, blockchain Solana mengklaim sebagai blockchain tercepat di dunia dan ekosistem yang berkembang pesat.

Solana memelopori konsensus bukti sejarah untuk mencapai kecepatan dan skalabilitas tinggi. Ini mengamankan posisi di antara blockchain berkinerja terbaik dengan skalabilitas yang besar dan kemampuan throughput yang sangat baik. Jadi jaringan Solana berkembang dengan banyak proyek baru. Jadi, mari kita pahami konsep yang mendasari blockchain Solana dan pelajari cara membangun & menerapkan smart contract di atas Solana.

Apa itu Solana?

Solana adalah ekosistem blockchain terdesentralisasi yang dirancang untuk menghindari kemacetan dan masalah skalabilitas yang lazim di blockchain yang ada. Blockchain memiliki fokus intinya pada peningkatan skalabilitas seperti transaksi per detik (TPS) yang lebih tinggi dan waktu konfirmasi yang cepat. Ini adalah proyek sumber terbuka yang terdiri dari teknologi revolusioner dari Intel, Netscape, Google, Qualcomm untuk mendukung Solana dalam mempertahankan standar kinerja tinggi. Untuk analisis mendalam tentang Solana, baca wawasan kami yang didedikasikan sepenuhnya untuk Solana.

Apa Arsitektur Smart Contract Solana?

Model smart contract Solana berbeda dari blockchain tradisional yang mendukung EVM. Kontrak berbasis EVM tradisional menggabungkan kode/logika dan status menjadi satu kontrak yang diterapkan secara on-chain. Sebaliknya, smart contract pada Solana tetap dalam mode baca-saja atau tanpa status dan hanya berisi logika program. Setelah smart contract diterapkan, kontrak tersebut dapat diakses oleh akun eksternal, dan akun ini berinteraksi dengan program untuk menyimpan data terkait interaksi program.

Dengan cara ini, pemisahan logis status (akun) dan logika kontrak (program) terjadi, yang merupakan perbedaan signifikan antara smart contract berkemampuan EVM tradisional dan Solana . Selain itu, akun di Solana dan blockchain lainnya (seperti Ethereum) juga sangat berbeda. Akun di Solana menyimpan data (seperti informasi dompet) berbeda dengan akun Ethereum yang hanya menjadi referensi dompet pengguna.

Selain itu, Solana hadir dengan CLI dan JSON RPC API untuk meningkatkan interaksi DApps dengan Solana. Selain itu, aplikasi terdesentralisasi juga dapat menggunakan SDK yang ada untuk berinteraksi dengan blockchain dan program di Solana.

  • Dalam diagram di atas, Program di sebelah kiri mewakili alur kerja pengembangan yang memungkinkan pengguna membuat dan menerapkan program Rust, C, C++ khusus di blockchain Solana .
  • Setelah program ini berhasil digunakan, siapa pun yang berpengalaman dengan keterampilan pemrograman dapat menggunakannya. Untuk berkomunikasi dengan program ini, pengguna perlu menulis dApps dengan SDK klien yang tersedia dan menggunakan JSON RPC API di bawah tenda.
  • Di bawah alur kerja pengembangan kedua, Klien (di kiri bawah), pengguna dapat menulis aplikasi terdesentralisasi untuk berkomunikasi dengan program yang diterapkan. Aplikasi ini mengirimkan transaksi ke program ini melalui SDK klien dan dapat membuat berbagai aplikasi seperti dompet kripto, pertukaran terdesentralisasi, dan banyak lagi.
  • Dua bagian alur kerja- Program dan Klien berfungsi bersama untuk membentuk jaringan lengkap dApps dan program yang dapat berinteraksi untuk memperbarui status dan memeriksa blockchain.

Bagaimana cara membuat smart contract di Solana?

Di bawah bagian ini, Anda akan belajar membuat dan menerapkan smart contract Solana yang disebut ‘hello world.’ HelloWorld ditulis dalam bahasa pemrograman Rust yang mencetak output ke konsol. Sebelum memulai pengembangan, langkah pertama adalah menyiapkan lingkungan Solana di Windows untuk mempermudah pekerjaan.

1. Siapkan Lingkungan Pengembangan Solana

Menjalankan kode smart contract solana langsung dari Windows membingungkan bagi banyak orang. Oleh karena itu, disarankan untuk menyiapkan versi Ubuntu dari WSL (window Subsystem for Linux) sehingga Anda dapat menulis kode di Windows dan kemudian mengkompilasi smart contract Rust ke dalam file .so.

Berikut adalah perintah untuk mengatur lingkungan pengembangan Solana:

  1. apt upgrade
  2. apt update
  3. apt install nodejs
  4. apt install npm
  5. apt install python3-pip
  6. curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh
  7. sh -c “$(curl -sSfL https://release.solana.com/v1.5.7/install)”
  8. source $HOME/.cargo/env
  9. export PATH=”/root/.local/share/solana/install/active_release/bin:$PATH”
  10. export RUST_LOG=solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=debug,solana_bpf_loader=debug,solana_rbpf=debug
  11. solana-test-validator –log

Selanjutnya, jalankan aplikasi Hello World untuk mengujinya:

  1. git clone https://github.com/solana-labs/example-helloworld.git
  2. cd example-HelloWorld/
  3. npm install
  4. npm run build:program-rust

2. Buat smart contract Solana dalam bahasa pemrograman Rust

Persyaratan:

Anda memerlukan penginstalan berikut untuk menyebarkan smart contract solana:

  • NodJS v14 atau lebih tinggi dan NPM
  • Rust build terbaru yang stabil
  • Solana CLI v1.7.11 atau lebih baru
  • Git

Tentang Program HelloWorld

HelloWorld adalah program atau smart contract solana yang mencetak output ke konsol. Selain itu, ini juga menghitung berapa kali program HelloWorld dipanggil untuk akun yang diberikan, bersama dengan menyimpan nomor ini secara on-chain. Mari kita pahami konsepnya dengan memecah kode menjadi beberapa bagian terpisah.

Bagian pertama menentukan beberapa parameter standar untuk program Solana dan menentukan titik masuk untuk program (fungsi ‘process_instruction’). Terlepas dari fungsi ini, bagian ini menggunakan borsh (Binary Object Representation Serializer for Hashing) untuk membuat serial dan deserialize parameter yang lolos ke dan dari program yang digunakan.

Gunakan perintah yang diberikan untuk mengatur program HelloWorld:

  1. use borsh::{BorshDeserialize, BorshSerialize};
  2. use solana_program::{
  3. account_info::{next_account_info, AccountInfo},
  4. entrypoint,
  5. entrypoint::ProgramResult,
  6. msg,
  7. program_error::ProgramError,
  8. pubkey::Pubkey,
  9. };
  10. /// Define the type of state stored in accounts
  11. #[derive(BorshSerialize, BorshDeserialize, Debug)]
  12. pub struct GreetingAccount {
  13. /// number of greetings
  14. pub counter: u32,
  15. }
  16. // Declare and export the program’s entrypoint
  17. entrypoint!(process_instruction);

Selanjutnya, fungsi process_instruction menerima program_id, kunci publik tempat program di-deploy dan accountInfo, yang merupakan akun yang digunakan untuk menyapa.

  1. pub fn process_instruction(
  2. program_id: &Pubkey, // Public key of the account the hello world program was loaded into
  3. accounts: &[AccountInfo], // The account to say hello to
  4. _instruction_data: &[u8], // Ignored, all helloworld instructions are hellos

ProgramResult menyimpan logika utama program. Dalam hal ini, ProgramResult mencetak pesan dan kemudian memilih akun yang diinginkan dari ‘akun’. Namun, kami hanya menggunakan satu akun untuk contoh kami.

  1. ) -> ProgramResult {
  2. msg!(“Hello World Rust program entrypoint”)
  3. // Iterating accounts is safer then indexing
  4. let accounts_iter = &mut accounts.iter();
  5. // Get the account to say hello to
  6. let account = next_account_info(accounts_iter)?;

Setelah itu, program menentukan apakah ia memiliki izin untuk mengubah data untuk akun tertentu.

  1. // The account must be owned by the program in order to modify its data
  2. if account.owner != program_id {
  3. msg!(“Greeted account does not have the correct program id”);
  4. return Err(ProgramError::IncorrectProgramId);
  5. }

Terakhir, fungsi mengambil nomor tersimpan akun yang ada, menaikkan nilai sebesar 1, menulis kembali hasilnya, dan menampilkan pesan.

  1. // Increment and store the number of times the account has been greeted
  2. let mut greeting_account = GreetingAccount::try_from_slice(&account.data.borrow())?;
  3. greeting_account.counter += 1;
  4. greeting_account.serialize(&mut &mut account.data.borrow_mut()[..])?;
  5. msg!(“Greeted {} time(s)!”, greeting_account.counter);
  6. Ok(())

3. Menerapkan Smart Contract Solana

Langkah pertama untuk menyebarkan program atau smart contract solana adalah mengkloning repositori.

  1. git clone https://github.com/solana-labs/example-helloworld
  2. cd example-HelloWorld

Setelah ini selesai, Anda dapat mengatur lingkungan saat ini ke Devnet, jaringan uji untuk pengembang Solana untuk menulis smart contract.

  1. solana config set –url https://api.devnet.solana.com

Setelah ini, Anda diminta untuk membuat keypair baru. Keypair ini memungkinkan akun Anda untuk berinteraksi dengan program yang digunakan atau smart contract Solana Devnet. Namun, metode ini dianggap tidak aman untuk menyimpan kunci dan hanya berguna untuk tujuan demo. Dengan demikian, Anda akan dipromosikan menjadi frasa sandi untuk alasan keamanan.

  1. Solana-keygen new –force

Setelah Anda membuat akun, Anda dapat menggunakan program airdrop dan mendapatkan token SOL yang diperlukan. Untuk ini, Anda juga memerlukan beberapa impor untuk penerapan smart contract. Gunakan perintah ini untuk meminta token SOL ke akun Anda yang baru dibuat:

  1. Solana airdrop 5

Sekarang, Anda siap untuk membangun program hello world. Gunakan perintah di bawah ini untuk membangunnya.

  1. npm run build:program-rust

Setelah program dibuat, terapkan ke Devnet. Dengan output perintah sebelumnya, Anda mendapatkan perintah untuk menjalankan program, yang terlihat seperti berikut:

  1. Solana program deploy dist/program/HelloWorld.so

Dengan itu, Anda telah berhasil menerapkan program Hello World ke Devnet bersama dengan Id program yang ditetapkan. Anda dapat mengotentikasi program pada penjelajah Solana Devnet.

Pengembangan Blockchain Solana

Solana adalah blockchain berkinerja tinggi dan berkembang cepat dengan skalabilitas superior. Sebagai protokol, ini mendukung pengembangan berbagai jenis smart contract untuk mendukung dApps seperti sistem pinjaman P2P, pasar NFT, Dompet, DEX, dan banyak lagi.

Kesimpulan

Dengan semakin banyak industri yang mengadopsi blockchain dan teknologi terdesentralisasi, penggunaan aplikasi terdesentralisasi terus berkembang. Sebagai ekosistem berkecepatan tinggi, skalabel, dan berbiaya rendah, Solana memfasilitasi pengembangan smart contract & aplikasi terdesentralisasi yang cepat dan terukur. Juga, sering menerbitkan pembaruan.

Perushaan pengembang smart contract sangat antusias untuk mengembangkan di jaringan Solana, mereka juga menawarkan kumpulan sumber daya baru seperti kerangka kerja, SDK, dan alat pengembang. Selain itu, platform ini memiliki alat seperti Solana CLI (memungkinkan pengguna untuk berinteraksi dengan protokol melalui baris perintah) dan Solana explorer (memungkinkan pengguna untuk mencari transaksi dan akun melalui berbagai klaster Solana).

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

Leave a Comment