Desearch是一个实验系统,用于分散的搜索引擎。为了实现可伸缩性和容错性,使用无状态信任的网络和状态云存储的Desearch解开计算和存储。该网络由证人追溯,商店受区块链的监管。 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,则由于稀缺的加密内存(通常在SGXV1上的128MB/256MB),可能需要更长的时间来引导整个系统。
该仓库在executor文件夹中提供了非SGX版本,并在sgx-executor文件夹中提供了SGX版本。如果您想构建扩展程序以进行研究,则非SGX版本可以帮助您更轻松地调试;它使用与SGX版本相同的文件夹结构。请注意,只有SGX版本包含基于Oram的查询器。
在Ubuntu 20.04下,建筑物的执行者需要安装以下下降:
您可以参考REDIS,HIRIDIS和REDIS ++的正确版本的deps文件夹。
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
popd看板是一种未经修改的重复,利用相对便宜的云存储。
只需启动Redis服务器:
cd Kanban
cd deps && make hdr_histogram linenoise jemalloc
cd - && make all
./src/redis-server ./redis.conf要清除看板的所有州,您可以发出./src/redis-cli FLUSHALL 。
经理是一位特别执行者,可以使看板耐篡改。
cd manager
make all
./manager执行人由整个搜索管道组成。此版本将一个可执行文件中的所有搜索角色巩固。您可以自由修改executor/start.sh根据需要启动更多执行者。
cd executor
make all
bash ./start.sh客户端是一家Web服务器,可作为Desearch的条目。
cd client
make all
./client然后双击client/index.html ,或使用Fancy Web条目client/WebUI/index.html 。


要扩展到WAN设置,您需要修改一些网络配置:
config.hpp :更改KANBAN_ADDRexecutor/start.sh :将Querier IP地址更改为客户可以达到的公共iP地址请参阅executor/readme.md
Mulanpsl-2.0(请参阅此处)