Sesiapa sahaja boleh membina kontrak pintar

Kontrak Pintar akan memudahkan bagaimana anda menjalankan perniagaan dalam ekonomi terdesentralisasi yang baru. Sebilangan besar kontrak pintar dibuat di platform DApp (Aplikasi Terdesentralisasi) seperti Ethereum, Lisk atau Cardano, dan syarikat teknologi besar seperti IBM memulakan perniagaan mereka sendiri. Ini masuk akal, kerana terdapat banyak syarikat yang lebih suka mempercayai gergasi teknologi seperti IBM untuk membina produk untuk mereka daripada menangani teknologi baru sendiri.

Pembangunan kontrak pintar boleh menjadi kemahiran yang boleh dipasarkan untuk pemaju yang tahu membinanya. Bahagian kontrak pintar yang mengejutkan adalah bahawa ia tidak sukar dibina. Platform DApp dan alat sekitarnya memungkinkan untuk membuatnya dan membina teknologi blockchain anda sendiri dengan mudah.

Pembangun JavaScript tidak boleh diintimidasi oleh blockchain. Dengan sedikit pemahaman, blockchain menjadi seperti kebanyakan kerangka kerja lain yang biasanya anda laksanakan.

Merancang Kontrak Pintar

Semasa mula-mula membuat kontrak pintar, anda harus memutuskan apa yang anda mahu memudahkannya.

Untuk contoh ini, mari fokus pada tiket acara. Tiket mempunyai masalah besar dengan scalpers membeli banyak tiket dan dengan orang yang menggunakan tiket palsu. Teknologi blockchain unggul dalam banyak perkara; dua daripadanya adalah mempermudah transaksi dan menjejaki maklumat.

Oleh kerana itu, sebaris kod mudah dalam kontrak dapat membatasi harga penjualan tiket. Ini mengelakkan scalpers membeli sekumpulan tiket kerana menjualnya sekarang tidak akan menguntungkan. Dengan menggunakan kontrak pintar, anda juga dapat menghasilkan tiket token unik yang khusus pemilik dan tidak boleh dipalsukan. Sekiranya anda seorang yang suka menghadiri konsert, festival dan acara sukan, anda dapat melihat tarikannya.

Pilihan Platform DApp

Perkara seterusnya yang perlu dipilih adalah platform DApp yang akan dibina kontrak.

Ethereum adalah platform terbesar dan paling mapan. Ia juga mempunyai pangkalan pengguna yang paling aktif, dan dalam semua jenis pembangunan, komuniti aktif untuk menjawab soalan anda adalah kunci untuk menyelesaikan produk anda. Satu kelemahannya adalah bahawa ia menggunakan bahasa sendiri, Solidity, untuk menulis kontrak.

Pilihan lain, Kerugian, adalah platform DApp yang berpusat di Javascript, jadi anda tidak akan mendapat sintaks baru kepada anda. Ia juga memiliki toko DApp sendiri (pikir Google play atau iTunes store) di mana anda dapat menerbitkan aplikasi anda setelah selesai.

Anda juga boleh mencuba Cardano yang dibina oleh pengasas Ethereum dan mempunyai pasukan yang besar dan mengagumkan. Produk mereka masih baru, tetapi jika mereka memenuhi janji untuk memisahkan maklumat kontrak dari data transaksi, mungkin merupakan pilihan yang tepat untuk maju.

Buat masa ini, mari kita gunakan Ethereum atau Lisk sebagai platform pilihan.

Sebagai pemaju Javascript, Lisk mungkin seperti keputusan yang logik kerana anda sudah berpengalaman dalam bahasa tersebut.

Walau bagaimanapun, jangan mengira Ethereum. Komuniti pembangunan sangat mantap sehingga anda dapat menebus kesalahpahaman mengenai Soliditi dengan lebihan maklumat yang ada. Ethereum juga merangkumi rangka kerja Truffle, yang dibuat oleh Consensys, yang dengan mudah membolehkan anda mengintegrasikan dan menguji aplikasi kontrak pintar anda.

kerangka kontrak pintar ethereum

Membina Kontrak Pintar

Ketenangan terdengar lebih menakutkan daripada sebenarnya. Perkara pertama yang mungkin anda perhatikan mengenai bahasa itu adalah kemiripannya dengan kelas JavaScript. Ada beberapa perbedaan yang halus, seperti persyaratan titik koma dan penggunaan fungsi hashing. The fungsi hashing digunakan untuk membuat kunci unik dan memetakannya ke pemboleh ubah lain. Dalam contoh kami, kami akan menggunakannya untuk membuat tiket unik dan memetakannya ke akaun yang membelinya.

Semasa membina kontrak Ethereum pertama anda, kami mengesyorkan menggunakan persekitaran pembangunan di remix.solidity.org. Ini memberi anda persekitaran interaktif untuk menerapkan kontrak anda dan berinteraksi dengannya dari akaun Ethereum yang berbeza. Menu lungsur turun membolehkan anda menukar akaun dan menggunakan panggilan fungsi kontrak anda dengan menekan butang yang sesuai.

