Closed willscott closed 7 years ago
I think the new consensus is to:
separate centralized.go into 3 logical entities
frontend
servers are only run on the leader trust domain and coordinate replicating writes to all trust domains, and batching PIR requestsreplica
servers are run both on leader and follower trust domains. They store shards and perform PIR batch reads.coordinator
servers track the current global sequence number and calculate the global cuckoo table configuration across shards.your comment is, i think, a different refactor. This issue was meant to deal with the way the different configuration structs are laid out - while yours is about refactoring the internal structure of the different parts of the server.
This is obsoleted by the frontend/replica refactor in #51
currently, the server.Config struct is not able to fully configure a talek server. The missing piece is that it does not include the information about the trust domains. While a talek server does not need to know the keys of the other servers, it does need to know if it's a leader, and which other servers it should be RPC'ing with. (And eventually, the server keys should probably be used to establish and validate these RPC connections).
This is a self-contained work item to add an []trustDomainConfig to server.Config, update talekutil to fill it, and update the server driver to determine leader and rpc's from it.