Desearch เป็นระบบทดลองที่มีต่อเครื่องมือค้นหาที่กระจายอำนาจ เพื่อให้บรรลุความยืดหยุ่นและความทนทานต่อความผิดพลาดได้ทำการคำนวณและจัดเก็บข้อมูลโดยใช้เครือข่ายที่เชื่อถือได้ ไร้สัญชาติ และร้านค้าคลาวด์ ที่มีสถานะ เครือข่ายถูกติดตามโดยพยานและร้านค้าถูกควบคุมโดย blockchain การใช้งาน Desearch ปัจจุบันใช้ Intel SGX เป็นฮาร์ดแวร์ที่เชื่อถือได้และ Redis เป็นร้านค้า
คำเตือน: repo นี้เป็นเจ้าภาพการพิสูจน์ต้นแบบเชิงวิชาการของแนวคิดและยังไม่ได้รับการตรวจสอบรหัสอย่างรอบคอบ
โปรดดูกระดาษ OSDI'21 ของเราสำหรับรายละเอียดเพิ่มเติม
@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},
}
ความต้องการฮาร์ดแวร์: เดสก์ท็อปที่สามารถใช้งานได้ของ SGX หรือเครื่องคลาวด์ที่สามารถใช้งานได้ SGX หากต้องการตรวจสอบว่าเครื่องของคุณรองรับ SGX หรือไม่โปรดดูที่ฮาร์ดแวร์ Intel SGX
โปรดทราบว่าหากคุณต้องการเรียกใช้โหนด SGX หลายโหนดบนเครื่องในพื้นที่ของคุณโดยไม่รองรับ SGX ที่ปรับขนาดได้อาจใช้เวลานานกว่าในการ bootstrap ทั้งระบบเนื่องจากหน่วยความจำที่เข้ารหัสที่หายาก (ปกติ 128MB/256MB บน SGXV1)
repo นี้มีเวอร์ชันที่ไม่ใช่ SGX ในโฟลเดอร์ executor และเวอร์ชัน SGX ในโฟลเดอร์ sgx-executor เวอร์ชันที่ไม่ใช่ SGX ช่วยให้คุณดีบักได้ง่ายขึ้นหากคุณต้องการสร้างส่วนขยายเพื่อ Desearch มันใช้โครงสร้างโฟลเดอร์เดียวกันกับรุ่น SGX โปรดทราบว่ามีเพียงรุ่น SGX เท่านั้นที่มี Queriers ที่ใช้ ORAM
ภายใต้ Ubuntu 20.04 ผู้ดำเนินการ Desearch ผู้ดำเนินการต้องการการติดตั้ง Depecencies ต่อไปนี้:
คุณสามารถอ้างถึงโฟลเดอร์ deps สำหรับ Redis, Hiredis และ Redis ++ เวอร์ชันที่ถูกต้อง
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 เป็น Redis ที่ไม่มีการแก้ไขซึ่งใช้ประโยชน์จากที่เก็บข้อมูลบนคลาวด์ที่ค่อนข้างถูก
เพียงเริ่มเซิร์ฟเวอร์ Redis:
cd Kanban
cd deps && make hdr_histogram linenoise jemalloc
cd - && make all
./src/redis-server ./redis.conf เพื่อล้างทุกรัฐจาก Kanban คุณสามารถออก ./src/redis-cli FLUSHALL
ผู้จัดการเป็นผู้บริหารพิเศษที่ทำให้ Kanban ทนต่อการดัดแปลง
cd manager
make all
./manager ผู้ดำเนินการประกอบด้วยไปป์ไลน์การค้นหาทั้งหมด รุ่นนี้รวมบทบาทการค้นหาทั้งหมดภายในหนึ่งเดียว คุณมีอิสระที่จะแก้ไข executor/start.sh เพื่อเปิดตัวผู้ดำเนินการมากขึ้นตามที่คุณต้องการ
cd executor
make all
bash ./start.shไคลเอนต์เป็นเว็บเซิร์ฟเวอร์ที่ทำหน้าที่เป็นรายการสำหรับ Desearch
cd client
make all
./client จากนั้นดับเบิลคลิก client/index.html หรือใช้ไคล client/WebUI/index.html


ในการขยายไปยังการตั้งค่า WAN คุณต้องแก้ไขการกำหนดค่าเครือข่ายบางส่วน:
config.hpp : เปลี่ยน KANBAN_ADDR เป็น IP สาธารณะระดับโลกexecutor/start.sh : เปลี่ยนที่อยู่ IP Querier เป็นที่สาธารณะที่ลูกค้าสามารถเข้าถึงได้ดู Executor/Readme.md
Mulanpsl-2.0 (ดูที่นี่)