- Radicle Heartwood adalah implementasi ketiga dari Radicle Protocol, yang menyediakan stack kolaborasi dan publikasi kode peer-to-peer tanpa code forge terpusat
- Repositori ini mencakup alat baris perintah
rad yang digunakan langsung oleh pengembang dan daemon jaringan radicle-node
- Dirancang sebagai pengganti code forge seperti GitHub dan GitLab, dengan keamanan dan desentralisasi, serta pelestarian kedaulatan pengguna sebagai tujuan utama
- Lingkungan instalasi memerlukan sistem operasi berbasis Linux atau Unix, Git 2.34 atau lebih baru, serta OpenSSH 9.1 atau lebih baru yang menyertakan
ssh-agent
- Mendukung instalasi biner maupun dari source Rust, tetapi email umpan balik akan diposting otomatis ke kanal Zulip publik sehingga nama dan alamat email dapat terekspos
Apa yang disediakan Radicle Heartwood
- Heartwood adalah versi iterasi ketiga dari Radicle Protocol, sekaligus stack lengkap untuk kolaborasi dan publikasi kode peer-to-peer
- Repositori ini mencakup komponen utama yang diperlukan untuk implementasi Heartwood
rad: antarmuka baris perintah yang ramah pengguna
radicle-node: daemon jaringan
- Radicle dirancang sebagai alternatif untuk code forge seperti GitHub dan GitLab
- Tujuannya adalah menjaga keamanan, desentralisasi, serta kedaulatan dan kebebasan pengguna
- Informasi umum tersedia di Radicle home page
- Percakapan proyek dapat dilakukan di Zulip chat
- Cara kerja Radicle dijelaskan lebih rinci dalam Protocol Guide
Instalasi dan menjalankan
- Persyaratan instalasi adalah sebagai berikut
- Sistem operasi berbasis Linux atau Unix
-
Git 2.34 atau lebih baru
- OpenSSH 9.1 atau lebih baru yang menyertakan
ssh-agent
- Instalasi biner memerlukan
curl dan tar, dan rilis terbaru dapat dipasang dengan perintah berikut
curl -sSf https://radicle.dev/install | sh
- Biner juga dapat diunduh dari halaman [download](https://radicle.dev/download)
- Untuk memasang dari source, diperlukan **toolchain Rust**, lalu jalankan perintah berikut di dalam repositori
cargo install --path crates/radicle-cli --force --locked --root ~/.radicle
cargo install --path crates/radicle-node --force --locked --root ~/.radicle
cargo install --path crates/radicle-remote-helper --force --locked --root ~/.radicle
- Instalasi juga bisa dilakukan langsung dari seed node
cargo install --force --locked --root ~/.radicle \
--git https://seed.radicle.dev/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git \
crates/radicle-cli crates/radicle-node crates/radicle-remote-helper
- File **systemd unit** untuk node berada di folder `/systemd` dan dapat digunakan sebagai titik awal untuk kustomisasi tambahan
- Untuk menjalankan dalam mode debug, lihat [HACKING.md](https://radicle.network/nodes/iris.radicle.network/rad%3Az3gqcJUoA1n9HaHKufZs5FCSGazv5/tree/HACKING.md)
Umpan balik, kontribusi, lisensi
- Umpan balik dapat dikirim melalui
rad issue, Zulip, atau feedback@radicle.dev
- Umpan balik yang dikirim lewat email akan diposting otomatis ke kanal publik #feedback di Zulip
- Selama proses posting, header
From akan dipublikasikan, yang biasanya mencakup nama dan alamat email
- Panduan kontribusi tersedia di CONTRIBUTING.md dan HACKING.md
- Radicle didistribusikan di bawah lisensi MIT dan Apache License 2.0
- Detail lebih lanjut tersedia di LICENSE-APACHE dan LICENSE-MIT
1 komentar
Opini Hacker News
Saya salah satu pendiri Radicle. Jika penasaran dengan cara kerja internal protokolnya, mulai saja dari dokumentasi: https://docs.radicle.xyz/
Dokumentasinya masih dalam proses penulisan
Pada dasarnya, kalau ini adalah aplikasi berbagi berkas P2P, saya penasaran di bagian mana protokol menangani penyalahgunaan. Kalau tidak, saya tidak tahu apa bedanya dengan aplikasi berbagi berkas generasi sebelumnya seperti BitTorrent atau Winny, yang dipakai untuk membagikan konten berhak cipta seperti film, musik, dan perangkat lunak secara sembarang. Sepertinya segelintir pengguna jahat bisa merusaknya, dan saya juga penasaran apakah jaringan “pribadi” bisa dipisahkan agar kita yakin tidak ikut terlibat dalam hal-hal ilegal
Di Crunchbase tercantum bahwa mereka menerima investasi 12 juta dolar, jadi sepertinya ada rencana monetisasi
Untuk jenis proyek yang saya bantu, ini bisa menjadi penghalang fatal. Kodenya tampak ditulis dalam Rust, jadi saya penasaran apakah ada rencana dukungan untuk MS Windows. Mac OS bisa dianggap termasuk keluarga Unix, kan? Walaupun bukan dukungan Windows resmi, saya penasaran apakah port MSYS2 memungkinkan
Sebagai sedikit latar belakang, saya bukan orang yang berada di posisi mengambil keputusan seperti memilih penyedia layanan, tetapi saya terkait dengan organisasi semi-pemerintah yang menaruh basis kode open source yang cukup besar di GitHub. Sesekali saya punya kesempatan mengusulkan ide tertentu, tetapi keputusan adopsi bukan wewenang saya. Organisasi ini punya motivasi kuat untuk memiliki ketahanan agar tidak terseret kebijakan penyedia swasta, serta melakukan “hal-hal baik” seperti keberlanjutan dan aksesibilitas yang luas. Sebagai organisasi pemerintah Eropa yang tipikal, GitHub bertabrakan dengan kebijakan semacam itu
Ada juga lembaga pemerintah lain yang menangani arsip atau dukungan jaringan, tetapi kapasitasnya kurang atau masih terpaku pada cara lama, dan mereka juga sering terjebak perangkap yang dipasang penyedia. Misalnya, layanan arsip mengadopsi DataBricks secara menyeluruh tanpa tahu bahwa DataBricks adalah produk komersial sumber tertutup. Jadi harapan saya rendah bahwa organisasi itu akan memanfaatkan solusi self-hosting dengan baik, dan solusi terdistribusi tampak menarik. Namun alat yang tidak berjalan di lingkungan PC umum utama tidak bisa digunakan
Saya juga penasaran tingkat adopsi seperti apa yang dulu dan sekarang mereka perkirakan, serta apakah hasil nyatanya sesuai dengan ekspektasi itu
Menarik melihat bagaimana Radicle berevolusi selama kira-kira 5 tahun terakhir. Saya menghadiri lokakarya Protocol Berg 2023, dan menurut saya mereka membuat sesuatu yang cukup kuat dan baru
Yang terutama menarik adalah bahwa fitur kolaborasinya pun local-first. Kita bisa mengirim patch dan issue tanpa internet, dan setiap kali GitHub bermasalah, seluruh tim tidak perlu menempel di HN
Untuk tujuannya, ini tampak seperti proyek yang bagus, tetapi menurut saya Git sendiri sebenarnya sudah open source dan P2P. Tidak perlu menerima biner lewat
sh <(curl); cukup hubungkan ke server Git lain lalu ambil atau merge kode secara langsung dengan perintah GitYang tidak ada di Git adalah issue kode, wiki, diskusi, GitHub Pages, dan yang paling penting jaringan profil developer. Diperlukan cara untuk memasukkan metadata proyek ke dalam
.gititu sendiri agar commit kode sumber tidak tercampur dengan wiki atau issue. Referensi terpisah sepertigit notesmungkin bisa dipakaihttps://git-scm.com/docs/git-notes
Misalnya, tidak ada cara untuk memverifikasi bahwa repositori yang didapat lewat
git cloneadalah repositori yang saya minta. Karena itu kita harus melakukan clone dari sumber tepercaya, yaitu server yang dikenal. Ini tidak cocok dengan P2P yang praktisRadicle memecahkan masalah ini dengan memberikan identifier repositori yang stabil[0] dan dapat diverifikasi secara lokal, sehingga pihak yang tidak tepercaya pun dapat menyediakan repositori
[0]: https://docs.radicle.xyz/guides/protocol#trust-through-self-...
Di mobile, jika menekan tombol-tombol di bagian bawah tautan sumber, Anda bisa melihat tab pelacakan issue, tab pull request, dan lainnya
Kalau tidak salah, Gerrit dulu menyimpan code review di Git
Di dokumentasi tertulis bahwa “penting untuk hanya memublikasikan repositori yang Anda miliki atau pelihara, dan berkomunikasi dengan maintainer lain agar tidak membuat identifier repositori yang duplikat.”
Saya pernah mengalami orang-orang mengambil kode saya lalu mengunggahnya ke GitHub, dan saya sering melihat bahwa meskipun dokumentasi produk atau UI perantara memuat petunjuk “tolong jangan lakukan X, itu akan menimbulkan masalah bagi pengguna lain”, tidak ada yang membaca, memikirkan, atau memedulikannya, lalu langsung melakukan X. Jadi sepertinya banyak orang tidak akan mengikuti permintaan dalam dokumentasi ini; bahkan halaman beranda hanya memberi tahu cara melakukan push kode, sementara permintaan yang “penting” ini ada di panduan pengguna yang hampir tidak dibaca orang
Pada akhirnya, cukup mengkhawatirkan bahwa tindakan yang tampak masuk akal—sekadar melakukan push kode open source yang sedang dikerjakan sesuai instruksi di beranda—karena protokol dan cara penyimpanannya, seiring waktu dapat mengacaukan atau membingungkan sesuatu yang penting
Di GitHub, jumlah star dapat memberi kepercayaan tambahan, dan padanan di Radicle adalah jumlah seed untuk repositori tertentu
Dalam komputasi sehari-hari, biasanya ada puluhan petunjuk yang kita lihat, dan puluhan alat yang kita gunakan. Kalau membayangkan waktu yang dibutuhkan untuk membaca semua petunjuk itu dan meneliti dokumentasi semua alat, itu akan terlalu lama
Jadi jauh lebih baik untuk tidak membacanya dan memakai heuristik. Misalnya, ketika menutup dokumen yang memiliki perubahan belum disimpan, kita sudah tahu dialognya mungkin berbunyi “Buang?”, jadi tidak perlu dibaca. Ini hal yang baik
Kesimpulannya, perangkat lunak harus dirancang dengan asumsi bahwa orang memang berperilaku seperti ini. Biasanya itu memungkinkan. Kalau ada contoh spesifik, saya rasa saya bisa mengusulkan solusi yang lebih baik daripada pendekatan “meminta dan berharap orang membacanya”
Selamat atas peluncurannya. Saya sudah mengikuti proyek ini, dan sangat antusias melihatnya sudah jauh lebih matang. Saya penasaran apa cara terbaik untuk memindahkan proyek yang saat ini ada di GitHub. Saya juga ingin tahu apakah ada mode mirror yang bisa dicoba
cronyang setiap jam mengambil dari GitHub lalu melakukan push ke Radiclegit pull github mastergit push rad masterSaya penasaran seberapa mudah ditemukan repositori-repositori ini oleh pengguna umum. Sepertinya https://app.radicle.xyz/robots.txt tidak ada, jadi tampaknya mesin pencari boleh mengambilnya, dan memang jika mencari
site:app.radicle.xyzdi Google dan DDG, hasilnya munculSaat ini belum muncul di peringkat atas tanpa filter situs, tetapi peringkatnya bisa saja membaik
Akan bagus juga jika ada alat yang terintegrasi dengan dukungan CI. Pada akhirnya mungkin berupa loop seperti
while true; do wait_repo_update; git pull && ./run_ci.sh; done, tetapi perlu bentuk yang lebih baik yang bisa dibatasi hanya pada push dari identifier yang dipercayaTerakhir, repositori artefak juga diperlukan. Namun Radicle mungkin tidak perlu menyelesaikan semuanya. Khususnya, jaringan terdistribusi untuk berbagi binary besar tampaknya akan cukup cepat dipakai untuk tujuan yang tidak diinginkan
app.radicle.xyzsepertinya memang harus mengizinkan crawler mengindeks seluruh kumpulan repositori di jaringanSaya berharap orang-orang mendefinisikan dengan jelas apa arti “P2P” atau, istilah yang lebih umum dipakai, “terdistribusi”. Saat ini istilah itu sudah menjadi buzzword yang terlalu kabur sehingga bisa dipakai untuk makna apa saja
Jadi sistem P2P adalah sistem tempat semua peserta memiliki “hak yang setara di dalam jaringan”. Biasanya itu juga berarti semuanya menjalankan perangkat lunak yang sama
[0]: https://en.wikipedia.org/wiki/Peer-to-peer
Panduan instalasinya
curl -sSf [https://radicle.xyz/install](<https://radicle.xyz/install>) | sh, jadi ekspektasi saya langsung runtuh karena sampah curl-bashCara instalasi seperti ini adalah sinyal kuat pengembangan yang tidak dipikirkan. Kalau proyek ini populer, rasanya kita akan melihat bencana keamanan terjadi. Semoga suatu hari ada “alternatif GitHub P2P open source” yang tidak dimulai dengan cara instalasi terburuk
Risiko installer yang dipipe sudah diketahui banyak orang. Dengan logika itu, kita harus membuang Homebrew [1](lebih dari 38 ribu bintang GitHub), PiHole [2](lebih dari 46 ribu), Chef [3], RVM [4], dan banyak sekali proyek open source yang memakai installer otomatis satu langkah yang dipipe ke
bashRespons yang lebih masuk akal adalah bekerja sama dengan pengembang agar dokumentasi menyediakan cara instalasi alternatif atau menjelaskan risikonya dengan lebih baik, bukan membakar lumbung hanya demi membasmi kutu
[1] https://brew.sh/
[2] https://github.com/pi-hole/pi-hole
[3] https://docs.chef.io/chef_install_script/#run-the-install-sc...
[4] https://rvm.io/rvm/install
Soal masalah transfer yang terputus, skripnya aman kecuali di sistem Anda ada perintah berbahaya yang cocok dengan
^(t(e(m(p(d(ir?)?)?)?)?|a(r(g(et?)?)?)?)?|i(n(_(p(a(th?)?)?)?|fo?)?)?|s(u(c(c(e(s?s)?)?)?)?)?|f(a(t(al?)?)?)?|m(a(in?)?)?|w(a(rn?)?)?|u(rl?)?)Setelah itu ditangani, saya bertanya-tanya apa bedanya dengan hanya menyediakan skrip tanpa menyediakan perintah untuk menjalankannya. Kalau ingin meninjau, Anda bisa mengunduh skripnya lalu menjalankannya secara terpisah. Sepertinya pernah ada cara untuk mendeteksi skrip yang dipipe versus skrip yang diunduh, tapi tampaknya tidak akan bekerja untuk skrip kecil seperti ini
[0] https://files.radicle.xyz/latest/
[1] https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z3gqcJ...
Rasanya setiap kali pasar kripto naik, saya mendengar soal Radicle. Apakah ada yang benar-benar memakainya secara serius?
Ini langsung kena downvote. Saya bertanya serius: saya penasaran berapa anggaran yang masuk ke Radicle, berapa orang yang mengerjakannya, dan siapa yang memakainya
Saya bekerja di industri kripto dan mendapat kesan yang sama. Terakhir kali saya mendengar Radicle adalah saat bull market sebelumnya, lalu saat bear market sepi. Semua orang bilang bear market adalah waktu untuk membangun, dan Radicle jelas-jelas alat untuk developer, jadi ini cukup aneh
Saya penasaran apakah ada rencana mendukung use case menyediakan repository hanya untuk sekumpulan node tertentu. Rasanya ada orang-orang yang tidak ingin berada di GitHub tetapi tetap ingin melakukan kolaborasi privat
Namun, datanya tidak dienkripsi saat disimpan, jadi tidak bisa disimpan di node perantara yang tidak termasuk dalam kumpulan tepercaya