第1课

Ikhtisar Pasar Terdesentralisasi dan IDE Remix

Dalam pelajaran ini, pertama-tama kita akan mempelajari apa itu pasar terdesentralisasi dan cara kerjanya. Kemudian, kita akan mengenal Remix IDE dan menulis kontrak Soliditas sederhana.

Memahami Pasar Terdesentralisasi

Di pasar e-commerce tradisional, seperti Amazon dan eBay, otoritas pusat memfasilitasi transaksi antara pembeli dan penjual. Otoritas pusat ini mengontrol transaksi, memelihara daftar produk, dan mengelola penyelesaian sengketa. Meskipun model terpusat ini memiliki kelebihan, model ini juga memiliki beberapa kelemahan, termasuk risiko sensor, biaya tinggi, dan ketergantungan pada kepercayaan.

Di sisi lain, pasar terdesentralisasi memanfaatkan teknologi blockchain untuk memungkinkan transaksi peer-to-peer tanpa perantara. Ini menghilangkan kebutuhan akan kepercayaan karena transaksi transparan dan dapat diverifikasi oleh semua peserta di blockchain. Contoh pasar terdesentralisasi termasuk OpenBazaar dan Origin Protocol.

Pengantar Remix IDE

Remix IDE (Integrated Development Environment) adalah alat sumber terbuka yang kuat yang dirancang khusus untuk pengembangan kontrak pintar Ethereum. Ini berjalan langsung di browser web Anda, jadi Anda tidak perlu menginstal apa pun di komputer Anda.

Anda dapat mengakses Remix IDE di https://remix.ethereum.org. Saat Anda membuka Remix di browser Anda, Anda akan menemukan tiga panel:

  1. Panel Kiri: Di sinilah Anda dapat membuat, mengimpor, dan mengelola file Soliditas Anda. Ini juga mencakup berbagai plugin untuk kompilasi, pengujian, debugging, dan penerapan kontrak Anda.

  2. Panel Pusat: Ini adalah editor kode Anda. Di sini Anda akan menulis dan mengedit kode Soliditas Anda.

  3. Panel Kanan: Panel ini menyediakan berbagai alat untuk mengkompilasi kontrak Anda, menyebarkannya di jaringan Ethereum (baik di jaringan Ethereum nyata atau simulasi JavaScript VM), dan berinteraksi dengan kontrak yang Anda terapkan.

Kontrak Soliditas Pertama Anda: Kontrak “Item”.

Pada bagian ini, kita akan menulis kontrak Soliditas pertama kita. Kontrak ini akan mewakili “Item” dasar di pasar kami.

Untuk memulai, buat file baru di Remix dengan mengklik ikon kedua dari atas di panel kiri (ikon file). Dialog baru akan muncul di panel tengah. Masukkan Item.sol sebagai nama file dan klik “OK”.

Sekarang, kita dapat mulai menulis kontrak kita:

