| commit | 292d9e8945bc6727e433d2c9e48bbfe8d703a671 | [log] [tgz] |
|---|---|---|
| author | Saipranav Kotamreddy <saipranav.kotamreddy@gmail.com> | Fri Feb 23 20:02:10 2024 -0800 |
| committer | Saipranav Kotamreddy <saipranav.kotamreddy@gmail.com> | Fri Feb 23 20:02:10 2024 -0800 |
| tree | 84dfa5eca3181b3e1528bce019a2d5ec80c0e962 | |
| parent | cecdd595aed283624cc59d1b4783db9ff783f42e [diff] |
"Crow service added"
ResilientDB is a High Throughput Yielding Permissioned Blockchain Fabric founded by ExpoLab at UC Davis in 2018. ResilientDB advocates a system-centric design by adopting a multi-threaded architecture that encompasses deep pipelines. Further, ResilientDB separates the ordering of client transactions from their execution, which allows it to process messages out-of-order.
The latest ResilientDB documentation, including a programming guide, is available on our blog repository. This README file provides basic setup instructions.
Ubuntu 20.*
Next, we show how to quickly build ResilientDB and deploy 4 replicas and 1 client proxy on your local machine. The proxy acts as an interface for all the clients. It batches client requests and forwards these batches to the replica designated as the leader. The 4 replicas participate in the PBFT consensus to order and execute these batches. Post execution, they return the response to the leader.
Install dependencies:
./INSTALL.sh
Run ResilientDB (Providing a Key-Value Service):
./service/tools/kv/server_tools/start_kv_service.sh
Build Interactive Tools:
bazel build service/tools/kv/api_tools/kv_service_tools
Run tools to set a value by a key (for example, set the value with key “test” and value “test_value”):
bazel-bin/service/tools/kv/api_tools/kv_service_tools service/tools/config/interface/service.config set test test_value
You will see the following result if successful:
client set ret = 0
Run tools to get value by a key (for example, get the value with key “test”):
bazel-bin/service/tools/kv/api_tools/kv_service_tools service/tools/config/interface/service.config get test
You will see the following result if successful:
client get value = test_value
Run tools to get all values that have been set:
bazel-bin/service/tools/kv/api_tools/kv_service_tools service/tools/config/interface/service.config getallvalues
You will see the following result if successful:
client getallvalues value = [test_value]
We also provide access to a deployment script that allows deployment on distinct machines.
Install Docker
Before getting started, make sure you have Docker installed on your system. If you don't have Docker already, you can download and install it from the official Docker website.
Pull the Latest ResilientDB Image
Choose the appropriate ResilientDB image for your machine's architecture:
For amd architecture, run:
docker pull expolab/resdb:amd64
For Apple Silicon (M1/M2) architecture, run:
docker pull expolab/resdb:arm64
Run a Container with the Pulled Image
Launch a Docker container using the ResilientDB image you just pulled:
For amd architecture, run:
docker run -d --name myserver expolab/resdb:amd64
For Apple Silicon (M1/M2) architecture, run:
docker run -d --name myserver expolab/resdb:arm64
Test with Set and Get Commands Exec into the running server:
docker exec -it myserver bash
Verify the functionality of the service by performing set and get operations:
bazel-bin/service/tools/kv/api_tools/kv_service_tools service/tools/config/interface/service.config set test test_value
bazel-bin/service/tools/kv/api_tools/kv_service_tools service/tools/config/interface/service.config get test