Desearch adalah sistem eksperimental menuju mesin pencari yang terdesentralisasi. Untuk mencapai skalabilitas dan toleransi kesalahan, desearch memisahkan perhitungan dan penyimpanan menggunakan jaringan tepercaya tanpa kewarganegaraan dan toko cloud yang stateful . Jaringan dilacak oleh saksi dan toko diatur oleh blockchain. Implementasi Desearch saat ini menggunakan Intel SGX sebagai perangkat keras tepercaya dan Redis sebagai toko.
Peringatan: Repo ini menyelenggarakan prototipe bukti konsep akademik dan belum menerima tinjauan kode yang cermat.
Silakan merujuk ke makalah OSDI'21 kami untuk lebih jelasnya.
@inproceedings{li2021desearch,
author = {Mingyu Li and Jinhao Zhu and Tianxu Zhang and Cheng Tan and Yubin Xia and Sebastian Angel and Haibo Chen},
title = {Bringing Decentralized Search to Decentralized Services},
booktitle = {15th {USENIX} Symposium on Operating Systems Design and Implementation, {OSDI} 2021},
pages = {331--347},
publisher = {{USENIX} Association},
year = {2021},
}
Persyaratan Perangkat Keras: Desktop yang berkemampuan SGX atau mesin cloud berkemampuan SGX. Untuk memeriksa apakah mesin Anda mendukung SGX, silakan merujuk ke Intel SGX Hardware.
Perhatikan bahwa jika Anda ingin menjalankan beberapa node SGX di mesin lokal Anda tanpa dukungan SGX yang dapat diskalakan, mungkin perlu waktu lebih lama untuk bootstrap seluruh sistem karena memori terenkripsi yang langka (biasanya 128MB/256MB pada SGXV1).
Repo ini menyediakan versi non-SGX di folder executor , dan versi SGX di folder sgx-executor . Versi non-SGX membantu Anda lebih mudah men-debug jika Anda ingin membangun ekstensi ke desearch; Ini menggunakan struktur folder yang sama dengan versi SGX. Perhatikan bahwa hanya versi SGX yang berisi querier berbasis Oram.
Di bawah Ubuntu 20.04, Eksekutor Building Desearch mensyaratkan depresion berikut yang diinstal:
Anda dapat merujuk ke folder deps untuk versi Redis, Hiredis, dan Redis ++ yang benar.
apt install -y libboost-all-dev
cd deps
tar zxf redis-6.2.6.tar.gz
tar zxf redis-plus-plus-1.2.3.tar.gz
pushd redis-6.2.6/deps/hiredis/
make -j $( nproc ) && make install
popd
pushd redis-plus-plus-1.2.3
mkdir build && cd build && cmake ..
make -j $( nproc ) && make install
popdKanban adalah Redis yang tidak dimodifikasi yang memanfaatkan penyimpanan cloud yang relatif murah.
Cukup mulai server Redis:
cd Kanban
cd deps && make hdr_histogram linenoise jemalloc
cd - && make all
./src/redis-server ./redis.conf Untuk membersihkan semua negara bagian dari Kanban, Anda dapat mengeluarkan ./src/redis-cli FLUSHALL .
Manajer adalah pelaksana khusus yang membuat Kanban tahan terhadap perusakan.
cd manager
make all
./manager Pelaksana terdiri dari seluruh pipa pencarian. Rilis ini mengkonsolidasikan semua peran pencarian dalam satu yang dapat dieksekusi. Anda bebas memodifikasi executor/start.sh untuk meluncurkan lebih banyak pelaksana sesuka Anda.
cd executor
make all
bash ./start.shKlien adalah server web yang berfungsi sebagai entri untuk desearch.
cd client
make all
./client Kemudian klik dua kali client/index.html , atau gunakan client/WebUI/index.html .


Untuk memperluas ke pengaturan WAN, Anda perlu memodifikasi beberapa konfigurasi jaringan:
config.hpp : ubah KANBAN_ADDR menjadi IP publik globalexecutor/start.sh : Ubah Alamat IP Querier ke yang publik yang dapat dijangkau klienLihat Executor/ReadMe.MD
Mulanpsl-2.0 (lihat di sini)