Earthstar – Database untuk aplikasi pribadi terdistribusi yang mengutamakan offline
(earthstar-project.org)- Earthstar adalah spesifikasi data dan library JavaScript untuk membuat aplikasi terdistribusi privat yang dimiliki dan dioperasikan langsung oleh pengguna
- Spesifikasi Earthstar yang baru telah beralih berbasis Willow, dan Earthstar v11 saat ini tersedia dalam versi beta
- Aplikasi secara default mengutamakan operasi offline, sekaligus mendukung sinkronisasi live, dokumen sementara, penghapusan sungguhan, serta penyimpanan musik, foto, dan video
- Server bersifat opsional, tetapi model operasinya selalu self-hosting, dan tidak bergantung pada blockchain atau token
- Berjalan di browser, Deno, dan Node, serta menyediakan verifikasi ed25519, akses read-only, sinkronisasi streaming, multi-penulis, dan driver penyimpanan
Peran dan status Earthstar saat ini
- Earthstar adalah spesifikasi dan library JavaScript yang berkarakter seperti database untuk membuat aplikasi milik pengguna
- Spesifikasi Earthstar yang baru berbasis Willow
- Earthstar v11 saat ini tersedia sebagai versi beta
- Dokumentasi, API JavaScript, spesifikasi, dan tutorial aplikasi chat disediakan sebagai titik masuk utama
Fitur untuk aplikasi yang mengutamakan offline
-
Fitur aplikasi
- Mendukung operasi offline
- Mendukung sinkronisasi live dan metode Sneakernet
- Dapat menyimpan musik, foto, dan video
- Mendukung dokumen sementara dan penghapusan data secara sungguhan
- Dapat menggunakan satu atau beberapa identitas (identity)
-
Model operasi
- Server bersifat opsional
- Model operasinya selalu self-hosting
- Tidak menggunakan blockchain dan token
- Mengusung prinsip “gratis selamanya dalam segala arti”
-
Fitur teknis
- Mendukung verifikasi ed25519
- Berjalan di browser, Deno, dan Node
- Dapat memberikan hak akses read-only
- Mendukung sinkronisasi efisien dan sinkronisasi streaming
- Satu identitas dapat digunakan di beberapa perangkat
- Mendukung multi-penulis, driver penyimpanan, dan izin penulisan dokumen
1 komentar
Opini di Hacker News
Sedikit mirip dengan nostr, tetapi ada perbedaannya. Datanya bukan berbasis pengalamatan konten, melainkan berbasis nama, sehingga mendukung penimpaan dan penghapusan; tipe data mentahnya juga bukan kumpulan pesan, melainkan array asosiatif dari nama ke dokumen.
Dokumen dikelompokkan dalam "shares", dan agar sebuah server mengakui bahwa ia memiliki dokumen dari share tersebut, ia harus lebih dulu mengetahui "share address". Pendekatan akses yang sebagian privat dan sebagian publik ini menarik; proyek-proyek yang memilih posisi ekstrem pada sumbu ini biasanya kesulitan, dan menurut saya kebanyakan memang begitu.
Sepertinya akan berhasil mencegah spammer dan penipu, tetapi saya akan berhati-hati untuk grup besar yang menghadapi penyerang yang bermotivasi tinggi. Jika satu pengguna mengekspos share address yang berada di wilayah abu-abu antara publik dan privat, tampaknya semua pengguna share itu akan terungkap.
Web of trust, di mana penyerang harus menembus setiap hop dalam graf kepercayaan sebelum menemukan target, akan lebih baik, tetapi kompleksitas yang harus ditanggung pengguna jadi besar, jadi saya juga paham mengapa mereka menerima kurangnya granularitas demi kesederhanaan. Saya berharap hal seperti ini berhasil; rasanya kita telah kehilangan web, dan tanpa sesuatu yang mirip web, sulit bagi banyak orang untuk berkoordinasi dalam skala besar pada masa-masa penting.
Share address harus diperlakukan seperti kunci ssh.
Saya tidak benar-benar paham ini sebenarnya apa.
Apakah ini semacam basis data dokumen/media dengan banyak JavaScript? Agak berorientasi self-hosting, lalu direplikasi ke node peer seperti Mastodon? Visi besarnya tampak ada, tetapi kurang terlihat jelas.
Saya tidak tahu apa yang didapat dari sifat terdistribusi Earthstar. Kalau untuk backup, itu juga cukup sederhana di SQLite dan PGlite. Saya tidak melihat apakah ini memberi manfaat besar bagi sebagian besar pengguna basis data.
Tampaknya ada manfaat bagi orang yang ingin menyimpan data di perangkatnya sendiri sambil membagikan data itu dengan individu lain, dan ingin mereka juga memiliki salinan lokal. Mungkin juga bisa untuk berbagi konten ilegal.
Jelas ada fitur-fitur menarik, tetapi visinya terasa tenggelam dalam daftar fitur.
Saya menganggap ini telah digantikan oleh protokol Willow [0] yang pernah muncul sebelumnya.
Saya mencoba membaca Willow, tetapi sama sekali tidak bisa menangkap gambarannya [1]. Kelihatannya seperti penyimpanan key-value hierarkis dengan banyak field tambahan untuk timestamp dan token kriptografis, tetapi contoh cara kerjanya terlalu kurang.
Bahkan library Rust terbaru [2] pada dasarnya hanya kumpulan kelas abstrak, dan implementasinya sebatas melempar error. Saya bisa saja bercanda tentang kondisi kecanggihan teknologi Eropa saat ini, tetapi akan saya lewatkan dengan senyum sopan.
[0] https://willowprotocol.org/earthstar/spec/
[1] https://willowprotocol.org/specs/data-model/index.html#data_...
[2] https://github.com/earthstar-project/willow-rs/tree/main
[1] https://nlnet.nl/project/current.html
[2] https://nlnet.nl/funding.html
Kalau kualitas perangkat lunak buatan Silicon Valley dinilai dari proyek-proyek investasi VC yang tidak berhasil, ya tidak ada jawabannya.
Orang-orang di balik Willow juga tampaknya tim yang sama: https://earthstar-project.org/docs/future#willow-protocol
https://willowprotocol.org/more/compare/index.html#compare_e...“Semua fitur di atas dimungkinkan oleh Willow General Purpose Sync Protocol baru yang sedang kami kerjakan. Ini adalah protokol baru yang terinspirasi oleh Earthstar, yang menyempurnakan dan memperluas konsep-konsepnya. Kami akan meluncurkan situs web baru berisi spesifikasi lengkap protokol ini.”
“Jika Earthstar terasa sangat mirip dengan Willow, itu bukan kebetulan. Willow berawal dari upaya membayangkan ulang Earthstar; versi Earthstar mendatang akan dibangun di atas Willow, dan maintainer inti Earthstar adalah salah satu dari dua penulis Willow.”
Apakah ada klien Python? Satu-satunya hal yang terlihat terkait Python di dokumentasi hanyalah ini:
# Earthstar timestamps in pythontimestamp = int(time.time() * 1000 * 1000)Daripada itu, saya akan merekomendasikan jellyfin, immich, dan untuk sisanya cukup sftp. Sinkronisasi—atau lebih tepatnya desentralisasi—bisa dilakukan dengan git, syncthing, rsync
Saya belum melihat pengelola identitas self-hosted atau SSO yang benar-benar bagus. Saya tahu bluesky sedang membuat salah satunya, tapi tidak tahu apakah bisa di-self-host. Autocomplete secara Freudian mengubahnya menjadi self hostage
Masalah lain yang belum terpecahkan di homelab/private cloud adalah bagaimana menjadi CA sendiri dan mengelola akses ke mesin saya tanpa harus mengajari orang lain ssh
Saya ingin sesuatu seperti meshnet milik NordVPN, sehingga orang-orang yang login ke paket keluarga bisa melihat mesin satu sama lain seperti di jaringan lokal. Apakah bisa dengan wireguard? yggdrasil juga tampaknya seperti ini, tapi saya belum mendalaminya
Kalau yang dimaksud manajemen identitas yang “bagus”, apakah maksudnya selain OpenLDAP atau 389? Kalau sampai mempertimbangkan Windows, saya tidak tahu seberapa cocoknya
Menjadi CA sendiri itu mudah, tapi bagian memasang CA itu di semua mesin yang diinginkan kurang enak. Kalau memakai Let’s Encrypt, semuanya berjalan lancar
Wireguard bisa menghubungkan dua LAN lewat internet, tapi akan lebih baik jika ada dua router yang mendukung wireguard, seperti pfsense, di kedua ujungnya. Kalau tidak, harus memasang pengaturan routing khusus di tiap mesin klien. Saya belum menemukan cara meneruskan avahi untuk auto-discovery melewati link itu
Saya masih menyayangkan baru ikut pesta SQLite setelah browser menghentikan dukungan SQLite
Tulisan blog tentang ini sepertinya akan sangat membantu. Misalnya tulisan tentang mengapa didesain seperti ini, apa alternatifnya, dan sebagainya
Kesan pertama saya menarik. Saya juga suka bahwa identitasnya berupa pasangan kunci, dan file serta konten bisa diakses berdasarkan nama
Apakah ada kemungkinan diimplementasikan dalam bahasa lain seperti Python? Saya suka semuanya, hanya saja terganjal karena ini JavaScript, dan saya masih berhati-hati memakai JavaScript untuk penggunaan seperti ini
Sayangnya keduanya tidak begitu populer, jadi pada akhirnya orang akan meminta implementasi dalam banyak bahasa, dan itu tampaknya akan menjadi beban bagi maintainer proyek seperti ini. Bagaimanapun, begitulah kenyataannya, dan kalau bukan memakai bahasa seperti itu, saya juga tertarik pada library klien Python
“Selalu self-hosted. Server bersifat opsional. Tanpa blockchain. Tanpa token. Gratis selamanya dalam segala arti.”
Ini ringkasan tesis terbaik