Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wexpertsystems/seguro
Distributed event log storage for Urbit.
https://github.com/wexpertsystems/seguro
Last synced: 7 days ago
JSON representation
Distributed event log storage for Urbit.
- Host: GitHub
- URL: https://github.com/wexpertsystems/seguro
- Owner: wexpertsystems
- License: mit
- Created: 2022-07-19T14:09:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-10-10T19:31:50.000Z (about 2 years ago)
- Last Synced: 2024-08-03T01:15:15.081Z (4 months ago)
- Language: C
- Homepage:
- Size: 122 KB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-urbit - Seguro
README
# Seguro
This is the work-in-progress repo for Phase 2 of the Seguro implementation for
the [Urbit](https://urbit.org) project.More information:
- [Seguro Prototype Proposal](https://urbit.org/grants/seguro-prototype)
- [Seguro MVP Proposal](https://urbit.org/grants/seguro-phase-2)# Installation
## Dependencies:
- [FoundationDB](https://github.com/apple/foundationdb/releases)
- [make](https://www.gnu.org/software/make/)## Configuration
After installing the clients and server packages of FoundationDB, the default
server should be reconfigured for local testing. This can be done using the
`fdbcli` utility on Linux and MacOS:
```shell
fdbcli
configure single ssd
```
This will set the default local FoundationDB cluster to store a single copy of
data on disk.# Usage
## Run tests
The following command will run all Seguro tests:
```shell
make test
```Alternatively, the unit or integration tests can be run separately from each other:
```shell
make test-unit
make test-integ
```## Run benchmarks
The following command will run all Seguro benchmarks:
```shell
make benchmark
```# Troubleshooting
The state of the local FoundationDB cluster can be monitored using the `fdbcli` utility. It's self-documented, but
additional information can be found in the [official FoundationDB documentation](https://apple.github.io/foundationdb).However, be warned that the `fdbcli` can be finicky, and can lie. Some examples:
- Complaining that there is no memory available with 12GB memory available
- Complaining that there is no space on the drive available when there is 50GB space available
- Errors during benchmark tests while the `status` command shows nothing wrong
- No errors during benchmark tests while the `status` command shows memory and storage warnings## Soft Reset
If the test or benchmark suites suffer a fatal error, the local FoundationDB may be stranded in an unclean state. It may
be necessary to manually drop keys from the cluster to ensure tests/benchmarks accurately measure
correctness/performance:
```shell
fdbcli
writemode on
clearrange "" \xFF
```
The above series of commands will drop all keys from the FoundationDB cluster.## Hard Reset
If the FoundationDB cluster becomes so broken during development that a hard reset is required, the following commands
will return the cluster to its initial state after a fresh installation:
```shell
sudo systemctl stop foundationdb
sudo rm -rf /var/lib/foundationdb/data
sudo systemctl start foundationdb
fdbcli
configure new single ssd
```