Apa yang mesti diperhatikan

Perkara yang unik mengenai Soliditi adalah penggunaan menangani. Semua akaun Ethereum mempunyai alamat unik, dan alamat tersebut mewakili pihak yang bersetuju dengan kontrak.

Dalam kontrak tiket contoh kami, sesiapa yang membuat acara akan melampirkan alamat akaun mereka. Setiap kali ada yang membeli tiket baru, wang akan dipindahkan terus ke pemilik acara, dengan mengambil orang tengah. Pembeli membuat panggilan, dan dana dikeluarkan dari akaun mereka, dikenal pasti dengan alamat mereka, dan diserahkan kepada pemiliknya.

Soliditi juga mempunyai cara unik untuk memasukkan dana ke panggilan kontrak pintar. Setiap panggilan fungsi dilengkapi dengan mesej. Mesej ini boleh mengandungi maklumat unik dari pengirim termasuk alamat akaun mereka dan juga nilai eter yang ingin mereka hantar kepada pemilik kontrak.

Perlu diingat juga bahawa dalam Solidity, tidak semua panggilan kontrak adalah percuma. Untuk menukar maklumat dalam kontrak, mis. membeli atau menggunakan tiket, rangkaian mesin yang mengesahkan pelaksanaan kontrak mengenakan “gas”. Gas pada dasarnya adalah tol untuk memanfaatkan kuasa pengkomputeran di rangkaian.

Panggilan lain yang hanya meminta kontrak untuk mendapatkan maklumat, mis. mencari harga tiket atau mendapatkan jumlah baki tiket, adalah percuma. Ini kerana tiada maklumat mengenai kontrak yang dikemas kini; tidak ada risiko dalam aktiviti ini.

Menyambung ke JavaScript

Bahagian yang paling mencabar dalam bekerja di Solidity adalah menggabungkan kontrak anda dengan Javascript. Ini semua dilakukan dengan menggunakan Rangka kerja truffle.

Langkah pertama dalam mengintegrasikan kontrak anda adalah menerapkannya dan memindahkannya ke rangkaian ujian anda. Truffle menyediakan RPC mereka sendiri, rangkaian ujian Ethereum yang terpisah, yang disebut Ganache. Proses ini memberi anda versi kontrak JSON yang boleh anda panggil menggunakan alamat rangkaian ujian anda melalui aplikasi Javascript anda.

Sekiranya anda mencari lebih banyak maklumat mengenai proses ini, Truffle melakukan tugas yang baik untuk menguraikannya dalam dokumen dan kotak contoh yang terdapat di laman web.

Kotak truffle

Satu lagi perkara yang sukar untuk diatasi ketika membuat kontrak pintar adalah bagaimana konsepnya. Memikirkan blockchain seperti pembangun web, anda boleh melihatnya sebagai pengganti pangkalan data. Daripada satu sumber terpusat untuk semua maklumat anda, ada rangkaian kontrak dan transaksi untuk diikuti yang membawa kepada maklumat tersebut.

Kerana blockchain seperti pangkalan data, perkara biasa yang perlu dilakukan adalah menyambungkan kontrak ke pelayan anda. Membuat lapisan API untuk kontrak menjadikan akses maklumat dari sisi aplikasi aplikasi semudah membuat permintaan AJAX. Ada kebaikan kotak contoh di laman web truffle untuk mendapatkan persediaan ini.

Walaupun blockchain serupa dengan pangkalan data, itu sama sekali tidak sama. Ia mempunyai protokol yang sepenuhnya unik yang melibatkan transaksi, hashing, dan pembuatan blok. Ini mungkin bahagian paling sukar dalam pengembangan Ethereum. Dalam contoh tiket kami, anda perlu membuat panggilan kontrak untuk membeli tiket yang berbeza daripada panggilan untuk menggunakan tiket. Mesin Maya Ethereum pilih-pilih mengenai panggilan ini.

Ini adalah kawasan lain di mana komuniti pembangunan Ethereum besar berguna. Terdapat peluang yang baik bahawa sebarang pertanyaan yang telah anda terjawab di Ethereum Stack Exchange, dan jika tidak, pemaju lain lebih bersedia membantu anda melalui kontrak anda.

Kesimpulannya

Artikel ini tidak bertujuan untuk mengajar anda cara mula menulis Ketahanan. Sebagai gantinya, ini untuk memberi anda panduan mengenai apa itu kontrak pintar dan bagaimana anda dapat melaksanakannya dalam aplikasi Javascript. Membangunkan blockchain adalah mungkin bagi sesiapa sahaja yang mengetahui pembangunan web.

Teknologi di sebalik blockchain mungkin sukar untuk difahami, tetapi seperti kerangka kerja atau alat pembangun lain, anda tidak semestinya perlu mengetahui bagaimana ia dibina untuk menggunakannya. Jangan biarkan aura misteri blockchain menghalang anda daripada membina sesuatu yang hebat.