Mbangun piranti lunak kanggo rental skuter desentralisasi. Sapa sing ngomong bakal gampang?

Ing artikel iki aku bakal pirembagan bab carane kita nyoba kanggo mbangun rental skuter desentralisasi ing kontrak pinter lan apa kita isih perlu layanan terpusat.

Mbangun piranti lunak kanggo rental skuter desentralisasi. Sapa sing ngomong bakal gampang?

Cara kabeh mulai

Ing November 2018, kita melu hackathon khusus kanggo Internet of Things lan blockchain. Tim kita milih nuduhake skuter minangka ide amarga kita duwe skuter saka sponsor hackathon iki. Prototipe katon kaya aplikasi seluler sing ngidini sampeyan miwiti skuter liwat NFC. Saka sudut pandang marketing, gagasan kasebut didhukung dening crita babagan "masa depan sing cerah" kanthi ekosistem sing mbukak ing ngendi sapa wae bisa dadi penyewa utawa tuan tanah, kabeh adhedhasar kontrak cerdas.

Para pemangku kepentingan seneng banget karo ide iki, lan dheweke mutusake kanggo ngowahi dadi prototipe kanggo ditampilake ing pameran. Sawise sawetara demonstrasi sukses ing Mobile World Congress lan Bosch Connected World ing 2019, diputusake kanggo nyoba nyewa skuter karo pangguna nyata, karyawan Deutsche Telekom. Dadi kita miwiti ngembangake MVP lengkap.

Blockchain ing crutches

Aku ora mikir iku worth nerangake apa prabédan antarane proyek sing bakal ditampilake ing panggung lan proyek sing bakal digunakake dening wong nyata. Sajrone nem sasi, kita kudu ngowahi prototipe mentah dadi barang sing cocog kanggo pilot. Banjur kita ngerti apa tegese "nyeri".

Supaya sistem kita desentralisasi lan mbukak, kita mutusake nggunakake kontrak pinter Ethereum. Pilihan kasebut tiba ing platform layanan online sing terdesentralisasi amarga popularitas lan kemampuan kanggo mbangun aplikasi tanpa server. We ngrancang kanggo ngleksanakake project kita minangka nderek.

Mbangun piranti lunak kanggo rental skuter desentralisasi. Sapa sing ngomong bakal gampang?

Nanging, sayangé, kontrak pinter minangka kode sing dieksekusi dening mesin virtual nalika transaksi, lan ora bisa ngganti server lengkap. Contone, kontrak pinter ora bisa nindakake tumindak sing ditundha utawa dijadwal. Ing proyek kita, iki ora ngidini kita ngleksanakake layanan rental saben menit, kaya sing paling akeh layanan enggo bareng mobil modern. Mulane, kita debited cryptocurrency saka pangguna sawise ngrampungake transaksi tanpa mesthekake yen dheweke wis cukup dhuwit. Pendekatan iki mung bisa ditampa kanggo pilot internal lan, mesthi, nambah masalah nalika ngrancang proyek produksi lengkap.

Ditambahake kabeh ing ndhuwur yaiku kelembapan platform kasebut dhewe. Contone, yen sampeyan nulis kontrak cerdas kanthi logika sing beda karo token ERC-20, sampeyan bakal nemokake masalah penanganan kesalahan. Biasane, yen input salah utawa cara kita ora bisa digunakake kanthi bener, kita nampa kode kesalahan kanggo nanggepi. Ing kasus Ethereum, kita ora bisa entuk apa-apa kajaba jumlah gas sing digunakake kanggo nindakake fungsi iki. Gas minangka mata uang sing kudu dibayar kanggo transaksi lan petungan: luwih akeh operasi ing kode sampeyan, luwih akeh sampeyan bakal mbayar. Dadi kanggo ngerti kenapa kode kasebut ora bisa digunakake, sampeyan kudu nyoba kanthi simulasi kabeh kesalahan sing bisa ditindakake lan hardcode gas sing digunakake minangka kode kesalahan. Nanging yen sampeyan ngganti kode, penanganan kesalahan iki bakal rusak.

