Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
move startup and replication logic into a new server sub-crate (#295)
* add new server sub-crate * stub out examples dir * test characterizing local network interfaces * test advertising an mDNS service * test mDNS peer discovery * stub out a ServerBuilder struct * move ServerBuilder into its own module * stub out Cluster and Txn structs * impl TxnServer * implement ServerBuilder::build * move the garbage collection thread into the gateway module * move garbage collection logic into the new server module * temporarily delete the gateway module * impl Deserialize + Serialize for Claim * impl ReplicaHandler * stub out impl RPCClient for Txn * impl Server::authorize_and_route * first draft Kernel::authorize_and_route * stub out Txn claim methods * impl Txn::grant * add a generic State type parameter to Kernel * remove the gateway module and add a generic State type parameter to Txn * rename RPCClient -> Gateway and add a remote-only RPCClient to server::Builder * test starting a Server with a mock State * impl Hash for Value * stub out a Cluster keyring type * first draft of Txn::claim * accept a Borrow<str> in Map::option, Map::require, and Map::remove * test executing a request to /transact/hypothetical * move CacheBlock into the state sub-crate * update the server sub-crate to depend on the state sub-crate * add feature flags to the error crate * add chain and collection feature flags to the state sub-crate * copy cluster::Dir * copy cluster::Class * stub out a root /class endpoint * test creating a new cluster directory at runtime * update inline documentation to include the sequence of events to bootstrap a server & fix documentation build warnings * implement a GET handler for cluster::Dir * only claim write transactions & correctly route cluster GET requests when a token is provided * impl RPCClient for Client & move mDNS service logic into Server::make_discoverable * split Builder into two stages * stub out Kernel::replicate_and_join * implement Kernel::replicate_and_join * require RPC clients to implement rjwt::Resolve * impl Gateway for Txn * don't use localhost for networking since it does not support mDNS discovery * impl rjwt::Resolve for Client * remove impl fmt::Display for Value * implement transaction claim management for a distributed commit * implement Cluster::replicate_commit * test adding a host to a replica set * first draft of ReplicaSetHandler * use a consistent txn id when fetching a public key * remove async_hash dependency for sub-crates which depend on the transact sub-crate * validate the hash of a new cluster replica before allowing it to join the replica set * add egress authorization & tracking to Client * test adding a new host to a running cluster & verify that the cluster state is correctly replicated * test adding a new class set version to a running cluster * implement a versioned Library & its handlers * implement Cluster::replicate_rollback * update to the latest txfs * provide an improved error message if a duplicate directory entry is requested * remove unused code * update trait bounds in the chain and collection sub-crates, and add them as optional deps of the server sub-crate * impl Service
- Loading branch information
Showing
101 changed files
with
6,884 additions
and
1,172 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.