
Retikulum adalah tumpukan jaringan berbasis kriptografi untuk membangun jaringan lokal dan luas dengan perangkat keras yang tersedia. Ini dapat beroperasi bahkan dengan latensi yang sangat tinggi dan bandwidth yang sangat rendah. Retikulum memungkinkan Anda untuk membangun jaringan area lebar dengan alat-alat di luar rak, dan menawarkan enkripsi dan konektivitas ujung-ke-ujung, anonimitas inisiator, pengangkutan transportasi multi-hop yang dikonfigurasi secara otomatis, pengalamatan yang efisien, pengakuan pengiriman yang tidak dapat dimaafkan, dan banyak lagi.
Visi retikulum adalah untuk memungkinkan siapa pun menjadi operator jaringan mereka sendiri, dan membuatnya murah dan mudah untuk menutupi area luas dengan segudang jaringan independen, saling terhubung, dan otonom. Retikulum bukan satu jaringan. Ini adalah alat untuk membangun ribuan jaringan . Jaringan tanpa switch, pengawasan, sensor dan kontrol. Jaringan yang dapat secara bebas beroperasi, bergaul, dan melepaskan satu sama lain, dan tidak memerlukan pengawasan pusat. Jaringan untuk manusia. Jaringan untuk rakyat .
Retikulum adalah tumpukan jaringan yang lengkap, dan tidak bergantung pada IP atau lapisan yang lebih tinggi, tetapi dimungkinkan untuk menggunakan IP sebagai pembawa yang mendasari retikulum. Oleh karena itu sepele untuk terowongan retikulum melalui internet atau jaringan IP pribadi.
Tidak memiliki ketergantungan pada tumpukan jaringan tradisional membebaskan overhead yang telah digunakan untuk mengimplementasikan tumpukan jaringan yang dibangun langsung di atas prinsip -prinsip kriptografi, memungkinkan ketahanan dan fungsionalitas yang stabil, bahkan dalam jaringan yang terbuka dan tidak dapat dipercaya.
Tidak diperlukan modul atau driver kernel. Retikulum berjalan sepenuhnya di Userland, dan dapat berjalan pada sistem apa pun yang menjalankan Python 3.
Dokumentasi lengkap untuk retikulum tersedia di markqvist.github.io/reticulum/manual/.
Anda juga dapat mengunduh Manual Retikulum sebagai PDF atau sebagai e-book dalam format EPUB.
Untuk info lebih lanjut, lihat reticulum.network dan bagian FAQ dari wiki.
Sementara retikulum sudah merupakan tumpukan jaringan yang sepenuhnya ditampilkan dan fungsional, banyak perbaikan dan penambahan yang secara aktif sedang dikerjakan, dan direncanakan untuk masa depan.
Untuk mempelajari lebih lanjut tentang arah dan masa depan Retikulum, silakan lihat peta jalan pengembangan.
Jika Anda ingin mendapatkan gambaran tentang apa yang dapat dilakukan Retikulum, lihatlah sumber daya berikut.
Hampir setiap media yang dapat mendukung setidaknya saluran setengah dupleks dengan throughput yang lebih besar dari 5 bit per detik, dan MTU 500 byte. Radio data, modem, radio LORA, garis serial, AX.25 TNC, mode digital radio amatir, perangkat WiFi dan Ethernet, tautan optik ruang bebas, dan sistem yang serupa adalah semua contoh jenis perangkat fisik yang dapat digunakan reticulum.
Antarmuka berbasis Lora open-source yang disebut RNode telah dirancang khusus untuk digunakan dengan retikulum. Dimungkinkan untuk membangun diri Anda sendiri, atau dapat dibeli sebagai transceiver lengkap yang hanya membutuhkan koneksi USB ke host.
Retikulum juga dapat dienkapsulasi melalui jaringan IP yang ada, jadi tidak ada yang menghentikan Anda untuk menggunakannya lebih dari Ethernet kabel, jaringan WiFi lokal Anda atau internet, di mana ia akan bekerja dengan baik. Faktanya, salah satu kekuatan retikulum adalah betapa mudahnya memungkinkan Anda untuk menghubungkan berbagai media ke dalam mesh yang konfigurasi diri, tangguh dan dienkripsi, menggunakan campuran infrastruktur yang tersedia.
Sebagai contoh, dimungkinkan untuk mengatur Raspberry Pi yang terhubung ke radio Lora, Radio Paket TNC dan jaringan WiFi. Setelah antarmuka dikonfigurasi, reticulum akan mengurus sisanya, dan perangkat apa pun di jaringan WiFi dapat berkomunikasi dengan node di sisi radio Lora dan paket jaringan, dan sebaliknya.
Cara terbaik untuk memulai dengan tumpukan jaringan retikulum tergantung pada apa yang ingin Anda lakukan. Untuk detail lengkap dan contoh, lihat bagian yang memulai dengan cepat dari manual reticulum.
Untuk sekadar menginstal retikulum dan utilitas terkait pada sistem Anda, cara termudah adalah melalui pip . Anda kemudian dapat memulai program apa pun yang menggunakan retikulum, atau memulai retikulum sebagai layanan sistem dengan utilitas RNSD.
pip install rns Jika Anda menggunakan sistem operasi yang memblokir instalasi paket pengguna normal melalui pip , Anda dapat mengembalikan pip ke perilaku normal dengan mengedit file ~/.config/pip/pip.conf , dan menambahkan arahan berikut di bagian [global] :
[global]
break-system-packages = true
Atau, Anda dapat menggunakan alat pipx untuk memasang retikulum di lingkungan yang terisolasi:
pipx install rnsSaat pertama kali dimulai, retikulum akan membuat file konfigurasi default, memberikan konektivitas dasar ke rekan retikulum lain yang mungkin dapat dijangkau secara lokal. File konfigurasi default berisi beberapa contoh, dan referensi untuk membuat konfigurasi yang lebih kompleks.
Jika Anda memiliki versi pip yang lama di sistem Anda, Anda mungkin perlu memutakhirkannya terlebih dahulu dengan pip install pip --upgrade . Jika Anda tidak belum menginstal pip , Anda dapat menginstalnya menggunakan paket manajer sistem Anda dengan sudo apt install python3-pip atau serupa.
Untuk contoh yang lebih rinci tentang cara memperluas komunikasi pada banyak media seperti Radio Paket atau LORA, port serial, atau melalui tautan IP cepat dan Internet menggunakan antarmuka UDP dan TCP, lihat bagian antarmuka yang didukung dari manual Retikulum.
Retikulum mencakup berbagai utilitas yang berguna untuk mengelola jaringan Anda, status dan informasi menonton, dan tugas -tugas lainnya. Anda dapat membaca lebih lanjut tentang program -program ini di bagian Program Utilitas yang disertakan dari Manual Retikulum.
rnsd untuk menjalankan retikulum sebagai layanan yang selalu tersediarnstatus , yang menampilkan informasi tentang antarmukarnpath memungkinkan Anda melihat dan memodifikasi tabel jalurrnprobe untuk memeriksa konektivitas ke tujuanrncp sehingga mudah mentransfer file antar sistemrnid Mari Anda mengelola identitas dan enkripsi/mendekripsi filernx Mari Anda menjalankan perintah dan program dan mengambil output dari sistem jarak jauh Semua alat, termasuk rnx dan rncp , pekerjaan dengan andal dan baik bahkan di atas tautan yang sangat rendah seperti Lora atau Packet Radio. Untuk cangkang jarak jauh berfitur lengkap di atas retikulum, juga lihat program RNSH.
Retikulum mengimplementasikan serangkaian jenis antarmuka umum yang mencakup sebagian besar perangkat keras komunikasi yang dapat ditanggung oleh retikulum. Jika perangkat keras Anda tidak didukung, mudah untuk mengimplementasikan modul antarmuka khusus.
Permintaan tarik untuk antarmuka khusus diterima dengan penuh rasa terima kasih, asalkan mereka umumnya berguna dan diuji dengan baik dalam penggunaan dunia nyata.
Saat ini, antarmuka bawaan berikut didukung:
Retikulum menargetkan amplop kinerja yang sangat luas, tetapi memprioritaskan fungsionalitas dan kinerja pada medium bandwidth rendah. Tujuannya adalah untuk memberikan amplop kinerja dinamis dari 250 bit per detik, hingga 1 gigabit per detik pada perangkat keras normal.
Saat ini, amplop kinerja yang dapat digunakan adalah sekitar 150 bit per detik hingga 40 megabit per detik, dengan media fisik lebih cepat daripada yang tidak jenuh. Kinerja di luar level saat ini dimaksudkan untuk peningkatan di masa depan, tetapi tidak diprioritaskan pada saat ini.
Retikulum saat ini harus dianggap perangkat lunak beta. Semua fitur protokol inti diimplementasikan dan berfungsi, tetapi penambahan mungkin akan terjadi saat penggunaan dunia nyata dieksplorasi. Akan ada bug. API dan format kawat dapat dianggap relatif stabil saat ini, tetapi dapat berubah jika dijamin.
Instalasi paket rns default membutuhkan dependensi yang tercantum di bawah ini. Hampir semua sistem dan distribusi telah tersedia paket yang tersedia untuk dependensi ini, dan ketika paket rns diinstal dengan pip , mereka akan diunduh dan diinstal juga.
Pada sistem yang lebih tidak biasa, dan dalam beberapa kasus yang jarang, mungkin tidak mungkin untuk menginstal atau bahkan mengkompilasi satu atau lebih modul di atas. Dalam situasi seperti itu, Anda dapat menggunakan paket rnspure sebagai gantinya, yang tidak memerlukan dependensi eksternal untuk instalasi. Harap dicatat bahwa isi paket rns dan rnspure identik . Satu -satunya perbedaan adalah bahwa paket rnspure mencantumkan tidak ada dependensi yang diperlukan untuk instalasi.
Tidak peduli bagaimana retikulum diinstal dan dimulai, itu akan memuat dependensi eksternal hanya jika diperlukan dan tersedia . Jika misalnya Anda ingin menggunakan reticulum pada sistem yang tidak dapat mendukung pyerial, sangat mungkin untuk melakukannya menggunakan paket rnspure , tetapi retikulum tidak akan dapat menggunakan antarmuka berbasis serial. Semua modul lain yang tersedia masih akan dimuat saat dibutuhkan.
Harap dicatat! Jika Anda menggunakan paket rnspure untuk menjalankan retikulum pada sistem yang tidak mendukung pyca/kriptografi, penting bagi Anda untuk membaca dan memahami bagian primitif kriptografi dari dokumen ini.
Jika Anda hanya ingin memulai bereksperimen tanpa membangun jaringan fisik apa pun, Anda dipersilakan untuk bergabung dengan RNS Development TestNet.
TestNet hanyalah itu, jaringan informal untuk pengujian dan bereksperimen. Ini akan menjadi sebagian besar waktu, dan siapa pun dapat bergabung, tetapi itu juga berarti bahwa tidak ada jaminan untuk ketersediaan layanan.
Mungkin tidak perlu dikatakan, tetapi jangan gunakan titik masuk testnet sebagai antarmuka hardcoded atau default di aplikasi apa pun yang Anda kirimkan ke pengguna . Saat pengiriman aplikasi, praktik terbaik adalah memberikan solusi konektivitas default Anda sendiri, jika diperlukan dan berlaku, atau dalam kebanyakan kasus, serahkan saja kepada pengguna yang akan terhubung ke pengguna mana, dan bagaimana.
TestNet menjalankan versi retikulum terbaru (sering kali bahkan beberapa saat sebelum dirilis secara publik). Kadang -kadang versi eksperimental retikulum mungkin digunakan ke node pada testnet, yang berarti perilaku aneh mungkin terjadi. Jika tidak ada yang membuat Anda takut, Anda dapat bergabung dengan TestNet melalui TCP atau I2P. Cukup tambahkan salah satu antarmuka berikut ke file konfigurasi retikulum Anda:
# TCP/IP interface to the RNS Amsterdam Hub
[[RNS Testnet Amsterdam]]
type = TCPClientInterface
enabled = yes
target_host = amsterdam.connect.reticulum.network
target_port = 4965
# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
[[RNS Testnet BetweenTheBorders]]
type = TCPClientInterface
enabled = yes
target_host = reticulum.betweentheborders.com
target_port = 4242
# Interface to Testnet I2P Hub
[[RNS Testnet I2P Hub]]
type = I2PInterface
enabled = yes
peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p
TestNet juga berisi sejumlah node jaringan nomad, dan node propagasi LXMF.
Anda dapat membantu mendukung pengembangan sistem komunikasi terbuka, gratis, dan pribadi yang berkelanjutan dengan menyumbang melalui salah satu saluran berikut:
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
Apakah fitur tertentu dalam peta jalan pengembangan penting bagi Anda atau organisasi Anda? Jadikan mereka kenyataan dengan cepat dengan mensponsori implementasinya.
Retikulum menggunakan rangkaian sederhana primitif kriptografi yang efisien, kuat dan teruji dengan baik, dengan implementasi yang tersedia secara luas yang dapat digunakan baik pada CPU tujuan umum dan pada mikrokontroler. Primitif yang digunakan adalah:
Dalam konfigurasi instalasi default, primitif X25519 , Ed25519 dan AES-128-CBC disediakan oleh OpenSSL (melalui paket PYCA/Cryptography). Fungsi Hashing SHA-256 dan SHA-512 disediakan oleh Python Hashlib standar. HKDF , HMAC , Token Primitif, dan fungsi padding PKCS7 selalu disediakan oleh implementasi internal berikut:
Reticulum juga mencakup implementasi lengkap dari semua primitif yang diperlukan dalam ular python murni. Jika OpenSSL & PYCA tidak tersedia pada sistem ketika retikulum dimulai, reticulum akan menggunakan primitif internal-python internal. Konsekuensi sepele dari ini adalah kinerja, dengan backend openssl jauh lebih cepat. Namun konsekuensi yang paling penting, adalah potensi kehilangan keamanan dengan menggunakan primitif yang belum melihat jumlah pengawasan, pengujian, dan peninjauan yang sama dengan yang dari OpenSSL.
Jika Anda ingin menggunakan primitif internal murni-python, sangat disarankan bahwa Anda memiliki pemahaman yang baik tentang risiko yang ditimbulkannya, dan membuat keputusan berdasarkan informasi apakah risiko tersebut dapat diterima oleh Anda.
Retikulum adalah perangkat lunak yang relatif muda, dan harus dipertimbangkan seperti itu. Sementara itu telah dibangun dengan kriptografi praktik terbaik yang sangat terpenting dalam pikiran, itu belum pernah diaudit secara eksternal, dan mungkin ada privasi atau bug yang melanggar keamanan. Jika Anda ingin membantu, atau membantu mensponsori audit, silakan hubungi.
Retikulum hanya dapat ada karena gunung pekerjaan open source yang dibangun di atas, kontribusi semua orang yang terlibat, dan semua orang yang telah mendukung proyek selama bertahun -tahun. Kepada semua orang yang telah membantu, terima kasih banyak.
Sejumlah modul dan proyek lain adalah bagian dari, atau digunakan oleh retikulum. Terima kasih yang tulus kepada penulis dan kontributor dari proyek -proyek berikut: