Desearch هو نظام تجريبي نحو محرك بحث لا مركزي. لتحقيق قابلية التوسع والتسامح مع الأخطاء ، يفصل Desearch عن حساب وتخزين باستخدام شبكة موثوق بها عديمي الجنسية ومتجر سحابة مملوء . يتم تتبع الشبكة من قبل الشهود ويتم تنظيم المتجر بواسطة blockchain. يستخدم التنفيذ الحالي لـ Desearch Intel SGX كأجهزة موثوق بها و redis كمتجر.
تحذير: يستضيف هذا الريبو نموذجًا أوليًا للمفهوم الأكاديمي ولم يتلق مراجعة رمز دقيق.
يرجى الرجوع إلى ورقة 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 القابل للتطوير ، فقد يستغرق الأمر وقتًا أطول لتخليص النظام بأكمله بسبب الذاكرة المشفرة النادرة (عادةً 128 ميجابايت/256 ميجابايت على SGXV1).
يوفر هذا الريبو إصدارًا غير SGX في المجلد executor ، وإصدار SGX في مجلد sgx-executor . يساعدك الإصدار غير SGX على التصحيح بسهولة أكبر إذا كنت ترغب في إنشاء ملحقات إلى Desearch ؛ يستخدم نفس بنية المجلد مثل إصدار SGX. لاحظ أن إصدار SGX فقط يحتوي على Queriers المستندة إلى Oram.
بموجب Ubuntu 20.04 ، يتطلب بناء التنفيذيين على الانسدادات التالية المثبتة:
يمكنك الرجوع إلى مجلد deps للإصدارات الصحيحة من redis و requiredis و 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 .
المدير هو منفذ خاص يجعل كانبان مقاومًا للعبث.
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 (انظر هنا)