Tujuan dari proyek ini adalah untuk mengembangkan versi terdesentralisasi dari protokol Lorawan berkat penggunaan blockchain. Kami menyebut protokol baru ini Lora-Mac. Selain itu, kasus penggunaan yang terdesentralisasi telah dikembangkan sebagai perpanjangan. Ekstensi tersebut memiliki remunerasi dalam jaringan yang bersumber dari kerumunan.
Protokol baru yang menggantikan protokol Lorawan yang ada telah dikembangkan. Alih-alih menggunakan kriptografi simetris seperti Lorawan, ia menggunakan kriptografi asimetris untuk memberikan non-repudiasi selain kerahasiaan dan keaslian. Pasangan kunci publik-swasta dihasilkan menggunakan kurva elips. Pasangan kunci ini digunakan untuk menandatangani konten pesan yang dipertukarkan antara dua entitas. Kunci simetris yang digunakan untuk mengenkripsi konten pesan antara kedua entitas dihasilkan dengan menggunakan kunci pribadi pengirim dan kunci publik penerima. Prosedur ini dilakukan dengan menggunakan ECDH dan kemudian dengan menormalkan kunci dengan HKDF.
Cose digunakan sebagai format untuk paket yang trasmitted antara entitas yang mengambil bagian dalam protokol. Dengan demikian, sebuah paket dienkripsi dalam pesan cose_encrypt0 dan kemudian cose_countersignature ditambahkan di dalamnya. Karena pada saat mengembangkan proyek ini, cose_countersignature di mana belum berkembang di pustaka pycose, garpu perpustakaan yang berisi tanda tangan counter telah dilakukan.
Tantangan dari kasus penggunaan remunerasi adalah memancarkan transaksi pembayaran mikro (dalam urutan beberapa sen) untuk membayar pesan yang dikirimkan oleh gateway. Faktanya, melakukannya secara asli pada blockchain Ethereum akan lebih mahal dalam biaya daripada pembayaran mikro yang sebenarnya. Dengan demikian, dua metode penskalaan off-rantai (penskalaan Layer 2) telah bereksperimen:
Proyek ini dibagi menjadi 4 komponen utama:
Perangkat akhir terdiri dari pi raspberry yang terhubung melalui serial ke lopy. Dengan demikian, perangkat akhir dibagi menjadi 2 direktori: /lora_device dan /lopy. Ada lebih banyak instruksi tentang cara menjalankan kedua program di dalam setiap direktori.
Direktori /ForwardingNetWorkserver dapat dijalankan pada raspberry pi yang bertindak sebagai gateway. Program ini kompatibel dengan Proyek Forwarder Paket Lora Network.
Blockchain yang digunakan untuk proyek ini adalah Ethereum. Kontrak pintar yang digunakan untuk tujuan ini dapat ditemukan di direktori /blockchain /kontrak.
Direktori /server dibagi dalam 3 sub-direktori: /server aplikasi, /homeNetWorkserver, /pembayaran. Server yang terdiri dari back-end, front-end dan layanan pembayaran, dikemas dalam instance Docker Compose agar mudah digunakan di server.