A Desearch é um sistema experimental para um mecanismo de pesquisa descentralizado. Para alcançar escalabilidade e tolerância a falhas, a Desearch desocupa a computação e o armazenamento usando uma rede confiável sem estado e uma loja de nuvem com estado . A rede é rastreada pelas testemunhas e a loja é regulada pela blockchain. A implementação atual do Desearch usa a Intel SGX como hardware e redis confiáveis como a loja.
AVISO: Este repo recebe um protótipo de prova de conceito acadêmico e não recebeu uma análise cuidadosa do código.
Consulte o nosso artigo OSDI'21 para obter mais detalhes.
@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},
}
Requisito de hardware: desktops com capacidade SGX ou máquinas de nuvem com capacidade SGX. Para verificar se sua máquina suporta SGX, consulte o hardware Intel SGX.
Observe que, se você deseja executar vários nós SGX em sua máquina local sem o suporte ao SGX escalável, pode levar mais tempo para inicializar todo o sistema devido à escassa memória criptografada (geralmente 128 MB/256 MB no SGXV1).
Este repositório fornece uma versão não SGX na pasta executor e uma versão SGX na pasta sgx-executor . A versão não-SGX ajuda você a depurar mais facilmente se desejar criar extensões de pesquisa; Ele usa a mesma estrutura de pasta que a versão SGX. Observe que apenas a versão SGX contém Queriers baseados em Oram.
Sob o Ubuntu 20.04, os executores de pesquisa de construção exigem as seguintes dependências instaladas:
Você pode consultar a pasta deps para as versões corretas do Redis, Hiredis e 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 é um Redis não modificado que aproveita o armazenamento em nuvem relativamente barato.
Basta iniciar o servidor Redis:
cd Kanban
cd deps && make hdr_histogram linenoise jemalloc
cd - && make all
./src/redis-server ./redis.conf Para limpar todos os estados do Kanban, você pode emitir ./src/redis-cli FLUSHALL .
O gerente é um executor especial que torna o Kanban resistente a adulteração.
cd manager
make all
./manager Executor consiste em todo o pipeline de pesquisa. Esta versão consolida todas as funções de pesquisa em um executável. Você está livre para modificar executor/start.sh para lançar mais executores como quiser.
cd executor
make all
bash ./start.shO cliente é um servidor da Web que serve como entrada para a Desseak.
cd client
make all
./client Em seguida, clique duas vezes no client/index.html ou use um client/WebUI/index.html .


Para se estender a uma configuração WAN, você precisa modificar algumas configurações de rede:
config.hpp : altere KANBAN_ADDR para um IP público globalexecutor/start.sh : altere o endereço IP do consultor para um público que os clientes podem alcançarConsulte Executor/Readme.md
Mulanpsl-2.0 (veja aqui)