Soliditas 
 // Pengenal Lisensi SPDX: soliditas pragma MIT 
 ^0.8.6; 

 item kontrak { 
 // Mendefinisikan event yang akan diaktifkan ketika item baru dibuat 
 event NewItem(uint itemId, string itemName, uint itemPrice); 

 // Setiap Item mempunyai id, nama dan harga 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Array untuk menampung semua item 
 ItemStruct[] item publik; 

 // Fungsi untuk membuat item baru 
 fungsi createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Mari kita jelaskan bagian-bagian berbeda dari kontrak ini:

  1. Pengenal Lisensi SPDX: Ini adalah cara standar untuk menyatakan lisensi kontrak. Baris // SPDX-License-Identifier: MIT menunjukkan bahwa kontrak kami menggunakan lisensi MIT yang permisif.

  2. Petunjuk Pragma: pragma solidity ^0.8.6; menentukan bahwa kontrak ditulis dalam Solidity versi 0.8.6. Simbol ^ berarti juga kompatibel dengan versi terbaru hingga, namun tidak termasuk, versi 0.9.0.

  3. Definisi Kontrak: contract Item {...} mendefinisikan kontrak baru yang disebut Item. Di sinilah kita menulis variabel keadaan dan fungsi kontrak.

  4. Definisi Peristiwa: event NewItem(uint itemId, string itemName, uint itemPrice); mendefinisikan peristiwa yang dapat kita pancarkan setiap kali item baru dibuat. Peristiwa adalah cara kontrak pintar mencatat aktivitas yang dapat didengarkan oleh pihak eksternal.

  5. Definisi Struct: struct ItemStruct {...} mendefinisikan tipe data baru ItemStruct, yang mewakili Item dengan name dan price.

  6. Variabel Status: ItemStruct[] public items; mendeklarasikan variabel status items yang menampung array ItemStructs. Kata kunci public secara otomatis membuat fungsi pengambil yang memungkinkan siapa pun mengakses daftar item.

  7. Definisi Fungsi: function createItem(string memory _name, uint _price) public {...} mendefinisikan fungsi publik yang dapat dipanggil oleh siapa saja untuk membuat item baru. Fungsi ini mengambil nama dan harga, membuat ItemStruct baru, menambahkannya ke array items , dan memunculkan event NewItem .
    Untuk menyusun kontrak ini, buka panel kanan dan klik ikon ketiga dari atas (logo Soliditas). Di sini Anda dapat mengkompilasi kontrak. Klik tombol “Kompilasi” dan jika tidak ada kesalahan, kontrak Anda akan berhasil dikompilasi.

Sebuah Pertanyaan mungkin muncul di Panel Kiri:

Pertanyaan tentang Swarm atau IPFS adalah tentang metode yang akan digunakan Remix untuk menyimpan metadata kontrak Anda. Mari kita bahas:

  1. IPFS: InterPlanetary File System (IPFS) adalah protokol yang dirancang untuk membuat web permanen dan terdesentralisasi. Ini seperti sekumpulan BitTorrent, bertukar objek dalam satu repositori Git.

  2. Swarm: Swarm adalah platform penyimpanan terdistribusi dan layanan distribusi konten asli dari tumpukan web3 Ethereum. Ini memungkinkan jaringan rekan untuk menyimpan dan mendistribusikan data.
    Saat Anda mengkompilasi kontrak, compiler Solidity menghasilkan file JSON yang berisi Application Binary Interface (ABI) dan bytecode-nya, serta informasi lainnya. Ini disebut metadata kontrak. Menyimpan metadata ini di jaringan penyimpanan terdesentralisasi memastikan metadata tersedia secara permanen, dan berguna untuk memverifikasi kode sumber kontrak.

Namun, untuk tujuan pembelajaran Anda dan jika Anda tidak berencana memverifikasi kontrak di Etherscan atau penjelajah blok lainnya, Anda dapat memilih Swarm atau IPFS, atau Anda dapat mengabaikannya dan melanjutkan ke langkah pembelajaran Anda berikutnya. Ingat, fokus utama pada tahap ini adalah memahami cara menulis, menyusun, dan menerapkan kontrak.

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第1课

Ikhtisar Pasar Terdesentralisasi dan IDE Remix

Dalam pelajaran ini, pertama-tama kita akan mempelajari apa itu pasar terdesentralisasi dan cara kerjanya. Kemudian, kita akan mengenal Remix IDE dan menulis kontrak Soliditas sederhana.

Memahami Pasar Terdesentralisasi

Di pasar e-commerce tradisional, seperti Amazon dan eBay, otoritas pusat memfasilitasi transaksi antara pembeli dan penjual. Otoritas pusat ini mengontrol transaksi, memelihara daftar produk, dan mengelola penyelesaian sengketa. Meskipun model terpusat ini memiliki kelebihan, model ini juga memiliki beberapa kelemahan, termasuk risiko sensor, biaya tinggi, dan ketergantungan pada kepercayaan.

Di sisi lain, pasar terdesentralisasi memanfaatkan teknologi blockchain untuk memungkinkan transaksi peer-to-peer tanpa perantara. Ini menghilangkan kebutuhan akan kepercayaan karena transaksi transparan dan dapat diverifikasi oleh semua peserta di blockchain. Contoh pasar terdesentralisasi termasuk OpenBazaar dan Origin Protocol.

Pengantar Remix IDE

Remix IDE (Integrated Development Environment) adalah alat sumber terbuka yang kuat yang dirancang khusus untuk pengembangan kontrak pintar Ethereum. Ini berjalan langsung di browser web Anda, jadi Anda tidak perlu menginstal apa pun di komputer Anda.

Anda dapat mengakses Remix IDE di https://remix.ethereum.org. Saat Anda membuka Remix di browser Anda, Anda akan menemukan tiga panel:

  1. Panel Kiri: Di sinilah Anda dapat membuat, mengimpor, dan mengelola file Soliditas Anda. Ini juga mencakup berbagai plugin untuk kompilasi, pengujian, debugging, dan penerapan kontrak Anda.

  2. Panel Pusat: Ini adalah editor kode Anda. Di sini Anda akan menulis dan mengedit kode Soliditas Anda.

  3. Panel Kanan: Panel ini menyediakan berbagai alat untuk mengkompilasi kontrak Anda, menyebarkannya di jaringan Ethereum (baik di jaringan Ethereum nyata atau simulasi JavaScript VM), dan berinteraksi dengan kontrak yang Anda terapkan.

Kontrak Soliditas Pertama Anda: Kontrak “Item”.

Pada bagian ini, kita akan menulis kontrak Soliditas pertama kita. Kontrak ini akan mewakili “Item” dasar di pasar kami.

Untuk memulai, buat file baru di Remix dengan mengklik ikon kedua dari atas di panel kiri (ikon file). Dialog baru akan muncul di panel tengah. Masukkan Item.sol sebagai nama file dan klik “OK”.

Sekarang, kita dapat mulai menulis kontrak kita:

Soliditas 
 // Pengenal Lisensi SPDX: soliditas pragma MIT 
 ^0.8.6; 

 item kontrak { 
 // Mendefinisikan event yang akan diaktifkan ketika item baru dibuat 
 event NewItem(uint itemId, string itemName, uint itemPrice); 

 // Setiap Item mempunyai id, nama dan harga 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Array untuk menampung semua item 
 ItemStruct[] item publik; 

 // Fungsi untuk membuat item baru 
 fungsi createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Mari kita jelaskan bagian-bagian berbeda dari kontrak ini:

  1. Pengenal Lisensi SPDX: Ini adalah cara standar untuk menyatakan lisensi kontrak. Baris // SPDX-License-Identifier: MIT menunjukkan bahwa kontrak kami menggunakan lisensi MIT yang permisif.

  2. Petunjuk Pragma: pragma solidity ^0.8.6; menentukan bahwa kontrak ditulis dalam Solidity versi 0.8.6. Simbol ^ berarti juga kompatibel dengan versi terbaru hingga, namun tidak termasuk, versi 0.9.0.

  3. Definisi Kontrak: contract Item {...} mendefinisikan kontrak baru yang disebut Item. Di sinilah kita menulis variabel keadaan dan fungsi kontrak.

  4. Definisi Peristiwa: event NewItem(uint itemId, string itemName, uint itemPrice); mendefinisikan peristiwa yang dapat kita pancarkan setiap kali item baru dibuat. Peristiwa adalah cara kontrak pintar mencatat aktivitas yang dapat didengarkan oleh pihak eksternal.

  5. Definisi Struct: struct ItemStruct {...} mendefinisikan tipe data baru ItemStruct, yang mewakili Item dengan name dan price.

  6. Variabel Status: ItemStruct[] public items; mendeklarasikan variabel status items yang menampung array ItemStructs. Kata kunci public secara otomatis membuat fungsi pengambil yang memungkinkan siapa pun mengakses daftar item.

  7. Definisi Fungsi: function createItem(string memory _name, uint _price) public {...} mendefinisikan fungsi publik yang dapat dipanggil oleh siapa saja untuk membuat item baru. Fungsi ini mengambil nama dan harga, membuat ItemStruct baru, menambahkannya ke array items , dan memunculkan event NewItem .
    Untuk menyusun kontrak ini, buka panel kanan dan klik ikon ketiga dari atas (logo Soliditas). Di sini Anda dapat mengkompilasi kontrak. Klik tombol “Kompilasi” dan jika tidak ada kesalahan, kontrak Anda akan berhasil dikompilasi.

Sebuah Pertanyaan mungkin muncul di Panel Kiri:

Pertanyaan tentang Swarm atau IPFS adalah tentang metode yang akan digunakan Remix untuk menyimpan metadata kontrak Anda. Mari kita bahas:

  1. IPFS: InterPlanetary File System (IPFS) adalah protokol yang dirancang untuk membuat web permanen dan terdesentralisasi. Ini seperti sekumpulan BitTorrent, bertukar objek dalam satu repositori Git.

  2. Swarm: Swarm adalah platform penyimpanan terdistribusi dan layanan distribusi konten asli dari tumpukan web3 Ethereum. Ini memungkinkan jaringan rekan untuk menyimpan dan mendistribusikan data.
    Saat Anda mengkompilasi kontrak, compiler Solidity menghasilkan file JSON yang berisi Application Binary Interface (ABI) dan bytecode-nya, serta informasi lainnya. Ini disebut metadata kontrak. Menyimpan metadata ini di jaringan penyimpanan terdesentralisasi memastikan metadata tersedia secara permanen, dan berguna untuk memverifikasi kode sumber kontrak.

Namun, untuk tujuan pembelajaran Anda dan jika Anda tidak berencana memverifikasi kontrak di Etherscan atau penjelajah blok lainnya, Anda dapat memilih Swarm atau IPFS, atau Anda dapat mengabaikannya dan melanjutkan ke langkah pembelajaran Anda berikutnya. Ingat, fokus utama pada tahap ini adalah memahami cara menulis, menyusun, dan menerapkan kontrak.

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。