Kajaba iku, meh ora bisa nggawe aplikasi seluler sing bisa digunakake kanthi pamblokiran kanthi jujur, tanpa nggunakake kunci sing disimpen ing endi wae ing méga. Senajan dompet jujur ​​ana, padha ora nyedhiyani antarmuka kanggo mlebu transaksi external. Iki tegese sampeyan ora bakal bisa ndeleng aplikasi asli kajaba duwe dompet crypto sing dibangun, sing bakal dipercaya pangguna (aku ora bakal percaya). Akibaté, kita uga kudu Cut sudhut kene. Kontrak cerdas dikirim menyang jaringan Ethereum pribadi, lan dompet kasebut adhedhasar awan. Nanging senadyan iki, pangguna kita ngalami kabeh "kesenangan" layanan desentralisasi ing wangun ngenteni transaksi kaping pirang-pirang saben sesi rental.

Kabeh iki ndadékaké kita menyang arsitektur iki. Setuju, beda banget karo sing kita rencanakake.

Mbangun piranti lunak kanggo rental skuter desentralisasi. Sapa sing ngomong bakal gampang?

Ace ing bolongan: Self-Sovereign Identity

Sampeyan ora bisa mbangun sistem kanthi desentralisasi tanpa identitas desentralisasi. Identity Self-Sovereign Identity (SSI) tanggung jawab kanggo bagean iki, sing intine yaiku sampeyan mbuwang panyedhiya identitas terpusat (IDP) lan nyebarake kabeh data lan tanggung jawab kasebut menyang masarakat. Saiki pangguna mutusake apa data sing dibutuhake lan karo sapa sing bakal dituduhake. Kabeh informasi iki ana ing piranti pangguna. Nanging kanggo ijol-ijolan, kita butuh sistem desentralisasi kanggo nyimpen bukti kriptografi. Kabeh implementasi modern saka konsep SSI nggunakake blockchain minangka panyimpenan.

"Apa hubungane karo ace ing bolongan?" - sampeyan takon. We dibukak layanan kanggo testing internal ing karyawan kita dhewe ing Berlin lan Bonn, lan kita nemokke kangelan ing wangun serikat pekerja Jerman. Ing Jerman, perusahaan dilarang ngawasi obahe karyawan, lan serikat pekerja ngontrol iki. Watesan kasebut mungkasi panyimpenan data identitas pangguna sing terpusat, amarga ing kasus iki kita bakal ngerti lokasi karyawan. Ing wektu sing padha, kita ora bisa mbantu nanging mriksa wong-wong mau amarga kemungkinan skuter dicolong. Nanging thanks kanggo Self-Sovereign Identity, pangguna nggunakake sistem kasebut kanthi anonim, lan skuter kasebut dhewe mriksa lisensi pembalap sadurunge miwiti nyewa. Akibaté, kita nyimpen metrik pangguna anonim; kita ora duwe dokumen utawa data pribadhi: kabeh ana ing piranti pembalap dhewe. Mangkono, matur nuwun kanggo SSI, solusi kanggo masalah ing proyek kita wis siyap sadurunge muncul.

Piranti kasebut menehi masalah

Kita ora ngleksanakake Self-Sovereign Identity dhewe, amarga mbutuhake keahlian ing kriptografi lan akeh wektu. Nanging, kita njupuk kauntungan saka produk Jolocom mitra kita lan nggabungake dompet lan layanan seluler menyang platform kita. Sayange, produk iki nduweni siji kelemahan sing signifikan: basa pangembangan utama yaiku Node.js.

Tumpukan teknologi iki mbatesi pilihan hardware sing dibangun ing skuter. Begjanipun, ing awal proyek, kita milih Raspberry Pi Zero, lan kita njupuk kauntungan saka kabeh kaluwihan saka microcomputer lengkap. Iki ngidini kita mbukak gedhe banget Node.js ing skuter. Kajaba iku, kita nampa pemantauan lan akses remot liwat VPN nggunakake alat sing wis siap.

Ing kesimpulan

Senadyan kabeh "nyeri" lan masalah, proyek kasebut diluncurake. Ora kabeh bisa kaya sing wis direncanakake, nanging pancen bisa numpak skuter kanthi nyewakake.

Ya, kita nggawe sawetara kesalahan nalika ngrancang arsitektur sing ora ngidini kita nggawe layanan kasebut kanthi desentralisasi, nanging sanajan ora ana kesalahan kasebut, kita meh ora bisa nggawe platform tanpa server. Iku siji bab kanggo nulis crypto-piramid liyane, lan cukup liyane kanggo nulis layanan lengkap sing sampeyan kudu nangani kasalahan, ngatasi kasus borderline lan nindakake tugas sing ditundha. Muga-muga platform anyar sing bubar muncul bakal luwih fleksibel lan fungsional.

Source: www.habr.com

Add a comment